|
Parrot 1.7.0 "African Grey" is out! | Fix issues caused by the pcc_reapply and context_auto_attrs merges | find out what's up with the slice opcode | Latest modified TT's: icanhaz.com/parrotbugs Set by moderator on 8 November 2009. |
|||
| nopaste | "NotFound" at 213.96.228.50 pasted "NCI p null" (59 lines) at nopaste.snit.ch/18611 | 00:07 | |
| NotFound | plobsing: here is all | ||
| plobsing | other than having a line that's way too long, looks good | 00:09 | |
| NotFound++ | |||
| NotFound | I also assumed that a NULL returned is better mapped to a PMCNULL than to an Unmanaged that contains nothing. | ||
| plobsing | that one is debatable | 00:10 | |
| but decreasing GC pressure is good | |||
| so I'm for it | |||
|
00:11
mikehh joined
|
|||
| NotFound | Note that currently to check if a unmanaged is null you need to create other and compare with it. | 00:11 | |
| mikehh | messages | 00:12 | |
| plobsing | get_bool should return the null status | ||
| NotFound | I'll try to formatting that lines a little better. | ||
| plobsing | but it doesn't currently | ||
| NotFound | plobsing: last time I tried it tell me that doesn't implement that vtable. | 00:13 | |
| But I think thatchecking for null a thing that the docs of the external lib says that returns NULL is the natural approach. | |||
| plobsing | NotFound: for completness, we should do the same null check everywhere we put a pointer in a struct pmc | 00:16 | |
| I'm probably going to try an NCI refactor (see NCITaskList on the wiki). I'll make that mapping then. | 00:18 | ||
| NotFound | plobsing: one more reason to have tests of that things. | 00:19 | |
|
00:21
s1n joined
|
|||
| nopaste | "plobsing" at 76.67.61.178 pasted "LibJIT i386 'ssc' fix" (181 lines) at nopaste.snit.ch/18612 | 00:27 | |
| plobsing | woo. finally traked down the problem! | ||
| if someone could apply the patch I just nopasted to the libjit_framebuilder branch, I would very much appreciate it. | 00:28 | ||
| dalek | rrot: r42377 | NotFound++ | trunk (3 files): [nci] fix handling of null in 'p' type parameters and add tests for it |
00:36 | |
|
00:36
xenoterracide joined
|
|||
| 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:41 | |
| plobsing | mikehh: I've tested it in a 32bit virtualbox ubuntu. fulltest passes. | 00:42 | |
| mikehh: please apply the patch | |||
| ttbot | Parrot trunk/ r42377 MSWin32-x86-multi-thread make error tt.ro.vutbr.cz/file/cmdout/136952.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 00:43 | |
| japhb | Tene: Sorry I missed you ... just got bak. Are your Plumage problems all sorted, or do you still need help? | 00:44 | |
| dalek | rrot: r42378 | mikehh++ | branches/libjit_framebuilder (4 files): applying patch by plobsing++ |
00:52 | |
| plobsing | thanks mikehh, now I just have to find some testers/reviewers | 00:56 | |
| anyone on i386 willing to install libjit and test libjit_framebuilder? | |||
| mikehh | I'll reboot and give it a go after some sleep | 00:57 | |
| dalek | rrot: r42379 | NotFound++ | trunk (2 files): [t] disable the nci_vP test to avoid linkage problems |
00:59 | |
| plobsing | mikehh++ | ||
| 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 :-{ | ||
| plobsing | NotFound: did you not see he__'s nopaste earlier? | 01:00 | |
| NotFound | plobsing: I'm tired of playing ping-pong with the linkage of a test library for a flawed test. | 01:01 | |
| plobsing | ha! I see your point. | 01:02 | |
| mikehh anyway need some sleep - bbl | |||
| NotFound | And even more after having discovered that the 'p', that looks far more important for me, was seriously undertested. | 01:04 | |
| So don't spend time trying to make work silly things. | 01:05 | ||
| plobsing | NotFound: P is critical. It is required to implement methods defined in C. | 01:06 | |
| that said, it is rather trivial and hard to break | |||
| NotFound | plobsing: is not critical at all for external libraries that does not link with libparrot. | ||
| In fact, is not even possible. | |||
|
01:06
kid51 joined
|
|||
| plobsing | yes, but thats not the only place nci is used | 01:07 | |
| NotFound | plobsing: then let's put that test in other place. | ||
| plobsing | hmmm... I agree | ||
| actually, most of these tests bellong elsewhere. I would categorize them as testing the NCI subsystem, not the NCI pmc | 01:08 | ||
| kthakore | kid51: hi | 01:14 | |
| NotFound | plobsing: yes, I was also wondering if t/pmc was the rigth place. | 01:15 | |
| kid51 | kthakore hello | 01:20 | |
| 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. | ||
| kid51 | just about to go to dinner | ||
| kthakore | kid51: ah | 01:24 | |
| kid51: I am getting some late sunday night hacks done | |||
| kid51 | bbl | 01:25 | |
| kthakore | kid51: kk | 01:26 | |
|
01:39
abqar joined
|
|||
| Tene | japhb: there was a little typo in plumage... I haven't committed yet. | 02:02 | |
| japhb: pushed | 02:03 | ||
| dalek | rrot-plumage: 74aa700 | tene++ | : Minor typo fix to allow plumage to detect when it can install without sudo |
02:04 | |
|
02:05
payload joined
|
|||
| dalek | rrot: r42380 | jkeenan++ | trunk/config/init/defaults.pm: Change one RT # to TT #. Delete reference to RT #41499, as that ticket was |
02:25 | |
| purl | dalek: that doesn't look right | ||
|
02:35
payload left
|
|||
| japhb | Tene: thanks for the fix! | 02:38 | |
| Whiteknight | incoming | 02:49 | |
| purl | duck! | ||
| dalek | TT #1246 created by jkeenan++: Extra libraries on CC build command | 02:50 | |
| Whiteknight | ...and goodnight | 02:51 | |
| dalek | TT #1247 created by jkeenan++: ar can't read libparrot.a on Mac OS 10.5.2 | 02:53 | |
| plobsing | k | 02:58 | |
| oops | |||
| dalek | rrot: r42381 | jkeenan++ | trunk/t/pmc/threads.t: Delete reference to rejected RT ticket. |
03:01 | |
| TT #1248 created by jkeenan++: t/pmc/threads.t: two test failures | 03:17 | ||
| TT #1249 created by jkeenan++: t/pmc/threads.t: Thread types tests need rework | 03:24 | ||
| rrot: r42382 | jkeenan++ | trunk/t/pmc/threads.t: Change RT references to TT numbers. |
03:25 | ||
| purl | dalek: that doesn't look right | ||
| TT #1250 created by jkeenan++: t/pmc/threads.t: Need test for Clone of HLL info | 03:31 | ||
| rrot: r42383 | jkeenan++ | trunk/t/pmc/threads.t: Replace an RT # with a TT #. |
|||
|
03:48
janus joined
04:14
mikehh joined
04:25
mikehh joined
04:27
kurahaupo joined
04:40
mokurai joined
04:41
brooksbp joined
|
|||
| dukeleto | 'ello | 05:02 | |
| plobsing | hi dukeleto! | ||
| dukeleto | plobsing: how goes it? | 05:03 | |
| i have been away on a road trip and have not backlogged to see what is up | |||
| what is the news? | |||
| purl | dukeleto: no headlines seen. see www.guardian.co.uk/worldlatest/ for more. | ||
| dukeleto gently kicks purl in the face. | 05:04 | ||
| plobsing | dukeleto: well, chromatic tested my libjit branch and turned up a weird bug | ||
| I spent all weekend tracking it down | 05:05 | ||
| dukeleto | plobsing: do you need help testing it? | ||
| plobsing | do you have an i686? | ||
| or compatible 32 bit machine? | |||
| the current fix is a workaround for a libjit bug. I'm currently putting together a bug report for the libjit team. | 05:07 | ||
|
05:07
Essobi joined
|
|||
| plobsing | it only occurs on i386, not x86_64 | 05:08 | |
| dukeleto | plobsing: i have access to a few machines | 05:13 | |
| plobsing: you need an amd64 ? | |||
| plobsing | not really. My dev machine is 64 bit. And the bug only manifests on 32 bit. | 05:14 | |
| debugging in virtualbox is painful. perhaps I should set up dual-boot. | 05:15 | ||
| diakopter | vmware player is nice... | 05:17 | |
| plobsing | well yes. but its slower than native. and a smaller screen. | 05:18 | |
| diakopter | ('tis full-screen for me...) | 05:19 | |
| plobsing | all virtualization seems to not work for me | ||
| maybe I'm technically incompetent | |||
| diakopter | no, vmware's drivers are tricky on linux/solaris | ||
| and macosx. I mean, what? :) | 05:21 | ||
| 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:00 | |
|
06:33
particle joined
06:54
uniejo joined
07:03
magnachef joined
07:42
snarkyboojum joined
08:13
mikehh joined
08:14
chromatic joined
08:15
gaz joined
08:18
iblechbot joined
08:20
mikehh joined,
snarkyboojum joined
08:27
baest joined
08:41
barney joined
|
|||
| dalek | rrot: r42384 | barney++ | trunk/docs/project/release_manager_guide.pod: Added location of reliable IRC-logs of #parrotsketch. |
08:44 | |
|
08:57
fperrad joined,
bacek joined
|
|||
| bacek | o hai | 09:09 | |
|
09:23
AndyA joined
09:32
pdcawley__ joined
09:59
davidfetter joined
10:15
snarkyboojum joined
10:17
mokurai left
10:54
payload joined
11:20
pdcawley_ joined
12:16
kid51 joined
12:30
KatrinaTheLamia joined
|
|||
| dalek | kudo: 929998c | (Solomon Foster)++ | src/setting/Str.pm: Remove cautious comment now that #perl6 has confirmed what I did. |
12:46 | |
|
12:50
whiteknight joined
|
|||
| whiteknight | good morning #parrot | 12:52 | |
| plobsing | morning whiteknight | 12:59 | |
| whiteknight | hello plobsing, how goes it? | ||
| plobsing | it goes well. I've isolated the libjit bug chromatic found on i386 to a small test program | 13:00 | |
| davidfetter | !seen ruoso | ||
| moritz | purl: seen ruoso | ||
| 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] | ||
| davidfetter | seems purl's stats aren't quite the same as dalek's. i wonder which to believe... | 13:01 | |
| 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] | ||
| moritz | looks quite similar :-) | ||
| whiteknight | plobsing: Can I see that small test program? | 13:09 | |
| nopaste | "plobsing" at 76.67.61.178 pasted "LibJIT test prog" (75 lines) at nopaste.snit.ch/18621 | 13:11 | |
| 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 | ||
| TT #1252 created by jkeenan++: src/dynpmc/gdbmhash.pmc: Handle case where libgdbm.so cannot be loaded on ... | 13:16 | ||
| rrot: r42385 | jkeenan++ | trunk/src/dynpmc/gdbmhash.pmc: Change an RT # to a TT #. |
|||
| purl | dalek: that doesn't look right | ||
|
13:37
payload joined
13:42
payload joined
14:02
pdcawley__ joined
|
|||
| dalek | rrot: r42386 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add stuff for dynops |
14:14 | |
|
14:25
payload joined
14:52
Essobi joined
14:53
Andy joined
14:59
PacoLinux joined
15:13
kthakore joined
15:22
Psyche^ joined
15:49
payload joined
16:10
payload1 joined
16:21
particle1 joined
16:39
hudnix joined
16:44
darbelo joined,
pdcawley_ joined
16:51
davidfetter joined
16:56
fperrad_ joined
16:58
theory joined
|
|||
| dalek | lscript: 0f4814e | fperrad++ | setup.pir: add a setup.pir (distutils) |
16:59 | |
| rrot: r42387 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add stuff for dynpmc |
17:06 | ||
| lscript: fad8e5c | fperrad++ | setup.pir: chmod +x |
17:11 | ||
|
17:15
kurahaupo joined
|
|||
| dukeleto | 'ello | 18:02 | |
| cotto_work | hi | 18:03 | |
|
18:04
payload joined
|
|||
| dalek | rrot: r42388 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] add stuff for tge |
18:07 | |
|
18:08
cotto_work left,
cotto_work joined
|
|||
| dukeleto | cotto_work: hola | 18:08 | |
| cotto_work | wb me! | 18:09 | |
| darbelo | We missed you during those few seconds of dissconnect. | ||
| cotto_work | It was rough. | 18:10 | |
| whiteknight | we need a welcome back party! | 18:12 | |
| dukeleto gets some shot glasses | 18:13 | ||
| cotto_work | We need a "let cotto_work write and commit code" party. | ||
|
18:26
payload joined
|
|||
| whiteknight | I'd go to that party | 18:27 | |
| I'm all about writing and committing code | |||
| 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. | ||
| s/I/cotto/ | 18:31 | ||
| ;) | |||
| darbelo | Oh, right. cotto_work pays the food and bills so cotto can hack. | 18:32 | |
| dalek | a: f3baad0 | fperrad++ | setup.pir: add a setup.pir (distutils) |
||
| whiteknight | yeah, that cotto_work guy is alright | 18:36 | |
| dalek | rrot: r42389 | fperrad++ | trunk/runtime/parrot/library/distutils.pir: [distutils] fix dynpmc, pmc2c works only in the current directory |
18:37 | |
| cotto_work | btw, how many here can write/commit from work? | 18:40 | |
| just ooc | |||
| whiteknight | I have, I don't think my company has a policy about it | 18:41 | |
| at least, no policy that I am aware of | |||
| obviously I can't spend more then ~30 seconds on it, unless I make up the time | 18:42 | ||
| cotto_work | right | ||
| whiteknight | I run parrot tests and stuff in the background pretty regularly | ||
|
18:50
iblechbot joined
|
|||
| dalek | a: a7f2f15 | fperrad++ | setup.pir: chmod +x |
18:50 | |
|
19:05
chromatic joined
19:16
AndyA joined
|
|||
| chromatic can write/commit from work. | 19:31 | ||
| cotto_work | (working from home)++ | 19:35 | |
| whiteknight | that's because chromatic has one of those wonderful dream jobs | 19:36 | |
| chromatic | No boss, no HR, no one to handle paperwork besides my own self? | 19:37 | |
| whiteknight | like a dream within a dream | 19:38 | |
| darbelo dreams that he dreams that he dreams that he dreams ... | 19:39 | ||
| Tene | I can write and commit from work. | 19:44 | |
| I've done it many times. | 19:45 | ||
|
19:45
bacek joined
|
|||
| Tene | Part of my employment contract includes an obligation to contribute to the open source community. | 19:45 | |
| cotto_work | WANT | 19:46 | |
| whiteknight | holy crap. Tene: where do you work? | 19:47 | |
| Tene | gurulabs.com/ | 19:48 | |
| chromatic | Mine too. | ||
| purl | Mine too. are you approaching 1800 now? | ||
|
19:48
joeri joined
|
|||
| whiteknight | wow, that's hot | 19:48 | |
| chromatic: aren't you self-employed? | |||
| chromatic | I co-own an S Corp, so ... sort of. | 19:49 | |
| whiteknight | ah, okay | ||
| all I knew for certain was that you left O'Reilly | |||
| because that's all you blogged about | |||
| that, and I was able to pick out some interesting documents from your garbage | 19:50 | ||
| :) | |||
| chromatic | Then you know I have two indoor cats! | ||
| 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 | ||
| admit* | |||
| diakopter | (or admin) | 19:52 | |
| 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 | |||
| darbelo | whiteknight: You are, in essence, a garbage collector :) | ||
|
19:55
payload joined
|
|||
| whiteknight | in essence, yes | 19:55 | |
| :) | |||
| I wasn't allowed to write or commit code from any of those jobs either | 19:56 | ||
|
19:57
hercynium joined
|
|||
| particle | is that why your code stinks? | 19:59 | |
|
20:00
Austin_away joined
|
|||
| chromatic | Because it's full of garbage particles? | 20:01 | |
| 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. | |||
| particle | there's not much in my garbage now, i'm on a clear liquid diet | 20:04 | |
| Austin | Personal foul! Horrifying mental image. 15 yards. | 20:05 | |
| 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:07 | ||
| darbelo | Austin: We don't have one? | 20:08 | |
| 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. | ||
| Tene | alternately, parrot doesn't distinguish between .o and .exe | 20:10 | |
| NotFound | And, what is the bad job you are talking? | ||
| Austin | NotFound: And it does both jobs equally well, I'm sure. :$ | ||
| NotFound | Same as the ELF format | ||
| Austin | The bad job is that the only way to run bytecode is to have a physical file called whatever.pbc. | 20:11 | |
| You can't say "--this-is-a-pbc-file-trust-me" on the command line, and you can't use stdin. | |||
| 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 | |
| I think | |||
| Austin | Something like that. There are many chances to compile pasm/pir, but only one route to using pre-compiled code. | 20:13 | |
| Considering the big-O of imcc, that's a weird bias. | |||
| NotFound | Not just a problem of imcc, load_bytecode uses the same logic. | 20:14 | |
| Austin | I was assuming that load_bytecode called imcc. | ||
| 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. | ||
| NotFound | Austin: I don't care the implementation, it can be changed. The problem is that is supposed to work that way. | ||
| Austin | NotFound: huh? | 20:16 | |
| NotFound | Austin: if load_bytecode let imcc decide the file type or does itself. | ||
| Austin | Oh, okay. sure. | ||
| whiteknight | chromatic: I strongly agree. I think we need to move a lot of stuff out of IMCC | ||
|
20:17
redbrain joined
|
|||
| NotFound | I agree that abusing .include sucks. | 20:17 | |
| 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 :) | ||
| whiteknight | redbrain: awesome. Which platform? | ||
| (nevermind, sparc and mips) | |||
| redbrain | so far just my x86 server | ||
| whiteknight | that's great | ||
| redbrain | but i will extend to anything really i have access to most things | ||
| it will just take a while untill its setup fully across them all | 20:19 | ||
| i'll send a mail around when i get more setup :) | |||
| NotFound | whiteknight: BTW you fixed your blog post amazingly fast. | ||
| whiteknight | NotFound: not nearly as fast as you found the error! | 20:20 | |
| I'm sorry for misspelling it, I should have been more careful | |||
| NotFound | I can lost a lot of fans if you mispell ;) | ||
| dukeleto | warnings.t is still failing on trunk: smolder.plusthree.com/app/public_pr...ails/29760 | 20:22 | |
| chromatic | Yeah, in theory bacek is looking at that. | ||
| dukeleto | bacek++ | 20:23 | |
| theory | Kind of dark in there for bacek, no? | ||
| bacek | good morning. Who woke me up? | ||
| Tene | Me! | ||
| dukeleto pours bacek++ a shot of scotch | |||
| bacek | dukeleto, it's too early for scotch... | 20:24 | |
| Austin | bacek: The sun's over the yardarm someplace. | ||
| bacek | chromatic, warnings.t is about Context inlining? Than it addressed in pmc_headers_move branch. | 20:25 | |
| chromatic | Does it pass there? | ||
| The problem I saw was with the optimized build. | |||
| bacek | chromatic, let me recheck it | 20:26 | |
| 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. | ||
| 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? | ||
| bacek | chromatic, nope. | 20:33 | |
| chromatic | Then I'm not sure why the test is passing. | ||
| Unless you changed the optimized build to export those functions again. | |||
| 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. | ||
| 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. | ||
| bacek | chromatic, it was actually. | 20:36 | |
| but try branch anyway. | |||
| dalek | rrot: r42390 | barney++ | trunk/NEWS: Added very first draft for 'New in 1.8.0'. |
||
|
20:39
ash_ joined,
mokurai joined
|
|||
| dalek | rrot: r42391 | barney++ | trunk/NEWS: Fixed indention of the '+' lines. |
20:40 | |
| 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:41 | |
| whiteknight | NotFound: seems reasonable | 20:42 | |
| NotFound | It just needs to add a PMC atribute. | ||
| To the size of the PMC, I mean. | |||
| whiteknight | mention it at #ps tomorrow | ||
| chromatic | bacek, the test passes for me on your branch. | 20:43 | |
| bacek | chromatic, of course :) | 20:44 | |
| chromatic | What's holding up the merge? | 20:45 | |
| whiteknight | which branch? | ||
| chromatic | pmc_headers_move | 20:46 | |
| whiteknight | oh, what's the purpose of that one? | ||
| chromatic | Getting generated PMC headers out of src/pmc and putting them in include/parrot/ | ||
| dalek | rrot-plumage: 339f19f | japhb++ | : [PROBES] for %h.kv -> $k, $v {...} works! |
20:47 | |
| bacek | chromatic, almost nothing. I'm holding it for couple more days for testing. Probably will merge tomorrow | 20:48 | |
| chromatic, actually "include/pmc" to be consistent with installed parrot | |||
| anyway, $dayjob time | 20:49 | ||
| see you | |||
| whiteknight | that sounds to me like it would buck up against the deprecation policy | 20:50 | |
| any extensions that rely on those headers in their current location will break | |||
| chromatic | How would an extension refer to those headers? | 20:51 | |
| darbelo | *Why* would an extension refer to those headers? | ||
| whiteknight | I don't know. I seem to think it would be possible | 20:52 | |
| if they were subclassing a built-in type from C, for instance | |||
| dalek | rrot-plumage: 1a70eb0 | japhb++ | : [META] Completed TODOs |
||
| darbelo | whiteknight: pmc2c handles that for them. | ||
| .pmc shouldn't #include other pmcs headers. | 20:53 | ||
|
20:54
buildbot-redbrain joined
|
|||
| darbelo | redbrain++ | 20:54 | |
| redbrain | :) woohoo that works now hehe | ||
|
20:54
szabgab joined
|
|||
| darbelo | redbrain: Do you want me to break the build so we can test the bot? | 20:55 | |
| ;) | |||
| redbrain | haha not yet its not quite finished yet :P | 20:56 | |
| working with some of the guys on fnet to help me now its a little fiddly | |||
| crules.org:8010/ | 21:08 | ||
| thats the web interface so far | |||
| japhb | (#git)++ # And now I understand another piece of the puzzle | 21:13 | |
|
21:14
bbredbrain joined
|
|||
| redbrain | bbredbrain: help | 21:14 | |
| bbredbrain | Get help on what? (try 'help <foo>', or 'commands' for a command list) | ||
| darbelo | bbredbrain: help me | 21:15 | |
| bbredbrain | no such command 'me' | ||
| darbelo | :) | ||
| redbrain | bbredbrain: notify start | ||
| bbredbrain | try 'notify on|off <EVENT>' | ||
| redbrain | bbredbrain: notify on build | ||
| bbredbrain | try 'notify on|off <EVENT>' | ||
| NotFound | bbredbrain: help <foo> | ||
| bbredbrain | no such command '<foo>' | ||
| NotFound | You liar | ||
| Austin | bbredbrain: help notify | ||
| 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' | ||
| japhb | bbredbrain, help reconcile quantum entanglement and special relativity | ||
| bbredbrain | no such command 'reconcile' | ||
| redbrain | hahah | 21:16 | |
| japhb | SCNR | ||
|
21:18
hudnix joined
|
|||
| dalek | TT #1253 created by pmichaud++: [BUG] values returned from iterating a hash are no longer strings ... | 21:24 | |
| pmichaud | I should note that TT #1253 is a breakage in the deprecation policy also. | 21:25 | |
|
21:26
estrabd joined
21:36
desertm4x joined
21:48
nbrown_ joined
22:01
bbredbrain joined
22:05
joeri joined
|
|||
| redbrain | whoohoo is going its first build now :) | 22:06 | |
|
22:07
jsut_ joined
|
|||
| bacek_at_work | pmichaud, why HashIteratorKey is problem? | 22:08 | |
| 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? | ||
| japhb | So concat with a HashIteratorKey fails. | ||
| 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. | ||
| bacek_at_work | nope. | ||
| japhb | So if you indexed the Hash with String PMCs, you should get String PMCs out when you iterate. | ||
| bacek_at_work | You get it from iterator | ||
| not Hash | |||
| 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. | ||
| bacek_at_work | HIK.key() returns original key | ||
| japhb | bacek_at_work, why have the additional layer? | ||
| 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
|
|||
| japhb | But if you have to do a deref in PIR, how are you gaining anything? | 22:12 | |
| (in order to actually *use* the key, I mean) | |||
| bacek_at_work | chromatic, you get iterator key. Which is pair(key, value) | ||
| japhb | bacek_at_work, Oh, I see, you're actually iterating the pairs, not the keys | 22:13 | |
| but when you stringify the pair, you get the key? | |||
| NotFound | japhb: a dereference is less costly than a lookup in the hash | ||
| chromatic | That's a PIR behavior change though. | ||
| japhb | odd ... | ||
| bacek_at_work | japhb, $S0 = shift it; $P1 = hash[$S0]. This is slow. | ||
| chromatic, nope. hash[key] still returns value. | 22:14 | ||
| redbrain | bbredbrain: help | ||
| bbredbrain | Get help on what? (try 'help <foo>', or 'commands' for a command list) | ||
| japhb | I think I'm seeing the reason, it's just not self-evident what's going on. | ||
| redbrain | bbredbrain: commands | ||
| bbredbrain | buildbot commands: commands, dance, destroy, excited, force, hello, help, join, last, leave, list, notify, source, status, stop, version, watch | ||
| purl doesn't take orders. | |||
| redbrain | bbredbrain: status | ||
| bbredbrain | Debian-x86-test: idle, last build 4m43s ago: build successful | ||
| 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. | ||
| bacek_at_work | japhb, it's documented in hashiterator.pmc | ||
| 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. | ||
| NotFound | purl: sudo make me a sandwich | ||
| purl | NotFound: sorry... | ||
| 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. | ||
| Austin | NotFound: How many remaining siblings do you have? | ||
| japhb | pmichaud, feel highlighted. This discussion is up your alley. | 22:16 | |
| NotFound | Austin: About what? | ||
| Austin | Today's xkcd | ||
| purl | Today's xkcd is awesome | ||
| chromatic | The point of the change is irrelevant, if we need to follow our deprecation policy. | ||
| bacek_at_work | chromatic, and I didn't see any problems with approach to use aggregate specific iterators. | ||
| 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. | ||
| chromatic | Did this happen before 1.4? | 22:18 | |
| NEWS says "Key and Iterator refactor" in 1.4. | 22:19 | ||
| bacek_at_work | Date: Wed Aug 5 11:29:16 2009 +0000 | ||
| it's "Merge branch keys_cleanup into trunk." | |||
| chromatic | TT #1253 says pmichaud used the old way in 1.3. | ||
| Okay, that's post 1.4. | 22:20 | ||
| We need to revert that behavior change then. | |||
| bacek_at_work | ah. Nope | 22:21 | |
| Merge branch tt761_keys_revamp into trunk. | |||
| Date: Wed Jul 15 13:15:25 2009 +0000 | |||
| chromatic | This behavior change went into 1.4 silently then? | 22:24 | |
| bacek_at_work | chromatic, then yes. | 22:26 | |
| 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 ? | ||
| pmichaud | along with the other pieces of the hash iterator that broke rakudo at the time. :) | ||
| 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 | ||
| 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 :) | ||
| pmichaud, hmm. If I have small test for it I can fix it. | |||
| 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. | ||
| afaik | |||
| 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 | ||
| the old behavior returned keys | |||
| chromatic | Pairs seems better. | ||
| pmichaud | changing that seems.... problematic | ||
| bacek_at_work like current behavior more. | |||
| pmichaud | pairs seems better, yes, but there's a ton of code that depends on it coming back with keys | 22:32 | |
| I mean a *ton* | |||
| Tene | ~/ | ||
| pmichaud | so if we have it return pairs, then those pairs have to act like keys in certain contexts, and like pairs in others | ||
| 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) | |||
| 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
|
|||
| pmichaud | we're talking about parrot 0.4 to 1.3 | 22:33 | |
| chromatic | There were no deprecation promises until 1.0. | ||
| pmichaud | no, but we'd still have to fix the code | 22:34 | |
| (more) | |||
| bacek_at_work | pmichaud, most of this code use "$S0 = shift it". Which works with new iterators | ||
| pmichaud | bacek_at_work: that's because it assumes that HIK stringifies to its key | ||
| I'm not sure that's the semantics we really want | |||
| assuming that HIK is really some sort of pair | |||
| in some sense it should stringify to its value | |||
| and numify to its value | |||
| and ... | |||
| 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 | ||
| chromatic | I don't think we can decide that in the general case. | ||
| pmichaud | *considers a pair | ||
| I might feel comfortable if HIK subclassed String | 22:36 | ||
| bacek_at_work | it is pair. "Single (key,value) pair." | ||
| it has "get_string" to stringify to key. | |||
| 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 | ||
| redbrain | bbredbrain: status | 22:37 | |
| bbredbrain | Debian-PPC-G5-test: idle | ||
| Debian-x86-test: idle, last build 27m05s ago: build successful | |||
| 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. | ||
| 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? | ||
| bacek_at_work | pmichaud, you can use non-string keys right now. | ||
| pmichaud | bacek_at_work: then you've proven my point that $S0 = iter hash is not the correct interface :) | ||
| bacek_at_work | pmichaud, and concatenating HIK keys is... weird. | ||
| 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? | ||
| that's not weird at all | |||
| bacek_at_work | sorry, have to return to $dayjob, Visio and other duties. | ||
| pmichaud | that's like saying "adding integer indexes is weird" | ||
| 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 | ||
| changing it to pairs is a very substantial semantic change | |||
| and having $S0 = shift iter and $P0 = shift iter do very different things seems.... dangerous | 22:40 | ||
| (where the first returns a key, but the second returns a pair) | |||
| bacek_at_work | pmichaud, I agree about semantic change. But having old overcomplicated Keys all over code was worth. | ||
| "$S0 = shift iter" get HIK, than strinfigy it. | 22:41 | ||
| pmichaud | what does $I0 = shift iter do then? | ||
| that used to work also. :-) | |||
| 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. :) | ||
| redbrain | bbredbrain: status | 22:43 | |
| bbredbrain | Debian-PPC-G5-test: idle | ||
| Debian-UltraSparcII: idle | |||
| Debian-x86-test: idle, last build 34m02s ago: build successful | |||
| 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. | ||
| NotFound | Why on hell HashIterator.shift_string does temporary_pmc_free? =:o) | 22:45 | |
| bacek_at_work | NotFound, some optimisation by chromatic | 22:46 | |
|
22:46
theory joined
|
|||
| NotFound | "Frees a new temporary PMC created by C<temporary_pmc_new()>" | 22:46 | |
|
22:46
kj joined
|
|||
| NotFound | I don't see the corresponding temporary_pmc_free. | 22:47 | |
| s/free/new | |||
| bacek_at_work | NotFound, temporary_pmc_new == pmc_new. | ||
| redbrain | bbredbrain: status | 22:48 | |
| bbredbrain | Debian-PPC-G5-test: building(updating) | ||
| Debian-UltraSparcII: building(updating) | |||
| Debian-x86-test: idle, last build 38m08s ago: build successful | |||
| 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. | ||
| bacek_at_work | pmichaud, I can change HashIterator to return just strings. But it's less sane than (key,values)... | ||
| pmichaud summarizes bacek's final statement as "we're allowed to change behavior if there's no test for something" | |||
| NotFound | bacek_at_work: shit | ||
| japhb | redbrain, can you make those /msg's unless there's something interesting to report? | ||
| 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 | ||
| NotFound | That usage is a time bomb waiting to explode when someone wants to reimplement that temporary thing to speed it. | ||
| 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. | 22:50 | |
| chromatic | NotFound, if shift_string didn't create the temporary HIK, it wouldn't have to free it. | 23:00 | |
| 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 | |
|
23:01
fperrad_ joined
|
|||
| jonathan | I'm fixing now another thing that woulda been a NPMCA rather than a segv in the space of a day. | 23:01 | |
| This time it's Parrot_find_global_n that gave me back NULL. | 23:02 | ||
| kplzthnxbai | |||
| chromatic | pmichaud, what kind of PIR would you like to see if Hash iterators returned pairs? | ||
| NotFound | jonathan: That function isn't in the extern interface? | ||
| jonathan | Dunno. It's exported... | 23:03 | |
| Not sure that's really for it to hand back NULL though. | |||
| 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. | ||
| NotFound | jonathan: there are cases when there must be a distinction into not found and found something with a PMCNULL value. | ||
| dalek | rrot-plumage: 0cebb38 | japhb++ | : [CORE] Util.nqp: Add grep(); remove old NQP workarounds |
23:05 | |
| pmichaud | chromatic: I'm not sure what PIR I'd like to see at the moment | 23:06 | |
| chromatic: it has the potential to significantly change nearly all of the code I have that does hash iteration | |||
| so I have to think a bit about what the impact might be | |||
| 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. | ||
| pmichaud | non-existent entry should return PMCNULL to PIR | 23:08 | |
| 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. | ||
| jonathan | pmichaud: I'm just bothered by a recent upwards trend I've seen in discovering issues like this. | ||
| NotFound | The problem is doing unchecked calls and returns from opcodes to functios without the appropiate decorators and semantics. | ||
| Unfortunately, the compilers doesn't help catch that. | 23:10 | ||
| And not only for PMC, also for STRING | 23:11 | ||
| chromatic | I can't think of a case where someone would store PMCNULL in a namespace by accident. | 23:12 | |
| 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, | ||
| Don't know if in some of this cases they reached a namespace entry. | |||
| jonathan | But I was more pointing out the anti-pattern than this specific case. | ||
| chromatic | I think we should fix this specific case: don't return NULL here. | 23:14 | |
| 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 | ||
| 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 | rrot-plumage: c980976 | japhb++ | : [CORE] Util.nqp: remove straggling old-NQP-ism |
||
| chromatic | Yeah, that makes the most sense to me. | ||
| NotFound | The function is explicitly documented as returning NULL, and the code checks explicitly for PMCNULL. | 23:17 | |
| Doesn't look like an accident. | 23:18 | ||
| 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. | ||
| chromatic | I agree. | 23:20 | |
| In general. | |||
| purl | In general, you do not want to disturb The General. | ||
| NotFound | BTW Parrot_set_global sucks. | ||
| It has NULLOK parameters, and uses then unchecked. | |||
| chromatic | This file is pretty bad, safety-wise. | ||
| I'm sure we could fix the interfaces to work as people expect without harming any existing code. | 23:21 | ||
| We might even be able to make extant code safer. | |||
| NotFound | Looks like the problem is that it contains a mix of functions for internal usage and for extend/embed | ||
| chromatic | We should review the design and organization. | 23:22 | |
| 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 | |
|
23:25
kesselhaus joined
|
|||
| pmichaud | (to the extent that anything may be written about iterating hashes in the books) | 23:25 | |
| chromatic | We can edit the book; that's not onerous. | 23:26 | |
| I want to make sure that iteration is appropriately general but the intent of the PIR code is sufficiently explicit. | |||
| pmichaud | yes. | ||
| 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:27 | ||
| japhb: this means that your code would need to read for %hash { say($_.key ~ " => " ~ $_.value); } | 23:29 | ||
| instead of | |||
| purl | i think instead of is easy. | ||
| pmichaud | for %hash { say( $_ ~ " => " ~ %hash{$_} ); } | 23:30 | |
| japhb | pmichaud, way ahead of you. ;-) | ||
| (dalek just hasn't noticed yet. ;-) | |||
| pmichaud | that's closer to the Perl 6 semantic anyway, so it's a net plus for us. | ||
| japhb | nodnod | 23:31 | |
| pmichaud | hopefully the PCCMETHODS for .key/.value won't always be expensive :) | ||
| dalek | tracwiki: v2 | chromatic++ | NamespaceTasklist | 23:32 | |
| tracwiki: Edited page; added src/global.c tasks | |||
| tracwiki: trac.parrot.org/parrot/wiki/Namesp...ction=diff | |||
| tracwiki: v3 | chromatic++ | NamespaceTasklist | |||
| tracwiki: trac.parrot.org/parrot/wiki/Namesp...ction=diff | |||
| chromatic | We could add get_foo_keyed_int() to HIK to get the pair elements more cheaply. | ||
| dalek | rrot-plumage: abc6bc0 | japhb++ | : [PROBES] Use modern hash iteration semantics properly in %hash.kv |
||
| TT #1254 created by chromatic++: Update PIR Book with new (post 1.4.0) HashIteratorKey Syntax and Semantics | 23:33 | ||
| pmichaud | I'd probably prefer not to do the keyed_int part. | 23:34 | |
| let's see how the present code works out, we can optimize if it's an issue | |||
| chromatic | Okay. | ||
| pmichaud | I'll update my ticket with the resolution of the issue. | 23:38 | |
| dalek | rrot-plumage: ae8089e | japhb++ | : [CORE] Util.nqp: Add %hash.kv |
||
| pmichaud | which is basically, "we go with the new behavior" | ||
| I'll leave it to others to decide if/how/where we need to issue notices that the behavior changed | |||
| chromatic | I think that's the best option at this point. Reverting is also problematic. | ||
| 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:49 | |
|
23:54
Whiteknight joined
|
|||