Camelia, the Perl 6 bug

IRC log for #parrot, 2008-10-30

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:10 AndyA joined #parrot
00:10 cognominal joined #parrot
00:17 bacek_ joined #parrot
00:37 TiMBuS joined #parrot
01:13 petdance joined #parrot
01:42 johbar joined #parrot
02:10 TiMBuS joined #parrot
02:21 dmknopp left #parrot
02:26 Croke AndyA?
02:26 purl AndyA is a living contradiction :)
02:29 Croke msg AndyA Trip to the UK is cancelled; I'll catch you next time.
02:29 purl Message for andya stored.
02:36 * Croke fixes a parsefail in tcl. whee.
02:38 wayland76 joined #parrot
02:38 wayland76 Hi all
02:38 wayland76 I'm running nci_gen.pl on a .h file, and I get the following error:
02:39 wayland76 Method 'type' not found for invocant of class 'c99AST;TypeDef'
02:39 wayland76 (This is following the line that says ...)
02:39 wayland76 make; ../../parrot c99.pbc --libname=libexamplelib --nsname=CLIB::examplelib ewl_overlay.h_qQMB
02:39 wayland76 Any thoughts?
02:39 purl Any thoughts are welcome =)
02:43 Croke not I; it's been quiet here, you might do better on list.
02:49 Croke ->
02:54 clunker9 joined #parrot
03:55 Psyche^ joined #parrot
04:10 tetragon joined #parrot
05:15 TiMBuS joined #parrot
05:46 TiMBuS joined #parrot
06:01 szabgab where can I find the definition or the grammer of PASM ?
06:03 cotto you'll probably want PIR instead of PASM,  but both are documented in docs/pdd and docs/pdd/draft.
06:04 szabgab pasm seems much simpler to start with
06:05 cotto technically it's simpler, but PIR does a lot of things that make it easier to work with
06:05 cotto your choice, though
06:07 szabgab right now I am trying to improve the pasm syntax highlighting in padre
06:07 szabgab so simpler is better :-)
06:08 cotto gotcha
06:08 szabgab I think parrot had a --target=parse option
06:08 szabgab that would split out some parse tree?
06:09 szabgab but it is not there any more?
06:09 cotto yes, when you're running an HLL
06:09 szabgab ok, and what does that mean?
06:10 cotto HLL is a high-level language, ie Perl6, Cardinal, Pipp, etc
06:10 cotto HLL?
06:10 purl i heard HLL was High Level Language
06:12 szabgab so only parrot can parse pasm or pir?
06:13 cotto nothing else I know of uses it
06:53 chromatic There are Vim and Emacs and other editor syntax files in editor/ off of the main Parrot source tree.
06:53 chromatic PASM is very simple.  You have labels, registers, value primitives, and opcodes.
06:56 Ontolog joined #parrot
07:06 uniejo joined #parrot
07:37 szabgab i wrote some very naive parser in perl5, clearly this is not the way in other cases
07:38 szabgab so given a language that resides in the parrot source tree and given a script written in that language, can I get the parse tree from parrot?
07:40 chromatic If it uses PCT, --target=parse should do it from the command line.
07:40 chromatic Otherwise, you have to call methods on the compiler PMC to do the same thing.
07:40 moritz (but that might not work in conjunction with -e '...', use a file as input instead)
07:41 chromatic I thought it did.
07:41 chromatic I know I patched HLLCompiler to do something like that a while ago.
07:41 moritz chromatic: at least in rakudo it doesn't work.
07:41 szabgab so which languages use PCT?
07:42 moritz cardinal (ruby), rakudo (perl 6), pynie (python), abc ...
07:42 szabgab ok, I start with abc then
07:42 moritz c99, lolcode
07:42 szabgab better yet, lolcode!
07:43 szabgab what is the file extension of lolcode?
07:43 szabgab .lol ?
07:43 moritz .LOL?
07:43 moritz dunno ;)
07:51 szabgab ../../parrot lolcode.pbc t/00-sanity.t --target=parse
07:51 szabgab just prints the same as without the --target=parse
07:51 szabgab it just prints TAP
07:52 szabgab ah, the option should be before the lolcode
07:52 szabgab ../../parrot lolcode.pbc --target=parse t/00-sanity.t
07:52 szabgab works
07:53 szabgab I just have no idea how this could help me in syntax highlighting it
08:19 iblechbot joined #parrot
08:27 bacek joined #parrot
08:38 Ontolog joined #parrot
08:38 Ontolog is there a PIR debugger?
08:44 rurban joined #parrot
08:49 cosimo joined #parrot
08:53 jan joined #parrot
08:58 barney joined #parrot
08:59 bacek joined #parrot
09:11 cosimo joined #parrot
09:26 TiMBuS joined #parrot
09:34 kj joined #parrot
09:41 tomyan joined #parrot
10:24 Infinoid joined #parrot
10:28 rurban_ joined #parrot
10:37 bacek joined #parrot
10:56 szabgab I am using Embed::Parrot and after compiling some code I get a Parrot::PMC object, it has a get_string method
10:57 szabgab what other methods does it have? how do I get back an array?
11:04 johbar joined #parrot
11:10 xiaoyafeng joined #parrot
11:11 jonathan szabgab: I suspect the methods map to Parrot v-table methods (see src/vtable.tbl IIRC)
11:12 jonathan You probably don't want to get back an array, but instead just treat the PMC as one.
11:14 szabgab I am not sure how to do that, I have my $pmc = $foo->invoke( 'PS', 'BAR' );
11:14 szabgab how can I treat that as an array in perl5?
11:15 szabgab @pmc = $foo-> also returns a Parrot::PMC=SCALAR(0x817aa74)
11:26 jonathan Does $pmc[0] not work?
11:26 jonathan Or try $pmc->get_pmc_keyed_int(0);
11:26 jonathan Where 0 is element
11:29 szabgab It think this is here /ext/Parrot-Embed/lib/Parrot/Embed.xs
11:30 szabgab $pmc[0] would not work, this perl5
11:43 szabgab where is a list of pir keywords and some explanation?
11:43 kj docs/pdds/pdd19_pir.pod
11:43 purl it has been said that docs/pdds/pdd19_pir.pod is for that purpose, though there are many other places that fill in holes
11:43 AndyA Croke: boo! Never mind - next time :)
11:43 AndyA (funnily enough I might end up being in the US when you would have been in the UK anyway)
11:44 szabgab how can I get the length of a string?
11:44 szbalint length is a misnomer :)
11:45 kj szabgab: I think you might want to look into docs/ directory in general :-)
11:46 szabgab looking yeah
11:47 kj there's loads of stuff there. the pdds directory contains the parrot design documents. not all of them are up to date (yet) but they contain a lot of good info.
11:59 jonathan szabgab: It may if array indexing has been implemented in Parrot::PMC...
11:59 jonathan But try the get_pmc_keyed_int way.
12:03 Infinoid joined #parrot
12:03 szabgab jonathan: I tried it and it does not exist
12:04 szabgab but never mind for now
12:04 szabgab I'll be ok with strings and numbers for a while :-)
12:12 szbalint :)
12:13 jonathan :-)
12:14 szabgab oh and btw padre is now running on parrot
12:14 szbalint woohoo
12:15 szabgab I am writing a plugin that shows how to use it
12:23 xiaoyafeng joined #parrot
12:31 Croke when you say running on parrot: able to edit .pir files?
12:31 Croke or on parrot instead of p5?
12:32 szabgab I mean that you can write parts of Padre to run on parrot
12:32 szabgab instead of perl5
12:32 szabgab right now I am trying to figure out how to get the @#$@$@# length of a string in pir
12:33 szabgab it seems strlen is the keyword
12:33 szabgab I just cant find the syntax, arg
12:33 Croke length
12:33 Croke $I0 = length 'a string'
12:34 Croke or length $I0, 'a string'
12:35 szabgab thanks, that really works
12:35 szabgab for me too :-)
12:38 krunen joined #parrot
12:40 szabgab so finally done, if anyone wants to see, I 've just commited to svn a plugin for padre that is partially running on parrot
12:56 tetragon joined #parrot
13:06 gryphon joined #parrot
13:15 davidfetter joined #parrot
13:19 grim_fandango joined #parrot
13:19 Ontolog joined #parrot
13:22 iblechbot joined #parrot
13:25 bacek joined #parrot
13:26 Croke purl, 178 / 60 ?
13:26 purl i don't know, croke
13:26 Croke 178/60?
13:26 Croke 178/60
13:26 purl 2.96666666666667
13:26 Croke that's about many hours it takes for me to run 'make spectest' for partcl on my dual core intel mac. :|
13:27 jhorwitz joined #parrot
13:31 Croke Did we ever merge in the GSOC GC?
13:32 Croke (DOD_* is 2 of the top 3 time sinks with parrot -p run against one of the tcl tests)
13:33 Croke kind of surprised that lt_p_ic_ic is invoked enough to show up in the top 5.
13:34 omega joined #parrot
13:34 iblechbot_ joined #parrot
13:35 jonathan That's a tad unexpected.
13:35 jonathan (lt_p_ic_ic)
13:35 * jonathan wonders what is special about it
13:37 Croke 290 - lt_p_ic_ic                  153172    2.395632    0.015640
13:37 Croke 308 - le_p_ic_ic                  135162    2.307548    0.017072
13:37 Croke so of the top 5 ops, 2 are GC related, 2 are those, and the other is invokecc_p
13:38 iblechbot joined #parrot
13:40 * particle fails at installing wx, so can't install padre :(
13:42 Croke particle: did you get the latest strawberry?
13:42 particle no
13:42 Croke when I installed strawberry-latest, it jfw
13:42 particle i'm running AS perl.
13:42 Croke (but slowly)
13:43 iblechbot_ joined #parrot
13:44 Croke according to -p, I am spending 24% of my time on GC.
13:44 particle well, if the new gc ever gets redone *ahem whiteknight*, you'll get a ~20% speedup!
13:45 jonathan invokecc_p isn't so surprising.
13:45 * jonathan waves at everyone, happy to be back and with a working net connection again
13:45 particle why is le_p_ic_ic used?
13:45 * pmichaud waves
13:45 xiaoyafeng_ joined #parrot
13:45 * kj waves back
13:46 particle welcome back jonathan
13:46 pmichaud le_p_ic_ic  would probably be used every time there's a     unless $P0 > 3 goto ....
13:46 particle jonathan: are you planning on attending parrot developer summit?
13:46 kj Did I go on an extraordinary long lunch break, or did everybody got up early today?
13:46 particle ah, right, it's not sticking the result in p
13:46 particle duh.
13:46 jonathan erm, I will get back to you that later - got slovak class now
13:46 jonathan bbiaahour
13:46 particle ~~
13:50 iblechbot joined #parrot
13:51 Croke time spent in GC dwarfs any other opcodes. even invoke (which can spend time anywhere in C) is only about 10% of my time.
13:53 Croke ah. the le, lt are from PGE, which is using attributes to store .pos
13:53 Croke and since attributes must be pmcs...
13:54 Croke er, $.pos
13:55 particle so, most of your time is in parsing
13:55 Croke 10% of my time is the le and lt variants. 10% invoking (real work?) and 25% GC.
13:56 PerlJam partcl too slow for you?
13:56 Croke PerlJam: it takes 3 hours to run 'make spectest'
13:56 PerlJam yikes
13:57 particle how many tests is that, Croke?
13:57 PerlJam throw more hardware at it :)
13:57 particle pmichaud: the parameter in the EH to watch is ->invoked
13:57 Croke particle: http://code.google.com/p/p​artcl/wiki/SpecTestStatus : click on "progress"
13:58 Croke (last run was 56 files, 3672 tests)
13:58 Croke 10568 seconds
13:58 Croke 10568/60/60
13:58 purl 2.93555555555556
14:00 PerlJam Croke: that's, on average, one test every 2.6 seconds.  Not too bad I guess.
14:00 PerlJam (but certain ripe for optimization)
14:00 PerlJam certainLY
14:00 purl That's another fine mess you've gotten us into....
14:03 Tene pmichaud: something weird is happening... can_handle isn't even being called for the second exception.
14:03 Croke PerlJam: any help you could provide would be greatly appreciated. =-)
14:03 pmichaud particle: yes, I understand ->invoked.  What I don't understand is what the intended design is _supposed_ to be.
14:03 Croke I don't have a lot of diagnostics other than 'parrot -j' and osx's "sample"
14:03 pmichaud IIRC, the invoked flag is used by a handler so that rethrowing an exception doesn't re-invoked a handler it already invoked.
14:04 pmichaud (note "rethrowing" and not "resuming")
14:05 particle well, the rethrow op sets ->handled to -1
14:06 particle i don't see anything about ->invoked
14:06 particle even in Parrot_ex_throw_from_c
14:06 pmichaud the invoked flag is manipulated through set_integer and get_integer
14:07 particle yep
14:07 particle just can't find where that's done
14:07 particle there's no set/get_integer_native in src/exceptions.c
14:07 pmichaud Tene: (can_handle not called for second exception)  -- perhaps that's related to #59778 ?
14:08 pmichaud particle:  I think it's mostly handled in scheduler.c
14:10 particle so, Parrot_cx_find_handler_local
14:10 particle /* Mark that this handler has been used before. */
14:10 particle VTABLE_set_integer_native(interp, handler, 1);
14:16 masak joined #parrot
14:17 particle i just can't find out where get_integer is called. *sigh*
14:23 pmichaud particle: it's not.
14:24 pmichaud when looking for an exception handler to run, scheduler.c calls the can_handle method
14:24 pmichaud the can_handle method then checks the 'invoked' flag and returns 0 if the handler has already been invoked (indicating that the handler cannot handle the exception)
14:25 pmichaud or, put another way, as Parrot is currently written -- setting the invoked flag on a eh causes the eh to always report that it cannot handle an exception
14:27 bacek joined #parrot
14:34 * Croke sends his profile question to the list
14:38 * Croke wonders how much time he spends in compiling PIR.
14:38 Croke (dynamically)
14:54 particle pmichaud: what's in your queue? finish EH, finish lex, start ltm/protoregex?
14:55 pmichaud eh, lex, fix container/value types, ltm/protoregex
14:55 masak pmichaud++ # lex
14:55 pmichaud also getting exception handling correct in pct
14:55 dalek r32240 | masak++ | trunk:
14:55 particle like 'loop'?
14:55 dalek : [rakudo]
14:55 dalek : Fixed splitting strings on regexes containing 0-width matches.
14:55 dalek : Patch courtesy of Chris Davaz (Ontolog++).
14:55 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32240
14:55 pmichaud yes, but also next/last/redo and the various control block structures
14:56 particle masak: mention the ticket number on the first line when you apply a patch against an rt please
14:56 particle ...makes svn log diving easier...
14:57 masak particle: ah, of course. I will remember that.
14:57 pmichaud (I often forget that as well :-)
14:59 masak commit messages are the one thing in svn that one cannot easily change afterwards...
15:01 Tene pmichaud: all that invoked is used for is the 'disabled' check thing we're removing, afaict.
15:01 PerlJam masak: sure you can ... if you know how to modify revprops and the pre-revprop-change hook is enabled.
15:01 Tene pmichaud: exceptions keep a list of handlers that they use for rethrow.  it doesn't need to look at ->invoked
15:02 dalek r32241 | fperrad++ | trunk:
15:02 dalek : [Lua]
15:02 dalek : - add some missing pop_eh
15:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32241
15:02 masak PerlJam: I said 'easily'.
15:02 masak ;)
15:02 PerlJam masak: okay, I'll cede that git commit --amend  is far easier  :)
15:02 particle PerlJam: fortunately, commit message changes are forbidden on our svn instance
15:02 masak aye
15:11 Croke ovid?
15:11 purl ovid is taken as well.  darn
15:13 Croke perl6-internals?
15:13 purl somebody said perl6-internals was now mailto:parrot-dev@lists.parrot.org
15:13 Croke parrot-porters?
15:13 purl parrot-porters is now superceded by mailto:parrot-dev@lists.parrot.org
15:24 masak rakudo: my %h = (); say %h.contains("A") # look. low-hanging fruit!
15:24 masak hello? some bot?
15:25 masak anyway, it's not implemented yet, despite being mentioned in S03.
15:25 masak also, it's not mentioned in S29 :)
15:27 PerlJam masak: do you have a failing test for it yet? :)
15:27 PerlJam (or todo)
15:28 jonathan hi - back
15:28 jonathan particle: About still?
15:29 jonathan pmichaud: You about either? :-)
15:30 Croke I'm here! can I help you by offering you commit bits on partcl? =-)
15:31 Patterner joined #parrot
15:31 Croke hurm. do the effects of 'trace 4' stop once you return from the sub it was invoked in?
15:31 masak PerlJam: I don't but if you tell me where to put it, I'll make one
15:31 jonathan Croke: erm, I don't know anything about tcl!
15:32 jonathan If I'm allowed to rename the testing target to test-tcl, though, I'll happily take a commit bit.
15:32 Croke ... as long as that is not your ONLY commit. =-)
15:32 jonathan ...you mean if I commit other stuff I'm allowed to?!
15:32 Croke (kid has balls, I tell ya.)
15:33 masak PerlJam: um, nvm. I'll file the ticket for Rakudo immediately. I don't really know where to put TODOs for S29.
15:33 jonathan Wait...this is a dangerous trap to lure me into hacking on ParTcl!
15:33 PerlJam jonathan: as long as your commits to partcl don't interfere with your commits to rakudo,  you're allowed   ;-)
15:34 jonathan I used to commit to Rakudo? ;-)
15:34 masak lol
15:34 * jonathan wonders how much has changed during his vacation
15:34 masak jonathan: well, you can't iterate over arrayrefs anymore, frex :P
15:34 Croke jonathan: <ackbar/>
15:35 particle jonathan: i'm about
15:35 Croke Anyone bored? Here's a sample of what tcl's 'expr.test' is doing when it goes off the rails:
15:35 Croke http://www.coleda.com/tmp/sample.txt
15:35 jonathan particle: OK. How's things?
15:35 jonathan On the Parrot developer summit. I haven't organized anything yet.
15:36 Croke (looks like a recursive exception handler)
15:37 particle the effects of 'trace' are not lexical
15:37 jonathan masak: I was after progress, not regressions ;-)
15:37 * jonathan is maybe too optimistic
15:37 Croke ok. then it's not generating output presumably because it's stuck in sample output I posted.
15:37 masak jonathan: and here I was just going to tell you about that other interesting regression. oh well, suit yourself.
15:37 jonathan particle: I've got the dates free.
15:38 Croke I wonder how long it will take for the GC and the recursion to run out of memory.
15:38 particle jonathan: take a look at flights, and fill out the survey
15:38 jonathan I'm willing to take the time from $PAYING_DAYJOB to attend.
15:38 particle *please
15:38 jonathan But I'm very tight on cash right now.
15:38 jonathan Survey?
15:38 purl Survey is probably http://www.perl.org/cgi-bin/survey
15:38 * jonathan suspects it's probably not...
15:38 Croke survey says?
15:38 purl BZZZT!
15:39 particle http://www.parrot.org/wiki/p​arrot-developer-summit-2008
15:39 particle annoyingly, http://www.parrot.org/wiki doesn't work
15:39 particle you need /parrot at the end :(
15:40 * jonathan tries to remember if he already created an account on this site
15:41 PerlJam particle: IIRC, drupal has ways to do URL rewriting/redirection, so if you find a drupal expert, you can make it work I bet.
15:41 particle jonathan: the id you just created is your only one
15:41 particle thanks, PerlJam
15:42 jonathan "1. are you planning on attending the summit"
15:42 jonathan Well, I'm not not planning on attending it... :-|
15:43 particle jonathan: i expect to refund your travel expenses
15:43 jonathan Which airport? SFO?
15:43 particle yes, that's probably best for you
15:44 particle kj is flying dublin -> sfo
15:44 Croke is pmichaud's work on exception handling going to fix http://rt.perl.org/rt3/Tic​ket/Display.html?id=59778 ?
15:44 Tene jonathan: so the correct answer is "not no"
15:45 Croke (and I wonder if RT#59778 and my trace posting are related.)
15:47 jonathan Looks like going from Vienna is my best bet.
15:47 jonathan Can get connections in Amsterdam or Frankfurt.
15:48 jonathan Is anyone staying around to hack before/after the summit?
15:49 particle i believe kj will be around, but you should check with him
15:49 particle you can see the arrivals/departures list for more info
15:49 jonathan pmichaud: For when you're back - if I'm going to come all this way, the main cost is the travel rather than being there, so if you can/want to have another day after/before it to focus on Rakudo, I'm up for it. I know we mentioned trying to meet somewhere for that during winter...
15:51 jonathan Is it worth me staying around for a day after the summit to see San Francisco too? Is it an interesting city?
15:51 davidfetter yes
15:52 jonathan (The thought of a long-haul flight, two days of meeting, then flying directly back immediately after, doesn't appeal.)
15:52 davidfetter nor should it :)
15:52 davidfetter sf architecture is unique :)
15:52 jonathan cool
15:52 jonathan I can't afford to stay around long - I've got work and am just back off vacation after all.
15:52 davidfetter if you're into walking or biking, the golden gate bridge is amazing
15:53 jonathan Oh, I love walking.
15:54 Croke is there a workaround for 59778?
15:56 NotFound Croke: if the root of the problem is a class already registered exception, will be good to know what class is.
15:57 Croke I have no way of knowing if that's really the exception, do I?
15:57 Croke (no -easy- way)
15:58 NotFound The backtrace shows that message.
15:58 jonathan particle: OK, but ballpark figures there, exactly what it is depends on the exact dates.
15:58 jonathan particle: If the travel can be funded, I expect I can come.
15:59 gryphon joined #parrot
15:59 tewk_ fixed the last jitted NCI bug that I know of.
15:59 Croke NotFound: which backtrace?
16:01 NotFound Croke: the one shown in #59778
16:01 Croke ah.
16:01 Croke (my problem is that I'm actually trying to fix my own bug, which has no bt and is still refusing to die.)
16:02 Croke let's say I know what class it is: the workaround there is to avoid trying to create a new_class, neh?
16:02 NotFound Croke: can you put a breakpoint at the point fail_if_type_exists throws?
16:04 NotFound Croke: we must know why it throws before finding a workaround.
16:04 Croke yup. will take about about a half hour to get to the point in the run where things go south, so that could be painful.
16:05 tewk_ Anyone want to test jitted NCI on windows
16:06 tewk_ uncomment tools/build/nativecall.pl:390, build and test.
16:06 dalek r32242 | tewk++ | trunk:
16:06 dalek : [jitted NCI] fixed "@" signature bug
16:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32242
16:07 peepsalot joined #parrot
16:07 particle tewk: svn upping now
16:07 particle jonathan: sanfran is definitely worth seeing
16:07 tewk_ line 308 that is.
16:07 particle it's the most european of american cities imo
16:09 particle reconfig?
16:09 tewk_ shouldn't need to,
16:11 tewk_ set a breakpoint at src/pmc/nci.pmc:300 to check that jitted code is getting called.
16:16 jonathan Cool, I'll make a day or maybe 2 for it.
16:16 particle i'm running make test now
16:17 Theory joined #parrot
16:20 jonathan I'll resume regular Rakudo hacking from next week too.
16:20 * jonathan hasn't dared to look at the size of the Rakudo RT queue.
16:24 allison_ joined #parrot
16:30 Croke hey, allison
16:30 Croke anticipating an easier time of io than recent branches?
16:37 Croke msg ovid perl6-internals is old; you probably want perl6-compiler when asking about rakduo
16:37 purl Message for ovid stored.
16:38 Croke (but since so many people are subscribed to both...)
16:40 ruoso joined #parrot
16:41 cotto joined #parrot
16:41 chromatic joined #parrot
16:43 * Croke quotes _samaritan snare_ at chromatic.
16:53 Lorn joined #parrot
16:55 chromatic I have a class advantage against everything Command Word and lower.
16:56 Croke tries his +4 Bus Error of Doom.
16:58 chromatic Against AC, Will, or Reflex?
16:58 chromatic Don't say Fortitude.  I overslept.
16:59 Croke Can't be Will; those always seem to Reflect.
16:59 Croke you look scrawny, so I'll lie and say AC.
17:00 chromatic I'm wearing Chumby shirt +3.
17:03 particle tewk_: i ran 'make test' successfully with jitted nci
17:04 tewk_ Should I commit and see if anyone screems.  It is only enabled on i386 which supports jit,
17:04 tewk_ Essential Windows and Linux, OSX doesn't support jit by default
17:04 particle tewk_: also, i ran a single test (t/pmc/nci.t test 9) through the debugger
17:04 particle and indeed, it hit: nci_jit_sub_t jit_func = (nci_jit_sub_t) D2FPTR(nci_info->func);
17:05 particle jit_func is valid
17:05 tewk_ if it gets inside that if then the jitted function is called.
17:05 particle yep
17:05 particle so, works for me
17:06 particle commit away
17:09 dalek r32243 | tewk++ | trunk:
17:09 dalek : [jitted NCI] enabled.  No more editing src/call_list.txt on i386 Windows and Linux
17:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32243
17:10 particle tewk++
17:10 particle did you run ncigen on parrot headers yet?
17:11 japhb tewk_: dalek's reference to call_list just woke my IRC client -- tewk_++, BTW -- so now I have a question: when can we get x86_64 working, and how long after that that we can drop the old hard-coded NCI system entirely?
17:12 tewk_ x86_64 is probably at least 40% done.
17:13 tewk_ OSX has some special alignment issues to solve and then jitted NCI should be universal.
17:13 japhb schweet
17:14 japhb I am very happy to hear that.
17:14 japhb Go tewk!
17:14 tewk I'll try to commit the x86_64 work in progress tonight.
17:14 chromatic "special" alignment
17:14 Croke tewk: does this require special config flags to enable, ala --jitcapable?
17:15 Croke or are we removing that and just turning it on where we can by default?
17:15 tewk OSX uses SSE for floating point and its ABI requires 16byte(i think) alignment on calls.
17:16 Croke I mean in general.
17:16 chromatic That sounds right to me.
17:16 tewk Croke: it is enabled by default where we can
17:16 Croke tewk: spif.
17:16 tewk where we can =(i386 Windows and Linux)
17:17 tewk Does jit work on OSX i386, if so we may need to add a !(OSX) to the ifdef.
17:17 tewk I know you have to say --jitcapable on OSX builds, so I haven't worried about it.
17:26 Croke sfaik, jit has never worked on osx.
17:26 Croke (intel or ppc)
17:26 tewk I won't worry about it right now then.
17:26 NotFound mysqltest dies with: "Can't convert NULL string"
17:27 * Croke realizes there's no point in him NOT building an optimized parrot.
17:27 tewk mysqltest?
17:27 chromatic You lose assertions if you build optimized.
17:27 NotFound examples/nci/mysqltest.pir
17:27 chromatic ... that hurt me a few times.
17:27 chromatic "Why aren't my debugging assertions getting called?"!
17:28 tewk :q
17:29 Croke chromatic: asssertions are just as bad to partcl as segfaults.
17:29 Croke so I might as well segfault faster than I can assert.
17:29 tewk NotFound: "load_bytecode" couldn't find file 'Mysql.pbc'
17:29 NotFound That remains me a quote about student questions: "It's like the compiler is ignoring my comments!"
17:29 Croke at this point, speed is a very limiting factor for further development.
17:30 tewk do I have to compile Mysql.pir by hand?
17:30 tewk I need a Makefile :)
17:30 NotFound tewk: yes
17:31 NotFound tewk: ../../parrot -o Mysql.pbc Mysql.pir
17:31 tewk yeah, I did it.
17:32 tewk looks like we need to jit a null test for strings. that isn't hard.
17:32 NotFound tewk: I changed some weeks ago some bits of nci to allow NULL is several cases.
17:32 Croke chromatic: optimized makes t/cmd_expr.t run in 22s instead of 30s on my box.
17:32 pmichaud jonathan: at present I'm planning to arrive friday afternoon and depart sunday late.  I might see if I can rebook to another day if it's worthwhile.
17:32 NotFound Maybe the jitted way need the same changes.
17:33 tewk Yes
17:33 pmichaud I also need to check with Paula because istr some other family events surrounding that weekend.
17:33 * Croke ponders hosting an upstate NY get together next time so he doesn't have to travel.
17:34 NotFound xlibtest works fine, btw
17:34 pmichaud I'd go for a NY get together.
17:34 pmichaud (RT #59778) -- I see my work on exceptions as clarifying what needs to be done to Parrot, as opposed to actually doing the work.  I don't know enough of Parrot's internals to be able to fix it myself.
17:35 pmichaud I don't mind updating PIR code to dtrt, but once it gets to Parrot internals I much prefer to pass that to others.
17:35 tewk NotFound: do you have a commit # for your changes?
17:36 NotFound tewk: let me take a look...
17:36 pmichaud I do think that 59778 may be a source of many exception-related problems, since it obviously increases the stack depth.
17:36 Croke there's a very nice hotel near the airport with wonderful conference rooms, even.
17:37 sjn joined #parrot
17:37 Croke 59778: i -suspect- that a similar issue is blocking 4 partcl spec tests from completing, but hard to debug due to speed.
17:41 jonathan pmichaud: OK, let me know when you know.
17:42 jonathan pmichaud: How's things? Have you Changed The World on me? :-)
17:42 tewk Why does string_to_cstring not allowed to return null?
17:42 pmichaud I should know by tomorrow.  It's getting close to the time for travel though, so modifying my airfare might be difficult.
17:42 pmichaud I didn't change the world yet.
17:42 jonathan That sounds ominous. ;-)
17:42 jonathan What are the big changes I should know about?
17:42 pmichaud we changed a few things dealing with namespaces and the like, but I got sidetracked on other stuff and I'm still struggling with lexicals.
17:42 PerlJam Isn't Changing The World TimToady's job?
17:43 tewk The cstring equivalent of STRING("") is NULL. Why don't we allow it?
17:43 pmichaud particle has "is export" working, and we're working on getting import to work.
17:43 tewk nevermind its not and empty STRING its a NULL string
17:43 pmichaud the big thing that needs help at the moment is re-working containers and value semantics
17:44 pmichaud (lexicals needs help too, but I'm working on that in the 'lex' branch.)
17:44 * particle downloads ubuntu 8.10
17:44 pmichaud yay, 8.10!
17:44 * pmichaud starts a download.
17:44 * tewk has been running 8.10 for a month, wishes he had wated for the release.
17:44 particle heh
17:45 pmichaud I tried 8.10 a couple of weeks ago, but it didn't install on my notebook.
17:45 pmichaud actually, I should reboot first.
17:45 pmichaud brb
17:45 tewk I like it, but comviz and NetworManager has some bugs that are now fixed.
17:47 jonathan pmichaud: OK, so value and container stuff is the current Big Thing. I'm happy to help with that.
17:47 jonathan particle++ # is expert
17:47 jonathan er, is export!
17:48 tewk NotFound: why does string_to_cstring throw an exception on null STRING?
17:48 NotFound tewk: because is better that crashing
17:49 tewk why not just return null, we are converting to a char* right.
17:50 NotFound tewk: I asked that several times without answer
17:50 tewk Well jitting that is a pain, if we don't change string_to_cstring, I'm just going to write string_to_cstring2 that doesn't throw an exception and call that from the jit
17:51 chromatic Is it safe to call a random C function with NULL where it expects char *?
17:51 NotFound No
17:51 tewk YES
17:52 NotFound tewk: try strdup
17:52 chromatic I'd rather get an exception from Parrot than a segfault from a .so.
17:52 PerlJam tewk: I think it *should* be, but reality is that it's not.
17:53 NotFound tewk: I'll give it some more clarifying suffix than '2'
17:53 chromatic Maybe we need a STRINGNULL like a PMCNULL.
17:54 Croke ... I just asked in here the other day, PMCNULL:PMC::??:STRING
17:54 tewk right I'll probably call it unsafe or nci.
17:54 Croke but then you fixed my gc bug.
17:54 NotFound chromatic: with the current implementation that have lots of string's internal acces from lot of places, very difficult.
17:55 Croke chromatic: do you have any ideas to help profile, other than "implement callgrind output" ?
17:55 Croke (which would admittedly be very awesome.)
17:55 tewk but this is going to mysql, what does STRINGNULL mean to mysql ""
17:56 tewk lots of c functions accept NULL to char* as part of their functional contract.
17:57 NotFound tewk: and lots of them no
17:57 NotFound There is no general rule.
17:57 kj in some cases it makes sense to accept NULL, others not
17:57 tewk The add another NCI character to specify how you converstion to occur.
17:57 tewk NCI signature character,
17:58 tewk t is going to mean NULL, if you want STRINGNULL ie "", add "T" to nci signatures and STRINGNULL to parrot.
17:59 NotFound tewk: note that that will be another step against automatically extracting nci information from C headers.
18:00 tewk Yep, its unavoidable, .h header files are not an functional contract definition language, as much as we like to think they are.  Hence swig and headerize
18:01 NotFound tewk: I have the same opinion, but seems that several people here disagree.
18:01 szabgab Ubuntu Security Notice USN-661-1  .. A security issue affects the following Ubuntu releases: Ubuntu 8.10
18:02 tewk my long term goal is to allow scripts that call ncigen and then programatically massage the ncigen AST.
18:02 szabgab I just got that mail
18:02 szabgab it was quick
18:02 tewk I'm not going to reinvent swig.  But ncigen can be better than swig for parrot because we have a full AST that you can programmatically manipulate.
18:03 PerlJam szabgab: All the signs are pointing me away from an ubuntu upgrade today.  I should probably listen.
18:03 Croke PerlJam: instead, make partcl go faster.
18:03 tewk swigs big problems are that 1: it doesn't provide an AST of the header file, 2: it doesn't provide a cool manipulation language.
18:03 particle jonathan: also, i've done some cleanups in actions.pm
18:04 particle it could use a great deal more
18:04 NotFound tewk: In the meantime, a conversion: STRING * NULL -> char * NULL worked for the functions I needed.
18:04 particle like, replacing many .WHAT() and .HOW.isa() with .isa()
18:04 pmichaud my copy of ubuntu just downloaded -- burning to cd
18:04 pmichaud (actually, kubuntu)
18:04 tewk ncigen and parrot provide a AST today, and can allow runtime manipulation by any language parrot supports in the futre.
18:04 tewk I think we have a win, win
18:05 moritz IMHO there could be many functions factored out in actions.pm
18:05 szabgab Padre update: padre can run (as in externally) pasm and perl6 on rakudo and one can create plugins written in pir and running on parrot
18:05 jonathan particle: Great.
18:05 tewk I'll add string_to_cstring_unsafe
18:05 PerlJam Croke: I've designated a portion of Friday for parrotish thing (partcl qualifies).  So, I may actually look at it tomorrow.
18:05 moritz szabgab++
18:05 szabgab thanks for your help in that!
18:05 Tene pmichaud: exceptions already store a list of handlers to use for rethrow.  ->invoked is ONLY used for the "already invoked, don't use again ever" test, afaict.
18:05 pmichaud Tene: okay.
18:05 Croke (note to self. good natured pestering actually seems to work!)
18:05 NotFound tewk: 'nullable' or something will be more clean and explicit IMO
18:06 pmichaud Tene: I'm still left w/o an understanding of why my sample code doesn't work.
18:06 tewk nullable sounds better, thanks
18:06 NotFound 'unsafe' will be taken at first look like some CLI thing
18:06 tewk I can pass NULL to mem_sys_free right?
18:07 particle pmichaud: nopaset it?
18:07 pmichaud particle: it's the code I sent to the list last night.
18:07 pmichaud but I can nopaste.
18:07 Tene pmichaud: me too.  I can try to take a look at it tonight, but I'm unlikely to get back to my hotel before 10:00.
18:07 particle nm, i have it on list
18:07 chromatic Croke, maybe you could emit code to count the number of Tcl/PIR function calls.
18:07 chromatic A rough idea of what gets called when might let us rewrite some PIR to minimize GCable allocations.
18:08 PerlJam Croke: just make sure the barrier to entry is really really low.  Like, can I unpack partcl where it used to live in languages and it just works?
18:08 nopaste "tene" at 160.79.186.34 pasted "EH test for particle from pmichaud" (23 lines) at http://nopaste.snit.ch/14429
18:08 particle pj: yes
18:08 PerlJam excellent
18:08 particle pj: you can svn co in languages/tcl
18:09 pmichaud particle:  (eh)   also see that I remove four lines from src/pmc/exceptionhandler.pmc to try to get that to work.
18:10 nopaste "tene" at 160.79.186.34 pasted "don't disable EH patch for particle" (33 lines) at http://nopaste.snit.ch/14430
18:10 Croke partcl?
18:10 purl i think partcl is tcl on parrot or http://code.google.com/p/partcl
18:10 Croke PerlJam: if you go there, one of the featured wiki pages is how to get the source and use it with parrot.
18:11 Croke (and yes, I made it as low as I could, and as similar as I could to befoer)
18:11 Croke and if you want a commit bit, just let me know what your id is for googlecode.
18:12 Croke chromatic: an excellent first step.
18:12 Croke I'll do that this evening.
18:12 Croke ->
18:12 Croke PerlJam++
18:12 Croke chromatic++
18:12 chromatic I did that for PGE a while back and shaved off 5%.
18:12 PerlJam Croke: i'm secretly hoping that you'll figure out how to get a dramatic speed improvement before I look at it tomorrow  ;-)
18:13 PerlJam oops, so much for the secret :)
18:14 PerlJam chromatic: a PIR-level profiler would be so handy, wouldn't it?
18:15 chromatic It would.  It's a semi-holy grail.
18:15 chromatic Even just fixing the profiling runloop to emit data when entering and existing PIR subs would help.
18:16 kj any ideas on how a pir profiler should work?
18:16 kj what kind of information should it generate?
18:16 tewk chromatic: could you start a wiki page with a ROADMAP to PIR-level profiler.
18:16 tewk It there is an outline, people can start working on it.
18:17 NotFound tewk: I think r30790 is the relevant change
18:17 tewk NotFound: I'm about to commit a fix
18:17 NotFound "translate NULL STRING in nci t args to NULL C strings, RT#58438"
18:18 chromatic Sure, I can do that.
18:19 chromatic It'll have to be later though, as I have two meetings and an interview starting in 40 minutes and running until 3 pm.
18:20 tewk I'm not going look at it until tonight, but I'd be interested.
18:20 tewk I think building good tools can help attract future help.
18:20 kj PCT is the proof of that :-)
18:22 moritz PCT is way cool
18:24 NotFound nci is cool
18:25 particle acronyms are cool
18:25 NotFound aac
18:26 moritz purl, aac is acronyms are cool
18:26 purl ...but aac is Augmentive and Assistive Communications, or advanced audio coding, whatever. or at http://www.aac-audio.com...
18:26 moritz purl, aac is also acronyms are cool
18:26 purl okay, moritz.
18:27 tewk *** glibc detected *** ../../parrot: double free or corruption (fasttop): 0x08b19a28 *** :(
18:28 NotFound tewk: did I say that adding the null conversion was not easy? ;)
18:31 tewk NotFound: Your change looks pretty simple.
18:31 NotFound tewk: yes, but take some time to reach it.
18:32 NotFound And several ugly crashes
18:34 NotFound tewk: I think a string_cstring_free_nullable can also be helpful
18:35 tewk Yeah I added if (p) to  string_cstring_free_nullable
18:36 tewk Well all tests pass, mysqltest.pir is the problem case.
18:37 NotFound tewk: seems logic, given the Mysql module was the reason for the change
18:38 nopaste "tewk" at 155.98.69.7 pasted "mysqltest.pir.fix.patch" (74 lines) at http://nopaste.snit.ch/14431
18:38 tewk NotFound: take a look if you want.
18:39 NotFound tewk: it crashes after that change?
18:41 tewk ahh, 283 set_args PC83 (8), P0, S2, S4, S1, S3, 0, S0, 0  PC83=FixedIntegerArray=PMC(0x999c72c) P0=UnManagedStruct=PMC(0x997cce0) S2="localhost" S4="parrot" S1="baDworD" S3="parrot"  S0="(null)"
18:43 tewk "parrot" is passed twice, but that shouldn't matter.
18:43 tewk yes it still crashes
18:43 tewk rebuilding
18:44 NotFound tewk: I think the signature of mysql_real_connect can be incorrect, let me check...
18:45 tewk is there a char** in there somewhere, that would do it.
18:45 NotFound The last item is an unsigned long, but in the signature there is an 'i'
18:48 tewk I don't think that should matter.
18:49 dalek joined #parrot
18:51 NotFound tewk: after the second "parrot" there must be an int
18:52 tewk There is 283 set_args PC83 (8), P0, S2, S4, S1, S3, 0, S0, 0
18:52 NotFound Before the null
18:52 NotFound Ah, yes, the ints are not listed in the trace
18:52 tewk I don't think trace prints INT constants
18:53 tewk w
18:55 NotFound tewk: commit the change and I will look at it. Is already failing, so no harm.
18:56 tewk NotFound: If you like string_cstring_free_nullable, add it
18:56 tewk commiting
18:57 tewk although I don't think the null check before mem_sys_free is needed
18:58 NotFound I had some bad experience with that thing, if I remember well.
19:02 tewk src/gc/memory.c:303, it checks already
19:02 NotFound Myabe that changed later, I'm not sure.
19:05 chromatic It's gone back and forth a few times.
19:06 NotFound Maybe we need another nullable variant here ;)
19:06 tewk NOOOOOOOOOOOOO :)
19:07 dalek r32244 | tewk++ | trunk:
19:07 dalek : [examples/nci/mysqltest.pir] fix attempt
19:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32244
19:07 tewk NotFound: committed
19:07 purl The chicken is involved, but the pig is *committed*.
19:08 barney joined #parrot
19:20 nopaste "tewk" at 155.98.69.7 pasted "gotta love SVN, it actually did commit" (14 lines) at http://nopaste.snit.ch/14432
19:20 NotFound The backtrace does not show the same value for INTERP in string_cstring_free as the previous calls
19:20 tewk I'll fix it then, its my bug
19:21 tewk I'll have more time tonight
19:49 rdice joined #parrot
19:56 gaz joined #parrot
19:58 dalek r32245 | bernhard++ | trunk:
19:58 dalek : [docs] not success with gcc 4.3.2
19:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=32245
20:02 cotto svn--
20:05 barney s/not/note/
20:35 PerlJam What's a "scope" in PIR/parrot?  Just from .sub to .end?
20:35 particle yep
20:35 particle however, there's probably a trick or two there
20:36 particle like, if you create an exception handler via a label, it may be promoted to a continuation, with its own scope.
20:38 PerlJam is it documented anywhere?
20:53 pmichaud ...is there a way to create an exception handler not associated with a label?
20:54 pmichaud (that actually does something useful)
20:55 particle i believe you can create a sub
20:55 particle const sub, that is
20:57 pmichaud I'm pretty push_eh only works with ExceptionHandler at the moment.  I think that was the answer I got earlier when asking this question.
20:57 particle ah, ok. i believe spec is to allow ExceptionHandler type subs, but perhaps not yet implemented
21:01 nopaste "particle" at 98.232.28.49 pasted "pmichaud: this simple change doesn't work. any clue why?" (49 lines) at http://nopaste.snit.ch/14434
21:01 particle obviously, i need to fix that comment
21:01 rdice joined #parrot
21:01 particle but the compiler doesn't understand my comments, anyway
21:17 Croke chromatic: it occurs to me that printing the name of every sub we invoke is already part of -t.
21:18 Croke ... except that that breaks PGE.
21:19 chromatic It shouldn't break anything, but I want to do that with -p.
21:19 Croke shouldn't, but does.
21:19 chromatic I know how to do it.  It's some mess of two calls with Parrot_context_get_infostr() or something like that.
21:19 chromatic Needs fixing then.
21:20 Croke If I run ../../parrot tcl.pbc t/cmd_for.t, I get output. if I add -t4, I get a PGE failure.
21:21 Lorn joined #parrot
21:22 AndyA joined #parrot
21:23 Croke -t1 doesn't fail, but damn is that slow. =-)
21:25 tewk Pipe to a file to make it faster
21:27 particle or devnull
21:29 Croke ok. -t1 works, -t4 fails, -t5 fails. So something about PARROT_TRACE_SUB_CALL_FLAG is squirrely.
21:33 chromatic It has a checkered past.
21:36 pmichaud I've noticed that -t4 causes behaviors to differ somewhat dramatically at times.
21:37 Croke it's either src/pmc/sub.pmc or src/pmc/coroutine.pmc 's print_sub_name
21:37 Croke trying to narrow down.
21:37 pmichaud particle: (nopaste isa) -- why are you calling .isa with two arguments?
21:37 pmichaud oh, never mind, I know why.
21:38 pmichaud what doesn't work with the simple change?
21:40 Croke chromatic: if I comment out the guts of "print_sub_name" in both those pmcs, my code runs to completion with -t4; trying to uncomment out bits in sub.pmc's version, cannot find a version that lets me complete.
21:47 Croke print_pbc_location(interp) is at least one source of trouble.
21:50 Croke I don't see anything obvious, but IANACP
21:51 allison_ joined #parrot
21:52 Croke cheeze it, it's the architect.
22:03 TiMBuS joined #parrot
22:35 Robrt joined #parrot
22:35 Robrt Anyone have any issues with svn recently?
22:37 moritz just with being firewalled... but I'm still working on my setup ;-)
22:37 Robrt We go through the block and fix-bot cycle with someone about every six months.
22:37 Robrt This time it was your turn :)
22:38 chromatic Svn has behaved well for me the past several days.
22:38 moritz it was never my intention to poll that often, so my apologies.
22:38 Robrt chromatic: was it problematic before that?  I'm trying to correlate with the 1.5 upgrade.
22:39 chromatic I had trouble last Saturday, I believe (sent a note to svn@perl.org) about it.
22:39 chromatic That was after the upgrade.
22:40 Robrt I don't see any emails.
22:41 chromatic Sorry, it was to admin@perl.org on the 18th.
22:42 Robrt No such address.
22:43 chromatic No wonder you didn't see it!
22:44 Robrt :)
22:45 Limbic_Region joined #parrot
22:49 particle rip nopaste, we hardly knew ya
22:49 dmknopp joined #parrot
22:49 Robrt chromatic: do you remember what kind of problem it was?
22:49 TonyC rebooting the machine nopaste is on
22:49 allison_ joined #parrot
22:50 chromatic Robrt, it was the normal "SVN commits are slow and time out on the client side but finish on the server side" problem.
22:50 Robrt Crapola.
22:50 particle yeah, that whole "200 error" :)
22:50 Robrt I had really hoped that would go away with 1.5
22:50 particle me too.
22:51 Robrt sigh.
22:56 nopaste joined #parrot
23:18 TonyC joined #parrot
23:22 davidfetter anybody here going to OSDC sydney?
23:55 sjansen joined #parrot

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

Parrot | source cross referenced