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