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