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