|
Parrot 0.8.1 "Tio Richie" Released | parrot.org | 588 RT | 11 trac Set by moderator on 1 December 2008. |
|||
| 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 | ||
| come to think of it, I think that has more to do with traveling with others (family) than about getting old | 00:01 | ||
|
00:01
tetragon joined
|
|||
| davidfetter | anybody at osdc? | 00:06 | |
| chromatic | TimToady, I hear. | ||
| 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. :- | ||
| ) | |||
| davidfetter | Limbic_Region, i just had a birthday that's 0 (mod 10), but i still love to travel :) | ||
| davidfetter @ OSDC | |||
|
00:09
AndyA joined
00:12
gmansi joined
|
|||
| dalek | r33433 | tewk++ | trunk: | 00:15 | |
| : [pirc] svn:ignore | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33433 | |||
|
00:17
alvar_ joined
|
|||
| 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. | ||
| 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. | ||
| rt.perl.org/rt3/Ticket/Display.html?id=46893 | |||
| chromatic | All shells should have Perl 5 installed. | 00:21 | |
| Use $^X as the command to run. | |||
| kid51 | Ah! Of course! | 00:22 | |
| Thx | |||
| chromatic | I did that once before. It took a while before I realized I was making it too difficult. | ||
|
00:23
tak joined
|
|||
| dalek | r33434 | jkeenan++ | testparrottest: | 00:36 | |
| : Add a basic test for Parrot::Test::run_command(). chromatic++ for testing | |||
| : suggestion. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33434 | |||
| r33435 | jkeenan++ | testparrottest: | 00:38 | ||
| : For ease of editing during development, move POD to end of file. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33435 | |||
|
00:45
tak joined
|
|||
| Tene | So... any word on PDS reimbursements? | 00:58 | |
| I still haven't heard from particle | 00:59 | ||
| Coke | email directors@parrot.org with a poke. | 01:01 | |
|
01:05
tak joined
|
|||
| dalek | r33436 | jkeenan++ | testparrottest: | 01:05 | |
| : Rework some comments; no code changes. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33436 | |||
|
01:06
Theory joined
02:24
petdance joined
02:38
NotFound joined
03:00
rhr joined
03:15
NotFound joined
03:17
Debolaz joined
|
|||
| tewk | imcc makes me sick | 03:49 | |
| so does pbc generation. | |||
| uck | |||
| So the Fixup packfile segment looks to only be used to fixup across compilation units, do we even support that now? | 03:59 | ||
| I think chromatic was trying to tell me this at PDS, I just dodn | 04:00 | ||
| 't get it | |||
|
04:02
elmex_ joined
04:13
jimmy joined
04:24
Hadi joined
|
|||
| tewk | ping pmichaud | 04:59 | |
| purl | I can't find pmichaud in the DNS. | ||
| cotto | you have to add a .com ;) | 05:07 | |
| Hmmm. There don't appear to be many poems on the topic of segfaults. | 05:11 | ||
| Infinoid | msg Alias Any chance you can look at rt.perl.org/rt3/Ticket/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. | ||
| Infinoid | cotto: that's surprising, but I wouldn't really know where to look for such things. | 05:15 | |
| nopaste | "tewk" at 155.97.237.62 pasted "subid took way to long to figure out" (122 lines) at nopaste.snit.ch/14777 | 05:36 | |
| tewk | And yes it breaks things, fixups work different then I ever imagined, ugly really. | 05:38 | |
| pmichaud: we probably need to talk and decide .const and bare method resolution in pir should work. | 05:39 | ||
| It's subtle. | |||
|
05:47
Hadi1 joined
|
|||
| cotto | 77505%15 | 06:00 | |
| purl | 891.3075 | ||
| cotto | 77505 mod 15 | ||
|
06:05
Hadi joined
06:06
tetragon joined
|
|||
| lathos | What did purl just compute? | 06:07 | |
|
06:23
Theory joined
|
|||
| cotto | 77050% | 06:46 | |
| purl | 770.5 | ||
| cotto | %15 | ||
| 770.5 15 | |||
| 10%10 | 06:47 | ||
| purl | 0.11 | ||
| cotto | 10%100 | ||
| purl | 0.11 | ||
| cotto | 10%200 | ||
| purl | 0.12 | ||
| cotto | 10%2 | ||
| purl | 0.12 | ||
| cotto | 20%2 | ||
| purl | 0.24 | ||
| cotto | 20%1 | ||
| purl | 0.22 | ||
| cotto | 1%1 | 06:48 | |
| purl | 0.011 | ||
| cotto | 1%0 | ||
| purl | 0.01 | ||
| cotto | 0%0 | ||
| purl | 0 | ||
| cotto | 0%1 | ||
| purl | 0 | ||
| cotto | 1%10 | ||
| purl | 0.011 | ||
| cotto checks source | 06:51 | ||
| purl's source is questionable: | 06:53 | ||
| # what the hell is this shit | 06:54 | ||
| src/Modules/Math.pl:87 | |||
| cotto gives up | 06:58 | ||
|
07:04
Zaba joined
07:17
Zaba joined
07:21
alvar joined,
uniejo joined
07:32
Zaba joined
07:33
Hadi joined
07:35
Hadi left
07:36
jimmy joined
07:39
Zaba joined
07:43
spinclad joined
07:56
masak joined
07:59
skv___ joined
08:01
skv____ joined
08:06
iblechbot joined
08:23
Zaba_ joined
08:27
ff-wonko joined
08:52
bacek joined
08:56
cotto joined
09:10
tomyan joined
09:18
ChrisDavaz joined
09:23
cotto joined
09:28
tomyan joined
09:30
ChrisDavaz joined
09:32
cotto joined
09:41
MariachiElf joined
09:50
cotto joined
09:51
gaz joined
10:01
Ademan joined
10:02
particle joined
|
|||
| dalek | r33437 | kjs++ | trunk: | 10:10 | |
| : [pirc] add a bytecode test framework file. This is temporary, once I figured out How To Do It Properly, this file will go away. | |||
| : Update MANIFEST etc, accordingly, which apparently had to be done anyway for some other files. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33437 | |||
|
10:10
kj joined
|
|||
| dalek | r33438 | kjs++ | trunk: | 10:17 | |
| : [pirc] fix copyright and coda. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33438 | |||
| r33439 | kjs++ | trunk: | 10:19 | ||
| : [pirc] fix svn:keywords order. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33439 | |||
| r33440 | kjs++ | trunk: | 10:21 | ||
| : [t] fix svn props on subflags.t | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33440 | |||
|
10:35
elmex joined
10:40
ff-wonko joined
10:41
Theory joined
10:44
Zaba joined
10:52
skv____ joined
10:53
skv_____ joined,
ff-wonko joined
11:12
donaldh joined
12:01
iblechbot joined
12:10
Zaba joined
12:32
ffwonko joined
12:40
Lorn joined
12:58
clunker9 joined
13:04
davidfetter joined
13:08
ffwonko joined
13:18
ffwonko joined
13:44
Zaba joined
|
|||
| tewk | kj: We really need a bcgen library, but at least you have a working example. | 13:50 | |
| kj | tewk: yes, thanks a lot for your help | 13:54 | |
| pmichaud | tewk: pong | ||
| kj | tewk: I was planning to just walk PIRCs data structures and emit pbc; possibly later things can be done through a bcgen lib. | ||
| 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 | ||
| same as we do for method/nsentry/vtable | |||
| .const should always look up by subid. | |||
| each of the below should do the same thing: | 13:56 | ||
| .sub 'foo' | |||
| .sub 'foo' :subid | |||
| .sub 'foo' :subid('foo') | |||
| (end) | |||
| 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. | ||
| pmichaud | you mean for .const ? | 13:57 | |
| that would be... wrong. | |||
| tewk | ok I get the subid fallback, what do you think of what trunk does | ||
| kj | (find_sub_not_null_p_sc: and note that that op is still considered 'experimental'...) | ||
| tewk | YES | ||
| pmichaud | I don't know that I followed what trunk does. | ||
| tewk | Fixups aren't used, | 13:58 | |
| trunk attempts to lookup the sub in the constant table by sub name at compile time. | |||
| pmichaud | yes, I would expect .const to only find things at compile time. | ||
| 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
|
|||
| pmichaud | ...trunk currently does a find_sub_not_null? that seems wrong. | 13:59 | |
| tewk | yes, that is what suprised me | ||
| pmichaud | what happens if it doesn't do that? | 14:00 | |
| tewk | if the compile time lookup fails | ||
| pmichaud | do we then lose the standard 'foo'(...) lookup ? | ||
| i.e., are .const and named subroutine call using the same code? | |||
| tewk | No | ||
| yes | |||
| they use the same code. | |||
| pmichaud | ick. | ||
| from a "make it work" perspective, it doesn't bother me if .const does a fallback. | 14:01 | ||
| in all of the code that PCT will generate, the requested subid will be in the same compilation unit. | 14:02 | ||
| 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. | |||
| tewk | It has to be, because as far as I tell we don't do fixups across compilation units. | ||
| pmichaud | correct, we don't do fixups across compilation units. | 14:03 | |
| tewk | we punt and use find_sub_not_null_p_sc: | ||
| pmichaud | well, the find_sub_not_null was added not for .const but more for 'foo'(...) | ||
| 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
|
|||
| 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
|
|||
| pmichaud | I did have a question about str_dup_remove_quotes -- is that going to handle unicode names? | 14:06 | |
| 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 :-) | ||
| tewk | pmichaud: all it does is remove the first and last characters. because imcc returns strings including their quotes. | ||
| 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. | ||
| pmichaud | kj: yes, I understand this. | 14:09 | |
| tewk | I though that was one of the original reasons for the Packfile fixup segment, | ||
| kj | pmichaud: ok, just to be sure we're on the same level here :-) | ||
| 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. | ||
| 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. | ||
| because find_sub_not_null is actually subtly different than locating something in the same compilation unit. | |||
| 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. | ||
| so you can't really know until runtime _which_ sub will be invoked. | 14:12 | ||
| 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. | |||
| tewk | pmichaud: Hmmm. that may need some work. but my technique is repeated all over imcc. | 14:13 | |
| at least I put it in a function that we can reuse and improve. | |||
| kj | good thing this is discussed now, seems that some things need to be changed? | ||
| pmichaud | tewk: *something* in imcc must already be handling unicode:"...", though, because .sub unicode:"\\xab" already works. | 14:14 | |
| so why aren't we reusing that? | |||
| tewk | we probably should, but I bet it isn't encapsulated, I'll go look | ||
| 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() | ||
| kj | I think the prefix 'unicode:' is part of the string that's matched in the lexer | ||
| pmichaud | I suspect :vtable they decided not to handle unicode strings, because there are no unicode vtable methods. | ||
| also I think that the :vtable code was written before subs allowed unicode names. | |||
| tewk | I'm guessing at this point i need to go look. | 14:16 | |
|
14:16
ruoso joined
|
|||
| tewk | so should 'foo'() lookup be by sub name only? | 14:18 | |
| pmichaud | yes. | ||
| that lookup should be by subname. | |||
| I wouldn't expect it to look up by subid. | |||
| 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. | ||
| (however, then it would fail for anonymous subs.) | |||
| tewk | yep | ||
|
14:20
ff-wonko joined
|
|||
| 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. | ||
| tewk | well thats how it works now, 'foo'() and .const work the same, way. For now we are just adding subid, | 14:21 | |
| I think it will get us what we want and minimize work that is going to throw away. | 14:22 | ||
| be thrown away. | |||
| pmichaud | sure, works for me. | ||
| we might mention this in today's #ps | |||
| tewk | yes | 14:23 | |
| 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:26 | |
| tewk | no problem, the changes are minimal, I just had to spend hours figuring out imcc first :) | 14:27 | |
| test running now. | |||
| pmichaud: can you nopaste the subid tests again. I forgot to save them off. | 14:28 | ||
| we also need test where the nsentry/subid/vtable/method names are different from the method names. | 14:29 | ||
| pmichaud | yes, I've only been doing a few tests at a time. | 14:30 | |
| I have a _lot_ of tests to add. :-) | |||
| tewk | thats great, I appreciate the tests. | ||
| dalek | r33441 | pmichaud++ | trunk: | 14:38 | |
| : [rakudo]: spectest-progress.csv update: 227 files, 4689 passing, 10 failing | |||
| : Failure summary: | |||
| : S12-methods/default-trait.t aborted 6 test(s) | |||
| : S12-methods/multi.t aborted 4 test(s) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33441 | |||
|
14:44
jimmy joined
|
|||
| tewk | irclog | 14:52 | |
| pmichaud: expected failure? | 15:03 | ||
| t/spec/S05-mass/rx.rakudo (Wstat: 3 Tests: 0 Failed: 0) Parse errors: No plan found in TAP output | |||
| pmichaud | no, not expected. | ||
| tewk | That fails and the two you mentioned above thats it. | ||
| patch comming via nopaste. | |||
| parrot tests all pass. | 15:04 | ||
| nopaste | "tewk" at 155.97.237.62 pasted "subid_patch.diff" (1986 lines) at nopaste.snit.ch/14778 | 15:05 | |
| pmichaud | tewk: maybe we should do some of this in a branch? It would make updating tests easier. | 15:06 | |
|
15:06
jimmy joined
|
|||
| pmichaud | because I wouldn't have to worry about 'make test' failures :-) | 15:07 | |
| nopaste | "tewk" at 155.97.237.62 pasted "prove t/spec/S05-mass/rx.rakudo" (13 lines) at nopaste.snit.ch/14779 | 15:15 | |
| tewk | is fixing that one test going to be a lot of work? | ||
|
15:17
Andy joined
|
|||
| Coke finally bothers to figure out the cmd equivalent of rm -rf foo | 15:30 | ||
| lathos | deltree? | ||
| Coke | CURSE YOU! | ||
| no, I got "del foo /f /s /q" | 15:31 | ||
| ah, deltree isn't in my %PATH% | |||
| 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 | |
| It's been a very long time since I used Windows. | |||
| Coke | rd will save me some keystrokes. (but not many since I still need "/s /q" =-) Thanks. | 15:33 | |
| I just got sick of typing "start ." and using explorer. | 15:34 | ||
|
15:41
Hadi joined
15:42
Hadi left,
Hadi joined,
Hadi left
|
|||
| pmichaud | tewk: you did "prove"? Try "make" instead. | 15:44 | |
| "prove" doesn't fudge the test. | 15:45 | ||
| actually, "prove" does it using Perl 5. :-( | |||
| masak | pmichaud: not if you prove -e perl6 | 15:46 | |
| pmichaud | the error message tewk got appears to be perl 5 :-) | 15:47 | |
| and does -e perl6 require the perl6 fakecutable? | 15:48 | ||
| pmichaud learns about prove -e ... | |||
| Coke | "prove -e ./perl6" fails here in languages/perl6 | 15:53 | |
| tewk | I did make spectest and got the failure. | ||
| Then I ran prove to see the details. | |||
| how do I run one specific test? | 15:54 | ||
| ../../parrot perl6.pbc t/spec/S05-mass/rx.rakudo | 15:56 | ||
| masak | pmichaud: it does, as far as I've been able to find out. | 15:58 | |
| tewk | Parrot VM: PANIC: Out of mem! | ||
| masak always makes perl6, just for the joy of it | |||
| PerlJam | masak: heh, me too. | 15:59 | |
| masak | feels a bit like Christmas. | ||
| pmichaud | to run just one test (with fudging), use "make t/spec/S05-mass/rx.t" | 16:06 | |
| I'm not surprised that rx.t might run out of memory. | |||
| 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 | ||
| Coke | gc will eat all memory if you let it. | 16:08 | |
| (we should fix that.) | |||
| tewk | I added a free for my one malloc, hmmm | 16:09 | |
| 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:19 | |
| moritz wonders if all these regexes are ever freed | 16:20 | ||
| Coke updates some wikipedia, including adding a reference to the parrot foundation on Allison's page. | 16:21 | ||
| Coke gets perl6 spectest failures in trunk. | 16:24 | ||
| moritz | Coke: there are 2 to 3 known failures atm | ||
| multi.t, declaration-order.t and another one | 16:25 | ||
| tewk | just those two I thought | ||
| Coke | ok. spectest is -supposed- to be all passing, neh? | ||
| moritz | Coke: it is, but somebody borked something in parrot, which broke rakudo | 16:26 | |
| Coke | (also, a lot of unitialized value warnings) | ||
| moritz: I'm familiar with that problem. | |||
| moritz | Coke: I know. | ||
| dalek | r33442 | kjs++ | trunk: | 16:27 | |
| : [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. | |||
| : + update MANIFEST. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33442 | |||
| Coke | glad to see your test suite works in ||, though. | ||
| moritz | I'd be lost without that feature :-) | 16:28 | |
| Coke | I would add it, but it's not worth it if I'm going to eventually just use tcltest.tcl | 16:32 | |
| (better to add support there) | |||
| nopaste | "Coke" at 72.228.52.192 pasted "my perl6 failures." (10 lines) at nopaste.snit.ch/14780 | 16:33 | |
| pmichaud | Coke: those are known/expected at the moment. | 16:35 | |
| oh, I'm going to turn off the "uninitialized value" warnings for now. | |||
| particle | pmichaud: i can spend some cycles fixing those today i think | 16:36 | |
| i can do it from an old rev if you want to turn it off | 16:37 | ||
| moritz | particle: many of them are unavoidable | ||
| particle | oh? | ||
| moritz | I thought you meant fixing the tests | ||
| particle | i don't understand how that can happen | ||
| i do mean fixing the tests | |||
| moritz | we test stuff like 'my $x; 1 == ++$x' | ||
| that should give a warning | |||
| and we can't test that feature without warning | 16:38 | ||
| Coke | which you should catch and verify, neh? | ||
| particle | do we have 'no warnings' working? | ||
| moritz | particle: no, we don't | ||
| Coke | the warnings shouldn't be sent out with the test harness output... | ||
| moritz | Coke: warnings aren't catchable yet | ||
| Coke | moritz: k | ||
| particle | the warnings are exceptions, are they not? | ||
| moritz | rakudo: say try { 1 + undef } | 16:39 | |
| polyglotbot | No output (you need to produce output to STDOUT) | ||
| pmichaud | the messages are not yet part of exception handling | ||
| 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. | ||
| (...because resumable exceptions don't completely work, last time I checked) | |||
| moritz | so the plan is to make them exceptions, and install a global handler that prints them, and then resumes? | 16:41 | |
| pmichaud | yes. | 16:42 | |
| Tene | polyglotbot is currently dead because parrot segfaults mysteriously on feather3 again. | 16:48 | |
| I'm pretty sure that feather3 is just badly broken. | |||
| Infinoid | mysteriously? got a backtrace? | 16:49 | |
|
16:49
tomyan left
|
|||
| Tene | I don't. | 16:49 | |
| Coke | how are you building parrot? | ||
| particle | i'll miss parrotsketch, gotta get a crown on my molar now & | 16:50 | |
| Coke | (parrot seems to work mostly fine on feather) | ||
| 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. | ||
| Coke: feather3 | |||
| purl | feather3 is screwed up. or the virtual host on which evalbots run | ||
| Infinoid | feather3 has no gdb. :( | ||
| Tene | Infinoid: you could install it | ||
| Coke | I have no access to feather3. | ||
| I'm assuming that it's configured similarly to feather, however, which works. | |||
| Infinoid | Tene: I'll do so after svn finishes updating | ||
| Tene | Anyone have word on PDS reimbursements? | 16:51 | |
| Coke | particle is a slacker. Other than that, no. | ||
| I haven't seen a ping to the directors list. | |||
| I'll send one now. | |||
| Tene | Thank you. | ||
| Coke | er... when I return from lunch. | ||
| Tene | It's going to become an issue for me sometime soon. I was expecting to have it going by now. | 16:52 | |
| Infinoid | feather3 also desperately needs ccache. | 16:55 | |
|
16:56
Theory joined
|
|||
| moritz | that can be installed easily. | 16:59 | |
| Infinoid | (first I'm seeing whether I get any segfaults from "make test") | ||
| uh, all tests successful | 17:00 | ||
| purl | make install NAO! | ||
| moritz | ccache installed. | ||
| Infinoid: anything else I can do for your while wearing my root-hat on feather3? | 17:01 | ||
| Infinoid | nah, I've already installed gdb, I should be good | 17:02 | |
| looks like at least one of Tene's parrot checkouts is hosed. cleaning that up now | |||
| Tene: weird, your parrot-build2 dir was apparently checked out from file:///srv/svn/parrot/trunk (which doesn't exist?) | 17:06 | ||
| Tene | That's weird. | 17:07 | |
| ENOCLUE | |||
| Infinoid moved it out of the way and made a fresh checkout | |||
| moritz | Infinoid: that's my fault... I rsync'ed it from a different host once | ||
|
17:07
sjansen joined
|
|||
| Infinoid | ah, ok | 17:07 | |
| moritz | at that time feather3's svn threw only errors | ||
| Infinoid | rakudo: say 1 | 17:16 | |
| polyglotbot | No output (you need to produce output to STDOUT) | ||
| dalek | r33443 | fperrad++ | trunk: | ||
| : [Lua] mathx | |||
| : - add some function (need method in LuaNumber PMC) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33443 | |||
| Infinoid | infinoid@feather3:/home/tene/parrot$ ./parrot languages/perl6/perl6.pbc -e 'say 1' | 17:18 | |
| 1 | |||
| Infinoid tries to figure out exactly what pbot is trying to run. | |||
| Tene | Infinoid: connect to the screen session and you should be able to see, I think. | 17:23 | |
| Infinoid | okay. calling parrot the same way from the command line works fine | 17:28 | |
|
17:30
polyglotbot joined
|
|||
| Infinoid | rakudo: say 1 | 17:30 | |
| polyglotbot | No output (you need to produce output to STDOUT) | ||
| Infinoid | ... it even works when I use the sampe tmpfile (I temporarily hacked in a cp to /tmp/last for testing) | 17:32 | |
| s/sampe/same/ | |||
| 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 nopaste.snit.ch/14782 | ||
| tewk | Infinoid: thats bad, looks like a jitted NCI problem. | 17:39 | |
| Can I get on and look at that tonight? | |||
| Infinoid | I think it's moritz's box | 17:40 | |
| tewk | Well if someone gives me credentials, I'll look at it tonight. | 17:41 | |
| 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:42 | |
| 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 | ||
| tewk | or better yet run with -tf | 17:44 | |
| or better yet run with -t5 | |||
| Infinoid | 196 setattribute P0, "$.from", P9 P0=Object(P# Back in sub 'parrot;Perl6;Grammar;MARK_STATEMENT_END', env 811275c | 17:46 | |
| (apparently it didn't have a chance to output the rest of that Object() part. | 17:47 | ||
| okay, I can reproduce this in my own account. segfaults in screen, runs normally otherwise. | 17:48 | ||
| nopaste | "Infinoid" at 96.238.213.50 pasted "last page or so of -t5 output" (35 lines) at nopaste.snit.ch/14783 | 17:49 | |
| Infinoid | I still think it has to be something in %ENV | ||
| tewk | I should add a flag to run without jitted nci. | 17:51 | |
| Infinoid | (gdb) print nci_info->signature->strstart | 17:54 | |
| $5 = 0xb7655b90 "PJt" | |||
| (gdb) print nci_info->pcc_params_signature->strstart | |||
| $7 = 0xb7655b98 "S" | |||
| nci_info->func is just a generic pointer, gdb doesn't know what to make of it. | |||
| tewk | nci_info->func is the jitted code, raw machine instructions, no gdb info. | 17:56 | |
| yeah that isn't too helpfull. | 17:57 | ||
| comment out tools/build/nativecall.pl and run make to turn off jitted nci | |||
| line 308 that is | 17:58 | ||
|
17:59
Wknight8111 joined
18:00
barney joined
|
|||
| jhorwitz had a meeting cancellation and can attend #ps this week | 18:05 | ||
|
18:07
alvar joined
18:09
alvar joined
|
|||
| Infinoid | tewk: runs fine with CAN_BUILD_CALL_FRAMES commented out. | 18:16 | |
|
18:17
jrockway joined
|
|||
| Infinoid | (sorry about the delay, this vm is fairly heavily loaded.) | 18:17 | |
| tewk | weird, the reaffirms the fact that tewk is not the best human assembler | 18:18 | |
| Infinoid | I haven't yet figured out what environmental factors are needed to trigger this bug. | 18:20 | |
| 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. | |||
| 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 | ||
| PerlJam | Infinoid: then the problem must be feather3 + screen | ||
| Infinoid | no, it doesn't seem to. | ||
| PerlJam | Infinoid: then the problem must be tene + feather3 + screen | ||
| tewk | + tewk's generated machine code. | 18:22 | |
| Infinoid | yeah, /home/tene + feather3 + screen | ||
| which seems bizarre. | |||
| Infinoid continues trying to figure out whether %ENV is involved | 18:23 | ||
|
18:24
bacek joined
|
|||
| 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:26 | |
|
18:29
allison joined,
masak joined
|
|||
| 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 / | ||
| Coke | time? | ||
| purl | hmmm... time is 18:31:26 2008 and (did you mean "clock"?) or flowing like a river | ||
| Coke | I feel out of the loop. PS now? | ||
| masak | it is indeed time. | ||
| PerlJam | Coke: looks like you're running the show :) | 18:32 | |
|
18:35
chromatic joined
18:43
ff-wonko joined
|
|||
| dalek | r33444 | kjs++ | trunk: | 18:45 | |
| : [pirc] moving bctest stuff into bcgen.c. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33444 | 18:46 | ||
| chromatic | Tene, the first step in Pheme is adding operator precedence, to fix the one weird warning. | 18:53 | |
| jhorwitz | masak: november doesn't seem to like being called from a non-root URL (e.g. example.com/wiki) -- is there any easy way to get around that right now w/o rewrite magic? | 18:54 | |
| Tene | the lexicals fix can be removed from the release blockers list | 18:56 | |
| masak | jhorwitz: are we talking before or after the dispatch branch that just went into master? | 18:57 | |
| jhorwitz | hm, not sure which i pulled down | 18:58 | |
| masak | when? | ||
| jhorwitz: either way, I don't think that "without rewrite master" is possible now | |||
| if you have any ideas, please let me know | |||
| jhorwitz | i pulled a tarball from 11/30 | ||
| masak | that's with the dispatch branch merged | ||
| jhorwitz | ok | ||
| masak | you can tell from having a file Dispatch.pm in p6w/ | 18:59 | |
| s/rewrite master/rewrite magic/ | |||
| jhorwitz | well....in CGI-land you could use PATH_INFO instead of REQUEST_URI | ||
| masak | ooh! | ||
| this sounds like something ihrd might want to know about | |||
| I'll paste this for him later | |||
| jhorwitz | excellent. i'll make the change in my local copy for testing | 19:00 | |
| 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 | ||
| jhorwitz | will do. i'm on the list now | ||
| 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... | ||
| masak | jhorwitz++ | 19:02 | |
| jhorwitz needs to get git | |||
| that was fun to say | |||
| tewk | Infinoid: thanks | ||
| Coke | obra++ | ||
| (hiveminder) | |||
| tewk | jhorwitz: git.or.cz/ - do it now :) | 19:03 | |
| jhorwitz gits right on it | |||
| Wknight8111: beer is in our future | 19:04 | ||
| masak | git++ # making the world a happier place | ||
| Wknight8111 | yes, jhorowitz we definitely need to get together | ||
| what are you up to next weekend? | |||
| jhorwitz | free | ||
| 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 | ||
| jhorwitz | coolio. :) | 19:07 | |
| 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. ;-) | ||
| 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 | |
| More details coming later. | |||
| pmichaud | Tene: I might've removed or otherwise undone the "fix" | 19:17 | |
| (which really wasn't a correct fix) | |||
| I think the reference count needs to be part of the ExceptionHandler | |||
| and not 'throw' | |||
| Tene | That patch is still in the throw op, though. | 19:18 | |
| pmichaud | okay. it probably shouldn't be there. | ||
| Tene | Should be removed, perhaps. | ||
| Coke | (dragons) it's worked for a while, anyway. =-) | 19:23 | |
| pmichaud: languages/tcl/src/class/tclproc.pir ; it's used in languages/tcl/runtime/builtin/proc.pir | |||
| 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:24 | |
| That seems wrong to me. | 19:25 | ||
| pmichaud | Tene: no, the exceptionhandler.pmc should probably refcount the context when it's set_pointer | ||
| i.e., when the exceptionhandler is tied to a context | |||
| checking again (a little distracted here at the moment) | 19:26 | ||
| Tene | That just falls back to continuation.pmc's set_pointer | ||
| Coke | (tclproc) - I'm basically using it to store attributes on a Sub. | ||
| (but I think I need it to do more, like supporting "get_string") | |||
| 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:27 | |
| I could be wrong about that -- looking more closely now. | 19:28 | ||
|
19:28
Lorn joined
|
|||
| pmichaud | Yes. | 19:28 | |
| 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 | ||
| and thus it loses contexts. | |||
| (because they aren't marked.) | |||
| cf: the mark() function in continuation.pmc | |||
| Wknight8111 | coke++ | 19:30 | |
| Coke | Wknight8111: ? | ||
| dalek | r33445 | kjs++ | trunk: | ||
| : [pirc] cleanup bytecode gen. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33445 | |||
| Wknight8111 | Coke, you're just awesome | ||
| pmichaud | possibly a similar issue with destroy(), too. | ||
| Coke | True. | ||
| pmichaud | "There is no charge for awesomeness." -- Po | 19:31 | |
| 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. | |||
| (nonparrot) | |||
|
19:36
skv_____ joined
19:37
mj41_ joined,
skv______ joined
|
|||
| 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:37 | |
| 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? | ||
| Tene | That's fine. | ||
| 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 | ||
| and I have a couple of other items to work on | |||
| 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 | |
|
19:41
Hadi joined
|
|||
| Tene lunch. | 19:42 | ||
|
19:42
Hadi left
20:09
donaldh joined
20:11
apeiron joined
|
|||
| 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:17 | |
| (it only does that for new files that are 'svn cp'd in, neh?) | 20:18 | ||
| 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:22 | ||
| Wknight8111 | rm parrot trunk? | 20:24 | |
| Coke | (nonparrot) | 20:27 | |
| Wknight8111 | ENOTPARROT | 20:28 | |
| if it's not parrot, then I'm fine with you deleting trunk :) | |||
| Coke | meh. I think that's going to be the easiest way to cut this knot. | 20:29 | |
| (then I can do the right thing on branches going forward.) | |||
| Wknight8111 | (do the right thing)++ | ||
| dalek | r33446 | kjs++ | trunk: | 20:40 | |
| : [pirc] more bcgen work. this whole thing needs more thought and work, but this is a start. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33446 | |||
| Coke cuts the gordian knot so he can get actual work done and stop working on merge conflicts. | 20:41 | ||
| davidfetter | git! | 20:45 | |
| bacek | git! | 20:46 | |
| Coke | git is not an option in my work environent, and wouldn't have helped with the cvs conversion bit. | ||
| bacek | btw, is github alive? I can't push anything to it... | ||
| Coke will be fine going forward now. =-) | |||
|
20:53
ffwonko joined
|
|||
| dalek | r33447 | kjs++ | trunk: | 21:14 | |
| : [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.) | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33447 | 21:15 | ||
| r33448 | kjs++ | trunk: | |||
| : [config] add bcgen to file to link with pirc. | |||
| diff: www.parrotvm.org/svn/parrot/revision?rev=33448 | |||
| 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:21 | ||
| chromatic | Why not reject? | 21:22 | |
| Coke | seems harsh. | 21:23 | |
| chromatic | Seems realistic to me. | 21:24 | |
| Without someone motivated to fix them, we don't have the time, expertise, or inclination to fix them. | |||
| Coke | true; email sent asking what we have to work with. | 21:30 | |
| will give us an idea of the cutoff (and who we can press into service) | 21:31 | ||
| 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:32 | ||
| stalled seems like a soft reject. "We'd like to eventually work on this, but we just don't have the manpower." | 21:34 | ||
| chromatic | Stalled implies we might someday get around to it. I don't believe that's true. | 21:35 | |
| 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? | |||
| Coke | your question makes me wonder when stalled could ever be appropriate. | 21:38 | |
|
21:38
ff-wonko joined
|
|||
| pmichaud | I stall bugs that I know I'm getting around to eventually, but not at the moment. | 21:38 | |
| some PGE bugs are that way. | 21:39 | ||
| Infinoid | I would call my PDD13 bytecode stuff "stalled", unfortunately. | ||
| Coke | why not leave them open? | ||
| pmichaud | because "stalled" indicates to others that "yes, we know about this, but it's not likely to happen soon" | ||
| Coke | (this is academic if we're moving to trac, i suppose) | ||
| pmichaud: so would you side with me about bugs reported against a report parrot with an old os? | |||
| chromatic | I can see stalling bugs where we need information from a submitter but it doesn't seem forthcoming. | ||
| 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. | ||
| Coke | (anything against and old /parrot/ is rejectable if they can't duplicate against trunk/latest release.) | ||
| 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. | ||
| (and make him finish the port.) | |||
| pmichaud | sure, I've tried that in a few cases. | 21:42 | |
| "nobody is forthcoming with one" implies (to me at least) that we did ask the submitter for help. | |||
| and the submitter didn't respond. | |||
| Coke | yup. | ||
| chromatic | Anything stalled for six months gets the big red axe. | ||
| Coke | /anything/ ? | ||
| purl | i heard /anything/ was available to Maketext | ||
| chromatic | Huh. Now I realize the significance of the fan in "The Big U". | ||
| Coke | the big u? | ||
| purl | the big u is fun too | ||
| Coke | ah | 21:43 | |
| chromatic | Neal Stephenson's first novel. It's... not great. | ||
| Coke | the big u is en.wikipedia.org/wiki/The_Big_U | ||
|
21:43
masak joined
|
|||
| 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 | |
| I'd vote yes. | |||
| chromatic | Yes. | ||
| pmichaud | when in doubt, I err on the side of cc'ing the list. | ||
| chromatic | I use those to know what messages to delete. | ||
| Infinoid | Coke++ | 21:55 | |
| Coke | Infinoid: Hurm? | 21:58 | |
| purl | Yes, Rorschach. | ||
| Coke | bite me, purl. | ||
| purl | Coke: excuse me? | ||
| Coke | purl, bite me. | ||
| purl | Coke: huh? | ||
|
22:00
gryphon joined
|
|||
| Infinoid | Coke: rt mongering | 22:01 | |
| Coke | is there a way to find out when a file stopped existing other than doing a bisect? | 22:02 | |
| (which is hard because I don't when it was added, either) | |||
| Infinoid | hmm, maybe looking at the MANIFEST log | ||
| PerlJam | Coke: parse the log ? | 22:03 | |
| moritz | maybe you can get a blame log somehow? | ||
| 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 | |
| The coalescing function is trivial to write. | |||
| 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. | ||
| Infinoid | given infinite parallel universes, lots of things are O(1). | 22:06 | |
| Coke | perljam; the log doesn't show you the affected files. | ||
| (unless there's an option I don't normally use.) | |||
| PerlJam | svn log -v ? | 22:07 | |
| Coke | ayup. | ||
| this should only take a week... | |||
| PerlJam | What's the file? | 22:08 | |
| Coke realizes he can run it on the subdir itself... | |||
| Coke realizes he doesn't care. | 22:12 | ||
| PerlJam | you give up after 4 minutes? | 22:16 | |
| the forensics just isn't that important to you anymore? | 22:17 | ||
| Coke | nope. | ||
| particle | coke: how about svn ls -r rev url | ||
| Coke | It was so I could put in a revision in a ticket that I was rejecting. | ||
| the ticket was opened -4 years ago- | 22:18 | ||
| RT #31046 if you want to do the forensics. | |||
| 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:19 | |
| 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. | ||
| Coke | Ah. | 22:21 | |
| (i can't help you, but that sounds like a well asked question. =-) | |||
| 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? | ||
| donaldh | the error is get_string() not implemented in class 'UnManagedStruct' | ||
| Coke | who does our win32 bundles? You can have RT#6 60986. | ||
| donaldh | So I need to dive into the UnManagedStruct to get what I want. | ||
| Coke | looking at the perldoc of an UMS, I might expect this to work: | 22:22 | |
| $S0 = result_pmc.'ret_string'() | |||
| (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" | ||
| ? | |||
| Coke | I defer to perljam. =-) | 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. | ||
| PerlJam | oh. | ||
| Then I defer to whomever wrote that :) | |||
|
22:25
japhb joined
|
|||
| donaldh | Someone had the wisdom to map unsigned char* to p | 22:25 | |
| Maybe that's just a bug. | |||
| PerlJam hasn't use the ncigen thingy yet, and so couldn't say | |||
| 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 | ||
| 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 | ||
| donaldh | tewk: no it's an unsigned char* return value. | ||
| tewk | ahh | ||
| donaldh | const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol); | 22:28 | |
| tewk | have you tried "t" as the return signature. | ||
| "tpi" | |||
| particle | coke: fperrad does the win32 installable | ||
| donaldh | I'm assuming that will work. (it did previously). | ||
| tewk | it should | ||
| donaldh | But I was hoping to coerce the UnManagedStruct to work too ;-) | ||
| tewk | no that is the wrong path. | 22:29 | |
| for opaque pointers just use Pointer. | |||
| 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. | ||
| donaldh | okay, t works. | ||
| tewk | donaldh: have you seen ext/SQLite3 | 22:30 | |
| donaldh | So I guess we could change the return value mapping for unsigned char* | ||
| Uh, no I haven't | |||
| PerlJam | donaldh: simon cozens just did that within the last couple of weeks. | ||
| 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 | ||
| nopaste coming | |||
| nopaste | "tewk" at 155.98.69.7 pasted "ncigen_attempt_on_sqlite3.diff with manual fixups" (605 lines) at nopaste.snit.ch/14784 | 22:32 | |
| donaldh | tewk: that's where my thoughts were going too (the per6 program) | ||
|
22:33
davidfetter joined
|
|||
| nopaste | "tewk" at 155.98.69.7 pasted "sqlite_interface_generator.pl" (35 lines) at nopaste.snit.ch/14785 | 22:34 | |
| 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 nopaste.snit.ch/14786 | ||
| donaldh | I switched to UnManagedStruct for opaque pointers because Pointer tries to manage the pointer | 22:36 | |
| chromatic | Pointer or CPointer? | ||
| tewk | donaldh: look at how ext/SQLite3 does it. | ||
| donaldh | Pointer _and_ CPointer | ||
| PerlJam | tewk++ that's awesome (reading the source to ncigen for the first time) | 22:37 | |
| donaldh | PerlJam: it is nice isn't it. | ||
| tewk | I'll just check it in. | 22:38 | |
| dalek | r33449 | tewk++ | trunk: | ||
| : [ncigen] perl6 start to autogenerating interfaces | |||
| diff: 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. | ||
| tewk | ncigen does that. | ||
| donaldh | Cache the NCI bindings? | ||
| PerlJam | donaldh: you mean cache on disk or in ram? | 22:40 | |
| donaldh | disk. | ||
| For future runs. | |||
| tewk | I want the perl6 script to take the ncigen ast and massage the generated stubs to be more friendly and pretty. | ||
| donaldh | tewk: sounds good. | ||
| tewk | donaldh: it just generated pir, but it wouldn't be hard to eval the pir | ||
| 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
|
|||
| PerlJam | (so you automatically get the NCI interfaces for whatever .so you're loading) | 22:41 | |
| tewk | PerlJam: just write a custom opcode "loadlibnci" that does the loadlib and then loads the bindings. | 22:42 | |
| from say runtime/parrot/nci/bindings. | |||
| nopaste | "donaldh" at 213.123.171.12 pasted "sample using the ncigen generated sqlite3 bindings" (56 lines) at nopaste.snit.ch/14787 | ||
| tewk | I don't think Pointer manages the pointer | 22:45 | |
| donaldh | Perhaps not, but it crashes and corrupts the stack after 90ish iterations of my sample. | 22:46 | |
| If I run with gcdebug then the problem shows up in mark() | 22:48 | ||
| chromatic | Its mark looks wrongish. | ||
| Stuff the variable assignment in the if block and it might work better. | |||
| Though I don't see how anything sets a mark function on it. | |||
|
22:49
ruoso joined
|
|||
| davidfetter | who's at osdc? | 22:49 | |
| (besides Yours Truly) | |||
| nopaste | "donaldh" at 213.123.171.12 pasted "a more complete sample using the ncigen generated sqlite3 bindings" (77 lines) at nopaste.snit.ch/14789 | 22:56 | |
| donaldh | chromatic: should Pointer mark() maybe do nothing? | 23:01 | |
|
23:03
TiMBuS joined
|
|||
| 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 | ||
| tewk | do you have a commit bit | 23:10 | |
| donaldh | tewk: nope | 23:11 | |
|
23:13
allison joined
|
|||
| tewk | cla | 23:13 | |
| come on purl | |||
| particle | cla? | ||
| purl | hmmm... cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement | ||
| donaldh | tewk: thanks. Is that superseded by the ParF cla ? www.parrot.org/foundation/legal | 23:19 | |
| tewk | actually do the parrot one. | 23:20 | |
| donaldh | k | ||
| tewk | purl cla is also www.parrot.org/foundation/legal | ||
| purl | okay, tewk. | ||
| donaldh | g'night | ||
| jonathan | hi all - I'm back :-) | 23:27 | |
|
23:37
bacek_ joined
|
|||
| chromatic | Good, there are Perl6MultiSub errors for you! | 23:57 | |