Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
00:18 dmalcolm joined 00:21 Crazyjavahacking joined
Crazyjavahacking hi 00:21
anybody online?
tadzik I guess so
Crazyjavahacking great
few weeks ago I was chatting and talking about GCSpy, garbage collection visualization tool 00:22
and some of the guys were interested
now i have posted quite detailed proposal on their mailing list
and I would like to ask how should I contact the parrot guys about that? 00:23
post it on your mailing list/forum? what will be the best way?
tadzik parrot-dev mailing list would probably be the best choice
Crazyjavahacking ok thanks 00:24
01:31 benabik joined
benabik o/ 01:33
How do you load dynpmc libraries? 01:37
sorear loadlib 01:43
it's an op 01:44
I think you can also use a .loadlib PIR directive
benabik Hah.
loading the tcl dynpmcs helps a lot 01:45
01:47 whiteknight joined
benabik ... I fixed it, but never hit the memory corruption. Is this a good thing 01:49
01:50 dmalcolm joined
Coke benabik: memory corruption was only happening for me on feather. 02:11
(not OS X, e.g.)
whiteknight what was the problem 02:19
benabik Coke: Ah. I highly suspect it's a GC issue. The bisected commit is probably just what changed the allocation enough to make it explode. 02:20
whiteknight: github.com/parrot/parrot/issues/185
whiteknight yeah, bt what was the cause? 02:21
benabik I don't know? I know at the very least it was having a NULL PMC issue because it was calling interp.hll_map(Integer, PMCNULL) 02:22
whiteknight ok 02:28
benabik Marked the bug with GC, since that's my suspicion. (Bisected to apparently unrelated changes, only happens on certain platforms, etc) 03:04
As a random note, I think marking bugs with a tag based on what HLL they're causing problems with is a good idea. 03:06
Coke b: say 19409-19357; # 01/25/2012 - niecza at 100.26% 03:09
p6eval b 1b7dd1: OUTPUT«52␤» 03:10
Coke niecza has 20 new failures.
benabik Coke: check your channel. ;-) 03:11
(Not that I'm not interested.)
Coke whoops. danke.
benabik Oh. partcl and partcl-nqp are two different things. Fascinating. 03:13
benabik clones a different project.
Coke partcl is the original PIR only one, -nqp is the rewrite in nqp-rx 03:14
benabik ... Oh. Oh, dear. Parrot_pmc_reuse? 03:15
This sounds like a portion of the code that's broken by design. 03:17
Okay, that's one I definitely don't have the time to pursue. :-( 03:18
Coke: Well, I put in a pull request for some fixed to partcl, but I don't think I can help with the partcl-nqp issue. ENOTUITS 03:20
*fixes
Coke odd. wonder why the loadlib needs to be there also. 03:26
benabik Otherwise it never loads the dynpmc library with the Tcl* classes and gets... very confused.
I don't know how it would have loaded it prior. Perhaps some bit of magic autoloading got removed. 03:27
Coke benabik: your pull request has no impact on my failures on feather. 03:28
benabik Sadface. 03:29
Coke tries a clean.
benabik I'll have to boot up a VM.
Coke nope.
you can always get an account on feather.
benabik That had not occurred to me. 03:30
dalek rtcl: bdc2fee | Benabik++ | src/ (4 files):
pmc_type now called Parrot_pmc_get_type_str

pmc_type was an old compatability macro removed in Nov 2011 by dffbd93: Remove very old 'compatibilty macros'. The new way to say that is Parrot_pmc_get_type_str. Longer, but it matches Parrot's naming conventions.
03:31
Coke aloha, seen juerd?
aloha Coke: juerd was last seen in #perl6 5 days 8 hours ago saying "Fixed".
rtcl: 2696c86 | Benabik++ | runtime/tcllib.pir:
Load tcl_group dynpmcs
rtcl: 6f3c072 | coke++ | / (5 files):
Merge pull request #3 from Benabik/master

Update partcl to recent parrot
benabik Well, I have a debian VM just sitting around.
03:38 Psyche^ joined
benabik It's much easier to build partcl if I remember to _install_ parrot.) 04:12
Hm. Also easier if I remember to install icu4c. Bah-humbug 04:13
Oh yes, look at the pretty memory corruption. 04:28
msg whiteknight I replicated the memory corruption in #185. The backtrace looks like mem_sys_alloc_0, imcc_new, ?, ?, pmc_new, imcc_get_pir_compreg_api - I'm not sure - github.com/parrot/parrot/issues/185 04:33
aloha OK. I'll deliver the message.
benabik msg whiteknight that it's not some odd GC issue, but it looks like it's happening _awfully early_ and mainly in IMCC land, which I know you love to visit. 04:34
aloha OK. I'll deliver the message.
benabik Coke: Replicated the corruption. Looks like it's something inside IMCC, which is "exciting".
msg whiteknight Yeah, I've looked at the backtrace libc gave me... It's happening when the fronted is setting up IMCC. I have no idea why this is happening with partcl and nobody else... 04:54
aloha OK. I'll deliver the message.
benabik Coke: "good" news. It's not partcl. It's a memory bug caused by anyone using attached options like --output=blah.pbc. glibc on Linux is just smart enough to notice us overrunning an array by one. 05:19
dalek rrot: 03b3d5f | benabik++ | frontend/parrot2/main.c:
frontend: Be pessimistic about arguments

The code to handle -o added two arguments to the final array. However, longopt allows "-o file" to also be passed as
  "--output=file". This causes one argument to cause two to be added.
This means that we can't have the destination array be the same size as the original.
I've decided to use the most pessimistic case for allocation, one where every argument causes two to be added (parrot --output=file1
  --output=file2 etc). Alternative solutions include passing it as
  "-o=file" instead and having prt0 handle breaking it apart, but this
is the fastest way to fix the memory overrun.
05:41
benabik msg Coke I believe 03b3d5f fixes the problem with partcl 05:45
aloha OK. I'll deliver the message.
benabik I worry that Rakudo Star will ship a version of parrot with this bug in it. :-/ 05:50
msg whiteknight see 03b3d5f about the memory corruption bug
aloha OK. I'll deliver the message.
dukeleto ~~ 05:52
dalek rrot: d712500 | alvis++ | ChangeLog:
Fixed typo.
06:56
moritz benabik: don't worry, there'll be another star release that ships without that bug 07:16
07:24 benabik_ joined
dalek kudo/nom: 2e1c5d1 | moritz++ | src/core/Exception.pm:
fix printing of typed exceptions in the REPL
07:32
kudo/nom: 88c330c | moritz++ | src/ (2 files):
throw X::Syntax::Name::NotNull from Grammar.pm
07:56 mj41 joined 09:13 muixirt joined 09:19 lucian joined
muixirt hi folks, can anyone confirm if plumage works with Parrot version 3.11? 09:20
to be more precise : typing help in interactive mode crashes with 'Method 'usage' not found for invocant of class 'Undef'' 09:38
09:48 bacek joined
dalek kudo/nom: 16f7623 | moritz++ | src/Perl6/Grammar.pm:
more typed redeclaration errors
10:13
rrot/ayardley/mk_html_docs: efc7d2e | alvis++ | tools/docs/m (2 files):
Make 'make_html_docs.pl' name conform to other 'make' tools.
10:37
rrot/ayardley/mk_html_docs: 497978a | alvis++ | tools/docs/mk_html_docs.pl:
Enable mk_html_docs.pl to pass html headers and links to Parrot::Docs::HTMLPage
rrot/ayardley/mk_html_docs: 1af5323 | alvis++ | tools/docs/mk_html_docs.pl:
Minor edit
rrot/ayardley/mk_html_docs: 659ec6f | alvis++ | lib/Parrot/Docs/HTMLPage.pm:
Added a simple body subroutine to process html passed to the module.
rrot/ayardley/mk_html_docs: 56f32cf | alvis++ | / (2 files):
Renamed make_html_docs.pl to mk_html_docs.pl to conform with other make named tools.
rrot/ayardley/mk_html_docs: 5472b91 | alvis++ | / (2 files):
Added comments to clarify the reason for the code updates.
rrot/ayardley/mk_html_docs: 93f24ff | alvis++ | MANIFEST:
Fixed typo
kudo/nom: 569f9d0 | moritz++ | src/ (3 files):
rename exception classes

  jnthn++ noted some inconsistency. Now all the names describe the error condition (and not some how it should be)
10:47
alvis msg not_gerd i did get your messages about cygwin and, hopefully, i'll get a chance to work on your suggestions a'bit next week. 11:06
aloha OK. I'll deliver the message.
alvis msg not_gerd to belabor the point: i'm very unfamiliar with cygwin, but i would like to get everything working just to help out with testing. 11:08
aloha OK. I'll deliver the message.
11:44 mj41 joined
Coke benabik: testing now. 12:33
13:03 bluescreen joined
Coke benabik++ # thank you for fixing the error. 13:47
I am glad that the original bisect did, in fact, point to the issue. 13:52
benabik Coke: Yeah. Memory corruption is generally a GC issue. But once I saw the backtrace, it was just too early for that. I guess you're the only person who uses --output= instead of -o 13:58
Coke benabik: thanks again for tracking it down. I really appreciate the extra effort you put in. 14:01
I think a lot of the remaining failures are just tracking a function rename. testing now. 14:05
dalek rtcl: e0eb829 | coke++ | src/ (3 files):
address bitrot (#4)

pmc_new -> Parrot_pmc_new
14:11
rtcl: 0f33083 | coke++ | src/pmc/tcl (3 files):
address bitrot (#4)

pmc_reuse -> Parrot_pmc_reuse
14:27
Coke benabik: the remaining failures seem to be due to a renumbing of exceptions. 14:28
$meetings now, but should be an easy fix.
14:34 mj41 joined 14:42 muixirt joined 14:48 PacoAir joined
Coke well, it's not an easy FIND, anyway. :P 15:11
ah. at one point, I could use "die" and "tcl_error" interchangably. now [catch] is not catching exceptions thrown with "die" 15:16
(or, rather, it is, and is using a different error code for them.) 15:17
ah. github.com/parrot/parrot/commit/56f0d98f is probably the offending commit there. 15:20
Coke wonders why that was done. 15:25
dalek rtcl: 5561d4d | coke++ | runtime/builtin/catch.pir:
Fixes #4 (bitrot)

Originally broken by github.com/parrot/parrot/commit/56...cade6c669b
This commit reorders things so we don't specifically rely on the parrot exception type for an error, which allows us to catch both the tcl-style CONTROL_ERROR, and the new parrot default, EXCEPTION_DIE
15:31
Coke There. partcl-old has been resurrected. 15:32
msg cotto see comment on github.com/parrot/parrot/commit/56...cade6c669b
aloha OK. I'll deliver the message.
Coke benabik++ 15:35
muixirt partcl is undead? :-)
Coke partcl-old, the PIR/C version. 15:36
partcl-nqp still has some breakages. 15:37
dalek kudo/nom: 052cc6a | moritz++ | src/Perl6/ (3 files):
moving boxing of error arguments to Perl6::World

previously they were scattered all over Actions.pm and Grammar.pm, and annoyed me to no end. Now it happens centrally
No visible functional changes.
15:55 dmalcolm joined 15:59 benabik joined
benabik o/ 16:02
16:15 dmalcolm_ joined 16:16 dmalcolm__ joined 17:22 fperrad joined
dukeleto ~~ 17:51
aloha (parrot/parrot) Issues opened : 707 (Update TT# in source to github issue #s) by Benabik : github.com/parrot/parrot/issues/707 17:52
PerlJam benabik: I believe that number is as small as possible given that we don't have all trac tickets on github. 17:53
benabik PerlJam: Nope. When I finish what I'm working on, it'll go down by at least one.
PerlJam reality trumps my beliefs any day :) 17:54
benabik I think we updated URLs, not raw ticket numbers. :-/
PerlJam yeah, I'm just slowly realizing
benabik Didn't someone collect a map of trac <-> github #s? 17:55
PerlJam moritz had one
benabik Did he put it somewhere we can get at it? :-D
PerlJam It was on a gist 17:56
moritz benabik: moritz.faui2k3.org/tmp/parrot-trac-github.txt
moritz just commented on the ticket
benabik moritz: Awesome. Now I just need to write a sed/perl script that'll do that conversion for ticket numbers.
PerlJam benabik++ 17:57
moritz benabik: gist.github.com/1684048 is what I used for substituting the links 17:58
benabik moritz++
moritz where the file i just linked to was avilable as ../issue-map
probably only the substitution needs updating 18:00
(and maybbe the file name)
oh, and it's called as ack -l 'regex here'|xargs perl subst2.pl 18:01
dukeleto ~~ 18:02
Coke benabik++ # still excited that partcl(old) is not dead. ;) 18:05
benabik Coke: I'm tempted to work on migrating some/all of partcl from PIR to winxed.
These tuits brought to you by me spinning my wheels on my thesis and just wanting to get something done. 18:06
Coke benabik: I can support that plan if the roadmap includes 1) killing PIR, and 2) keeping winxed as one of the bundled languages. 18:08
benabik Coke: I think that 2 is defiantly the case, and 1 is in the long-term plan. 18:09
Although I'd probably prefer keeping _a_ PIR compiler around, just not the in-core IMCC.
18:10 bluescreen joined
Coke benabik: I could get behind that, then; want a commit bit? 18:11
(same terms as parrot)
benabik Oh, sure! I was just going to use the fork, Luke. 18:12
I'll probably work in a branch for safety, at least at first.
But I'm also ticket hunting in parrot and should probably get back to my thesis RSN.
Coke benabik: done. 18:15
I imagine it would be easier to be able to do this piecemeal, replacing runtime/builtin/foo.pir with .winxed
NotFound: iwbni -? == --help on winxed 18:17
does winxed support .HLL, and .namespace ? 18:18
and dynops ?
benabik ... Apple has iwbni in the Japanese-English dictionary, but nowhere else. Odd. 18:19
I know it supports namespaces. I'm pretty sure it has a $loadlib directive.
Less sure about HLL
But if not, it's good to know!
Coke ah, it supports inlining PIR, anyway. 18:20
benabik I'm not sure it supports arbitrary PIR, or if it parses it in some way. 18:22
Coke kicks off a partcl spectest, wonder how long it's been since that was run. 18:23
18:26 mj41 joined 18:36 not_gerd joined
not_gerd hello, #parrot 18:36
benabik hello, not_gerd 18:39
not_gerd should dyncall (which is currently bundled with NQP) be moved into Parrot to replace the optional libffi bindings? 18:42
what's the policy on including 3rd party libs?
benabik I'm personally a bit of a fan of moving a lot of the "infrastructure" bits of NQP into core, dyncall included. I don't know the policy on it though. 18:43
not_gerd msg alvis my Cygwin fixes have all been merged into Parrot/NQP/Rakudo - in particular, Rakudo's Configure.pl --gen-nqp=master --gen-parrot=master shoould work 18:45
aloha OK. I'll deliver the message.
Coke benabik: my goal for partcl is to keep partcl (old) on life support, but to get partcl-nqp up to where partcl is, and then do more development on it. 19:22
(to followup on the old winxed question you asked.)
benabik Coke: I'm personally somewhat disenchanted with using NQP for anything other than grammars and perl6. It adds a pretty large amount of overhead. 19:23
Coke: It's been lessened, but it's still notable. 19:24
OTOH, if the NQP object, everything a lexical way of life works for your language, than it's probably great.
Although I bet 6model would make it easier to keep P6 methods from leaking into the target language. 19:25
19:27 dmalcolm joined
Coke when the choice is raw PIR vs. nqp, the overhead is worth it. 19:33
benabik The overhead from PIR to nqp-rx was 2-3x.
nqp is probably better with liberal use of native variables
(And other improvements like direct access of lexicals.) 19:34
Coke nqp-latest has non PMC vars, yes?
benabik But I'd say the better choice today is Winxed. It's PIR-like direct access but much easier to read and write. 19:35
Yes, NQP has int, num, and (I think) str variables.
Between that and stopping using find_lex and store_lex everywhere, I think a lot of the overhead has come down.
Coke pretty sure there's a memory leak partcl(PIR) is triggering. 19:49
(running the tcl spectests is just chewing memory)
aloha (parrot/parrot) Issues closed : 694 (Docs still refer to trac.parrot.org) by Benabik : github.com/parrot/parrot/issues/694 19:53
benabik git++ # making automated changes much safer. 20:00
20:03 bluescreen joined
dalek rrot/gh707: 18f3b94 | benabik++ | / (53 files):
Auto-replace TT# with GH# as per GH #707

This takes us from 316 to 145 references to trac tickets. I suspect they are all closed tickets.
20:05
benabik Oh. moritz++ for the very useful script
dukeleto ~~ 20:07
20:10 contingencyplan joined
cotto ~~ 20:10
not_gerd cotto: irclog.perlgeek.de/parrot/2012-01-26#i_5056106 20:16
benabik Does anyone else want to check 18f3b94, or should I just put it in master? After some random sampling, the remaining tickets referenced all seem to be closed. 20:18
cotto not_gerd, looking 20:19
moritz benabik: looks good 20:24
cotto not_gerd, do you know why nqp went with dyncall instead of libffi? 20:25
benabik cotto: IIRC, Windows compatability.
not_gerd MSVC support, probably
libffi needs a gcc-compatible compiler, ie MinGW or Clang
dalek rrot: 18f3b94 | benabik++ | / (53 files):
Auto-replace TT# with GH# as per GH #707

This takes us from 316 to 145 references to trac tickets. I suspect they are all closed tickets.
cotto that's a very valid reason 20:26
aloha (parrot/parrot) Issues closed : 707 (Update TT# in source to github issue #s) by Benabik : github.com/parrot/parrot/issues/707 20:28
benabik Opening and closing issues all day. 20:29
Coke partcl's spectest hasn't been run since parrot switched to git.
benabik That's... a while.
Coke it did complete, modulo 2 tests that were very slow. I killed them rather than wait, though they probably would have finished eventually. 20:30
cotto all_hll_test just does make test
dalek p: 173935c | moritz++ | src/HLL/Compiler.pm:
missing downcase for %adverbs<target>
20:37
benabik Huh. Why was I messing around in hash.pmc? Anybody remember? 20:51
Wow. Lion Time Machine keeps around backups on my laptop while I'm not at home. This is most useful. 20:55
(I had deleted my parrot build script.) 20:56
I should probably version control that thing. 21:00
21:27 perlite_ joined 21:36 lucian joined 21:37 schmooster joined
dalek rrot: 15dd3bf | benabik++ | frontend/parrot2/main.c:
codeingstd: don't use C++ comments, benabik--
21:38
benabik Oh, and I can't spell codingstd. Awesome. 21:48
tadzik google code-ing
21:50 not_gerd left
dalek p: c9a8997 | jnthn++ | src/PAST/Regex.pir:
Fix what appears to be an inverted condition in the old regex engine's charlist prefix computation.
21:50
22:24 estrabd joined
dalek rrot: 2d8947b | dukeleto++ | .travis.yml:
Add a Travis CI config file
22:24
benabik Okay, I have to head out. But I'd like to point out my work on #346: github.com/benabik/parrot/tree/gh346 22:28
Also, if anyone knows a easy and reliable way to trigger a warning, let me know. 22:29
(via aloha, since I have to leave)
dalek rrot: 7e7e8f4 | dukeleto++ | .travis.yml:
[ci] Do a configure at 'script' time, not 'before_script'
22:40
rrot: bed6acf | dukeleto++ | .travis.yml:
[ci] We use Configure.pl, not ./configure
22:48
22:50 estrabd joined 22:55 wknight-phone joined
dukeleto booya! travis-ci.org/#!/parrot/parrot 23:01
23:07 bacek joined 23:39 whiteknight joined
dukeleto about.travis-ci.org/ 23:43
bacek ~~ 23:45
23:46 bluescreen joined
whiteknight good evening, #parrot 23:53
23:54 benabik joined