Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-01

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 Coke .
00:07 Infinoid hmm.
00:07 Infinoid #   Failed test 'decodelocaltime'
00:07 Infinoid #   at t/op/time.t line 101.
00:07 Infinoid #          got: '2008'
00:07 Infinoid #     expected: '2009'
00:07 Infinoid # Looks like you failed 1 test of 7.
00:07 Infinoid t/op/time................................... Dubious, test returned 1 (wstat 256, 0x100)
00:07 Infinoid yeah, what GeJ said :)
00:10 AndyA joined #parrot
00:20 dalek r34726 | infinoid++ | trunk/compilers/imcc:
00:20 dalek : [pcc] insert_tail_call's "meth" call is NULLOK.
00:20 dalek : (Found by the headerizer NONNULL assert() patch, see Trac #105.)
00:20 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34726
00:21 dalek r34727 | infinoid++ | trunk (9 files):
00:21 dalek : [core] Add argument asserts to another 176 functions.
00:21 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34727
00:24 Coke chromatic: you around?
00:42 jimmy joined #parrot
00:46 chromatic yes
00:48 Coke ah, hi.
00:48 Coke I sent an email to the list.
00:48 Coke looks like say burns 17 pmcs every time it's invoked.
00:49 chromatic say_s or say_p
00:49 Coke say_i
00:49 * Coke double checks something, though.
00:50 chromatic I think interpinfo is the culprit there.
00:51 jimmy seems that I can make parrot succeed
00:51 jimmy seems that I can  not make parrot succeed
00:51 jimmy src\interpreter.c: In function `exec_init_prederef':
00:51 jimmy src\interpreter.c:607: error: `ASSERT_ARGS_exec_init_prederef' undeclared (first
00:51 jimmy use in this function)
00:51 jimmy src\interpreter.c:607: error: (Each undeclared identifier is reported only once
00:51 purl i already had it that way, jimmy.
00:51 jimmy src\interpreter.c:607: error: for each function it appears in.)
00:51 jimmy src\interpreter.c: In function `init_jit':
00:51 chromatic Hm, no.  it's not interpinfo.
00:51 jimmy src\interpreter.c:641: error: `ASSERT_ARGS_init_jit' undeclared (first use in th
00:51 jimmy is function)
00:51 jimmy make: *** [src\interpreter.o] Error 1
00:51 Coke chromatic: it's not.
00:51 chromatic jimmy, you probably need to reconfigure.
00:52 jimmy yes, make realclean && perl Configure.pl && make
00:52 Coke (I tested doubling up interpinfo & say - doubling say doubled the leak. doubling interpinfo kept it steady.)
00:52 jimmy I had do it many times.
00:52 Coke it should only matter once.
00:52 Coke but you might have to do it depending on what changes in your working copy.
00:53 Coke chromatic: so, my best guess right now is that every time we invoke the calling conventions, some N pmcs get allocated for it and then never freed.
00:53 Coke *get freed.
00:54 chromatic I can probably reproduce that.
00:54 jimmy yeah, I had removed all what I want to pacthed.
00:54 jimmy but still wrong
00:55 jimmy all source are from svn.perl.org
00:56 jimmy there are no any other third codes.
00:56 GeJ I can reproduce jimmy's error on my machine.
00:57 Infinoid hmm
00:57 Infinoid one moment, I'll have a patch for you guys to try
00:57 jimmy thanks Infinoid, atfter that i have a patch too.
00:58 chromatic Coke, add a sweep 1 after each say.
00:58 Coke woof!
00:58 chromatic collect only compacts string pools.
00:58 Coke ... well that's crazy. =-)
00:59 Coke hokay.
00:59 nopaste "Infinoid" at 75.5.247.153 pasted "quick fix, try this" (26 lines) at http://nopaste.snit.ch/15143
00:59 Coke I wonder...
00:59 Infinoid jimmy, GeJ, please try the above patch
00:59 Infinoid I didn't hit that on my box because JIT isn't enabled by default...
00:59 jimmy ok
01:00 chromatic ./parrot say_leak.pir
01:00 chromatic 1785
01:00 chromatic 1383
01:00 chromatic 1383
01:00 chromatic 1383
01:00 chromatic 1383
01:00 Coke chromatic: yah, I can definitely reproduce your findings.
01:00 chromatic No leak then.
01:01 Infinoid jimmy: for whatever reason, those functions are not maintained by headerizer, so they didn't get assert macros generated.  similar failures can be fixed in the same way, but let me know so I can commit any additional fixes
01:02 Coke chromatic++
01:03 masak joined #parrot
01:03 jimmy Infinoid: I will give you a patch later :)
01:03 Coke chromatic: that also eliminates issues with the bar() invocation.
01:03 GeJ Infinoid: worksforme. running `make test`
01:04 GeJ Just in case...
01:04 purl Break glass, retrieve shotgun.
01:04 Coke now to move up to tcl.
01:04 chromatic Do you have any dod_register_pmc() calls in Tcl?
01:05 Coke no.
01:05 Coke I do have something..;
01:05 dalek r34728 | infinoid++ | trunk/src:
01:05 dalek : [jit] A couple of non-headerized functions snuck through.  (x86-64
01:05 dalek : apparently doesn't have JIT enabled by default).  This will hopefully
01:05 dalek : fix builds for JIT-enabled platforms.
01:05 dalek : jimmy++ and GeJ++ for reporting.
01:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34728
01:05 Coke pmc_register calls.
01:05 masak nopaste?
01:05 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
01:05 purl well, nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
01:05 Coke that's not it.
01:06 chromatic pmc_register is different; that tells Parrot about a dynpmc.
01:06 Coke Parrot_register_pmc
01:06 nopaste "masak" at 130.238.45.88 pasted "cannot get ncurses_life.pir to run -- bitrot?" (7 lines) at http://nopaste.snit.ch/15144
01:06 chromatic dod_register_pmc() stores a PMC in a hash which is part of the root set.
01:06 jimmy masak: Is night there now? if so, good night.
01:06 masak jimmy: good night.
01:06 Coke I think just Parrot_register_pmc in the C code.
01:06 chromatic Ah, but there is a leak.
01:06 Coke added by you, actualy, to fix something that was getting freed premautrely.
01:07 masak jimmy: it's past midnight here, thus 2009. happy new year.
01:07 alvar joined #parrot
01:07 Coke chromatic: you see it? =-)
01:07 GeJ Infinoid: `make test` passes for me. Thanks.
01:07 Infinoid GeJ++
01:07 jimmy masak: Happy new year. ah ha.
01:07 chromatic Not in Tcl, but in MMD.
01:08 Coke excellent.
01:08 chromatic Only when there's an exception thrown though.
01:09 Coke I do that a lot.
01:09 chromatic And without marking the PMC, PGE doesn't build.
01:09 chromatic You throw exceptions from MMD?
01:09 Coke inside multis.
01:09 Coke does that count?
01:09 chromatic It's only the case when something in Parrot_mmd_multi_dispatch_from_c_args or one of its callees throws an exception.
01:10 Coke ah well, probably doesn't account for my 2MegaPmcs.
01:10 chromatic Do you catch any exceptions from MMD?
01:12 Coke I don't know what that would involve.
01:12 chromatic Oh, and there's leftover debris from the MMD merge.  Gah.
01:12 masak does anyone skilled in the history of imcc have time to look at what's wrong with ncurses_life.pir?
01:12 chromatic DOD_REGISTER_PMC IS NOT FOR PREVENTING SEGFAULTS IT IS FOR EXPORTING PMCS TO C CODE WHICH EMBEDS PARROT
01:12 Coke is that from my comment in tcl*.pmc?
01:12 jimmy Infinoid: https://trac.parrot.org/parrot/ticket/111
01:12 chromatic THE RIGHT WAY TO FIX A SEGFAULT IS TO FIX THE SEGFAULT
01:12 chromatic Okay, I'm better now.
01:13 * masak pets chromatic
01:13 bjoern joined #parrot
01:13 masak also, once it's working, what are the chances of calling the ncurses library from Rakudo?
01:14 masak the chances of that working, I mean.
01:15 * Coke fixes his comment in tclstring.pmc about avoiding a segfault to make chromatic happy.
01:16 chromatic Nah, PGE bothered me there.
01:16 chromatic Although I do remember that comment....
01:16 * Coke hurls http://code.google.com/p/p​artcl/source/detail?r=253 for chromatic
01:17 Infinoid jimmy: have you tested this?  if so, which platform?
01:17 jimmy yes, on windows
01:17 Infinoid oh, good.  I was just going to express my fear of breaking something on win32 because I can't test it :)
01:17 jimmy Inofinoid: none.
01:18 chromatic Coke, if stack scanning didn't work in Parrot reliably, we'd have bigger problems.
01:18 Coke that sounds like a non sequitor to me.
01:19 Coke <- clueless. :|
01:19 chromatic We don't dod_register_pmc every PMC we have that doesn't immediately get anchored somewhere reachable from the root set.
01:19 chromatic We *do* scan the stack for things which look like GCable pointers and try to mark them.
01:24 * Coke puts in a sweep 1 before his verbose tcl diagnostics to see it goes down under 2MegaPmcs.
01:24 masak ok, I managed to fix the two first errors, but it still chokes on (S15, err) = _load_file(argv, size) -- now, ISTR that register names without dollar prefixes were deprecated. is that right?
01:24 chromatic Right.
01:24 masak so, do I just add a dollar sign to the var?
01:25 Coke ayup
01:25 masak thank you.
01:25 bjoern Hi, parrot/compiler.h has a bug that prevents building using Visual Studio 2003, it includes sal.h if _MSC_VER > 1300 but as the comment right above says it's included starting with 2008, so that should probably be 1500 instead.
01:26 Coke bjoern: can you whip up a patch and post it to trac?
01:26 Coke that'll give one of our win32 developers a chance to look at it.
01:27 Coke (and thanks!)
01:28 bjoern If you give me a url that gives me a simple form to do that, I can.
01:28 Coke chromatic: if I am leaking pmcs in partcl, and I'm unregistering everything I register in the PMCs... what else can I look for ?
01:28 Coke trac?
01:28 purl somebody said trac was a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/
01:28 Coke (last one)
01:28 Coke parrot trac?
01:28 purl hmmm... parrot trac is https://trac.parrot.org/parrot/
01:28 masak does it happen that imcc reports faulty line numbers?
01:29 Coke yes.
01:29 masak :/
01:29 Coke yes.
01:29 Coke loooooong standing bug.
01:29 chromatic Coke, the only other option is that you're storing PMCs when you don't want to.
01:29 Coke ala with set_global or something?
01:29 dalek r34729 | chromatic++ | trunk/t/op:
01:29 dalek : [t] Fixed year (and copyright date) in test which fails at the end of a year
01:29 dalek : (reported by Geraud CONTINSOUZAS and Mark Glines).
01:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34729
01:29 chromatic In anything which marks PMCs as live.
01:29 masak I'm getting "error:imcc:The opcode 'new_p_ic' (new<2>) was not found." now. any ideas?
01:30 Coke chromatic: isn't marking pmcs a c thing?
01:30 Infinoid jimmy: no failures here on linux, I'll commit it in my next patch stack
01:30 GeJ chromatic++ thanks
01:30 bjoern Is there, by the way, supposed to be a perl6(.exe) binary? It's not installed by the win32 installer, and running parrot languages/...pbc results in errors (it can't find dependencies), I'm mainly building parrot to solve that...
01:30 Coke masak: http://rt.perl.org/rt3/Tic​ket/Display.html?id=40204
01:30 masak Coke: thanks.
01:30 chromatic Coke, it is.
01:30 Coke it refers to /another/ ticket that had off by ones.
01:31 chromatic bjoern, http://samdelacruz.blogspot.com/2008/12/​want-to-try-perl6-heres-how-to-get.html
01:31 shorten chromatic's url is at http://xrl.us/bea7pb
01:31 chromatic http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=60098
01:31 Coke chromatic: could I trouble you to peek at my pmcs: http://code.google.com/p/partcl/​source/browse/#svn/trunk/src/pmc ?
01:31 shorten Coke's url is at http://xrl.us/bea7pd
01:32 masak no, I'm still stuck. if the line number is one too low, the offending line ought to be '$S0  = ENV["COLUMNS"]'. and that looks allright to me.
01:32 Coke (some of the code in there is cargo culted from the old Perl* pmcs!)
01:32 bjoern thanks chromatic
01:33 jimmy Infinoid: Infinoid++, I have a question.
01:33 Coke hurm. tcldict.pmc could probably stand to pull that TclList decl up a level.
01:34 megamic joined #parrot
01:34 bjoern I have yet to figure out that trac page, https://trac.parrot.org/parrot​/wiki/NewParrotDeveloperGuide says I should mail to "perlbug" by which it means "parrotbug" apparently :(
01:34 Infinoid jimmy: ask it :)
01:34 jimmy wait
01:34 Coke bjoern: we're transitioning.
01:34 Infinoid ah, suspense.
01:34 Coke you can use perlbug; it'll just go to our old system.
01:34 Coke better to use that than lose your patch,though. =-)
01:35 chromatic Coke, I'll skim them, but I'm almost out of hacking time tonight.
01:35 Coke no worries.
01:35 jimmy in that patch, I repalced Parrot_Interp interp with PARROT_INTERP in the docs
01:35 Coke I appreciate whatever time you can spare.
01:36 jimmy It seems that it is awkward
01:36 Infinoid jimmy: what's awkward about it?
01:36 jimmy readability
01:36 purl readability is probably a threat to job security
01:37 * bjoern hits another build error
01:37 Infinoid PARROT_INTERP is in very wide use these days, so it seems appropriate to update the docs accordingly.  if it's not self-explanatory, maybe it deserves a blurb
01:37 chromatic A little CONST_STRING would help TclFloat.
01:37 bjoern apparently it's suddenly using mingw32-make instead of nmake, and tries to use `sh` and then passes c:\perl\bin\perl.exe without properly escaping the \ to sh, so sh cannot find the executable...
01:38 jimmy yeah, I think it should use PARROT_INTERP, but it is marco
01:38 bjoern Configure.PL told me to use mingw32-make too, I was suspecting some unimportant glitch there...
01:38 Infinoid yeah, and Parrot_Interp is a typedef that includes a "*" somewhere.  smoke and mirrors either way
01:38 Coke bjoern: you probably built with strawberry perl
01:38 Coke which comes with its own compiler.
01:39 Coke if you use activestate perl, it'll tell you to use 'nmake'
01:39 bjoern ActivePerl
01:39 purl On the day Perl becomes "Active", Satan will be skating to work. or ActiveState's port of perl plus other so-called "goodies" or it looks like Satan is skating to work. or available from activestate or at http://www.activestate.com or not Free Software or Free Software or (qv 'lwall on activeperl') or http://activestate.com/Products/Do​wnload/Register.plex?id=ActivePerl
01:39 chromatic Coke, you can almost always replace string_from_cstring and string_from_literal with CONST_STRING.
01:39 chromatic Just don't use CONST_STRING when something might modify the string.
01:39 Coke bjoern: hurm. the check for the make exe is probably odd.
01:40 Coke chromatic: do I need to hoist up the declaration outside of the function, or can I just do a straight replace? (and these are dynpmcs, does that matter anymore?)
01:41 chromatic That doesn't matter anymore.
01:41 Coke whee!
01:41 chromatic A straight replace should be fine.
01:41 jimmy Infiniod: I repalced it beacause it is for developers
01:41 chromatic If you ever stringify TclLists, you should see an improvement.
01:42 chromatic Or assign_pmc to a TclList.
01:42 Coke that happens quite frequently.
01:42 Coke fixing...
01:42 purl rumour has it fixing is good, definitely
01:42 Infinoid jimmy: I like it.  I'm also thinking of adding a discussion of the differene of PARROT_INTERP, NULLOK_INTERP and SHIM_INTERP
01:43 bjoern Apparently it picks the first make utility it finds in the path, with mingw32-make preferred over nmake. And of course I do have mingw32-make in my path...
01:43 chromatic Note that this only works when you have a literal C string in the source code.
01:44 chromatic You also have a memory leak in TclString on line 79; use %Ss instead and don't cstringify the STRING.
01:44 chromatic Same file, line 160, same problem.
01:44 chromatic That's all I saw skimming your PMCs.
01:44 Infinoid bjoern: yeah, there is definitely some build tool confusion on win32.  though I do recall some success building with an msvc compiler and mingw's make, at some point in the past
01:45 bjoern `set MAKE=nmake` seems to help
01:46 jimmy Infinoid: aye. there were some notes in docs\dev\c_functions.pod, but does not include NULLOK_INTERP
01:48 Coke chromatic++
01:48 Coke chromatic++
01:49 bjoern trac tells me "TICKET_CREATE privileges are required to perform this operation" even after creating an account and logging in when trying to create a ticket...
01:50 GeJ bjoern: question did you fill your name and email address in the General panel in your preferences?
01:51 Coke trac--
01:51 Coke trac--
01:51 Coke gej's account works. give him the patch and make him open the ticket. =)
01:52 bjoern I could post it to one of the perl.* newsgroups (mailing lists), I'm on some of those anyway
01:53 Coke at this point, I woudl punt and use parrotbug.
01:53 Coke parrotbug?
01:53 purl i think parrotbug is mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/​trunk/docs/submissions.pod or see also "rakudobug" or needs to be converted to trac
01:55 GeJ Coke: it looks like the WebAdmin plugin is at fault. I can track serveral issues like the one kid51 and I encountered.
01:57 Coke GeJ: if can email me a writeup, I'll be happy to forward it to the admins.
01:57 Coke *you
01:57 bjoern (I also get a "Warning: <acct_mgr.web_ui.MessageWrapper object at 0x81...>" on trac pages btw...)
01:59 Coke *cry*
01:59 Coke yah, you've been bitten by the same bug that hit kid51 and gej earlier.
01:59 GeJ bjoern: You DO NOT want to remove your email address from your account Preferences.
01:59 Coke I apologize that giving us a patch has turned into such a pita.
02:00 Coke thank you for your patience.
02:00 Coke (crap, I broke "make test" in parrot, apparently)
02:00 Coke er! partcl, I mean.
02:00 megamic left #parrot
02:01 bjoern Well if one removes the email address there I suppose you'd have trouble recovering your password later...
02:01 bjoern so parrot built fine now, and perl6.pbc just finished aswell
02:01 GeJ bjoern: could you check if you received an email from trac asking you to verify your email address?
02:02 bjoern I did, but given that the email was optional I haven't bothered ... well let's try
02:02 bjoern (not that compiling and checking mails works well together)
02:03 GeJ bjoern: you and I made the same mistake. Fortunately I may be able to help you not repeat the mistake I made. :)
02:03 bjoern seems verifying helped
02:04 GeJ Coke: for future reference http://trac-hacks.org/ticket/4125
02:04 bjoern I much prefer just mailing bug-<dist>@rt.cpan.org ...
02:05 GeJ two suggested workarounds : disabling email verification in trac; make the user answer the email they received about an optional form field.
02:06 MariachiElf joined #parrot
02:06 Coke bjoern: feel free to use parrotbug.
02:06 Coke parrotbug?
02:06 purl parrotbug is mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/​trunk/docs/submissions.pod or see also "rakudobug" or needs to be converted to trac
02:06 Coke (use the mailto there.)
02:06 GeJ Ok, now what about stop slacking and finish that darn test file conversion, huh?
02:08 bjoern So I also built a perl6.exe, that seems to work fine, I get a prompt and `say 'Hello World';` works as it should
02:12 chromatic bjoern, congratulations!
02:12 chromatic Coke, any luck with CONST_STRING?
02:14 bjoern There goes the patch https://trac.parrot.org/parrot/ticket/113
02:15 Coke chromatic: I just applied it; however, I noticed that I borked my own make test earlier today, so I haven't timed it.
02:15 Coke testing it out now.
02:16 dalek r34730 | infinoid++ | trunk (22 files):
02:16 dalek : Apply patch from jimmy++ in TT #111.
02:16 dalek : * Convert lots of Parrot_Interp arguments to PARROT_INTERP and NULLOK_INTERP.
02:16 dalek : * Reformat some comments, fix some typos.
02:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34730
02:16 dalek r34731 | infinoid++ | trunk (2 files):
02:16 dalek : [core] More NULLOK function arguments.
02:16 dalek : * The index arguments to parrot_pass_args() are only passed to other NULLOK
02:16 dalek :   functions; they can be marked NULLOK.
02:16 dalek : * set_context_sig_returns() checks ret_x before dereferencing, it is NULLOK.
02:16 dalek : (Found by the headerizer NONNULL assert() patch, see Trac #105.)
02:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34731
02:16 dalek r34732 | infinoid++ | trunk (5 files):
02:16 dalek : [core] Add argument assertions to another 145 functions.
02:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34732
02:16 Infinoid 765 functions to go.  but now, time for a movie
02:18 TiMBuS i want to do the equivalent of '$P0 = get_global/find_sub "subname"; .tailcall $P0' in a pmc, are there any examples i can look at? i get the feeling its not going to be simple
02:19 Coke I don't think there's an actual tailcall in C.
02:20 Coke would simply being able to invoke something work?
02:21 Coke I have an example of invoking a method on a PMC using PCC from C.
02:22 jimmy Infinoid++++
02:24 masak I have a script that can make Rakudo segfault consistently. what should I do with it?
02:24 TiMBuS Coke, that should do
02:25 chromatic masak, strip it to its smallest part (PIR if possible) and file a bug.
02:25 masak chromatic: I'm on it. thanks.
02:27 bjoern I also filed an item for the make issue
02:30 bjoern all in all this was easier than making the latest pugs work on win32 (which i gave up after the third fix/workaround ...)
02:31 Coke TiMBuS: http://code.google.com/p/partcl/source​/browse/trunk/src/pmc/tcllist.pmc#122
02:31 shorten Coke's url is at http://xrl.us/bea7ts
02:31 Coke chromatic: shaves about 9% off append.test
02:31 Coke chromatic++
02:33 chromatic Not awful.
02:34 Coke every little bit helps, thanks!
02:34 Coke ->
02:36 * bjoern sees his last perl5bug http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=32080 is still unfixed ...
02:42 jimmy Infinoid: ping
03:01 Andy joined #parrot
03:10 Infinoid jimmy: pong
03:15 GeJ Gah, now I need to give names to 78 tests.
03:17 jimmy Infinoid: no suspenses now. :)
03:19 Infinoid heh.  what's up?
03:25 jimmy Infinoid: I just want how #define ASSERT_ARGS(a) ASSERT_ARGS_ ## a works, and I found some marcos like ASSERT_ARGS_Parrot_assert seems to not be used.
03:26 Infinoid they are used.  in include/parrot/exceptions.h, there is the following define:
03:26 jimmy I don't know where is it used.
03:26 Infinoid #define ASSERT_ARGS(a) ASSERT_ARGS_ ## a
03:26 Andy Infinoid: I'm thinking that the ASSERT_ARGS_Func_name needs to be in the .c file, not the .h file.
03:26 Infinoid jimmy: so ASSERT_ARGS(PMC_is_null) expands to ASSERT_ARGS_PMC_is_null
03:27 Infinoid Andy: fine with me.  I was optimising for minimal changes to headerizer
03:27 jimmy yeah, but I can't find ASSERT_ARGS(Parrot_assert)
03:27 Andy Nobody outside of the .c file needs to see them.
03:28 Andy jimmy: ack Parrot_assert
03:28 Infinoid jimmy: I haven't done that one yet.  there are still 765 functions I haven't tagged yet
03:28 Infinoid I'm about 60% done with that part
03:28 jimmy Andy: ASSERT_ARGS_Func_name is in wide use.
03:29 Infinoid jimmy: that's because those are autogenerated.  but putting the ASSERT_ARGS() calls into the actual functions is time-consuming
03:29 Andy Infinoid: Give me a file to work on.
03:29 jimmy Andy: so there are in .h files.
03:29 Infinoid jimmy: "prove t/codingstd/c_arg_assert.t" will give you a list of the functions I haven't done yet
03:29 jimmy Infinoid: are they generated by make?
03:30 Infinoid jimmy: "make headerizer"
03:30 jimmy or by perl?
03:30 Infinoid headerizer is a perl script
03:30 jimmy Infinoid: ok
03:30 Infinoid (written by Andy++)
03:30 Andy :-) Thanks
03:31 bjoern left #parrot
03:31 jimmy Andy++ && Infinoid++, these macros is in wide use and it is should be in .h files, not .c files, I think
03:32 jimmy s/is/are
03:32 Infinoid jimmy: actually, I agree with Andy about this.  the ASSERT_ARGS_ macros are only used by the .c files that define the actual function
03:32 Andy jimmy: That's what we just said
03:32 Infinoid so I'd prefer them to be in .c, not .h
03:32 Infinoid the static section is perfect for this, they don't need to be global
03:32 jimmy ah, aye.
03:32 Andy sorry, backwards
03:33 Andy They should be in the .c file
03:33 Infinoid now, if we moved the checking to the caller (through the use of wrapper functions), then I'd agree
03:34 jimmy I forgot 'it is global'
03:34 Infinoid I've been thinking inline wrappers might be a way to sidestep the whole attribute_nonnull issue.  but it causes several bigger issues of its own
03:34 Infinoid (varargs and call-by-pointer for example)
03:34 jimmy what is the issues?
03:34 purl Whether mankind has free will is an /issue/.  If something doesn't work, that's a /problem/.
03:35 jimmy s/is/are/ again :(
03:36 Infinoid hmm.
03:37 Infinoid jimmy: I've been thinking about a way to check function parameters to ensure non-null pointer semantics.  ...without having to touch 1800 functions by hand
03:37 Infinoid so lets say you declare an inline static function in the header file, which does the checks and then calls the real function
03:37 Infinoid and lets say you add a #define to add a "_" prefix to the real function, so you can tell them apart
03:38 Infinoid suddenly, you can't take a pointer to the function any more, because inline functions don't really exist
03:38 Infinoid and parrot uses a lot of function pointers
03:38 jimmy yes
03:38 Infinoid and you can't use a pointer to the real function in that case, because the real function doesn't have the pointer checking any more
03:38 Infinoid so that won't work
03:39 Infinoid you could use a preprocessor macro, but you can't wrap Parrot_io_printf() with that, because varargs macros aren't C89
03:39 Infinoid and you still have the function pointer issue
03:39 jimmy like #define(x...)?
03:40 Infinoid #define pmc_new(a,b) return assert(a), pmc_new(a,b)
03:40 Infinoid uh, s/return //
03:41 Infinoid all of this is a problem because attribute_nonnull tells the compiler to assume the pointer will never be null, and optimize out all of the checks for nullness
03:41 jimmy ah, it is not C89?
03:41 Infinoid well, that will work
03:41 Infinoid but varargs isn't C89
03:41 Infinoid so I can't wrap the printf functions that way
03:42 Infinoid and anyway, you still can't take a pointer to that
03:43 Infinoid so there's no choice but to touch every C function
03:43 Infinoid ...and keep maintaining these things as we add new functions and rename things
03:43 Infinoid (eew.)
03:44 jimmy Infinoid++
03:44 jimmy varargs is just like #define(x...)?
03:44 jimmy I found it in src
03:44 Infinoid yeah
03:44 Infinoid http://docs.freebsd.org/info/g​cc/gcc.info.Macro_Varargs.html
03:45 Infinoid oh... another reason why I was really hoping the wrapper idea would work is: in some cases, there's a lot of work being done in the first lines of a function, where the local variables are still being declared.  I have to put the assert line below all of that stuff
03:45 Andy I think someone has broken the .y
03:45 Infinoid but by doing so, it can call another function with the parameters before they've been checked
03:45 jimmy Infinoid: https://trac.parrot.org/parrot/a​ttachment/ticket/83/patch.patch
03:45 shorten jimmy's url is at http://xrl.us/bea7xy
03:46 Infinoid one good thing I can say about XS; they can add another set of parens to work around C's silly syntax
03:46 jimmy the patch contains varargs
03:46 Infinoid jimmy: yeah, I'm not sure that's as portable as we would like
03:47 Infinoid as far as I know, varargs preprocessor macros are not C89, nor C99, they are a GNU extension
03:47 Infinoid though I haven't tried it in anything other than gcc, so it might be more widespread than I think.
03:48 jimmy it is C99
03:48 Infinoid good to know.
03:48 jimmy we called it 'Variadic macros'
03:49 Infinoid PDD07 locks this project to C89, so we still shouldn't use it
03:49 Andy Infinoid: Give me a .c file to mark up and I'll work in it.
03:49 jimmy yeah, that is the problem of TT#83
03:50 Infinoid Andy: okay.  I've just been picking a function at the bottom of the list of failures, acking for it and fixing up that file
03:50 Infinoid so the next one according to that algorithm is src/packfile.c
03:50 Infinoid but beware, it's really boring work. :)
03:50 jimmy we discuss it in TT#83
03:50 Andy what failures
03:50 purl failures are happening in an 'onload' sub?  That's... odd.
03:50 Infinoid Andy: t/codingstd/c_arg_assert.t
03:50 Andy huh, ok
03:51 Infinoid I added that along with the headerizer patch, to track my progress.
03:51 Andy Some of thse assertions are gonna be kinda bummery
03:51 Infinoid yeah, that's the fun part
03:51 Infinoid I've been adding _NULLOK to anything that breaks during build and test.  got around 10 functions so far, been going pretty smoothly.
03:52 jimmy make headerizer does not work for me
03:52 Infinoid jimmy: it needs a fully configured and built parrot first
03:52 jimmy ah
03:52 Infinoid and it might not do anything, anyway.  I think all our prototypes are already up to date
03:52 jimmy ok
03:53 Andy Infinoid: I think that's a bad idea.
03:53 jimmy Infinoid: is there any recommendation about TT#83
03:53 Andy the _NULL_OK
03:53 Andy The prob'ly might be in the calilng, not the func
03:54 Infinoid well, subject to reviewing the function to make sure it can handle it, of course
03:54 Andy ok
03:54 Infinoid the fact that the build process or test suite was already doing it is a pretty good sign the function can handle it.
03:54 Andy What's something you added _NULLOK to?
03:55 Infinoid parrot_pass_args(), set_context_sig_returns(), insert_tail_call()
03:56 Infinoid full list is in the recent svn log, grep for "NONNULL"
03:56 Infinoid I've kept those commits separate for easy review.
03:58 Andy OK.
03:58 Andy Could well be that I was overaggressive flagging 'em in the first place.
03:58 Andy I &heart; teamwork.
03:58 tetragon joined #parrot
03:59 Infinoid :)  or maybe for newer functions they were just added by rote and noone noticed until now
03:59 Andy could be
04:00 Andy The stinkything is
04:00 dalek r34733 | petdance++ | trunk (2 files):
04:00 dalek : throwing in some ASSERT_ARGS
04:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34733
04:01 Andy look at sub_pragma
04:02 elmex_ joined #parrot
04:02 Infinoid ok, I'm looking
04:02 Andy well, hmm
04:02 Andy are we living by C90?
04:03 Infinoid C89 is what PDD07 says
04:03 Andy ok, so how would you add the assert to sub_pragma?
04:03 Infinoid you're looking at the declaration of the variable "pragmas", I'm guessing
04:04 Infinoid that's what I was complaining about earlier, about variable declaration lines containing too much logic
04:04 Andy and todo
04:04 Andy but that's a big part of consting.
04:04 Infinoid todo is fine, no pointer dereferencing there
04:04 Infinoid I'd grit my teeth and put it immediately after the pragmas declaration
04:04 Andy but then what good is the assertion after int pragmas?
04:05 Andy because you're dereferencing sub_pmc
04:05 Infinoid it catches a null interp, at least
04:05 Infinoid yeah, it sucks.  but I'm doing things one step at a time
04:05 Andy ok
04:05 Infinoid (see why I wanted wrapper functions?)
04:05 Andy and throw a const in front of "int pragmas"
04:06 Andy because pragmas never chagnes
04:06 Infinoid does that help?
04:06 Infinoid ah, just killing two birds with one stone
04:06 Infinoid cool.
04:06 Andy yeah
04:06 Andy ok, if you're at the bottom of the list
04:06 Andy I'll pick stuff from the middle
04:07 Infinoid I'm done for the day, I'll resume tomorrow
04:07 Infinoid do whatever you like.
04:07 Andy ok
04:07 Andy just commit
04:07 Andy whatever ya got
04:07 Infinoid I did that an hour ago... halfway into a movie now :)
04:07 Andy ok
04:08 jimmy Infinoid: I still want to know whether the idea what you discussed can help to rewrite the function in TT#83.
04:09 Infinoid jimmy: I have to admit, I don't have the foggiest idea what that patch is actually trying to do.
04:10 jimmy Infinoid, not about the patch
04:10 Infinoid rewrite which function, then?  I was looking at the rewrite of STM_TRACE in the patch
04:11 jimmy about STM_TRACE_SAFE(x...) marco in src/stm/backend.c
04:11 jimmy not in the patch
04:11 * Infinoid backlogs for a moment
04:12 Infinoid 10:47 <@Coke> of course, the right fix there is to delete src/stm* =-)
04:13 jimmy me think that was a joke
04:13 * jimmy think that was a joke
04:13 Infinoid yeah :)
04:14 Infinoid currently it's not a macro, it's a static function, so there's no problem
04:14 Infinoid varargs functions have been around for a long time, as ugly as they are.  varargs macros are new
04:15 Infinoid the stuff within the "#if STM_DEBUG" isn't portable, but it isn't enabled
04:15 jimmy it is a macro
04:15 jimmy line 38
04:15 Infinoid its a macro if you define STM_DEBUG to 1, but its defined to 0
04:16 Infinoid so the part after the #else is what's actually being compiled
04:16 jimmy yes ,but when it is 1
04:17 Infinoid it's ugly debugging leftovers, yes.  but portable
04:17 jimmy default is 0
04:17 Infinoid we'd only change it to 1 if we had a bug in STM we needed to track down... and then we wouldn't check that in
04:17 jimmy hmm, yup
04:18 Infinoid anyway, I think that's the idea.  (I'm not even sure what stm is.)
04:19 jimmy when we use c89 compiler debug stm, it is a problem
04:19 Infinoid true.  so don't do that? :)
04:20 jimmy it is not very important.
04:24 gmansi joined #parrot
04:29 jimmy thanks infinoid. :)
04:31 Andy oh crud, found a bug in headerizer
04:47 kid51 joined #parrot
04:52 dalek r34734 | petdance++ | trunk/tools/build:
04:52 dalek : There is no _NOTNULL modifiers on ARGMOD or ARGOUT and my more
04:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34734
05:01 dalek r34735 | petdance++ | trunk (18 files):
05:01 dalek : Fixed some headerizer problems with FUNC_MODIFIES
05:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34735
05:31 japhb joined #parrot
05:45 Andy joined #parrot
06:43 iblechbot joined #parrot
06:58 Theory joined #parrot
08:33 pdcawley joined #parrot
09:12 japhb joined #parrot
09:15 flh joined #parrot
09:26 MariachiElf joined #parrot
09:53 nopaste "YzqrBIEToZeHSnCbB" at 213.232.7.203 pasted "wNDNvwetYJTEUTcY" (1 line) at http://nopaste.snit.ch/15145
10:44 Zaba joined #parrot
10:48 iblechbot joined #parrot
11:27 alvar joined #parrot
11:42 barney joined #parrot
12:36 dalek r34736 | bernhard++ | trunk/src:
12:36 dalek : [codingstd] 4 space indention, 2 more spaces on continuation lines
12:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34736
13:31 dalek r34737 | bernhard++ | trunk/languages/pipp/config/makefiles:
13:31 dalek : [Pipp] Simplify the Makefile, now that the variants are gone.
13:31 dalek : Normalize variable name: e.g.  HASHDIR became HASH_DIR
13:31 dalek : Clean up  pipp_test_run.tar.gz left over from 'make smoke'
13:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34737
13:39 Zaba joined #parrot
13:40 Whiteknight joined #parrot
13:49 alvar joined #parrot
13:53 galf joined #parrot
14:00 dalek r34738 | bernhard++ | trunk/languages/pipp/config/makefiles:
14:00 dalek : [Pipp] Replace HASH_DIR with PMC_DIR
14:00 dalek : Replace PIPP_DIR with BUILD_DIR/languages/pipp
14:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34738
14:04 kj joined #parrot
14:08 dalek r34739 | rblasch++ | trunk/include/parrot:
14:08 dalek : Applied patch #113 with modifications.  Courtesy bjoern.
14:08 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34739
14:13 jimmy joined #parrot
14:23 rurban joined #parrot
14:25 Zaba joined #parrot
14:36 dalek r34740 | rurban++ | branches/pdd30install_stage3:
14:36 dalek : [cage] delete the generated MANIFEST.generated file from svn
14:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34740
14:36 dalek r34741 | bernhard++ | trunk/languages/pipp (2 files):
14:36 dalek : [Pipp] In closure definition, the bound params come after the regular params.
14:36 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34741
14:37 barney rurban++
14:38 rurban barney: And the next commit generates MANIFEST.generated completely without .in file. Finally
14:39 rurban How to I read my stored purl messages?
14:40 Infinoid messages?
14:40 purl To access purl's messages, msg me with the word "messages".
14:44 dalek r34742 | bernhard++ | trunk/languages/pipp/t/php:
14:44 dalek : [Pipp] Add working Perl 6 equivalent of broken test.
14:44 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34742
14:44 rurban Infinoid: Got a message from kid51. Thanks
14:45 Infinoid ok.  don't forget "messages erase", or purl will keep bugging you about the same message
14:52 UltraDM joined #parrot
14:55 kid51 joined #parrot
14:56 Infinoid I'm getting an intermittant failure in t/pmc/freeze.t test 25
14:57 kid51 Can you paste?  What 'make' options?  (I have never gotten a failure in that file.)
15:01 nopaste "Infinoid" at 75.5.247.153 pasted "intermittant failure in t/pmc/freeze_25.pir" (47 lines) at http://nopaste.snit.ch/15146
15:01 Infinoid no configure options, no weird make options, just running under normal "make test", or direct from the command line.
15:04 nopaste "Infinoid" at 75.5.247.153 pasted "good and bad traces" (141 lines) at http://nopaste.snit.ch/15147
15:04 Andy joined #parrot
15:05 Infinoid sometimes the failure emits "3 6" before dying, sometimes it doesn't emit anything in the second line at all.
15:09 kid51 What's the proper way to start up gdb for something like this?
15:10 * kid51 is gdb noob
15:11 Infinoid gdb parrot
15:11 Infinoid run t/pmc/freeze_25.pir
15:11 Infinoid repeat until crash.
15:12 rurban src/ops/set.ops:451 is the problem
15:12 rurban the first arg is Null
15:13 kid51 Infinoid:  Verified!  Failed on 8th iteration.
15:14 nopaste "kid51" at 70.107.15.55 pasted "failure on 8th interation of gdb run t/pmc/freeze_25.pir" (12 lines) at http://nopaste.snit.ch/15148
15:15 Infinoid ok, so whatever it is, it isn't specific to my thinkpad
15:15 Infinoid thanks
15:15 kid51 9th iteration was normal
15:15 rurban kid51: do you also have 64bit?
15:16 kid51 No.
15:16 Infinoid kid51: to get that trace I pasted, I did a "break Parrot_ex_throw_from_c_args" before the "run", and then did a "bt" after the crash
15:17 Infinoid but I bet it'll look more or less like mine.
15:17 Infinoid looking at the pir trace, I think Hash is broken
15:17 barney For me it was the 6th iteration, under Linux
15:18 Infinoid on my linux/x86-64 box, running it on the command line, it seems to be time dependent.  does Hash use a random key based on system srand(time())?
15:18 Infinoid I can run it at about 5 times per second by spamming up+enter, and the failures occur in clumps that last about a second
15:21 * Infinoid tries a bisect
15:22 rurban With -g3: Can you set a conditional breakpoint at Parrot_set_i_p_kc in core_ops.c with IREG(1) = 0x0 ?
15:22 kid51 What does this gdb message mean?  Make breakpoint pending on future shared library load? (y or [n])
15:23 Infinoid its because it doesn't know about the function yet, because it hasn't seen libparrot.so yet
15:24 kid51 So should I say y or n?
15:24 Infinoid yeah
15:24 rurban y
15:24 Infinoid hitting "y" usually works.  or you can just run parrot to completion once before adding the break
15:24 kid51 gdb then prints:  Breakpoint 1 (Parrot_ex_throw_from_c_args) pending.   That's okay?
15:26 Infinoid yeah
15:27 nopaste "kid51" at 70.107.15.55 pasted "more gdb output on freeze_25.pir" (40 lines) at http://nopaste.snit.ch/15149
15:29 dalek r34743 | rurban++ | branches/pdd30install_stage3 (5 files):
15:29 dalek : 40817-MANIFEST-generated.patch part2 and resolved.
15:29 dalek :   MANIFEST.generated and MANIFEST.generated.in are now deleted,
15:29 dalek :   and all necessary generated files which need to be installed
15:29 dalek :   are now added MANIFEST.generated.
15:29 dalek :   Special handlers for parrot.pc and tools/build/dynpmc.pl
15:29 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34743
15:29 rurban Then do two times up to get up to Parrot_set_i_p_kc and inspect IREG(1)
15:29 rurban IREG(1) only works if you compiled with -g3
15:29 Infinoid gdb doesn't do macros, so IREG(1) doesn't work
15:29 rurban -g3 does macroexpansion
15:30 Infinoid oh, cool.
15:30 rurban only on DWARF though, not on cygwin :(
15:30 dalek r34744 | bernhard++ | trunk/languages/pipp/src/pct:
15:30 dalek : [Pipp] Remove unnedded attributes from parameters
15:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34744
15:30 Theory joined #parrot
15:30 Infinoid well, I'm on ELF
15:30 rurban otherwise you have to cc -E core_ops and check the macro expansion by yourself
15:31 rurban On linux and bsd gcc's you usually already have DWARF, not stabs anymore
15:32 rurban But the real problem is who put the wrong Null integer there?
15:32 rurban you don#t see that in the backtrace
15:32 Infinoid yeah, I think the parrot trace is more interesting than the gdb backtrace
15:33 Infinoid it looks like Hash.get_string_keyed_int (or whatever) is returning the wrong data
15:39 Infinoid perl Configure.pl --ccflags="-g3" doesn't build for me
15:39 kid51 DWARF?
15:39 purl i heard DWARF was very popular
15:40 kid51 purl, DWARF is "a debugging file format used by many compilers and debuggers to support source level debugging" at http://dwarfstd.org/.
15:40 purl ...but dwarf is very popular...
15:40 rurban ccflags='-ggdb3'
15:40 Infinoid ah
15:40 kid51 purl, forget DWARF
15:40 purl kid51: I forgot dwarf
15:40 kid51 purl, DWARF is "a debugging file format used by many compilers and debuggers to support source level debugging" at http://dwarfstd.org/.
15:40 purl OK, kid51.
15:42 rurban purl, DWARF is the debugging file format used by many compilers and debuggers to support source level debugging. Superior and faster to the old stabs format. http://dwarfstd.org/.
15:42 purl ...but dwarf is "a debugging file format used by many compilers and debuggers to support source level debugging" at http://dwarfstd.org/....
15:42 rurban purl, forget DWARF
15:42 purl rurban: I forgot dwarf
15:42 rurban purl, DWARF is the debugging file format used by many compilers and debuggers to support source level debugging. Superior and faster to the old stabs format. http://dwarfstd.org/.
15:42 purl OK, rurban.
15:46 Infinoid ccflags="-ggdb3" doesn't build for me either
15:46 Infinoid some issues with exceptions.c and an error in my system stdio.h
15:47 flh joined #parrot
15:48 rurban Bad. But we don't really need it that much on parrot. Just perl5 needs it heavily, because we have a lot more macros there.
15:50 Infinoid oh, ccflags="-ggdb3 -D_GNU_SOURCE" works
15:53 Infinoid but gdb still doesn't let me inspect macros
15:53 Infinoid 451         $1 = VTABLE_get_integer_keyed(interp, $2, $3);
15:53 Infinoid (gdb) print IREG(1)
15:53 Infinoid No symbol "IREG" in current context.
15:58 lathos It never did. You need a gdb script file that contains all the macros you need.
16:00 lathos Oh, hrm. Version 3.1 and later of GCC, the GNU C compiler, provides macro information if you specify the options `-gdwarf-2' and `-g3'; the former option requests debugging information in the Dwarf 2 format, and the latter requests "extra information"
16:01 Infinoid I built with --ggdb3
16:03 rurban In some versions you need -ggdb3 and in some '-gdwarf-2 -g3'. For my gcc-3.4.4 -g3 just works.
16:05 lathos I recommend trying whatever it is that the manual suggests.
16:06 kj joined #parrot
16:06 kj Happy 2009 everybody!
16:06 lathos This remains to be seen.
16:06 pmichaud It's been happy for me so far.  :-)
16:07 rurban parrot-1.0 !!!
16:07 lathos pmichaud: Let's stop now then. :)
16:07 Andy joined #parrot
16:07 Infinoid no turning back now
16:07 Infinoid (despite Andy's attempt)
16:07 Andy joined #parrot
16:12 dalek r34745 | bernhard++ | trunk/languages/pipp/src/pct:
16:12 dalek : [Pipp] Try to make closures_7.php pass, but do not succeed.
16:12 dalek : Maybe the readonly proberty needs to be set for $indention.
16:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34745
16:13 * kid51 cannot locate place in gcc manual that would advise on debugging flags
16:14 lathos http://sunsite.ualberta.ca/Documentati​on/Gnu/gcc-3.0.2/html_node/gcc_12.html
16:14 shorten lathos's url is at http://xrl.us/bea8v9
16:15 lathos http://sources.redhat.com/gdb/cur​rent/onlinedocs/gdb_5.html#SEC19 also worth a look
16:15 shorten lathos's url is at http://xrl.us/bea8wd
16:16 kid51 lathos, thx
16:16 kid51 afk
16:25 mberends joined #parrot
16:30 dalek r34746 | kjs++ | trunk (7 files):
16:30 dalek : [pirc] refactoring of functions. + update MANIFEST.
16:30 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34746
16:47 Brian joined #parrot
16:48 Brian left #parrot
16:50 dalek r34747 | rurban++ | branches/pdd30install_stage3/tools/build:
16:50 dalek : [cage] revert previous r34746. No need to track headerized files
16:50 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34747
16:55 flh joined #parrot
16:59 dalek r34748 | kjs++ | trunk/compilers/pirc/new (6 files):
16:59 dalek : [pirc] create a Parrot earlier in the startup process. Pass it as an extra parameter.
16:59 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34748
17:01 dalek r34749 | pmichaud++ | branches/rvar/compilers/pct/src (3 files):
17:01 dalek : [pct]:  Move subid generation to PAST::Block nodes.
17:01 dalek : * POST::Sub nodes will still generate subid as needed, but the
17:02 dalek :   primary driver is now PAST::Block.
17:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34749
17:05 dalek r34750 | kjs++ | trunk/compilers/pirc/new (6 files):
17:05 dalek : [pirc] pass a Parrot to the heredoc preprocessor.
17:05 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34750
17:10 kid51 Is this supposed to be an okay to build Parrot with debugging:  perl Configure.pl --ccflags="-ggdb"
17:10 kid51 Or this:  perl Configure.pl --ccflags="-g3"
17:10 dalek r34751 | kjs++ | trunk/compilers/pirc/new (2 files):
17:10 dalek : [pirc] use Parrot's API to find included files.
17:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34751
17:11 kid51 (This on Linux/x86 with gcc 4.1.2.
17:12 kid51 I ask because when I do so I get this build error:
17:12 nopaste "kid51" at 70.107.15.55 pasted "build errors with 'perl Configure.pl -ccflags="-ggdb"'" (12 lines) at http://nopaste.snit.ch/15150
17:20 Infinoid kid51: I had the same problem.  try --ccflags="-ggdb -D_GNU_SOURCE"
17:22 kid51 Trying; will report outcome in 20+minutes.
17:22 kid51 afk
17:24 Infinoid ok.  I'm still bisecting that freeze_25.pir failure; I should have an answer soon.  it's definitely something that changed in the last 5 weeks
17:29 petdance joined #parrot
17:35 nopaste "kid51" at 70.107.15.55 pasted "$ make realclean;svn up;perl C" (27 lines) at http://nopaste.snit.ch/15151
17:35 nopaste "kid51" at 70.107.15.55 pasted "output with --ccflags="-ggdb -D_GNU_SOURCE"" (27 lines) at http://nopaste.snit.ch/15152
17:36 Infinoid kid51: t/pmc/freeze_25.pir
17:37 Infinoid kid51: t/pmc/freeze_25.pir doesn't exist yet because t/pmc/freeze_25.t was never run
17:37 Infinoid err, I mean t/pmc/freeze.t.
17:52 * Infinoid begins to strongly suspect r34127
17:53 Infinoid cotto: ping
17:57 nopaste "kid51" at 70.107.15.55 pasted "some output of freeze_25.pir when Parrot built with --ccflags="-ggdb -D_GNU_SOURCE"" (16 lines) at http://nopaste.snit.ch/15153
18:01 Infinoid ok, bisect done, bug was introduced in r34127
18:04 kid51 And the bug there was ... (am looking at the revision but don't understand this stuff)
18:04 Infinoid the hash seed determines the distribution of data within the buckets.  but my first guess is that the seed isn't saved/restored by freeze/thaw
18:05 Infinoid I don't know why, but it's somehow dependent on Parrot_intval_time()
18:06 * Infinoid starts adding debugging statements to prove/disprove the above guess
18:06 kid51 Perhaps this is a good point at which to write up a TT summarizing what you've found out so far.
18:07 Infinoid good idea.
18:07 purl Infinoid: Good Idea: Going alpine skiing in the winter. Bad Idea: Going alpine skiing in the summer.
18:10 dalek r34752 | pmichaud++ | trunk/languages/perl6/docs:
18:10 dalek : [rakudo]: spectest-progress.csv update: 264 files, 5911 passing, 0 failing
18:10 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34752
18:15 rurban joined #parrot
18:16 dalek r34753 | kjs++ | trunk/compilers/pirc/new (5 files):
18:16 dalek : [pirc] fix :immediate (it seems so...). Do some trickery with sub flags.
18:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34753
18:20 PerlJam Has something changed recently with the parrot build process?  Normally, it takes a little over 3 minutes for a reconfigure + make perl6.  Today it has taken almost 7 minutes.
18:21 Infinoid I fussed a bunch with headerizer
18:21 Infinoid if you're using ccache, those changes probably invalidated a lot of your cache
18:21 Infinoid (but that should happen only once)
18:33 * pmichaud times it on his machine.
18:34 tewk pmichaud: did you see the passing todos in rakudo, I think they were the result of the first class registry fix.
18:35 pmichaud tewk: hadn't noticed those yet, no.  But I wouldn't think that a class registry change would cause Rakudo tests to start passing -- rakudo doesn't use the class registry.
18:35 tewk Maybe it was something else then.
18:36 pmichaud the 4 passing todos that are there now are in subst.t, and they're "faux passes" -- they pass but not because the code is actually doing the right thing.
18:36 tewk ah ok
18:36 pmichaud (unless there are more than 4 passing todo's since midnight CST)
18:36 tewk nope,
18:37 tewk so I've been thinking about class registry round 2
18:37 dalek r34754 | pmichaud++ | branches/rvar/languages/perl6 (4 files):
18:37 dalek : [rakudo]:  Refactor of basic class creation and inheritance.
18:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34754
18:38 tewk If you want a core PMC, you should do get_root_namespace ['parror
18:39 tewk t'], 'ResizablePMCArray'
18:39 tewk new $P0
18:39 pmichaud I think I've convinced myself that we're going to need a key syntax that allows us to include the hll root name.
18:39 tewk s/get_root_namespace/get_root_global'
18:39 pmichaud otherwise we can't do :multi(...)
18:40 pmichaud no, get_root_namespace is right
18:40 tewk new_root ['parrot' ; 'RPA' ]
18:40 pmichaud get_root_namespace ['parrot';'ResizablePMCArray']
18:40 pmichaud the new_root syntax doesn't help us with multi
18:41 pmichaud .sub 'foo'  :multi(['Integer'])
18:42 tewk :multi_root :)
18:42 pmichaud .sub 'foo'  :multi(['parrot';'Integer'], ['perl6','OtherType'])
18:44 tewk verbose, but probably necessary.
18:46 tewk so we should add a deprecation notice that multis need to be fully qualified names
18:51 tewk pmichaud: besides the multi case do you like new_root, subclass_root, etc?
18:52 pmichaud no.
18:52 pmichaud wait.
18:52 pmichaud (sorry, UPS just crashed)
18:52 pmichaud (so I'm recovering from that.)
18:52 pmichaud I don't want :multi to always be fully qualified names
18:53 pmichaud :multi_root can work to indicate "all names here are relative to global root"
18:54 pmichaud but since this keeps coming up, I think we probably do want a way to allow a key to specify "from the root"
18:54 pmichaud allison had suggested  ['*parrot';'Integer'] -- i.e., with the leading asterisk.
18:55 pmichaud That cuts out the possibility of leading asterisks in namespace names specified by key.  We can probably live with that.
18:55 pmichaud Another possibility would be to use an empty namespace name in the key:
18:55 pmichaud ['';'parrot';'Integer']
18:55 tewk I like '';
18:55 pmichaud I do too.
18:56 pmichaud If there's a HLL that really needs an empty first namespace component, it can use   ['';'';....]
18:56 tewk if you want an empty namespace in your hll ['';'hll';'']
18:56 pmichaud yes.
18:57 tewk or we could do [ROOT; 'adfa'; 'adfa'], [HLL; 'adfa'; 'adf']
18:58 tewk and let ['adfadf'; 'adfa'] be relative to the current namespace.
18:59 pmichaud that seems workable also.
18:59 tewk or [REL; 'adfa'; 'adfa'] and let ['adfa'; 'adff'] be from HLL
18:59 tewk let the common case be short, let the other cases be obvious.
19:00 pmichaud I'd prefer that (except for get_global)  all of the short cases be relative to the current hll
19:00 pmichaud it's pretty rare that we'd need [REL; ...]  since we already know what the current namespace is.
19:00 kid51 Infinoid++ for writeup of TT 116
19:00 dalek r34755 | kjs++ | trunk/compilers/pirc/new (2 files):
19:00 dalek : [pirc] add a new API function for PIRC. Empty stub now.
19:00 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34755
19:03 tewk I think I would add new_hll and new_root opcodes under the covers and let ROOT and HLL be resolved by imcc.
19:03 tewk no that won't work.
19:04 tewk devs will want to build up key strings at runtime as well, I assume.
19:04 pmichaud I have yet to runtime build a key.
19:04 pmichaud Normally "build up key at runtime" is really "make an array"
19:04 pmichaud I don't even know _how_ to build a key at runtime.  Arrays are the normal way of handling it.
19:05 pmichaud and arrays should definitely be relative to hll_root
19:05 pmichaud (unless the opcode is indicating otherwise)
19:06 tewk how do you build up [ROOT; 'adfa'; 'adfa'] in an array?
19:06 pmichaud you don't.
19:06 tewk ["ROOT"; "'adfa'"; "'adfa'"] ?
19:06 pmichaud you create the array and then use  get_root_namespace
19:06 tewk fair.
19:07 tewk there is some argument to say just do get_root_namespace all the time if you don't want hll relative.
19:07 tewk I guess multis are the problem with that thinking.
19:07 pmichaud ...but you can't say "get_root_namespace" on a :multi
19:07 pmichaud right.
19:08 pmichaud so we either do :multi_root, or we provide a way to say "root relative" in the key syntax.
19:08 pmichaud If the latter, then we no longer need the new_root, subclass_root, etc.  opcode variants.
19:08 pmichaud (because we can do it with the key again)
19:09 tewk either way you don't need them, you just have to use get_root_global with new, subclass, etc if you don't want hll relative.
19:09 Andy joined #parrot
19:09 pmichaud we need _something_ for :multi
19:10 pmichaud there is a problem I've run into with the namespace variants
19:10 tewk I'd say keep the impact small and go with :multi_root
19:10 tewk I'd like to hear more opinions first though.
19:10 pmichaud it turns out that    get_root_namespace ['parrot';'SomeClass']    won't work if we're trying to create the class.
19:11 pmichaud in that case we'd have to do
19:11 pmichaud $P0 = get_root_namespace
19:11 pmichaud $P1 = split ';', 'Parrot;SomeClass'
19:11 pmichaud $P2 = $P0.'make_namespace'($P1)
19:11 pmichaud $P3 = newclass $P2
19:12 pmichaud which starts to make a strong argument for being able to do something like     $P3 = newclass ['';'parrot';'SomeClass']
19:12 dalek r34756 | kjs++ | trunk/compilers/pirc/new (2 files):
19:12 dalek : [pirc] add a synopsis for the LSR allocator. + make 1 more function static.
19:12 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34756
19:13 tewk so get_root_namespace returns null if the namespace doesn't exists?
19:13 pmichaud correct.  That's why we needed the make_root_namespace opcode, which we later decided should be a method.
19:14 tewk as an opcode it could take a key
19:14 dalek r34757 | kjs++ | trunk/compilers/pirc/new:
19:14 dalek : [pirc] fix a typo.
19:15 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34757
19:15 pmichaud I'm looking at the method now -- I don't remember if it needed an array or could take a list of strings.
19:15 pmichaud looks like it requires an array.
19:15 pmichaud (or string, or other single element)
19:16 Tene pmichaud: why does get_root_namespace not work for creating the class?
19:16 pmichaud because the namespace might not exist yet.
19:16 pmichaud (it does work if the namespace already exists.)
19:16 Tene Ah.
19:16 tewk and you need some sort of test for existance op.
19:16 pmichaud no, make_namespace does the right thing in that case
19:17 pmichaud make_namespace returns the existing namespace if it already exists.
19:17 tewk so you either have vivify and exists semantics or get and make semantics
19:17 pmichaud how hard would it be to augment the Key PMC so that it knows "from global root" versus "from hll root"?
19:17 Tene I stalled pretty badly on the HLL stuff when I ran into issues with PGE.
19:18 Tene I'm going to try it again later today.
19:18 pmichaud then IMCC could be trained to understand   [ ROOT ; 'parrot' ; 'Integer' ]
19:18 pmichaud and the relevant portions would know from the Key PMC whether it's from ROOT or not.
19:18 pmichaud (leaving [ 'Foo'; 'Bar' ] to have its existing meanings)
19:26 tewk Its a fair amount of work, but not impossible.
19:32 desertmax joined #parrot
19:36 pmichaud okay.
19:36 pmichaud anyway, my vote at the moment is to use  [ '' ; 'Foo' ; 'Bar' ]   to mean "relative to global root"
19:37 pmichaud that only means changing the namespace lookups.
19:37 pmichaud (in the relevant class functions)
19:37 Zaba joined #parrot
19:38 pmichaud that wouldn't be all that difficult, I don't think.
19:41 dalek r34758 | rurban++ | branches/pdd30install_stage3 (2 files):
19:41 dalek : [cage] Do not append html output to MANIFEST.generated while testing.
19:41 dalek : Check for internal key Parrot::Docs::Group->{TESTING}
19:41 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34758
19:43 PacoLinux joined #parrot
19:46 desertmax Concerning NCI, how can I most easily check if a function returns NULL / if an unmanaged struct "is" NULL?
19:47 Theory joined #parrot
19:52 dalek r34759 | bernhard++ | trunk/languages/pipp/t/php:
19:52 dalek : [Pipp] add a TODO test
19:52 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34759
19:54 rurban_ joined #parrot
19:58 rurban BTW: We have two slurp helpers in lib/Parrot. One in Parrot::Distribution and one in Parrot::Configure::Utils
20:00 rurban No, we have three. Parrot::Test has of course also one
20:01 dalek r34760 | kjs++ | trunk/compilers/pirc/new (5 files):
20:01 dalek : [pirc] copy stuff for :instanceof from imcc. + function doc. + make a .yielding sub a coroutine.
20:01 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34760
20:08 barney Bah. There is also Parrot::BuildUtil
20:15 rurban Uh, I guess Parrot::BuildUtil should be the only one. This requires the least of those four. I'll make a todo ticket.
20:16 dalek r34761 | bernhard++ | trunk/languages/pipp (2 files):
20:16 dalek : [Pipp] Small beautifications in actions.pm.
20:16 dalek : Note that old style constructors are not supported.
20:16 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34761
20:17 dalek r34762 | allison++ | trunk (2 files):
20:17 dalek : [pdd30install] Add new conditioned line syntax #IF, #UNLESS, #ELSIF, and #ELSE.
20:17 dalek : Extracted from pdd30install branch (Reini Urban), plus additional cleanups from
20:17 dalek : code/doc review.
20:17 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34762
20:21 rurban https://trac.parrot.org/parrot/ticket/117 [todo] 4 different perl slurp methods in Parrot::
20:22 rurban allison, great! She started...
20:22 rurban I wanted to say allison++
21:14 gmansi_ joined #parrot
21:18 gmansi_ joined #parrot
21:20 Ron joined #parrot
21:21 chromatic joined #parrot
21:24 gmansi_ joined #parrot
21:27 dalek r34763 | bernhard++ | trunk/languages/pipp (2 files):
21:27 dalek : [Pipp] Call __construct of the Class if available.
21:27 dalek : Add a TODO test case for the global section returning a PippObject.
21:27 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34763
21:31 dalek r34764 | pmichaud++ | branches/rvar/languages/perl6/src (3 files):
21:31 dalek : [rakudo]:  More class and block refactors.
21:31 dalek : * Make sure packages get the correct namespace.
21:31 dalek : * Anonymous packages and classes are given names of '!ANON\d+' for now.
21:31 dalek : * Add simple methods and 'self'.
21:31 dalek : * Use $?BLOCK<signature> instead of $BLOCK.symbol('!signature')
21:31 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34764
21:37 dalek r34765 | bernhard++ | trunk/t/codingstd:
21:37 dalek : [codingstd] set svn props for t/codingstd/c_arg_assert.t
21:37 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34765
21:57 chromatic Coke, ping.
21:58 dalek r34766 | kjs++ | trunk/compilers/pirc/new (4 files):
21:58 dalek : [pirc] stuff for bytecode generation for keys. not tested, but this is a first draft. needs more thought.
21:58 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34766
22:02 dalek r34767 | chromatic++ | trunk/src:
22:02 dalek : [MMD] Removed dod_register_pmc()/dod_unregister_pmc() pair from
22:02 dalek : Parrot_mmd_multi_dispatch_from_c_args(), as stack scanning during mark phase of
22:02 dalek : GC should keep the CallSignature PMC alive.  We can revisit this if it produces
22:02 dalek : strange segfaults, but as we don't register all other stack PMCs, this should
22:02 dalek : be fine.
22:02 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34767
22:11 Infinoid does anyone care much if I change the "item" parameter of list_set(), list_push() and list_assign() to NULLOK?  the core tests seem to expect to be able to do this, and one other function (list_append) already has a NULLOK item argument.
22:12 chromatic Do we even use lists?
22:13 Infinoid presumably if we didn't, I wouldn't have gotten assertion failures from "make test".
22:13 Infinoid t/pmc/intlist.t seems to be a particularly concentrated user of the list functions, judging from its failures.
22:15 Infinoid or was that a joke? :)
22:15 chromatic No; I don't think we use that code.
22:16 chromatic Oh yes, the IntList PMC.
22:16 Zaba joined #parrot
22:17 chromatic Nearly completely unused and unreferenced.
22:17 nopaste "Infinoid" at 75.5.247.153 pasted "full list of NULLness assertion-caused failures." (39 lines) at http://nopaste.snit.ch/15154
22:17 Theory joined #parrot
22:17 Andy joined #parrot
22:18 Infinoid is the code obsolete?  or just replaced by the various array PMCs generally?
22:18 chromatic I wouldn't say obsolete, just unused.
22:18 gmansi_ joined #parrot
22:19 chromatic In theory, it's a sparse array of integers.
22:19 dalek r34768 | kjs++ | trunk/compilers/pirc/new (2 files):
22:19 dalek : [pirc] small bits for key bytecode stuff. Not too hard after all. Like most stuff :-)
22:19 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34768
22:19 Infinoid there's a whole enum of data types they can apparently store, which doesn't explicitly include NULL (though there is an entry for undef).  so its not immediately clear whether NULL pointers should be accepted... despite the fact that we're already passing them in.
22:20 chromatic Hm, compilers/imcc/imcparser.c and compilers/imcc/imcc.y are out of date with respect to each other.
22:21 kj chromatic: it seems there was some headerizing stuff
22:21 Infinoid Generally I've assumed passing tests know what they're doing, and most of the code I've added NULLOK to has been fairly obviously capable of handling it.  but this is a bit less obvious.
22:22 kj maybe not so important to generate imcparser.c
22:22 kj or, more likely, forgotten.
22:22 Infinoid oh.  did I add the asserts to the wrong file?
22:22 chromatic If I regenerate imcparser.c (which I do, because I always configure in maintainer mode), it won't build.
22:22 chromatic You may have patched imcparser.c and not imcc.y.
22:22 Infinoid okay.  the code should still build fine without the stuff I added
22:23 Infinoid can you be more specific about "it won't build"?
22:23 kj I can't configure in maintainer mode; windows. Logs show that Andy changed imcc.y
22:23 Andy when?
22:23 kj and not imcparser.c
22:23 kj petdance, rigth?
22:23 Andy yeah
22:23 chromatic compilers/imcc/imcc.y: In function ‘MK_I’:
22:23 chromatic compilers/imcc/imcc.y:332: error: ‘ASSERT_ARGS_mk_i’ undeclared (first use in this function)
22:23 Andy bu I don't believe I changed any .y files
22:23 kj r34735
22:24 Andy i can't look at it now, I'm sorry
22:24 Andy I'm on my way out the door
22:24 chromatic Bungee patcher!
22:24 Andy It certainly was not my intent to do tha
22:24 * Theory coughs
22:24 Infinoid is there a call to ASSERT_ARGS(mk_i); at the top of that function?
22:25 Andy oh crud, my bad
22:25 chromatic ASSERT_ARGS(mk_i);
22:25 kj it seems that there's also a change by Infinoid that doesn't change imcparser.c
22:25 kj r24722
22:25 kj woeps, r34722
22:25 Infinoid I've been busy.
22:26 kj eh, s/woeps/woops # dutch spelling
22:26 Infinoid chromatic: you can safely remove that line
22:26 chromatic Should I remove all of those asserts, or just change them?
22:26 Infinoid whatever fails can be removed
22:26 Infinoid if they can be safely added back, the codingstd test will tell me and I'll get it later on
22:26 chromatic Will do.
22:26 purl well, Will do. is there any further documentation on maintaining dual-life code? how is it handled in version control? has anyone thought of using git submodules in case the cpan branch of a modules also happens to use git?
22:26 chromatic purl, forget will do.
22:26 purl chromatic, I didn't have anything matching will do
22:27 chromatic purl, forget Will do.
22:27 purl chromatic, I didn't have anything matching will do
22:27 chromatic purl, forget Will do
22:27 purl chromatic, I didn't have anything matching will do
22:27 chromatic purl, forget Will do.
22:27 purl chromatic, I didn't have anything matching will do
22:27 Infinoid odd, I'm not finding any ASSERT_ARGS(mk_i) in trunk
22:27 kj Will?
22:27 purl Fire at Will!
22:27 kj do?
22:27 purl do is just a loop where something controls/constrains it to execute once
22:27 kj do.
22:27 kj do.?
22:27 purl it has been said that do is just a loop where something controls/constrains it to execute once
22:27 Infinoid oh, ack doesn't do .y by default.
22:27 Theory !think(); do;
22:28 * Theory goes to bed
22:28 * purl grabs the lube and follows Theory
22:28 * kj goes to bed, but a different one
22:28 * Theory snorts his Calvados
22:29 Infinoid ok, that was my fault.  sorry about that.
22:29 chromatic It only hits people who run --maintainer; no big deal.
22:32 Zaba joined #parrot
22:35 tetragon joined #parrot
22:57 dalek r34769 | chromatic++ | trunk/compilers/imcc (3 files):
22:57 dalek : [IMCC] Removed parameter assertions which made --maintainer mode not compile.
22:57 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34769
22:57 Infinoid chromatic: oh, the only reason why I didn't get MK_I() right is because those things are case sensitive.
23:08 chromatic Makes sense.
23:28 dalek r34770 | chromatic++ | trunk/compilers/imcc (3 files):
23:28 dalek : [IMCC] Fixed a memory leak with PASM-style opcodes.
23:28 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34770
23:44 Infinoid my bison doesn't seem to work.  --version is bison (GNU Bison) 2.4
23:44 nopaste "Infinoid" at 75.5.247.153 pasted "bison fail" (6 lines) at http://nopaste.snit.ch/15155
23:46 chromatic I saw that a bit earlier too.
23:54 dalek r34771 | infinoid++ | trunk/src:
23:54 dalek : [PDB] Enable the headerizer for a few more functions, so we can get
23:54 dalek : some assert macros for them.
23:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34771
23:54 dalek r34772 | infinoid++ | trunk (2 files):
23:54 dalek : [core] The "item" parameter for list_set(), list_push() and list_assign()
23:54 dalek : needs to be NULLOK.
23:54 dalek : (Found by the headerizer NONNULL assert() patch, see Trac #105.)
23:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34772
23:54 dalek r34773 | infinoid++ | trunk/src (7 files):
23:54 dalek : [core] Tag another couple hundred functions with argument asserts.
23:54 dalek review: http://www.parrotvm.org/svn​/parrot/revision?rev=34773
23:55 Infinoid another 212 down, 553 to go.
23:55 Infinoid and then we can start building it into pmc2c and (maybe) ops2c
23:55 chromatic How many bugs has this found?
23:56 Infinoid if by "bugs" you mean "mismarked arguments", I'd say 15-20.
23:58 Infinoid if you mean "things I feel might need further attention", 2
23:59 chromatic Not bad.

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced