Camelia, the Perl 6 bug

IRC log for #parrot, 2009-11-09

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:07 nopaste "NotFound" at 213.96.228.50 pasted "NCI p null" (59 lines) at http://nopaste.snit.ch/18611
00:07 NotFound plobsing: here is all
00:09 plobsing other than having a line that's way too long, looks good
00:09 plobsing NotFound++
00:09 NotFound I also assumed that a NULL returned is better mapped to a PMCNULL than to an Unmanaged that contains nothing.
00:10 plobsing that one is debatable
00:10 plobsing but decreasing GC pressure is good
00:10 plobsing so I'm for it
00:11 mikehh joined #parrot
00:11 NotFound Note that currently to check if a unmanaged is null you need to create other and compare with it.
00:12 mikehh messages
00:12 plobsing get_bool should return the null status
00:12 NotFound I'll try to formatting that lines a little better.
00:12 plobsing but it doesn't currently
00:13 NotFound plobsing: last time I tried it tell me that doesn't implement that vtable.
00:13 NotFound But I think thatchecking for null a thing that the docs of the external lib says that returns NULL is the natural approach.
00:16 plobsing NotFound: for completness, we should do the same null check everywhere we put a pointer in a struct pmc
00:18 plobsing I'm probably going to try an NCI refactor (see NCITaskList on the wiki). I'll make that mapping then.
00:19 NotFound plobsing: one more reason to have tests of that things.
00:21 s1n joined #parrot
00:27 nopaste "plobsing" at 76.67.61.178 pasted "LibJIT i386 'ssc' fix" (181 lines) at http://nopaste.snit.ch/18612
00:27 plobsing woo. finally traked down the problem!
00:28 plobsing if someone could apply the patch I just nopasted to the libjit_framebuilder branch, I would very much appreciate it.
00:36 dalek parrot: r42377 | NotFound++ | trunk (3 files):
00:36 dalek parrot: [nci] fix handling of null in 'p' type parameters and add tests for it
00:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42377/
00:36 xenoterracide joined #parrot
00:41 mikehh plobsing: I am on Ubuntu 9.10 amd64 at the moment - I can apply the patch, but I don't know if I can test it
00:42 plobsing mikehh: I've tested it in a 32bit virtualbox ubuntu. fulltest passes.
00:42 plobsing mikehh: please apply the patch
00:43 ttbot Parrot trunk/ r42377 MSWin32-x86-multi-thread make error http://tt.ro.vutbr.cz/file/cmdout/136952.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
00:44 japhb Tene: Sorry I missed you ... just got bak.  Are your Plumage problems all sorted, or do you still need help?
00:52 dalek parrot: r42378 | mikehh++ | branches/libjit_framebuilder (4 files):
00:52 dalek parrot: applying patch by plobsing++
00:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42378/
00:56 plobsing thanks mikehh, now I just have to find some testers/reviewers
00:56 plobsing anyone on i386 willing to install libjit and test libjit_framebuilder?
00:57 mikehh I'll reboot and give it a go after some sleep
00:59 dalek parrot: r42379 | NotFound++ | trunk (2 files):
00:59 dalek parrot: [t] disable the nci_vP test to avoid linkage problems
00:59 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42379/
00:59 plobsing mikehh++
00:59 mikehh I can't get virtualbox or kvm to work on my box - they don't like my wireless connection - I can't get to bridge properly :-{
01:00 plobsing NotFound: did you not see he__'s nopaste earlier?
01:01 NotFound plobsing: I'm tired of playing ping-pong with the linkage of a test library for a flawed test.
01:02 plobsing ha! I see your point.
01:02 * mikehh anyway need some sleep - bbl
01:04 NotFound And even more after having discovered that the 'p', that looks far more important for me, was seriously undertested.
01:05 NotFound So don't spend time trying to make work silly things.
01:06 plobsing NotFound: P is critical. It is required to implement methods defined in C.
01:06 plobsing that said, it is rather trivial and hard to break
01:06 NotFound plobsing: is not critical at all for external libraries that does not link with libparrot.
01:06 NotFound In fact, is not even possible.
01:06 kid51 joined #parrot
01:07 plobsing yes, but thats not the only place nci is used
01:07 NotFound plobsing: then let's put that test in other place.
01:07 plobsing hmmm... I agree
01:08 plobsing actually, most of these tests bellong elsewhere. I would categorize them as testing the NCI subsystem, not the NCI pmc
01:14 kthakore kid51: hi
01:15 NotFound plobsing: yes, I was also wondering if t/pmc was the rigth place.
01:20 kid51 kthakore hello
01:21 kthakore kid51: whats up
01:21 purl A direction away from the center of gravity of a celestial object. or the y-axis, unless you're using a strange coordinate system.
01:21 kid51 just about to go to dinner
01:24 kthakore kid51: ah
01:24 kthakore kid51: I am getting some late sunday night hacks done
01:25 kid51 bbl
01:26 kthakore kid51: kk
01:39 abqar joined #parrot
02:02 Tene japhb: there was a little typo in plumage... I haven't committed yet.
02:03 Tene japhb: pushed
02:04 dalek parrot-plumage: 74aa700 | tene++ | :
02:04 dalek parrot-plumage: Minor typo fix to allow plumage to detect when it can install without sudo
02:04 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/74aa70070a2ca4fdc6c6322820c2fd424559a444
02:05 payload joined #parrot
02:25 dalek parrot: r42380 | jkeenan++ | trunk/config/init/defaults.pm:
02:25 dalek parrot: Change one RT # to TT #.  Delete reference to RT #41499, as that ticket was
02:25 purl dalek: that doesn't look right
02:25 dalek parrot: closed by particle on Sep 17 2009.
02:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42380/
02:35 payload left #parrot
02:38 japhb Tene: thanks for the fix!
02:49 Whiteknight incoming
02:49 purl duck!
02:50 dalek TT #1246 created by jkeenan++: Extra libraries on CC build command
02:51 Whiteknight ...and goodnight
02:53 dalek TT #1247 created by jkeenan++: ar can't read libparrot.a on Mac OS 10.5.2
02:58 plobsing k
02:58 plobsing oops
03:01 dalek parrot: r42381 | jkeenan++ | trunk/t/pmc/threads.t:
03:01 dalek parrot: Delete reference to rejected RT ticket.
03:01 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42381/
03:17 dalek TT #1248 created by jkeenan++: t/pmc/threads.t:  two test failures
03:24 dalek TT #1249 created by jkeenan++: t/pmc/threads.t:  Thread types tests need rework
03:25 dalek parrot: r42382 | jkeenan++ | trunk/t/pmc/threads.t:
03:25 dalek parrot: Change RT references to TT numbers.
03:25 purl dalek: that doesn't look right
03:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42382/
03:31 dalek TT #1250 created by jkeenan++: t/pmc/threads.t:  Need test for Clone of HLL info
03:31 dalek parrot: r42383 | jkeenan++ | trunk/t/pmc/threads.t:
03:31 dalek parrot: Replace an RT # with a TT #.
03:31 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42383/
03:48 janus joined #parrot
04:14 mikehh joined #parrot
04:25 mikehh joined #parrot
04:27 kurahaupo joined #parrot
04:40 mokurai joined #parrot
04:41 brooksbp joined #parrot
05:02 dukeleto 'ello
05:02 plobsing hi dukeleto!
05:03 dukeleto plobsing: how goes it?
05:03 dukeleto i have been away on a road trip and have not backlogged to see what is up
05:03 dukeleto what is the news?
05:03 purl dukeleto: no headlines seen. see http://www.guardian.co.uk/worldlatest/ for more.
05:04 * dukeleto gently kicks purl in the face.
05:04 plobsing dukeleto: well, chromatic tested my libjit branch and turned up a weird bug
05:05 plobsing I spent all weekend tracking it down
05:05 dukeleto plobsing: do you need help testing it?
05:05 plobsing do you have an i686?
05:05 plobsing or compatible 32 bit machine?
05:07 plobsing the current fix is a workaround for a libjit bug. I'm currently putting together a bug report for the libjit team.
05:07 Essobi joined #parrot
05:08 plobsing it only occurs on i386, not x86_64
05:13 dukeleto plobsing: i have access to a few machines
05:13 dukeleto plobsing: you need an amd64 ?
05:14 plobsing not really. My dev machine is 64 bit. And the bug only manifests on 32 bit.
05:15 plobsing debugging in virtualbox is painful. perhaps I should set up dual-boot.
05:17 diakopter vmware player is nice...
05:18 plobsing well yes. but its slower than native. and a smaller screen.
05:19 diakopter ('tis full-screen for me...)
05:19 plobsing all virtualization seems to not work for me
05:19 plobsing maybe I'm technically incompetent
05:19 diakopter no, vmware's drivers are tricky on linux/solaris
05:21 diakopter and macosx.  I mean, what? :)
06:00 eternaleye KVM (or KVM-enabled QEMU) with the '-vga std' flag is nice. Full screen and accelerated. And if you turn on the usbtablet mouse mode, it doesn't even need to capture the mouse.
06:33 particle joined #parrot
06:54 uniejo joined #parrot
07:03 magnachef joined #parrot
07:42 snarkyboojum joined #parrot
08:13 mikehh joined #parrot
08:14 chromatic joined #parrot
08:15 gaz joined #parrot
08:18 iblechbot joined #parrot
08:20 mikehh joined #parrot
08:20 snarkyboojum joined #parrot
08:27 baest joined #parrot
08:41 barney joined #parrot
08:44 dalek parrot: r42384 | barney++ | trunk/docs/project/release_manager_guide.pod:
08:44 dalek parrot: Added location of reliable IRC-logs of #parrotsketch.
08:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42384/
08:57 fperrad joined #parrot
08:57 bacek joined #parrot
09:09 bacek o hai
09:23 AndyA joined #parrot
09:32 pdcawley__ joined #parrot
09:59 davidfetter joined #parrot
10:15 snarkyboojum joined #parrot
10:17 mokurai left #parrot
10:54 payload joined #parrot
11:20 pdcawley_ joined #parrot
12:16 kid51 joined #parrot
12:30 KatrinaTheLamia joined #parrot
12:46 dalek rakudo: 929998c | (Solomon Foster)++ | src/setting/Str.pm:
12:46 dalek rakudo: Remove cautious comment now that #perl6 has confirmed what I did.
12:46 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​29998c9c6f2a98b14005005c9a2d1ed99ca8a76
12:50 whiteknight joined #parrot
12:52 whiteknight good morning #parrot
12:59 plobsing morning whiteknight
12:59 whiteknight hello plobsing, how goes it?
13:00 plobsing it goes well. I've isolated the libjit bug chromatic found on i386 to a small test program
13:00 davidfetter !seen ruoso
13:00 moritz purl: seen ruoso
13:00 purl ruoso was last seen on #dbix-class 10 days, 19 hours, 23 minutes and 19 seconds ago, saying: apparently, not working yet...  [Oct 29 17:37:04 2009]
13:01 davidfetter seems purl's stats aren't quite the same as dalek's. i wonder which to believe...
13:06 moritz dalek: seen ruoso
13:06 purl ruoso was last seen on #dbix-class 10 days, 19 hours, 28 minutes and 59 seconds ago, saying: apparently, not working yet...  [Oct 29 17:37:04 2009]
13:06 moritz looks quite similar :-)
13:09 whiteknight plobsing: Can I see that small test program?
13:11 nopaste "plobsing" at 76.67.61.178 pasted "LibJIT test prog" (75 lines) at http://nopaste.snit.ch/18621
13:12 plobsing the program will give different results depending on whether you supply arguments or not
13:12 dalek TT #1251 created by jkeenan++: handle ARM mixed-endian doubles
13:16 dalek TT #1252 created by jkeenan++: src/dynpmc/gdbmhash.pmc:  Handle case where libgdbm.so cannot be loaded on ...
13:16 dalek parrot: r42385 | jkeenan++ | trunk/src/dynpmc/gdbmhash.pmc:
13:16 dalek parrot: Change an RT # to a TT #.
13:16 purl dalek: that doesn't look right
13:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42385/
13:37 payload joined #parrot
13:42 payload joined #parrot
14:02 pdcawley__ joined #parrot
14:14 dalek parrot: r42386 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
14:14 dalek parrot: [distutils] add stuff for dynops
14:14 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42386/
14:25 payload joined #parrot
14:52 Essobi joined #parrot
14:53 Andy joined #parrot
14:59 PacoLinux joined #parrot
15:13 kthakore joined #parrot
15:22 Psyche^ joined #parrot
15:49 payload joined #parrot
16:10 payload1 joined #parrot
16:21 particle1 joined #parrot
16:39 hudnix joined #parrot
16:44 darbelo joined #parrot
16:44 pdcawley_ joined #parrot
16:51 davidfetter joined #parrot
16:56 fperrad_ joined #parrot
16:58 theory joined #parrot
16:59 dalek wmlscript: 0f4814e | fperrad++ | setup.pir:
16:59 dalek wmlscript: add a setup.pir (distutils)
16:59 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/0f4814e6338ff0a12e6c9263510443f5ce6a7548
17:06 dalek parrot: r42387 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
17:06 dalek parrot: [distutils] add stuff for dynpmc
17:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42387/
17:11 dalek wmlscript: fad8e5c | fperrad++ | setup.pir:
17:11 dalek wmlscript: chmod +x
17:11 dalek wmlscript: review: http://github.com/fperrad/wmlscript/commit​/fad8e5c18b4ccaaeb29589d1624052184453bf2c
17:15 kurahaupo joined #parrot
18:02 dukeleto 'ello
18:03 cotto_work hi
18:04 payload joined #parrot
18:07 dalek parrot: r42388 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
18:07 dalek parrot: [distutils] add stuff for tge
18:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42388/
18:08 cotto_work left #parrot
18:08 cotto_work joined #parrot
18:08 dukeleto cotto_work: hola
18:09 cotto_work wb me!
18:09 darbelo We missed you during those few seconds of dissconnect.
18:10 cotto_work It was rough.
18:12 whiteknight we need a welcome back party!
18:13 * dukeleto gets some shot glasses
18:13 cotto_work We need a "let cotto_work write and commit code" party.
18:26 payload joined #parrot
18:27 whiteknight I'd go to that party
18:27 whiteknight I'm all about writing and committing code
18:30 darbelo We could elaborate a complicated plot to get him fired, so he could write and commit code. But I don't think he'd appreciate it.
18:30 cotto_work I can write and commit code just fine as long as it's not from work.
18:31 cotto_work s/I/cotto/
18:31 cotto_work ;)
18:32 darbelo Oh, right. cotto_work pays the food and bills so cotto can hack.
18:32 dalek lua: f3baad0 | fperrad++ | setup.pir:
18:32 dalek lua: add a setup.pir (distutils)
18:32 dalek lua: review: http://github.com/fperrad/lua/commit/f3​baad05b67a9668ba50f6d09c4fdee28393e65e
18:36 whiteknight yeah, that cotto_work guy is alright
18:37 dalek parrot: r42389 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
18:37 dalek parrot: [distutils] fix dynpmc, pmc2c works only in the current directory
18:37 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42389/
18:40 cotto_work btw, how many here can write/commit from work?
18:40 cotto_work just ooc
18:41 whiteknight I have, I don't think my company has a policy about it
18:41 whiteknight at least, no policy that I am aware of
18:42 whiteknight obviously I can't spend more then ~30 seconds on it, unless I make up the time
18:42 cotto_work right
18:42 whiteknight I run parrot tests and stuff in the background pretty regularly
18:50 iblechbot joined #parrot
18:50 dalek lua: a7f2f15 | fperrad++ | setup.pir:
18:50 dalek lua: chmod +x
18:50 dalek lua: review: http://github.com/fperrad/lua/commit/a7​f2f151e760d36f3548e8996f50fe7e5c744138
19:05 chromatic joined #parrot
19:16 AndyA joined #parrot
19:31 * chromatic can write/commit from work.
19:35 cotto_work (working from home)++
19:36 whiteknight that's because chromatic has one of those wonderful dream jobs
19:37 chromatic No boss, no HR, no one to handle paperwork besides my own self?
19:38 whiteknight like a dream within a dream
19:39 * darbelo dreams that he dreams that he dreams that he dreams ...
19:44 Tene I can write and commit from work.
19:45 Tene I've done it many times.
19:45 bacek joined #parrot
19:45 Tene Part of my employment contract includes an obligation to contribute to the open source community.
19:46 cotto_work WANT
19:47 whiteknight holy crap. Tene: where do you work?
19:48 Tene http://gurulabs.com/
19:48 chromatic Mine too.
19:48 purl Mine too. are you approaching 1800 now?
19:48 joeri joined #parrot
19:48 whiteknight wow, that's hot
19:48 whiteknight chromatic: aren't you self-employed?
19:49 chromatic I co-own an S Corp, so ... sort of.
19:49 whiteknight ah, okay
19:49 whiteknight all I knew for certain was that you left O'Reilly
19:49 whiteknight because that's all you blogged about
19:50 whiteknight that, and I was able to pick out some interesting documents from your garbage
19:50 whiteknight :)
19:50 chromatic Then you know I have two indoor cats!
19:51 cotto_work I guess you can expect that sort of thing from our resident GC hacker.
19:51 whiteknight I've spent more time in trash cans of various sizes then I care to admin
19:51 whiteknight admit*
19:52 diakopter (or admin)
19:54 whiteknight I've ridden on the back of garbage trucks, sorted trash and recyclables, cleaned dumpsters, compactors and garbage trucks, etc
19:54 * diakopter dumpster dove a few times
19:54 darbelo whiteknight: You are, in essence, a garbage collector :)
19:55 payload joined #parrot
19:55 whiteknight in essence, yes
19:55 whiteknight :)
19:56 whiteknight I wasn't allowed to write or commit code from any of those jobs either
19:57 hercynium joined #parrot
19:59 particle is that why your code stinks?
20:00 Austin_away joined #parrot
20:01 chromatic Because it's full of garbage particles?
20:03 Tene I never went through particle's trash when I was in seattle.  Who said I had?
20:03 * darbelo wonders if there are garbage particles in particle's garbage.
20:04 particle there's not much in my garbage now, i'm on a clear liquid diet
20:05 Austin Personal foul! Horrifying mental image. 15 yards.
20:07 Austin Open question: compiled pir (or anything else) goes into a .pbc file. Parrot does a pretty bad job of accepting pbc files, since it explicitly checks for a file extension, etc. So what's the right model for post-processed .pbc's? That is, if .pbc is the same as .o or .class, what's the analog for .exe or .out or .jar?
20:08 darbelo Austin: We don't have one?
20:09 Austin I had noticed that, darbelo, but I was kind of hoping that maybe there was one that nobody had told me about...
20:09 NotFound Austin: a .pbc is an o and an exe at the same time.
20:10 Tene alternately, parrot doesn't distinguish between .o and .exe
20:10 NotFound And, what is the bad job you are talking?
20:10 Austin NotFound: And it does both jobs equally well, I'm sure. :$
20:10 NotFound Same as the ELF format
20:11 Austin The bad job is that the only way to run bytecode is to have a physical file called whatever.pbc.
20:11 Austin You can't say "--this-is-a-pbc-file-trust-me" on the command line, and you can't use stdin.
20:12 NotFound Austin: I can the current logic is: if extension is not pbc, pir or pasm, try it as pir or pasm source.
20:12 NotFound I think
20:13 Austin Something like that. There are many chances to compile pasm/pir, but only one route to using pre-compiled code.
20:13 Austin Considering the big-O of imcc, that's a weird bias.
20:14 NotFound Not just a problem of imcc, load_bytecode uses the same logic.
20:14 Austin I was assuming that load_bytecode called imcc.
20:15 chromatic Perhaps we should separate loading from compilation and move some of these responsibilities out of IMCC.
20:15 Austin Anyway, my point is that the present model seems to be "build a .pir file with a lot of .include directives" to get something like an executable.
20:15 NotFound Austin: I don't care the implementation, it can be changed. The problem is that is supposed to work that way.
20:16 Austin NotFound: huh?
20:16 NotFound Austin: if load_bytecode let imcc decide the file type or does itself.
20:16 Austin Oh, okay. sure.
20:16 whiteknight chromatic: I strongly agree. I think we need to move a lot of stuff out of IMCC
20:17 redbrain joined #parrot
20:17 NotFound I agree that abusing .include sucks.
20:18 whiteknight commandline argument processing for one, .pbc loading for another
20:18 redbrain not sure if your interested but i finally got around to setting up a buildbot for us i meant to have it done some time ago but got it nearly working on my webserver as a test then i will extend to work on some sparc and mips for us :)
20:18 whiteknight redbrain: awesome. Which platform?
20:18 whiteknight (nevermind, sparc and mips)
20:18 redbrain so far just my x86 server
20:18 whiteknight that's great
20:18 redbrain but i will extend to anything really i have access to most things
20:19 redbrain it will just take a while untill its setup fully across them all
20:19 redbrain i'll send a mail around when i get more setup :)
20:19 NotFound whiteknight: BTW you fixed your blog post amazingly fast.
20:20 whiteknight NotFound: not nearly as fast as you found the error!
20:20 whiteknight I'm sorry for misspelling it, I should have been more careful
20:20 NotFound I can lost a lot of fans if you mispell ;)
20:22 dukeleto warnings.t is still failing on trunk: http://smolder.plusthree.com/app/pu​blic_projects/report_details/29760
20:22 chromatic Yeah, in theory bacek is looking at that.
20:23 dukeleto bacek++
20:23 theory Kind of dark in there for bacek, no?
20:23 bacek good morning. Who woke me up?
20:23 Tene Me!
20:23 * dukeleto pours bacek++ a shot of scotch
20:24 bacek dukeleto, it's too early for scotch...
20:24 Austin bacek: The sun's over the yardarm someplace.
20:25 bacek chromatic, warnings.t is about Context inlining? Than it addressed in pmc_headers_move branch.
20:25 chromatic Does it pass there?
20:25 chromatic The problem I saw was with the optimized build.
20:26 bacek chromatic, let me recheck it
20:27 bacek chromatic, btw, I totally stuck with Context CallSignature merging... I just can't grok logic who and when should create it and push it...
20:27 chromatic Let's put a page on the wiki to work it out then.
20:30 bacek warnings.t passed on my box, in branch, on --optimized build
20:30 chromatic Does your libparrot.so export Parrot_pcc_warnings_on() et al?
20:33 bacek chromatic, nope.
20:33 chromatic Then I'm not sure why the test is passing.
20:33 chromatic Unless you changed the optimized build to export those functions again.
20:34 bacek chromatic, I didn't. But I can take a look how to export them regardless of build.
20:34 chromatic I think that's what we need.  I'll try the branch though.
20:35 bacek In branch I uncoditionally include "pmc_context.h". So Parrot_Context_attributes are always declared.
20:35 chromatic That wasn't the problem I saw.
20:36 bacek chromatic, it was actually.
20:36 bacek but try branch anyway.
20:36 dalek parrot: r42390 | barney++ | trunk/NEWS:
20:36 dalek parrot: Added very first draft for 'New in 1.8.0'.
20:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42390/
20:39 ash_ joined #parrot
20:39 mokurai joined #parrot
20:40 dalek parrot: r42391 | barney++ | trunk/NEWS:
20:40 dalek parrot: Fixed indention of the '+' lines.
20:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42391/
20:41 NotFound What do you think about this? Add to the ExceptionHandler PMC the capability to set a function to be called from can_handle, avoiding the need to subclass it in lot of cases.
20:42 whiteknight NotFound: seems reasonable
20:42 NotFound It just needs to add a PMC atribute.
20:42 NotFound To the size of the PMC, I mean.
20:42 whiteknight mention it at #ps tomorrow
20:43 chromatic bacek, the test passes for me on your branch.
20:44 bacek chromatic, of course :)
20:45 chromatic What's holding up the merge?
20:45 whiteknight which branch?
20:46 chromatic pmc_headers_move
20:46 whiteknight oh, what's the purpose of that one?
20:46 chromatic Getting generated PMC headers out of src/pmc and putting them in include/parrot/
20:47 dalek parrot-plumage: 339f19f | japhb++ | :
20:47 dalek parrot-plumage: [PROBES] for %h.kv -> $k, $v {...} works!
20:47 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/339f19f879b60c89933453270a51580b31c75558
20:48 bacek chromatic, almost nothing. I'm holding it for couple more days for testing. Probably will merge tomorrow
20:48 bacek chromatic, actually "include/pmc" to be consistent with installed parrot
20:49 bacek anyway, $dayjob time
20:49 bacek see you
20:50 whiteknight that sounds to me like it would buck up against the deprecation policy
20:50 whiteknight any extensions that rely on those headers in their current location will break
20:51 chromatic How would an extension refer to those headers?
20:51 darbelo *Why* would an extension refer to those headers?
20:52 whiteknight I don't know. I seem to think it would be possible
20:52 whiteknight if they were subclassing a built-in type from C, for instance
20:52 dalek parrot-plumage: 1a70eb0 | japhb++ | :
20:52 dalek parrot-plumage: [META] Completed TODOs
20:52 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/1a70eb0efde4e443752438b12c3f56b8dc983017
20:52 darbelo whiteknight: pmc2c handles that for them.
20:53 darbelo .pmc shouldn't #include other pmcs headers.
20:54 buildbot-redbrain joined #parrot
20:54 darbelo redbrain++
20:54 redbrain :) woohoo that works now hehe
20:54 szabgab joined #parrot
20:55 darbelo redbrain: Do you want me to break the build so we can test the bot?
20:55 darbelo ;)
20:56 redbrain haha not yet its not quite finished yet :P
20:56 redbrain working with some of the guys on fnet to help me now its a little fiddly
21:08 redbrain http://crules.org:8010/
21:08 redbrain thats the web interface so far
21:13 japhb (#git)++ # And now I understand another piece of the puzzle
21:14 bbredbrain joined #parrot
21:14 redbrain bbredbrain: help
21:14 bbredbrain Get help on what? (try 'help <foo>', or 'commands' for a command list)
21:15 darbelo bbredbrain: help me
21:15 bbredbrain no such command 'me'
21:15 darbelo :)
21:15 redbrain bbredbrain: notify start
21:15 bbredbrain try 'notify on|off <EVENT>'
21:15 redbrain bbredbrain: notify on build
21:15 bbredbrain try 'notify on|off <EVENT>'
21:15 NotFound bbredbrain: help <foo>
21:15 bbredbrain no such command '<foo>'
21:15 NotFound You liar
21:15 Austin bbredbrain: help notify
21:15 bbredbrain Usage: notify on|off|list [<EVENT>] ... - Notify me about build events.  event should be one or more of: 'started', 'finished', 'failed', 'success', 'exception', 'successToFailed', 'failedToSuccess'
21:15 japhb bbredbrain, help reconcile quantum entanglement and special relativity
21:15 bbredbrain no such command 'reconcile'
21:16 redbrain hahah
21:16 japhb SCNR
21:18 hudnix joined #parrot
21:24 dalek TT #1253 created by pmichaud++: [BUG] values returned from iterating a hash are no longer strings ...
21:25 pmichaud I should note that TT #1253 is a breakage in the deprecation policy also.
21:26 estrabd joined #parrot
21:36 desertm4x joined #parrot
21:48 nbrown_ joined #parrot
22:01 bbredbrain joined #parrot
22:05 joeri joined #parrot
22:06 redbrain whoohoo is going its first build now :)
22:07 jsut_ joined #parrot
22:08 bacek_at_work pmichaud, why HashIteratorKey is problem?
22:09 japhb bacek_at_work, because it doesn't act sufficiently like a String (or rather, the actual type of the key)
22:09 bacek_at_work japhb, why Hash key should be a String?
22:09 japhb So concat with a HashIteratorKey fails.
22:10 japhb bacek_at_work, whatever you get out of a Hash should have the same type you put into it.
22:10 chromatic Getting an HIK out of a Hash is a problem if you didn't put a HIK in the Hash.
22:10 bacek_at_work nope.
22:10 japhb So if you indexed the Hash with String PMCs, you should get String PMCs out when you iterate.
22:10 bacek_at_work You get it from iterator
22:10 bacek_at_work not Hash
22:11 japhb bacek_at_work, an iterator is just a way of looking at a container.  It should not alter types en passant./
22:11 chromatic When I'm iterating a Hash, I don't care about the iterator.  I care about what's in the Hash.
22:11 bacek_at_work HIK.key() returns original key
22:11 japhb bacek_at_work, why have the additional layer?
22:12 japhb Why shouldn't '$P0 = shift iterator' give me back exactly the keys I put into the hash?
22:12 bacek_at_work japhb, for performance reason. You can avoid second symbolic lookup during iteration
22:12 kiwichris joined #parrot
22:12 japhb But if you have to do a deref in PIR, how are you gaining anything?
22:12 japhb (in order to actually *use* the key, I mean)
22:12 bacek_at_work chromatic, you get iterator key. Which is pair(key, value)
22:13 japhb bacek_at_work, Oh, I see, you're actually iterating the pairs, not the keys
22:13 japhb but when you stringify the pair, you get the key?
22:13 NotFound japhb: a dereference is less costly than a lookup in the hash
22:13 chromatic That's a PIR behavior change though.
22:13 japhb odd ...
22:13 bacek_at_work japhb, $S0 = shift it; $P1 = hash[$S0]. This is slow.
22:14 bacek_at_work chromatic, nope. hash[key] still returns value.
22:14 redbrain bbredbrain: help
22:14 bbredbrain Get help on what? (try 'help <foo>', or 'commands' for a command list)
22:14 japhb I think I'm seeing the reason, it's just not self-evident what's going on.
22:14 redbrain bbredbrain: commands
22:14 bbredbrain buildbot commands: commands, dance, destroy, excited, force, hello, help, join, last, leave, list, notify, source, status, stop, version, watch
22:14 * purl doesn't take orders.
22:14 redbrain bbredbrain: status
22:14 bbredbrain Debian-x86-test: idle, last build 4m43s ago: build successful
22:14 purl Since Wed Oct 28 01:13:35 2009, there have been 2415 modifications and 1199 questions.  I have been awake for 12 days, 21 hours, 38 seconds this session, and currently reference 809194 factoids. Addressing is in optional mode.
22:14 bacek_at_work japhb, it's documented in hashiterator.pmc
22:14 japhb If you hadn't told me that I'm really getting pairs that sometimes pretend to be the actual keys, I wouldn't have ever just guessed that.
22:14 NotFound purl: sudo make me a sandwich
22:14 purl NotFound: sorry...
22:15 chromatic If you change what iteration returns, you've changed what iteration returns.  How is that anything other than a change?
22:15 bacek_at_work chromatic, it was loong time ago. In Keys refactor.
22:15 Austin NotFound: How many remaining siblings do you have?
22:16 japhb pmichaud, feel highlighted.  This discussion is up your alley.
22:16 NotFound Austin: About what?
22:16 Austin Today's xkcd
22:16 purl Today's xkcd is awesome
22:16 chromatic The point of the change is irrelevant, if we need to follow our deprecation policy.
22:16 bacek_at_work chromatic, and I didn't see any problems with approach to use aggregate specific iterators.
22:17 NotFound Austin: ah, don't caught it :D
22:17 bacek_at_work chromatic, it was before stable release. Now we can revert hash iterator to 1.0 behavior. Or stuck with 1.6 behavior.
22:18 chromatic Did this happen before 1.4?
22:19 chromatic NEWS says "Key and Iterator refactor" in 1.4.
22:19 bacek_at_work Date:   Wed Aug 5 11:29:16 2009 +0000
22:19 bacek_at_work it's "Merge branch keys_cleanup into trunk."
22:19 chromatic TT #1253 says pmichaud used the old way in 1.3.
22:20 chromatic Okay, that's post 1.4.
22:20 chromatic We need to revert that behavior change then.
22:21 bacek_at_work ah. Nope
22:21 bacek_at_work Merge branch tt761_keys_revamp into trunk.
22:21 bacek_at_work Date:   Wed Jul 15 13:15:25 2009 +0000
22:24 chromatic This behavior change went into 1.4 silently then?
22:26 bacek_at_work chromatic, then yes.
22:27 pmichaud the change went silently into 1.4, yes
22:27 kiwichris I have found the PDD "Embedded and Extending Parrot. Nice. Is there more I may have missed ?
22:27 pmichaud along with the other pieces of the hash iterator that broke rakudo at the time.  :)
22:28 pmichaud if the hash iterator is now returning something like pairs, I might be able to convince myself I like that better.
22:28 bacek_at_work HIK is (key, value) pair
22:29 pmichaud not sure yet.  I just know it represented a change that is causing some NQP code to break, in both old and new nqp
22:29 bacek_at_work pmichaud, even documented in top of hashiterator.pmc :)
22:29 bacek_at_work pmichaud, hmm. If I have small test for it I can fix it.
22:30 chromatic Yes, but no one reads HashIterator's documentation for this.
22:30 bacek_at_work chromatic, we don't have PDD for our PMCs.
22:30 bacek_at_work afaik
22:31 chromatic There's not much we can do besides try to make the current behavior work now, I suppose.
22:31 pmichaud the question to be answered is whether iterating a hash returns keys or pairs
22:31 pmichaud the old behavior returned keys
22:31 chromatic Pairs seems better.
22:31 pmichaud changing that seems.... problematic
22:31 * bacek_at_work like current behavior more.
22:32 pmichaud pairs seems better, yes, but there's a ton of code that depends on it coming back with keys
22:32 pmichaud I mean a *ton*
22:32 Tene ~/
22:32 pmichaud so if we have it return pairs, then those pairs have to act like keys in certain contexts, and like pairs in others
22:32 pmichaud and I'm not sure how to tell the difference, or if there's even a clean break (as my example code in the TT shows)
22:33 chromatic I agree, but we're talking about four months of tons of code from 1.0 through 1.3 and four months of tons of code from 1.4 through 1.7.
22:33 pmichaud not really
22:33 mikehh joined #parrot
22:33 pmichaud we're talking about  parrot 0.4 to 1.3
22:33 chromatic There were no deprecation promises until 1.0.
22:34 pmichaud no, but we'd still have to fix the code
22:34 pmichaud (more)
22:34 bacek_at_work pmichaud, most of this code use "$S0 = shift it". Which works with new iterators
22:34 pmichaud bacek_at_work: that's because it assumes that HIK stringifies to its key
22:34 pmichaud I'm not sure that's the semantics we really want
22:34 pmichaud assuming that HIK is really some sort of pair
22:34 pmichaud in some sense it should stringify to its value
22:34 pmichaud and numify to its value
22:34 pmichaud and ...
22:35 bacek_at_work why stringify to value?
22:35 pmichaud it's a question of whether one considers to be a value with a key attached or a key with a value attached
22:35 chromatic I don't think we can decide that in the general case.
22:35 pmichaud *considers a pair
22:36 pmichaud I might feel comfortable if HIK subclassed String
22:36 bacek_at_work it is pair. "Single (key,value) pair."
22:36 bacek_at_work it has "get_string" to stringify to key.
22:36 pmichaud bacek_at_work: yes, but it doesn't have "concatenate"  or "add" or any of the other operations that can be done on String
22:37 redbrain bbredbrain: status
22:37 bbredbrain Debian-PPC-G5-test: idle
22:37 bbredbrain Debian-x86-test: idle, last build 27m05s ago: build successful
22:37 purl Since Wed Oct 28 01:13:35 2009, there have been 2420 modifications and 1202 questions.  I have been awake for 12 days, 21 hours, 22 minutes, 59 seconds this session, and currently reference 809199 factoids. Addressing is in optional mode.
22:37 pmichaud and it's wrong for iterators in general to always use   $S0 = iter hash --- what if the hash is keyed on things other than strings, as it will be someday?
22:37 bacek_at_work pmichaud, you can use non-string keys right now.
22:37 pmichaud bacek_at_work: then you've proven my point that  $S0 = iter hash  is not the correct interface :)
22:37 bacek_at_work pmichaud, and concatenating HIK keys is... weird.
22:38 NotFound I suppose that no one wants to add a third type os hash iterator.
22:38 pmichaud bacek_at_work: what's wrong with concatenating a string key with another key?
22:38 pmichaud that's not weird at all
22:38 bacek_at_work sorry, have to return to $dayjob, Visio and other duties.
22:38 pmichaud that's like saying  "adding integer indexes is weird"
22:39 bacek_at_work pmichaud, iterating over hashes return (key,value). Concatenating them is weird.
22:39 pmichaud bacek_at_work: except that the hash iterator interface was once that it returned keys, not pairs
22:39 pmichaud changing it to pairs is a very substantial semantic change
22:40 pmichaud and having  $S0 = shift iter    and $P0 = shift iter do very different things seems.... dangerous
22:40 pmichaud (where the first returns a key, but the second returns a pair)
22:40 bacek_at_work pmichaud, I agree about semantic change. But having old overcomplicated Keys all over code was worth.
22:41 bacek_at_work "$S0 = shift iter" get HIK, than strinfigy it.
22:41 pmichaud what does  $I0 = shift iter  do then?
22:41 pmichaud that used to work also.  :-)
22:42 bacek_at_work I think it eats kittens if there is no test for other behavior
22:42 pmichaud very well.  This conversation has now exceeded my "avoid contentious issues" threshhold so I'm abstaining now.  :)
22:43 redbrain bbredbrain: status
22:43 bbredbrain Debian-PPC-G5-test: idle
22:43 bbredbrain Debian-UltraSparcII: idle
22:43 bbredbrain Debian-x86-test: idle, last build 34m02s ago: build successful
22:43 purl Since Wed Oct 28 01:13:35 2009, there have been 2423 modifications and 1202 questions.  I have been awake for 12 days, 21 hours, 29 minutes, 56 seconds this session, and currently reference 809202 factoids. Addressing is in optional mode.
22:45 NotFound Why on hell HashIterator.shift_string does temporary_pmc_free? =:o)
22:46 bacek_at_work NotFound, some optimisation by chromatic
22:46 theory joined #parrot
22:46 NotFound "Frees a new temporary PMC created by C<temporary_pmc_new()>"
22:46 kj joined #parrot
22:47 NotFound I don't see the corresponding temporary_pmc_free.
22:47 NotFound s/free/new
22:47 bacek_at_work NotFound, temporary_pmc_new == pmc_new.
22:48 redbrain bbredbrain: status
22:48 bbredbrain Debian-PPC-G5-test: building(updating)
22:48 bbredbrain Debian-UltraSparcII: building(updating)
22:48 bbredbrain Debian-x86-test: idle, last build 38m08s ago: build successful
22:48 purl Since Wed Oct 28 01:13:35 2009, there have been 2423 modifications and 1202 questions.  I have been awake for 12 days, 21 hours, 34 minutes, 2 seconds this session, and currently reference 809202 factoids. Addressing is in optional mode.
22:48 bacek_at_work pmichaud, I can change HashIterator to return just strings. But it's less sane than (key,values)...
22:48 * pmichaud summarizes bacek's final statement as "we're allowed to change behavior if there's no test for something"
22:48 NotFound bacek_at_work: shit
22:48 japhb redbrain, can you make those /msg's unless there's something interesting to report?
22:49 bacek_at_work pmichaud, it is not my summary... :-/
22:49 redbrain japhb: sorry i am just playing around i'll move it to another chanel
22:49 NotFound That usage is a time bomb waiting to explode when someone wants to reimplement that temporary thing to speed it.
22:50 japhb redbrain, no biggie.  I don't know how your IM client does it, but on mine it's trivial to keep a private session open with a bot, so that's usually how I do it unless I need the other people in the channel to see the interaction.
23:00 chromatic NotFound, if shift_string didn't create the temporary HIK, it wouldn't have to free it.
23:01 jonathan ffs. Please, folks, be careful to init PMC pointers with PMCNULL or make sure things that are meant to return PMCs return PMCNULL rather than NULL.
23:01 fperrad_ joined #parrot
23:01 jonathan I'm fixing now another thing that woulda been a NPMCA rather than a segv in the space of a day.
23:02 jonathan This time it's Parrot_find_global_n that gave me back NULL.
23:02 jonathan kplzthnxbai
23:02 chromatic pmichaud, what kind of PIR would you like to see if Hash iterators returned pairs?
23:02 NotFound jonathan: That function isn't in the extern interface?
23:03 jonathan Dunno. It's exported...
23:03 jonathan Not sure that's really for it to hand back NULL though.
23:04 jonathan It's not like PMCNULL is expensive (or it shouldn't be...)
23:04 chromatic Yeah, that's a bad interface design to return NULL.
23:04 NotFound jonathan: there are cases when there must be a distinction into not found and found something with a PMCNULL value.
23:05 dalek parrot-plumage: 0cebb38 | japhb++ | :
23:05 dalek parrot-plumage: [CORE] Util.nqp: Add grep(); remove old NQP workarounds
23:05 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/0cebb38cfd2f0d8aa4878e4fcbec5b6150f8a056
23:06 pmichaud chromatic: I'm not sure what PIR I'd like to see at the moment
23:06 pmichaud chromatic: it has the potential to significantly change nearly all of the code I have that does hash iteration
23:06 pmichaud so I have to think a bit about what the impact might be
23:07 jonathan NotFound: If an existence check is what is wanted, there's exists keyed vtable methods.
23:07 NotFound jonathan: check and then get is inefficient and prone to race conditions.
23:08 pmichaud non-existent entry should return PMCNULL to PIR
23:09 jonathan pmichaud: I was calling from C, not PIR.
23:09 NotFound pmichaud: what a C function returns is a different point of what can be stored in a PMC register.
23:09 jonathan pmichaud: I'm just bothered by a recent upwards trend I've seen in discovering issues like this.
23:09 NotFound The problem is doing unchecked calls and returns from opcodes to functios without the appropiate decorators and semantics.
23:10 NotFound Unfortunately, the compilers doesn't help catch that.
23:11 NotFound And not only for PMC, also for STRING
23:12 chromatic I can't think of a case where someone would store PMCNULL in a namespace by accident.
23:13 jonathan Well, changed the use of Parrot_find_global_n to VTABLE_get_pmc_keyed_str now
23:13 NotFound chromatic: we have already catched and fixed a lot of cases when they were stored in registers,
23:13 NotFound Don't know if in some of this cases they reached a namespace entry.
23:13 jonathan But I was more pointing out the anti-pattern than this specific case.
23:14 chromatic I think we should fix this specific case: don't return NULL here.
23:15 chromatic If we have bugs where we store PMCNULL in namespaces incorrectly, let's fix those rather than propagating that mistake through the rest of the system.
23:15 pmichaud in general Parrot's model seems to be that PMCNULL == non existent element
23:16 pmichaud at least that's the model I've worked from.  If I need to store an explicit "there's an element here but it's empty", that should be a value other than PMCNULL, IMO
23:16 dalek parrot-plumage: c980976 | japhb++ | :
23:16 dalek parrot-plumage: [CORE] Util.nqp: remove straggling old-NQP-ism
23:16 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/c9809762332c0e88d8c5021b05df60c05c9c98a5
23:16 chromatic Yeah, that makes the most sense to me.
23:17 NotFound The function is explicitly documented as returning NULL, and the code checks explicitly for PMCNULL.
23:18 NotFound Doesn't look like an accident.
23:19 chromatic Poor code written deliberately is still poor code.
23:19 NotFound chromatic: yes, but changing the design, even if poor, needs a deprecation notice.
23:20 chromatic I agree.
23:20 chromatic In general.
23:20 purl In general, you do not want to disturb The General.
23:20 NotFound BTW Parrot_set_global sucks.
23:20 NotFound It has NULLOK parameters, and uses then unchecked.
23:20 chromatic This file is pretty bad, safety-wise.
23:21 chromatic I'm sure we could fix the interfaces to work as people expect without harming any existing code.
23:21 chromatic We might even be able to make extant code safer.
23:21 NotFound Looks like the problem is that it contains a mix of functions for internal usage and for extend/embed
23:22 chromatic We should review the design and organization.
23:25 pmichaud chromatic/bacek:  after thinking about it a bit, I think I'm fine with keeping the current HashIteratorKey semantic for now.  It's just a bit of a surprise, and I fear goes against whatever may be written in the PIR books.
23:25 kesselhaus joined #parrot
23:25 pmichaud (to the extent that anything may be written about iterating hashes in the books)
23:26 chromatic We can edit the book; that's not onerous.
23:26 chromatic I want to make sure that iteration is appropriately general but the intent of the PIR code is sufficiently explicit.
23:26 pmichaud yes.
23:27 pmichaud fwiw, the book explicitly says (page 36) "When iterating over associative arrays, the shift opcode extracts keys instead of values."  We'll need to change that.
23:29 pmichaud japhb:  this means that your code would need to read    for %hash { say($_.key ~ " => " ~ $_.value); }
23:29 pmichaud instead of
23:29 purl i think instead of is easy.
23:30 pmichaud for %hash { say( $_ ~ " => " ~ %hash{$_} ); }
23:30 japhb pmichaud, way ahead of you.  ;-)
23:30 japhb (dalek just hasn't noticed yet.  ;-)
23:30 pmichaud that's closer to the Perl 6 semantic anyway, so it's a net plus for us.
23:31 japhb nodnod
23:31 pmichaud hopefully the PCCMETHODS for .key/.value won't always be expensive :)
23:32 dalek tracwiki: v2 | chromatic++ | NamespaceTasklist
23:32 dalek tracwiki: Edited page; added src/global.c tasks
23:32 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Name​spaceTasklist?version=2&amp;action=diff
23:32 dalek tracwiki: v3 | chromatic++ | NamespaceTasklist
23:32 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Name​spaceTasklist?version=3&amp;action=diff
23:32 chromatic We could add get_foo_keyed_int() to HIK to get the pair elements more cheaply.
23:32 dalek parrot-plumage: abc6bc0 | japhb++ | :
23:32 dalek parrot-plumage: [PROBES] Use modern hash iteration semantics properly in %hash.kv
23:32 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/abc6bc0207ba4c02fac749452222409591afe6d6
23:33 dalek TT #1254 created by chromatic++: Update PIR Book with new (post 1.4.0) HashIteratorKey Syntax and Semantics
23:34 pmichaud I'd probably prefer not to do the keyed_int part.
23:34 pmichaud let's see how the present code works out, we can optimize if it's an issue
23:34 chromatic Okay.
23:38 pmichaud I'll update my ticket with the resolution of the issue.
23:38 dalek parrot-plumage: ae8089e | japhb++ | :
23:38 dalek parrot-plumage: [CORE] Util.nqp: Add %hash.kv
23:38 dalek parrot-plumage: review: http://gitorious.org/parrot-plumage/parrot-plumag​e/commit/ae8089eff2623f94b2b16a39c2f26be942706481
23:38 pmichaud which is basically, "we go with the new behavior"
23:38 pmichaud I'll leave it to others to decide if/how/where we need to issue notices that the behavior changed
23:38 chromatic I think that's the best option at this point.  Reverting is also problematic.
23:49 japhb pmichaud, with the NQP pir:: syntax, is there a way to specify keying operations?  For example, can I express '$I0 = exists hash[key]; %r = box $I0' using pir:: syntax?
23:54 Whiteknight joined #parrot

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

Parrot | source cross referenced