Camelia, the Perl 6 bug

IRC log for #parrot, 2008-12-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 * jonathan doesn't miss UK public transport in the slightest
00:00 Limbic_Region as I get older (2 ** 5 a couple of weeks ago), I enjoy traveling less and less
00:01 Limbic_Region come to think of it, I think that has more to do with traveling with others (family) than about getting old
00:01 tetragon joined #parrot
00:06 davidfetter anybody at osdc?
00:06 chromatic TimToady, I hear.
00:06 jonathan Limbic_Region: Ah, I'm still traveling alone. That's probably easier...expecially as I'm quite relaxed about it and many people are less so. :-
00:06 jonathan )
00:06 davidfetter Limbic_Region, i just had a birthday that's 0 (mod 10), but i still love to travel :)
00:06 * davidfetter @ OSDC
00:09 AndyA joined #parrot
00:12 gmansi joined #parrot
00:15 dalek r33433 | tewk++ | trunk:
00:15 dalek : [pirc] svn:ignore
00:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33433
00:17 alvar_ joined #parrot
00:19 kid51 Would it be reasonable to assume that every shell on an OS targeted by Parrot will have a 'help' command?
00:19 chromatic Unfortunately, no.
00:20 chromatic I think that's the same sort of problem we have detecting compilers.  Heuristics for guessing at flags or commands just aren't portable.
00:20 kid51 Reason for asking:  To more thoroughly test Parrot::Test, I need to test Parrot::Test::run_command() -- which needs a command to run.
00:20 kid51 http://rt.perl.org/rt3/Tic​ket/Display.html?id=46893
00:21 chromatic All shells should have Perl 5 installed.
00:21 chromatic Use $^X as the command to run.
00:22 kid51 Ah!  Of course!
00:22 kid51 Thx
00:22 chromatic I did that once before.  It took a while before I realized I was making it too difficult.
00:23 tak joined #parrot
00:36 dalek r33434 | jkeenan++ | testparrottest:
00:36 dalek : Add a basic test for Parrot::Test::run_command(). chromatic++ for testing
00:36 dalek : suggestion.
00:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33434
00:38 dalek r33435 | jkeenan++ | testparrottest:
00:38 dalek : For ease of editing during development, move POD to end of file.
00:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33435
00:45 tak joined #parrot
00:58 Tene So... any word on PDS reimbursements?
00:59 Tene I still haven't heard from particle
01:01 Coke email directors@parrot.org with a poke.
01:05 tak joined #parrot
01:05 dalek r33436 | jkeenan++ | testparrottest:
01:05 dalek : Rework some comments; no code changes.
01:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33436
01:06 Theory joined #parrot
02:24 petdance joined #parrot
02:38 NotFound joined #parrot
03:00 rhr joined #parrot
03:15 NotFound joined #parrot
03:17 Debolaz joined #parrot
03:49 tewk imcc makes me sick
03:49 tewk so does pbc generation.
03:49 tewk uck
03:59 tewk So the Fixup packfile segment looks to only be used to fixup across compilation units, do we even support that now?
04:00 tewk I think chromatic was trying to tell me this at PDS, I just dodn
04:00 tewk 't get it
04:02 elmex_ joined #parrot
04:13 jimmy joined #parrot
04:24 Hadi joined #parrot
04:59 tewk ping pmichaud
04:59 purl I can't find pmichaud in the DNS.
05:07 cotto you have to add a .com ;)
05:11 cotto Hmmm. There don't appear to be many poems on the topic of segfaults.
05:14 Infinoid msg Alias Any chance you can look at http://rt.perl.org/rt3/Tic​ket/Display.html?id=50212 ?  I talked with you about this quite some time ago, but I've verified today that it's still an issue.  Thanks!
05:14 purl Message for alias stored.
05:15 Infinoid cotto: that's surprising, but I wouldn't really know where to look for such things.
05:36 nopaste "tewk" at 155.97.237.62 pasted "subid took way to long to figure out" (122 lines) at http://nopaste.snit.ch/14777
05:38 tewk And yes it breaks things, fixups work different then I ever imagined, ugly really.
05:39 tewk pmichaud: we probably need to talk and decide .const and bare method resolution in pir should work.
05:39 tewk It's subtle.
05:47 Hadi1 joined #parrot
06:00 cotto 77505%15
06:00 purl 891.3075
06:00 cotto 77505 mod 15
06:05 Hadi joined #parrot
06:06 tetragon joined #parrot
06:07 lathos What did purl just compute?
06:23 Theory joined #parrot
06:46 cotto 77050%
06:46 purl 770.5
06:46 cotto %15
06:46 cotto 770.5 15
06:47 cotto 10%10
06:47 purl 0.11
06:47 cotto 10%100
06:47 purl 0.11
06:47 cotto 10%200
06:47 purl 0.12
06:47 cotto 10%2
06:47 purl 0.12
06:47 cotto 20%2
06:47 purl 0.24
06:47 cotto 20%1
06:47 purl 0.22
06:48 cotto 1%1
06:48 purl 0.011
06:48 cotto 1%0
06:48 purl 0.01
06:48 cotto 0%0
06:48 purl 0
06:48 cotto 0%1
06:48 purl 0
06:48 cotto 1%10
06:48 purl 0.011
06:51 * cotto checks source
06:53 cotto purl's source is questionable:
06:54 cotto # what the hell is this shit
06:54 cotto src/Modules/Math.pl:87
06:58 * cotto gives up
07:04 Zaba joined #parrot
07:17 Zaba joined #parrot
07:21 alvar joined #parrot
07:21 uniejo joined #parrot
07:32 Zaba joined #parrot
07:33 Hadi joined #parrot
07:35 Hadi left #parrot
07:36 jimmy joined #parrot
07:39 Zaba joined #parrot
07:43 spinclad joined #parrot
07:56 masak joined #parrot
07:59 skv___ joined #parrot
08:01 skv____ joined #parrot
08:06 iblechbot joined #parrot
08:23 Zaba_ joined #parrot
08:27 ff-wonko joined #parrot
08:52 bacek joined #parrot
08:56 cotto joined #parrot
09:10 tomyan joined #parrot
09:18 ChrisDavaz joined #parrot
09:23 cotto joined #parrot
09:28 tomyan joined #parrot
09:30 ChrisDavaz joined #parrot
09:32 cotto joined #parrot
09:41 MariachiElf joined #parrot
09:50 cotto joined #parrot
09:51 gaz joined #parrot
10:01 Ademan joined #parrot
10:02 particle joined #parrot
10:10 dalek r33437 | kjs++ | trunk:
10:10 dalek : [pirc] add a bytecode test framework file. This is temporary, once I figured out How To Do It Properly, this file will go away.
10:10 dalek : Update MANIFEST etc, accordingly, which apparently had to be done anyway for some other files.
10:10 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33437
10:10 kj joined #parrot
10:17 dalek r33438 | kjs++ | trunk:
10:17 dalek : [pirc] fix copyright and coda.
10:17 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33438
10:19 dalek r33439 | kjs++ | trunk:
10:19 dalek : [pirc] fix svn:keywords order.
10:19 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33439
10:21 dalek r33440 | kjs++ | trunk:
10:21 dalek : [t] fix svn props on subflags.t
10:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33440
10:35 elmex joined #parrot
10:40 ff-wonko joined #parrot
10:41 Theory joined #parrot
10:44 Zaba joined #parrot
10:52 skv____ joined #parrot
10:53 skv_____ joined #parrot
10:53 ff-wonko joined #parrot
11:12 donaldh joined #parrot
12:01 iblechbot joined #parrot
12:10 Zaba joined #parrot
12:32 ffwonko joined #parrot
12:40 Lorn joined #parrot
12:58 clunker9 joined #parrot
13:04 davidfetter joined #parrot
13:08 ffwonko joined #parrot
13:18 ffwonko joined #parrot
13:44 Zaba joined #parrot
13:50 tewk kj: We really need a bcgen library, but at least you have a working example.
13:54 kj tewk: yes, thanks a lot for your help
13:54 pmichaud tewk: pong
13:54 kj tewk: I was planning to just walk PIRCs data structures and emit pbc; possibly later things can be done through a bcgen lib.
13:55 tewk subid, if its not there do we do lookups by sub name
13:55 pmichaud if a sub doesn't provide a :subid flag, then its name is its subid
13:55 pmichaud same as we do for method/nsentry/vtable
13:55 pmichaud .const should always look up by subid.
13:56 pmichaud each of the below should do the same thing:
13:56 pmichaud .sub 'foo'
13:56 pmichaud .sub 'foo' :subid
13:56 pmichaud .sub 'foo' :subid('foo')
13:56 pmichaud (end)
13:56 tewk in trunk, right now if lookup fails at compile time, then a find_sub_not_null_p_sc instruction is inserted to allow runtime lookup in the namespace.
13:57 pmichaud you mean for .const ?
13:57 pmichaud that would be... wrong.
13:57 tewk ok I get the subid fallback, what do you think of what trunk does
13:57 kj (find_sub_not_null_p_sc: and note that that op is still considered 'experimental'...)
13:57 tewk YES
13:57 pmichaud I don't know that I followed what trunk does.
13:58 tewk Fixups aren't used,
13:58 tewk trunk attempts to lookup the sub in the constant table by sub name at compile time.
13:58 pmichaud yes, I would expect .const to only find things at compile time.
13:59 pmichaud if I want to find things at runtime, I use  get_global or find_name or something like that.
13:59 tewk if that fails a find_sub_not_null_p_sc instruction is generated for the .const 'Sub' $p0 = 'foo'
13:59 ff-wonko joined #parrot
13:59 pmichaud ...trunk currently does a find_sub_not_null?  that seems wrong.
13:59 tewk yes, that is what suprised me
14:00 pmichaud what happens if it doesn't do that?
14:00 tewk if the compile time lookup fails
14:00 pmichaud do we then lose the standard    'foo'(...)    lookup ?
14:00 pmichaud i.e.,   are   .const  and  named subroutine call using the same code?
14:00 tewk No
14:00 tewk yes
14:00 tewk they use the same code.
14:00 pmichaud ick.
14:01 pmichaud from a "make it work" perspective, it doesn't bother me if .const does a fallback.
14:02 pmichaud in all of the code that PCT will generate, the requested subid will be in the same compilation unit.
14:02 pmichaud whether .const _should_ do a fallback I'll leave to the Parrot architect to decide.  I think it shouldn't, but it doesn't affect me if it does.
14:02 tewk It has to be, because as far as I tell we don't do fixups across compilation units.
14:03 pmichaud correct, we don't do fixups across compilation units.
14:03 tewk we punt and use find_sub_not_null_p_sc:
14:03 pmichaud well, the find_sub_not_null  was added not for .const but more for   'foo'(...)
14:04 tewk ahh, well they are one in the same as I read the code.
14:04 pmichaud 'foo'(...)   looks first in the local compilation unit, and then if not found there it falls back to a find_sub_not_null to do a more global lookup.
14:05 masak joined #parrot
14:05 tewk ok, I think I', clear. new patch in a second, and it probably won't break anything.
14:05 kj we can't do fixups accross compilation units, because the PIR compiler cannot check whether a sub is really there, so it needs to do a runtime lookup
14:06 gryphon joined #parrot
14:06 pmichaud I did have a question about str_dup_remove_quotes -- is that going to handle unicode names?
14:07 pmichaud kj:  ...but it might be nice if we could do lookups by subid across compilation units.  :-)
14:07 kj pmichaud: I'm curious what's your definition of compilation unit :-)
14:07 tewk pmichaud: all it does is remove the first and last characters. because imcc returns strings including their quotes.
14:08 pmichaud tewk:  so, something like    :nsentry(unicode:"\xab")   will work?
14:08 kj pmichaud: the thing is, currently, IMCC takes  PIR file and compiles it. The invoked sub must be found in that file (it may be .include'd), otherwise it emits a find_sub_not_null to fix it up during runtime.
14:09 pmichaud kj: yes, I understand this.
14:09 tewk I though that was one of the original reasons for the Packfile fixup segment,
14:09 kj pmichaud: ok, just to be sure we're on the same level here :-)
14:09 pmichaud kj:  it used to do a "find_name", and I'm the one that requested the feature that resulted in find_sub_not_null.
14:10 tewk you could defer fixups to load_byte code time, yet pre runtime
14:10 pmichaud I think "fix it up" is not exactly the correct phrase -- it doesn't "fix it up", it "falls back" to generating a find_sub_not_null.
14:10 pmichaud because find_sub_not_null is actually subtly different than locating something in the same compilation unit.
14:11 kj yes, when locating something in the same comp.unit succeeds, a set_p_pc instr is emitted, which loads the sub PMC into a P reg, which is then invoked
14:11 pmichaud in particular, find_sub_not_null does the equivalent of "find_name", which means the sub is searched in the current lexical, namespace, and global environment.
14:12 pmichaud so you can't really know until runtime _which_ sub will be invoked.
14:12 pmichaud however, if there's a sub of the same name in the same compilation unit (and namespace), then that sub gets invoked regardless of any lexical, global, or other sub.
14:13 tewk pmichaud: Hmmm. that may need some work.  but my technique is repeated all over imcc.
14:13 tewk at least I put it in a function that we can reuse and improve.
14:13 kj good thing this is discussed now, seems that some things need to be changed?
14:14 pmichaud tewk:  *something* in imcc must already be handling unicode:"...", though, because    .sub unicode:"\xab"    already works.
14:14 pmichaud so why aren't we reusing that?
14:14 tewk we probably should, but I bet it isn't encapsulated, I'll go look
14:15 pmichaud whatever is currently used to pick out a sub's name probably should also be the thing used for nsentry/subid/vtable/method
14:15 tewk I stole my code from :vtable()
14:15 kj I think the prefix 'unicode:' is part of the string that's matched in the lexer
14:15 pmichaud I suspect :vtable they decided not to handle unicode strings, because there are no unicode vtable methods.
14:15 pmichaud also I think that the :vtable code was written before subs allowed unicode names.
14:16 tewk I'm guessing at this point i need to go look.
14:16 ruoso joined #parrot
14:18 tewk so should 'foo'() lookup be by sub name only?
14:18 pmichaud yes.
14:18 pmichaud that lookup should be by subname.
14:18 pmichaud I wouldn't expect it to look up by subid.
14:19 tewk I'd like to punt and have it try subid then name, otherwise a lot more code is going to have to change, since they are both the same right now.
14:19 pmichaud it might slow down the runtime a bit, but it also wouldn't bother me if 'foo'() simply went straight to find_sub_not_null and didn't look for a sub in the same compilation unit.
14:19 pmichaud (however, then it would fail for anonymous subs.)
14:19 tewk yep
14:20 ff-wonko joined #parrot
14:20 tewk well if you generate subids I don't think there will be  conflict and then we can clean it up proper when we write the bcgen libarary
14:20 pmichaud I don't mind if it does subid then name for now, but that's (1) not my decision to make and (2) something that probably merits discussion on the mailing list.
14:21 tewk well thats how it works now, 'foo'() and .const work the same, way.  For now we are just adding subid,
14:22 tewk I think it will get us what we want and minimize work that is going to throw away.
14:22 tewk be thrown away.
14:22 pmichaud sure, works for me.
14:22 pmichaud we might mention this in today's #ps
14:23 tewk yes
14:26 pmichaud thanks for working so diligently on this -- I'm really eager to have subid working.  It will clean up _soooo_ much stuff in PCT and rakudo.
14:27 tewk no problem, the changes are minimal, I just had to spend hours figuring out imcc first :)
14:27 tewk test running now.
14:28 tewk pmichaud: can you nopaste the subid tests again. I forgot to save them off.
14:29 tewk we also need test where the nsentry/subid/vtable/method names are different from the method names.
14:30 pmichaud yes, I've only been doing a few tests at a time.
14:30 pmichaud I have a _lot_ of tests to add.  :-)
14:30 tewk thats great, I appreciate the tests.
14:38 dalek r33441 | pmichaud++ | trunk:
14:38 dalek : [rakudo]: spectest-progress.csv update: 227 files, 4689 passing, 10 failing
14:38 dalek : Failure summary:
14:38 dalek :     S12-methods/default-trait.t aborted 6 test(s)
14:38 dalek :     S12-methods/multi.t aborted 4 test(s)
14:38 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33441
14:44 jimmy joined #parrot
14:52 tewk irclog
15:03 tewk pmichaud: expected failure?
15:03 tewk t/spec/S05-mass/rx.rakudo                                    (Wstat: 3 Tests: 0 Failed: 0) Parse errors: No plan found in TAP output
15:03 pmichaud no, not expected.
15:03 tewk That fails and the two you mentioned above thats it.
15:03 tewk patch comming via nopaste.
15:04 tewk parrot tests all pass.
15:05 nopaste "tewk" at 155.97.237.62 pasted "subid_patch.diff" (1986 lines) at http://nopaste.snit.ch/14778
15:06 pmichaud tewk: maybe we should do some of this in a branch?  It would make updating tests easier.
15:06 jimmy joined #parrot
15:07 pmichaud because I wouldn't have to worry about 'make test' failures :-)
15:15 nopaste "tewk" at 155.97.237.62 pasted "prove t/spec/S05-mass/rx.rakudo" (13 lines) at http://nopaste.snit.ch/14779
15:15 tewk is fixing that one test going to be a lot of work?
15:17 Andy joined #parrot
15:30 * Coke finally bothers to figure out the cmd equivalent of rm -rf foo
15:30 lathos deltree?
15:30 Coke CURSE YOU!
15:31 Coke no, I got "del foo /f /s /q"
15:31 Coke ah, deltree isn't in my %PATH%
15:32 lathos Ah: Deltree isn't present in Windows NT-based operating systems, including Windows NT, Windows 2000, Windows XP, Windows Server, or Windows Vista. Instead, the rd or rmdir (remove directory) command removes a subdirectory along with all its files if the /s command-line switch is present.
15:32 lathos It's been a very long time since I used Windows.
15:33 Coke rd will save me some keystrokes. (but not many since I still need "/s /q" =-) Thanks.
15:34 Coke I just got sick of typing "start ." and using explorer.
15:41 Hadi joined #parrot
15:42 Hadi left #parrot
15:42 Hadi joined #parrot
15:42 Hadi left #parrot
15:44 pmichaud tewk: you did "prove"?   Try "make" instead.
15:45 pmichaud "prove" doesn't fudge the test.
15:45 pmichaud actually, "prove" does it using Perl 5.  :-(
15:46 masak pmichaud: not if you prove -e perl6
15:47 pmichaud the error message tewk got appears to be perl 5 :-)
15:48 pmichaud and does -e perl6 require the perl6 fakecutable?
15:48 * pmichaud learns about prove -e ...
15:53 Coke "prove -e ./perl6" fails here in languages/perl6
15:53 tewk I did make spectest and got the failure.
15:53 tewk Then I ran prove to see the details.
15:54 tewk how do I run one specific test?
15:56 tewk ../../parrot perl6.pbc t/spec/S05-mass/rx.rakudo
15:58 masak pmichaud: it does, as far as I've been able to find out.
15:58 tewk Parrot VM: PANIC: Out of mem!
15:58 * masak always makes perl6, just for the joy of it
15:59 PerlJam masak: heh, me too.
15:59 masak feels a bit like Christmas.
16:06 pmichaud to run just one test (with fudging), use "make t/spec/S05-mass/rx.t"
16:06 pmichaud I'm not surprised that rx.t might run out of memory.
16:07 pmichaud although if it doesn't do it before the changes you made, I'd expect either a memory leak somewhere or else rx.t is running really close to the memory limit on your machine.
16:07 tewk I've got 4GB, don't know what the GC max is
16:08 Coke gc will eat all memory if you let it.
16:08 Coke (we should fix that.)
16:09 tewk I added a free for my one malloc, hmmm
16:19 PacoLinux in my machine, make t/spec/S05-mass/rx.t works :  Files=1, Tests=745, 70 wallclock secs ( 0.26 usr  0.02 sys + 62.97 cusr  2.76 csys = 66.01 CPU) Result: PASS and maxed at about 800Mb
16:20 * moritz wonders if all these regexes are ever freed
16:21 * Coke updates some wikipedia, including adding a reference to the parrot foundation on Allison's page.
16:24 * Coke gets perl6 spectest failures in trunk.
16:24 moritz Coke: there are 2 to 3 known failures atm
16:25 moritz multi.t, declaration-order.t and another one
16:25 tewk just those two I thought
16:25 Coke ok. spectest is -supposed- to be all passing, neh?
16:26 moritz Coke: it is, but somebody borked something in parrot, which broke rakudo
16:26 Coke (also, a lot of unitialized value warnings)
16:26 Coke moritz: I'm familiar with that problem.
16:26 moritz Coke: I know.
16:27 dalek r33442 | kjs++ | trunk:
16:27 dalek : [pirc] add files for bytecode generator. some data structures are defined, but details will be filled in later. Long term goal is to create a separate library for these files, which is why they should not have any dependencies on pirc data structures/resources.
16:27 dalek : + update MANIFEST.
16:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33442
16:27 Coke glad to see your test suite works in ||, though.
16:28 moritz I'd be lost without that feature :-)
16:32 Coke I would add it, but it's not worth it if I'm going to eventually just use tcltest.tcl
16:32 Coke (better to add support there)
16:33 nopaste "Coke" at 72.228.52.192 pasted "my perl6 failures." (10 lines) at http://nopaste.snit.ch/14780
16:35 pmichaud Coke:  those are known/expected at the moment.
16:35 pmichaud oh, I'm going to turn off the "uninitialized value" warnings for now.
16:36 particle pmichaud: i can spend some cycles fixing those today i think
16:37 particle i can do it from an old rev if you want to turn it off
16:37 moritz particle: many of them are unavoidable
16:37 particle oh?
16:37 moritz I thought you meant fixing the tests
16:37 particle i don't understand how that can happen
16:37 particle i do mean fixing the tests
16:37 moritz we test stuff like 'my $x; 1 == ++$x'
16:37 moritz that should give a warning
16:38 moritz and we can't test that feature without warning
16:38 Coke which you should catch and verify, neh?
16:38 particle do we have 'no warnings' working?
16:38 moritz particle: no, we don't
16:38 Coke the warnings shouldn't be sent out with the test harness output...
16:38 moritz Coke: warnings aren't catchable yet
16:38 Coke moritz: k
16:38 particle the warnings are exceptions, are they not?
16:39 moritz rakudo: say try { 1 + undef }
16:39 polyglotbot No output (you need to produce output to STDOUT)
16:39 pmichaud the messages are not yet part of exception handling
16:40 moritz 17:39 < p6eval> rakudo 33441: OUTPUT[Use of uninitialized value#1#]
16:40 pmichaud because we don't have default exception handlers in placed yet.
16:40 pmichaud (...because resumable exceptions don't completely work, last time I checked)
16:41 moritz so the plan is to make them exceptions, and install a global handler that prints them, and then resumes?
16:42 pmichaud yes.
16:48 Tene polyglotbot is currently dead because parrot segfaults mysteriously on feather3 again.
16:48 Tene I'm pretty sure that feather3 is just badly broken.
16:49 Infinoid mysteriously?  got a backtrace?
16:49 tomyan left #parrot
16:49 Tene I don't.
16:49 Coke how are you building parrot?
16:50 particle i'll miss parrotsketch, gotta get a crown on my molar now &
16:50 Coke (parrot seems to work mostly fine on feather)
16:50 Tene It just looks the same as it did last time, and I remember that last time it didn't make any sense at all, so I blamed the OS.
16:50 Tene Coke: feather3
16:50 purl feather3 is screwed up. or the virtual host on which evalbots run
16:50 Infinoid feather3 has no gdb. :(
16:50 Tene Infinoid: you could install it
16:50 Coke I have no access to feather3.
16:50 Coke I'm assuming that it's configured similarly to feather, however, which works.
16:50 Infinoid Tene: I'll do so after svn finishes updating
16:51 Tene Anyone have word on PDS reimbursements?
16:51 Coke particle is a slacker. Other than that, no.
16:51 Coke I haven't seen a ping to the directors list.
16:51 Coke I'll send one now.
16:51 Tene Thank you.
16:51 Coke er... when I return from lunch.
16:52 Tene It's going to become an issue for me sometime soon.  I was expecting to have it going by now.
16:55 Infinoid feather3 also desperately needs ccache.
16:56 Theory joined #parrot
16:59 moritz that can be installed easily.
16:59 Infinoid (first I'm seeing whether I get any segfaults from "make test")
17:00 Infinoid uh, all tests successful
17:00 purl make install NAO!
17:00 moritz ccache installed.
17:01 moritz Infinoid: anything else I can do for your while wearing my root-hat on feather3?
17:02 Infinoid nah, I've already installed gdb, I should be good
17:02 Infinoid looks like at least one of Tene's parrot checkouts is hosed.  cleaning that up now
17:06 Infinoid Tene: weird, your parrot-build2 dir was apparently checked out from file:///srv/svn/parrot/trunk (which doesn't exist?)
17:07 Tene That's weird.
17:07 Tene ENOCLUE
17:07 * Infinoid moved it out of the way and made a fresh checkout
17:07 moritz Infinoid: that's my fault... I rsync'ed it from a different host once
17:07 sjansen joined #parrot
17:07 Infinoid ah, ok
17:07 moritz at that time feather3's svn threw only errors
17:16 Infinoid rakudo: say 1
17:16 polyglotbot No output (you need to produce output to STDOUT)
17:16 dalek r33443 | fperrad++ | trunk:
17:16 dalek : [Lua] mathx
17:16 dalek : - add some function (need method in LuaNumber PMC)
17:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33443
17:18 Infinoid infinoid@feather3:/home/tene/parrot$ ./parrot languages/perl6/perl6.pbc -e 'say 1'
17:18 Infinoid 1
17:18 * Infinoid tries to figure out exactly what pbot is trying to run.
17:23 Tene Infinoid: connect to the screen session and you should be able to see, I think.
17:28 Infinoid okay.  calling parrot the same way from the command line works fine
17:30 polyglotbot joined #parrot
17:30 Infinoid rakudo: say 1
17:30 polyglotbot No output (you need to produce output to STDOUT)
17:32 Infinoid ... it even works when I use the sampe tmpfile (I temporarily hacked in a cp to /tmp/last for testing)
17:32 Infinoid s/sampe/same/
17:35 Infinoid it's apparently something in the screen session's environment
17:35 nopaste "Infinoid" at 96.238.213.50 pasted "backtrace under screen on feather3" (19 lines) at http://nopaste.snit.ch/14782
17:39 tewk Infinoid: thats bad, looks like a jitted NCI problem.
17:39 tewk Can I get on and look at that tonight?
17:40 Infinoid I think it's moritz's box
17:41 tewk Well if someone gives me credentials, I'll look at it tonight.
17:42 Infinoid it's odd that it crashes in tene's screen session but not in my login.  I'm pawing through the various stuff in %ENV now, suspect maybe a difference in locales or somesuch.
17:43 tewk Infinoid: go to the frame above the jitted code and print the strings in the nciinfo struct
17:43 Infinoid will do in a moment; cron just decided to rebuild parrot out from under me
17:44 tewk or better yet run with -tf
17:44 tewk or better yet run with -t5
17:46 Infinoid 196 setattribute P0, "$.from", P9    P0=Object(P# Back in sub 'parrot;Perl6;Grammar;MARK_STATEMENT_END', env 811275c
17:47 Infinoid (apparently it didn't have a chance to output the rest of that Object() part.
17:48 Infinoid okay, I can reproduce this in my own account.  segfaults in screen, runs normally otherwise.
17:49 nopaste "Infinoid" at 96.238.213.50 pasted "last page or so of -t5 output" (35 lines) at http://nopaste.snit.ch/14783
17:49 Infinoid I still think it has to be something in %ENV
17:51 tewk I should add a flag to run without jitted nci.
17:54 Infinoid (gdb) print nci_info->signature->strstart
17:54 Infinoid $5 = 0xb7655b90 "PJt"
17:54 Infinoid (gdb) print nci_info->pcc_params_signature->strstart
17:54 Infinoid $7 = 0xb7655b98 "S"
17:54 Infinoid nci_info->func is just a generic pointer, gdb doesn't know what to make of it.
17:56 tewk nci_info->func is the jitted code, raw machine instructions, no gdb info.
17:57 tewk yeah that isn't too helpfull.
17:57 tewk comment out tools/build/nativecall.pl and run make to turn off jitted nci
17:58 tewk line 308 that is
17:59 Wknight8111 joined #parrot
18:00 barney joined #parrot
18:05 * jhorwitz had a meeting cancellation and can attend #ps this week
18:07 alvar joined #parrot
18:09 alvar joined #parrot
18:16 Infinoid tewk: runs fine with CAN_BUILD_CALL_FRAMES commented out.
18:17 jrockway joined #parrot
18:17 Infinoid (sorry about the delay, this vm is fairly heavily loaded.)
18:18 tewk weird, the reaffirms the fact that tewk is not the best human assembler
18:20 Infinoid I haven't yet figured out what environmental factors are needed to trigger this bug.
18:20 Infinoid it happens in tene's checkouts on feather3, when running in a screen session.  It doesn't happen with the same binaries running outside of screen, and it doesn't happen in my own checkouts, on the same machine, built in the same way.
18:21 tewk does it happen in your checkouts in screen?
18:21 Infinoid and it happens in tene's checkouts regardless of which user is running the binary
18:21 PerlJam Infinoid: then the problem must be feather3 + screen
18:21 Infinoid no, it doesn't seem to.
18:21 PerlJam Infinoid: then the problem must be tene + feather3 + screen
18:22 tewk + tewk's generated machine code.
18:22 Infinoid yeah, /home/tene + feather3 + screen
18:22 Infinoid which seems bizarre.
18:23 * Infinoid continues trying to figure out whether %ENV is involved
18:24 bacek joined #parrot
18:26 Infinoid the fact that it only happens in tene's checkouts, and that those checkouts are rebuilt every 20 minutes by cron, makes tests involving local code modifications a little tricky.
18:29 allison joined #parrot
18:29 masak joined #parrot
18:31 Coke clock?
18:31 purl Coke: LAX: Tue 10:31am PST / CHI: Tue 12:31pm CST / NYC: Tue 1:31pm EST / LON: Tue 6:31pm GMT / BER: Tue 7:31pm CET / IND: Wed 12:01am IST / TOK: Wed 3:31am JST / SYD: Wed 5:31am EST /
18:31 Coke time?
18:31 purl hmmm... time is 18:31:26 2008 and (did you mean "clock"?) or flowing like a river
18:31 Coke I feel out of the loop. PS now?
18:31 masak it is indeed time.
18:32 PerlJam Coke: looks like you're running the show :)
18:35 chromatic joined #parrot
18:43 ff-wonko joined #parrot
18:45 dalek r33444 | kjs++ | trunk:
18:45 dalek : [pirc] moving bctest stuff into bcgen.c.
18:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33444
18:53 chromatic Tene, the first step in Pheme is adding operator precedence, to fix the one weird warning.
18:54 jhorwitz masak: november doesn't seem to like being called from a non-root URL (e.g. http://example.com/wiki) -- is there any easy way to get around that right now w/o rewrite magic?
18:56 Tene the lexicals fix can be removed from the release blockers list
18:57 masak jhorwitz: are we talking before or after the dispatch branch that just went into master?
18:58 jhorwitz hm, not sure which i pulled down
18:58 masak when?
18:58 masak jhorwitz: either way, I don't think that "without rewrite master" is possible now
18:58 masak if you have any ideas, please let me know
18:58 jhorwitz i pulled a tarball from 11/30
18:58 masak that's with the dispatch branch merged
18:58 jhorwitz ok
18:59 masak you can tell from having a file Dispatch.pm in p6w/
18:59 masak s/rewrite master/rewrite magic/
18:59 jhorwitz well....in CGI-land you could use PATH_INFO instead of REQUEST_URI
18:59 masak ooh!
18:59 masak this sounds like something ihrd might want to know about
18:59 masak I'll paste this for him later
19:00 jhorwitz excellent.  i'll make the change in my local copy for testing
19:01 jhorwitz there really aren't that many changes.  made relative paths absolute (chdir==BAD in mod_perl6) and some tweaks for POST data, since i can't tie to STDIN yet.
19:01 masak jhorwitz: if you change something in November and it's provably better, please send a patch
19:01 jhorwitz will do.  i'm on the list now
19:01 Infinoid tewk: well, I've verified that the screen/no-screen thing has nothing to do with %ENV.  I know that isn't very helpful...
19:02 masak jhorwitz++
19:02 * jhorwitz needs to get git
19:02 jhorwitz that was fun to say
19:02 tewk Infinoid: thanks
19:02 Coke obra++
19:02 Coke (hiveminder)
19:03 tewk jhorwitz: http://git.or.cz/ - do it now :)
19:03 * jhorwitz gits right on it
19:04 jhorwitz Wknight8111: beer is in our future
19:04 masak git++ # making the world a happier place
19:04 Wknight8111 yes, jhorowitz we definitely need to get together
19:04 Wknight8111 what are you up to next weekend?
19:04 jhorwitz free
19:05 jhorwitz prob busy one night, but am free to pick which one.  :)
19:05 Wknight8111 I'm probably mostly free too. Let's pencil in something
19:07 jhorwitz coolio.  :)
19:11 pmichaud jhorwitz: you'll be gratified to know there are now _two_ projects wanting interpolated namespaces.
19:11 jhorwitz oooh, so i'm not the only nag.  ;-)
19:16 Tene pmichaud: I know that the bug with resumable exceptions was fixed back before your lexical merge with all the context refcounting updates, but it looks like it's back again.
19:16 Tene More details coming later.
19:17 pmichaud Tene: I might've removed or otherwise undone the "fix"
19:17 pmichaud (which really wasn't a correct fix)
19:17 pmichaud I think the reference count needs to be part of the ExceptionHandler
19:17 pmichaud and not 'throw'
19:18 Tene That patch is still in the throw op, though.
19:18 pmichaud okay.  it probably shouldn't be there.
19:18 Tene Should be removed, perhaps.
19:23 Coke (dragons) it's worked for a while, anyway. =-)
19:23 Coke pmichaud: languages/tcl/src/class/tclproc.pir ; it's used in languages/tcl/runtime/builtin/proc.pir
19:24 Tene pmichaud: so exceptionhandler.pmc's invoke() needs to find the args it was called with, extract the retcontinuation from the exception, ref it, and then put it back for the pir to get in .get_results?
19:25 Tene That seems wrong to me.
19:25 pmichaud Tene: no, the exceptionhandler.pmc should probably refcount the context when it's set_pointer
19:25 pmichaud i.e., when the exceptionhandler is tied to a context
19:26 pmichaud checking again (a little distracted here at the moment)
19:26 Tene That just falls back to continuation.pmc's set_pointer
19:26 Coke (tclproc) - I'm basically using it to store attributes on a Sub.
19:26 Coke (but I think I need it to do more, like supporting "get_string")
19:27 pmichaud Tene:  I think the underlying problem is that ExceptionHandler expects its (ret)continuations to pin the context, when the ExceptionHandler should be doing it.
19:28 pmichaud I could be wrong about that -- looking more closely now.
19:28 Lorn joined #parrot
19:28 pmichaud Yes.
19:29 pmichaud ExceptionHandler's mark() function isn't using SUPER, so the things that would normally be marked within Continuation aren't being done by ExceptionHandler
19:29 pmichaud and thus it loses contexts.
19:29 pmichaud (because they aren't marked.)
19:29 pmichaud cf:  the mark() function in continuation.pmc
19:30 Wknight8111 coke++
19:30 Coke Wknight8111: ?
19:30 dalek r33445 | kjs++ | trunk:
19:30 dalek : [pirc] cleanup bytecode gen.
19:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33445
19:30 Wknight8111 Coke, you're just awesome
19:30 pmichaud possibly a similar issue with destroy(), too.
19:30 Coke True.
19:31 pmichaud "There is no charge for awesomeness."  -- Po
19:32 Coke "One day, in teletubby land, it was Po's turn to wear the skirt."
19:32 * Coke tries to do a merge on some crufty old code and fails miserably.
19:32 Coke (nonparrot)
19:36 skv_____ joined #parrot
19:37 mj41_ joined #parrot
19:37 skv______ joined #parrot
19:37 Tene pmichaud: are you going to work on that, or do I need to schedule an at job to ask myself to work on it tonight?
19:38 bacek morning everyone
19:38 pmichaud Tene: I can't work on it at the moment; I'll leave it in your hands for now... okay?
19:38 Tene That's fine.
19:38 pmichaud it doesn't have to be done "today", but we'll want it soon if we're to get loop constructs into PCT by the dec release
19:38 pmichaud and I have a couple of other items to work on
19:41 Tene Okay, calling SUPER() in EH.pmc's mark() doesn't help at all.  It refers to RT 46703, a request for ref_count handling for EHs.
19:41 Hadi joined #parrot
19:42 * Tene lunch.
19:42 Hadi left #parrot
20:09 donaldh joined #parrot
20:11 apeiron joined #parrot
20:17 Coke when you do an svn merge of an existing file in the pre-1.5 world, does it keep track of where your changes came from?
20:18 Coke (it only does that for new files that are 'svn cp'd in, neh?)
20:22 Coke bah. This is failing hard enough, I'm considering doing an rm trunk and then a cp of the branch back to trunk. (where the hell are these conflicts coming from.)
20:24 Wknight8111 rm parrot trunk?
20:27 Coke (nonparrot)
20:28 Wknight8111 ENOTPARROT
20:28 Wknight8111 if it's not parrot, then I'm fine with you deleting trunk :)
20:29 Coke meh. I think that's going to be the easiest way to cut this knot.
20:29 Coke (then I can do the right thing on branches going forward.)
20:29 Wknight8111 (do the right thing)++
20:40 dalek r33446 | kjs++ | trunk:
20:40 dalek : [pirc] more bcgen work. this whole thing needs more thought and work, but this is a start.
20:40 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33446
20:41 * Coke cuts the gordian knot so he can get actual work done and stop working on merge conflicts.
20:45 davidfetter git!
20:46 bacek git!
20:46 Coke git is not an option in my work environent, and wouldn't have helped with the cvs conversion bit.
20:46 bacek btw, is github alive? I can't push anything to it...
20:46 * Coke will be fine going forward now. =-)
20:53 ffwonko joined #parrot
21:14 dalek r33447 | kjs++ | trunk:
21:14 dalek : [pirc] link bcgen to pirc sources. Use -b option to generate PBC. Unfortunately, doesn't work yet (wrong instructions in pbc file, but it /can/ be disassembled, which is good.)
21:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33447
21:15 dalek r33448 | kjs++ | trunk:
21:15 dalek : [config] add bcgen to file to link with pirc.
21:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33448
21:21 * Coke recent msvc question on list makes me wonder if we should stall all the OS X bugs that use gcc 3.3 or 10.3 and earlier.
21:22 chromatic Why not reject?
21:23 Coke seems harsh.
21:24 chromatic Seems realistic to me.
21:24 chromatic Without someone motivated to fix them, we don't have the time, expertise, or inclination to fix them.
21:30 Coke true; email sent asking what we have to work with.
21:31 Coke will give us an idea of the cutoff (and who we can press into service)
21:32 Coke I think we could also use someone familiar with building on OS X: I /think/ you can cross compile on newer versions to target older ones.
21:34 Coke stalled seems like a soft reject. "We'd like to eventually work on this, but we just don't have the manpower."
21:35 chromatic Stalled implies we might someday get around to it.  I don't believe that's true.
21:35 chromatic What's the value in promising that for a two year old bug on an OS no one cares about for code that may not even exist?
21:38 Coke your question makes me wonder when stalled could ever be appropriate.
21:38 ff-wonko joined #parrot
21:38 pmichaud I stall bugs that I know I'm getting around to eventually, but not at the moment.
21:39 pmichaud some PGE bugs are that way.
21:39 Infinoid I would call my PDD13 bytecode stuff "stalled", unfortunately.
21:39 Coke why not leave them open?
21:39 pmichaud because "stalled" indicates to others that "yes, we know about this, but it's not likely to happen soon"
21:39 Coke (this is academic if we're moving to trac, i suppose)
21:39 Coke pmichaud: so would you side with me about bugs reported against a report parrot with an old os?
21:39 chromatic I can see stalling bugs where we need information from a submitter but it doesn't seem forthcoming.
21:40 Coke (that they should be stalled and not rejected outright?)
21:40 pmichaud I don't know that I have a side there.  But if there's little likehood they'll be fixed (or that other events will subsume them) then I'd probably reject them outright.
21:40 Coke (anything against and old /parrot/ is rejectable if they can't duplicate against trunk/latest release.)
21:41 pmichaud for example, if someone posted "Rakudo doesn't run on HP-UX" but I don't have a HP-UX box available (and nobody is forthcoming with one after several months), I'd probably reject the ticket.
21:41 Coke the jujitsu on that ticket is to bring the bug reporter into the dev community.
21:41 Coke (and make him finish the port.)
21:42 pmichaud sure, I've tried that in a few cases.
21:42 pmichaud "nobody is forthcoming with one"  implies (to me at least) that we did ask the submitter for help.
21:42 pmichaud and the submitter didn't respond.
21:42 Coke yup.
21:42 chromatic Anything stalled for six months gets the big red axe.
21:42 Coke /anything/ ?
21:42 purl i heard /anything/ was available to Maketext
21:42 chromatic Huh.  Now I realize the significance of the fan in "The Big U".
21:42 Coke the big u?
21:42 purl the big u is fun too
21:43 Coke ah
21:43 chromatic Neal Stephenson's first novel.  It's... not great.
21:43 Coke the big u is http://en.wikipedia.org/wiki/The_Big_U
21:43 masak joined #parrot
21:45 Coke when rejecting a very old ticket, is it worth cc'ing the list (from RT? I know trac will auto post to the list)
21:45 Coke I'd vote yes.
21:45 chromatic Yes.
21:45 pmichaud when in doubt, I err on the side of cc'ing the list.
21:45 chromatic I use those to know what messages to delete.
21:55 Infinoid Coke++
21:58 Coke Infinoid: Hurm?
21:58 purl Yes, Rorschach.
21:58 Coke bite me, purl.
21:58 purl Coke: excuse me?
21:58 Coke purl, bite me.
21:58 purl Coke: huh?
22:00 gryphon joined #parrot
22:01 Infinoid Coke: rt mongering
22:02 Coke is there a way to find out when a file stopped existing other than doing a bisect?
22:02 Coke (which is hard because I don't when it was added, either)
22:02 Infinoid hmm, maybe looking at the MANIFEST log
22:03 PerlJam Coke: parse the log ?
22:03 moritz maybe you can get a blame log somehow?
22:04 chromatic Post-singularity, you can create 33448 separate universes, ask each one "Does this file exist?" and get back one bit from each of them.
22:04 chromatic The coalescing function is trivial to write.
22:05 Infinoid I've always had to do a bisect.  svn seems really insistent about not letting you see the metadata of deleted files.
22:05 chromatic Provided you understand string theory, anyway.
22:06 Infinoid given infinite parallel universes, lots of things are O(1).
22:06 Coke perljam; the log doesn't show you the affected files.
22:06 Coke (unless there's an option I don't normally use.)
22:07 PerlJam svn log -v  ?
22:07 Coke ayup.
22:07 Coke this should only take a week...
22:08 PerlJam What's the file?
22:08 * Coke realizes he can run it on the subdir itself...
22:12 * Coke realizes he doesn't care.
22:16 PerlJam you give up after 4 minutes?
22:17 PerlJam the forensics just isn't that important to you anymore?
22:17 Coke nope.
22:17 particle coke: how about svn ls -r rev url
22:17 Coke It was so I could put in a revision in a ticket that I was rejecting.
22:18 Coke the ticket was opened -4 years ago-
22:18 Coke RT #31046 if you want to do the forensics.
22:19 donaldh Hi, PIR / PMC question. I'm trying to access the pointer inside an UnManagedStruct PMC as a char*. I'm not sure how this is intended to work.
22:20 Coke I think that sounds more like a C question than a PIR question. No?
22:20 donaldh An NCI function is returning an UnManagedStruct for an unsigned char* and I'm trying to treat it as a string.
22:21 Coke Ah.
22:21 Coke (i can't help you, but that sounds like a well asked question. =-)
22:21 PerlJam donaldh: wait ... an NCI function gives you a PMC which you can then assign to $S0 or something ... or do I have the wrong end of the stick?
22:21 donaldh the error is get_string() not implemented in class 'UnManagedStruct'
22:21 Coke who does our win32 bundles? You can have RT#6 60986.
22:21 donaldh So I need to dive into the UnManagedStruct to get what I want.
22:22 Coke looking at the perldoc of an UMS, I might expect this to work:
22:22 Coke $S0 = result_pmc.'ret_string'()
22:23 Coke (It takes args: I don't know what they mean, though.)
22:23 PerlJam donaldh: I think you're using "p" for the  return type when maybe you want "t"
22:23 PerlJam ?
22:24 Coke I defer to perljam. =-)
22:24 Coke ->
22:24 donaldh PerlJam: yep, you're absolutely right there. But I'm trying to use the new-fangled ncigen compiler where I don't have control over the signature used.
22:24 PerlJam oh.
22:24 PerlJam Then I defer to whomever wrote that :)
22:25 japhb joined #parrot
22:25 donaldh Someone had the wisdom to map unsigned char* to p
22:25 donaldh Maybe that's just a bug.
22:25 * PerlJam hasn't use the ncigen thingy yet, and so couldn't say
22:26 PerlJam it feels buggy, but maybe the logic is good.
22:26 donaldh But it does highlight the issue that perhaps the same set of mappings isn't right for all autogenerated NCI bindings
22:27 donaldh It's interesting because I tried ncigen when it was on a branch and got things working.
22:27 tewk donaldh: is this a char** OUT
22:27 donaldh tewk: no it's an unsigned char* return value.
22:27 tewk ahh
22:28 donaldh const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
22:28 tewk have you tried "t" as the return signature.
22:28 tewk "tpi"
22:28 particle coke: fperrad does the win32 installable
22:28 donaldh I'm assuming that will work. (it did previously).
22:28 tewk it should
22:28 donaldh But I was hoping to coerce the UnManagedStruct to work too ;-)
22:29 tewk no that is the wrong path.
22:29 tewk for opaque pointers just use Pointer.
22:29 chromatic You'd have to add a mapping to the UMS so that its first member is an unsigned char *, but in that case you may run afoul of alignment problems.
22:29 donaldh okay, t works.
22:30 tewk donaldh: have you seen ext/SQLite3
22:30 donaldh So I guess we could change the return value mapping for unsigned char*
22:30 donaldh Uh, no I haven't
22:30 PerlJam donaldh: simon cozens just did that within the last couple of weeks.
22:31 PerlJam donaldh: maybe you could merge your work with his (if appropriate)
22:31 tewk I'm trying to write a perl6 program that uses ncigen to autogenerate sqlite bindings
22:31 tewk nopaste coming
22:32 nopaste "tewk" at 155.98.69.7 pasted "ncigen_attempt_on_sqlite3.diff with manual fixups" (605 lines) at http://nopaste.snit.ch/14784
22:32 donaldh tewk: that's where my thoughts were going too (the per6 program)
22:33 davidfetter joined #parrot
22:34 nopaste "tewk" at 155.98.69.7 pasted "sqlite_interface_generator.pl" (35 lines) at http://nopaste.snit.ch/14785
22:35 donaldh tewk: using Pointer for an opaque struct such as struct sqlite3* , my program crashes when GC kicks in.
22:35 nopaste "tewk" at 155.98.69.7 pasted "compilers/ncigen/compreg.pir" (2 lines) at http://nopaste.snit.ch/14786
22:36 donaldh I switched to UnManagedStruct for opaque pointers because Pointer tries to manage the pointer
22:36 chromatic Pointer or CPointer?
22:36 tewk donaldh: look at how ext/SQLite3 does it.
22:36 donaldh Pointer _and_ CPointer
22:37 PerlJam tewk++  that's awesome  (reading the source to ncigen for the first time)
22:37 donaldh PerlJam: it is nice isn't it.
22:38 tewk I'll just check it in.
22:38 dalek r33449 | tewk++ | trunk:
22:38 dalek : [ncigen] perl6 start to autogenerating interfaces
22:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=33449
22:39 donaldh I imagine an API for opening a lib where you supply libname and header name. It would autogenerate the NCI bindings from the header and cache the result.
22:39 tewk ncigen does that.
22:39 donaldh Cache the NCI bindings?
22:40 PerlJam donaldh: you mean cache on disk or in ram?
22:40 donaldh disk.
22:40 donaldh For future runs.
22:40 tewk I want the perl6 script to take the ncigen ast and massage the generated stubs to be more friendly and pretty.
22:40 donaldh tewk: sounds good.
22:40 tewk donaldh: it just generated pir, but it wouldn't be hard to eval the pir
22:41 PerlJam yeah, that's what I thought.  It would be neat if loadlib somehow knew to look for the NCI stuff on disk
22:41 * tewk back to work.
22:41 tak joined #parrot
22:41 PerlJam (so you automatically get the NCI interfaces for whatever .so you're loading)
22:42 tewk PerlJam: just write a custom opcode "loadlibnci" that does the loadlib and then loads the bindings.
22:42 tewk from say runtime/parrot/nci/bindings.
22:42 nopaste "donaldh" at 213.123.171.12 pasted "sample using the ncigen generated sqlite3 bindings" (56 lines) at http://nopaste.snit.ch/14787
22:45 tewk I don't think Pointer manages the pointer
22:46 donaldh Perhaps not, but it crashes and corrupts the stack after 90ish iterations of my sample.
22:48 donaldh If I run with gcdebug then the problem shows up in mark()
22:48 chromatic Its mark looks wrongish.
22:48 chromatic Stuff the variable assignment in the if block and it might work better.
22:48 chromatic Though I don't see how anything sets a mark function on it.
22:49 ruoso joined #parrot
22:49 davidfetter who's at osdc?
22:49 davidfetter (besides Yours Truly)
22:56 nopaste "donaldh" at 213.123.171.12 pasted "a more complete sample using the ncigen generated sqlite3 bindings" (77 lines) at http://nopaste.snit.ch/14789
23:01 donaldh chromatic: should Pointer mark() maybe do nothing?
23:03 TiMBuS joined #parrot
23:04 chromatic Not necessarily, but it's clearly marking at the wrong time.
23:04 donaldh how do I go about checking in my sqlite3 example? It's more complete than ext/SQLite3
23:10 tewk do you have a commit bit
23:11 donaldh tewk: nope
23:13 allison joined #parrot
23:13 tewk cla
23:13 tewk come on purl
23:13 particle cla?
23:13 purl hmmm... cla is Contributor License Agreement or http://www.perlfoundation.org/​contributor_license_agreement
23:19 donaldh tewk: thanks. Is that superseded by the ParF cla ? http://www.parrot.org/foundation/legal
23:20 tewk actually do the parrot one.
23:20 donaldh k
23:20 tewk purl cla is also http://www.parrot.org/foundation/legal
23:20 purl okay, tewk.
23:20 donaldh g'night
23:27 jonathan hi all - I'm back :-)
23:37 bacek_ joined #parrot
23:57 chromatic Good, there are Perl6MultiSub errors for you!

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

Parrot | source cross referenced