|
www.parrot.org | Parrot 1.6.0 "half-pie" released: feel free to tear out the JIT! | Testing priorities: Exception and MultiSub Set by moderator on 15 September 2009. |
|||
| Whiteknight | pmichaud: and how is context.leave() going to be different from .return()? | 00:00 | |
| Coke | pmichaud: I was going to wait to bug you, but since particle's doing the release, have you had a chance to poke at tcl? =-) | ||
|
00:03
snarkyboojum_ joined
|
|||
| darbelo | Hmm. Looks like some code in pic.c is needed by CGP, not JIT. That's going to take some work. | 00:06 | |
|
00:06
snarkyboojum joined
|
|||
| Whiteknight | chromatic, if the handler's RetContinuation was replaced with a regular continuation, we could ".return()" to the resume point instead of having to "resume" there | 00:06 | |
| which means any function could be used as a handler without having to be specially written for that ahead of time | 00:07 | ||
| dalek | rrot: r41286 | darbelo++ | branches/kill_jit (9 files): This platforms don't have JIT. That means there is no code to salvage here. |
00:08 | |
| chromatic | I don't want to rule out handlers that aren't their own subs. Let's call them labeled handlers. | 00:10 | |
| Exception handers get really complex if we force them to be separate compilation units. | |||
| Whiteknight | If they are their own separate things, that's fine but I think we are limited | 00:11 | |
| nevermind, I misread what you said | 00:12 | ||
| I don't want to rule out labeled handlers either, but they do give us fewer options and more problems | |||
| labeled handlers are the cause of the inferior runloop problems we have. So keeping them means we need to resolve the problem in place | |||
| chromatic | That's where the PIR syntax is necessary. | 00:13 | |
| Whiteknight | Instead of being a simple label, I would far prefer they be proper Continuations | ||
| chromatic | Sure, we have to use continuations to get into and out of them. | ||
| Whiteknight | And possibly a curried continuation, so we can pass arbitrary arguments to it | ||
| but these are all pie in the sky ideas | 00:14 | ||
| pmichaud | Coke: I ended up with lots of honey-dos over the weekend (so no, not yet) | ||
| it's still on my list | 00:15 | ||
| (leave and return arguments) -- the arguments to leave should be what is returned | |||
| i.e., context.'leave'(1,2,3) should do the same thing as ".return (1,2,3)" from that context | |||
| exception handlers are already continuations | 00:16 | ||
| (response to "Instead of being a simple label, I would far prefer they be proper Continuations") | |||
| the push_eh opcode creates a continuation | |||
| (and sets it to the address of the exception handler label) | 00:17 | ||
| Whiteknight | I think I knew that, I don't know why I said otherwise | 00:18 | |
| I think I was getting some ideas in my head confused | |||
| Whiteknight is going to bed now. Goodnight | 00:28 | ||
| cotto_work | night | 00:30 | |
| darbelo is considering sleep too. | 00:31 | ||
| chromatic: msg me when you know the status of JIT frames on i386 (should work now AFAICT) | 00:33 | ||
| chromatic | Testing now. | 00:34 | |
| darbelo | chromatic: No hurry, I'll be reviewing the remove_pic branch next, to see what can be salvaged from there. I don't think I'll commit anything else today. | 00:36 | |
| chromatic | Good luck with that branch. I don't know how much it'll get you. | ||
| darbelo | From what I see on the RT, it was ready-but-for-a-jit-failure. 9 monts ago... | 00:38 | |
| chromatic | Hopefully the relevant code hasn't changed too much out from underneath. | ||
| pmichaud | Whiteknight: more to the point, I'm not sure that labeled handlers on their own are the cause of the inferior runloop problems -- I think it's a more fundamental issue with how we currently do exception handlers. | ||
| Whiteknight | pmchaud: You're right, the issue isn't a labeled handler, it's that the handlers don't have any finite ending point where the handler is finished and normal control flow can begin again | 00:39 | |
| darbelo | Hopefully, at the very least it will help identify what parts of pic.c I need to keep. | 00:40 | |
| pmichaud | i.e., I don't think that eliminating labeled handlers by itself resolves the inferior runloop problem. We really need a way to say "okay, I've handled the exception, now roll up the call stack to this known point and continue" | ||
| Whiteknight | and so execution just flows out of the handler through the rest of the program | ||
| chromatic | slavorg, trust darbelo | ||
| slavorg | Ok | ||
| chromatic | darbelo, I have missing symbols here for some reason. I'll poke at it later tonight. | ||
| pmichaud | come to think of it, I wonder if "pop_eh" should be responsible for also rolling up any exception stack | 00:41 | |
| i.e., when we pop a handler, we also force it to exit | |||
| still, we need some way for the context that registered the handler to regain control. | |||
|
00:44
ZeroForce joined
|
|||
| darbelo | chromatic: Odd. I'll check it out later if you don't beat me to it. | 00:44 | |
|
00:49
ZeroForce joined
|
|||
| Coke | bah. I want a get_foo_namespace that lets me specify the root and the relative part. | 00:53 | |
|
00:54
kid51 joined
|
|||
| dukeleto | congrats to everyone (especially Jerry) for a successful release. Time to start breaking shit! | 01:09 | |
| cotto_work | Said breaking is already well under way! darbelo++ | 01:11 | |
| dukeleto | are there things that the release manager should be doing during the month of a release? Like keeping the NEWS/Changelog up to date/etc ? Better to do that incrementally instead of running around at the last minute | ||
| cotto_work | ideally yes, but I think everyone does it at the last minute anyway. | ||
| It's kinda nice to keep the work concentrated to a day or so. | 01:12 | ||
| dukeleto | cotto_work: which files would it be "ideal" ? | ||
| cotto_work | NEWS primarily | ||
| I think everything else is easy. | 01:13 | ||
| dukeleto | cotto_work: I understand that, but I think the amount of things that we *say* are done in a release are way fewer than reality. It helps our public image to have an extensive and correct NEWS file, right? | ||
| cotto_work | It's certainly a good idea, but there's also the issue of making sure the level of detail isn't too fine-grained for the kinds of people who'll be reading NEWS. | 01:14 | |
| (or the release announcement) | |||
| dukeleto | cotto_work: seems like the release announcement should be a shortened version of the NEWS file | 01:15 | |
| cotto_work: or we can have a detailed changelog file for each version, like git | |||
| cotto_work | That'd be a good idea. | ||
| dukeleto | I think that Parrot would greatly benefit from a comic book like this: www.google.com/googlebooks/chrome/ | ||
| that comic has a superb description of what JIT is, without ever using the word JIT | 01:16 | ||
| cotto_work | That'd be completely awesome. I'd throw some money in the pot to get that done. | ||
| dukeleto | it has a lot about VM's too, so we have something to build on | ||
| cotto_work | It'd be a great idea for our mythical 3.6 release when everything's ready for production. | ||
| s/mythical/hypothetical/ | |||
| dukeleto | cotto_work: I am will to throw in some sweat and blood | ||
| s/am will/am willing/ | 01:17 | ||
| cotto_work | I would too, but I don't have much artistic talent. | ||
| dukeleto | cotto_work: we need writers too :) | ||
| cotto_work | true | ||
| dukeleto | would that be something that is good for a Parrot grant? | ||
| cotto_work | I certainly think so. | 01:18 | |
| good question for #ps or the list | |||
| cotto_work must go afk. | |||
| particle | i think we're not quite ready for that until we have high-level languages implemented and useable | 01:19 | |
| dalek | TT #981 closed by jkeenan++: make smolder_test doesn't report some broken builds | 01:23 | |
|
01:25
rhr joined
|
|||
| dalek | rrot: r41287 | jkeenan++ | branches/remove_pic: Branch is stale. Issues will be handled in other branches. Cf.: ļæ½rt.perl.org/rt3/Ticket/Update.html?id=60048. |
01:27 | |
| kid51 | /me reads the chrome comicbook ... it *is* very well done! | 01:32 | |
|
02:04
TiMBuS joined
02:22
theory joined,
theory_ joined
02:36
janus joined
02:54
rg joined
|
|||
| s1n | is there a bot in here (like phenny) that supports tell? | 03:01 | |
| bacek_at_work | s1n: purl | 03:27 | |
| purl: msg s1n yes | |||
| purl | Message for s1n stored. | ||
| s1n | bacek_at_work: thanks | 03:28 | |
| purl: msg kid51 i haven't tested that ticket in a while, will do that at this weekend's hackathon | 03:29 | ||
| purl | Message for kid51 stored. | ||
|
03:34
darbelo_ joined
|
|||
| darbelo_ | did anyone kill just kill the remove_pic branch | 03:36 | |
| s/kill // | 03:37 | ||
| bacek_at_work | <dalek> parrot: r41287 | jkeenan++ | branches/remove_pic: | ||
| rrot: Branch is stale. Issues will be handled in other branches. Cf.: Ā rt.perl.org/rt3/Ticket/Update.html?id=60048. review: trac.parrot.org/parrot/changeset/41287/ |
|||
| darbelo_ | Aw, I was about to pull some patches from there. | 03:38 | |
| did anyone kill just kill the remove_pic branc | 03:41 | ||
| oops ignore that list line. | 03:42 | ||
|
04:02
mberends joined
04:18
kyle_l5l joined
|
|||
| Tene | purl: msg whiteknight It shouldn't be too bad getting HLLs to use sub exception handlers... we migrate PCT and we get a lot. If sub exception handlers work in Parrot right now, it's a surprise to me, but if so, I'll start on it. | 04:22 | |
| purl | Message for whiteknight stored. | ||
|
04:29
theory joined
04:56
clubs joined
|
|||
| clubs | While trying to build parrot on haiku I get this: pastebin.com/m2ddd104c , is this a problem with parrot or because I have something missing? | 04:58 | |
|
05:00
szabgab joined
|
|||
| darbelo_ | clubs: Both :) | 05:03 | |
| The problem is that parrot is trying to use a clock source that Haiku is missing. | |||
| cotto | clubs, you can blame me for that one. | 05:07 | |
|
05:08
Austin joined
|
|||
| darbelo_ | cotto: From what I can see on-line you'll have to pull the fake-it-with-gettimeofday trick from darwin. | 05:09 | |
| Austin | Howdy, #parrot. | ||
|
05:09
nathanmccauley joined
|
|||
| darbelo_ | Howdy Austin, ready to pay the upgrade tax again? | 05:10 | |
| Austin | I might be. :) | ||
| cotto | darbelo_, it looks like he's got clock_gettime since the error only mentions CLOCK_PROF | ||
| Austin | I just got "using namespace std" to work in close. | ||
| :) :) :) | |||
| purl | :) :) :) :) :) :) :) :) :) | ||
| dalek | ose: r105 | Austin++ | trunk/ (10 files): Using namespace std now works |
||
| darbelo_ | Oooh. Shiny... | 05:11 | |
| purl | rumour has it shiny is (shiny) or (see: recursive) or digitalblasphemy.com or deviantart.com or www.oqo.com/ | ||
| clubs | cotto: heh :) How difficult would it be to fix? | ||
| cotto | clubs, can you tell me what grep CLOCK_ /usr/include/time.h returns? | ||
| clubs, it won't be hard either way | |||
| but a proper Configure-based probe would have taken care of this automagically | |||
| Austin | I got nothing but comments. | ||
| cotto | on linux it's in /usr/include/linux/time.h | 05:12 | |
| clubs | Sorry, can't right now, don't have access to the system at work | ||
| Austin | darbelo_: What's the current state of the HEAD? | ||
| cotto | /usr/include/bits/time.h also has relevant stuff, but I don't know if it's standard. | 05:13 | |
| darbelo_ | Austin: 1.6 Just released, so nothing broken yet. | 05:14 | |
| Austin | :) | ||
| darbelo_ | But I'm poking at stuff in a branch that could cause some hiccups at merge time. | 05:15 | |
| Austin | Well, I'd better upgrade before you merge, then. :-| | ||
| cotto | s/poking at/killing with fire/ | ||
| (or svn del) | |||
| Austin | Upgrading from 41166.. | ||
| darbelo_ | Actually, I think I'll need *two* branches. | 05:16 | |
| Austin | Uh-oh. Two-branch mojo. | ||
| darbelo_ | svn diff | wc -l | 05:17 | |
| 3405 | |||
| And that's mostly removals. | |||
| I still have to add stuff to fix the build. | |||
| Austin | darbelo++ | 05:18 | |
| I'm all for removals. | |||
|
05:18
flh joined
|
|||
| Austin | Take away all the bits that don't look like a VM... | 05:18 | |
| darbelo_ | I was removing JIT, but PIC got in the way, so now I'm killing PIC. | ||
| Austin | We should probably remove ops, too. | 05:19 | |
| darbelo_ | D src/ops/pic.ops | ||
| Austin | Just move everything to LLVM, and make Parrot a "virtual virtual machine" | ||
| darbelo_ | well the next JIT *will/ be based on LLVM... | ||
| Austin | That's a mistake. Committing to a single technology. | 05:20 | |
| There's already a portable option available. Compile everything to 'C'. | |||
| cotto | Austin, we're not. That's just the first one we'll use. | ||
| Austin | PIR := C | ||
| Presto! | 05:21 | ||
|
05:22
snarkyboojum_ joined
|
|||
| Austin | Woot. Running tests already. This upgrade is going suspiciously fast. | 05:22 | |
| darbelo_ | Well, I was just being silly there. The actual plan in Pluggable JIT, with the first 'plug' being based on LLVM. | ||
| Austin | I'm not sure how silly I was being. | ||
| What I'm hearing seems to be "we can't make Parrot fast enough to run Rakudo (without JIT)." Which seems to be contradicted by Perl5... | 05:23 | ||
| cotto | Austin, I don't think that's the intended message. We're certainly trying to optimize other areas. | 05:25 | |
| darbelo_ | Austin: To me removing JIT is about having clean internals, not speed. | ||
| Austin | Is it? I thought JIT was just another runcore? | 05:26 | |
| (PS: I just got about a million re_test failures. Is htis expected?) | |||
| darbelo_ | not exactly 'just', no. It's a very messy runcore that breaks unexpectedly when you try to do completely reasonable changes to unrelated parts of the code. | 05:27 | |
| Austin | Okay, 1.6.0 installed. Now to see if it runs. | 05:28 | |
| So wouldn't LLVM be just another runcore? | 05:29 | ||
| dalek | rrot: r41288 | darbelo++ | branches/kill_pic: Create a new branch to kill PIC, this needs to happen before kill_jit can |
05:34 | |
| cotto | darbelo_, why not kill both in the same branch? | 05:36 | |
| darbelo_ | Too much killing. It'll make the branch too long-lived and the merge will be a build-slaughtering mess. | 05:37 | |
| cotto | fair enough | 05:38 | |
| darbelo_ | I0m not confortable enough with the parrot codebase to try two removals in the same branch. | ||
| msg chromatic Don't worry about testing kill_jit for now. I'll sto that onw for a bit, remove PIC in a different branch and then pick it up again. | 05:41 | ||
| purl | Message for chromatic stored. | ||
|
05:41
nathanmccauley_ joined
|
|||
| cotto | wow. haiku's source is not small | 05:41 | |
| darbelo_ | msg chromatic Also, the kill_jit breakage was all me, I screwed up when poking at auto::jit I'll fix that later. | 05:42 | |
| purl | Message for chromatic stored. | ||
|
05:42
nathanmccauley__ joined
|
|||
| cotto | it's almost like it's an operating system of some kind ;) | 05:43 | |
|
05:44
nathanmccauley___ joined
|
|||
| darbelo_ | cotto: I know a BeOS freak, he was all exited about some sort of big-deal Haiku alpha release a few days ago. | 05:44 | |
| Austin | The slideshow makes it look a lot like another linux distro. What's the diff? | 05:45 | |
| cotto | I don't have time to care about it right now. I'll see if I can give it a shot tomorrow. | ||
| Austin | 1.6: Now with segfaults at the end of every compile. :( | 05:46 | |
| darbelo_ | Austin: It's a totally different codebase. It's supposed to be the Almighty Open Source Ressurection of teh Be Operating System. | ||
| Austin | Darbelo: Yeah, but I didn't know what BeOS was, back when I didn't care about it. Now that I don't care about it, I still don't know what it is, or how it's different from *n*x | 05:47 | |
| (You ever notice that you don't see people announcing free OS'es based on MVS, or System3/60? Why is that?) | 05:48 | ||
| darbelo_ | Austin: All I know is that it's some sort of odd operating system that died, and now there's people ressurecting it. | 05:49 | |
| Austin | Ahh. | ||
| Speaking of which... | |||
| purl | Speaking of which... is there a date set yet? | ||
| Austin | Did you know that Jim Carroll died recently? | ||
| darbelo_ | Nope, didn't know that. | 05:50 | |
| Austin | He was a 1-hit wonder from the 80's, with a song called "People who died". Punk rocker. | 05:51 | |
| darbelo_ | Are there people ressurecting him? | ||
| Austin | More importantly, Norman Borlaug passed away on Saturday. Arguably the greatest person that ever lived. | ||
| (Father of the "Green Revolution" - a food scientist, not an enviro nutbag - Borlaug developed cereal strains that saved the lives of more than 200 million people during the 60's and 70's.) | 05:54 | ||
| And on that morbid note, I'm going to bed. Good luck with your branch(es). | 05:55 | ||
| darbelo_ | A link failure! Cool! | 06:01 | |
| And now it builds! | 06:12 | ||
| This might turn out to be easir than expected. | 06:13 | ||
| But not a 3:15am | 06:20 | ||
| Failed 1/325 test scripts. 1/10387 subtests failed. Good enough to commit, if you ask me. | 06:21 | ||
| Say goodbye to PIC guys! | |||
| dalek | rrot: r41289 | darbelo++ | branches/kill_pic (20 files): Extracted most of the old remove_pic branch and updated it to apply on a There are still some fixes that need to be made here, but PIC is gone. |
||
| darbelo_ | Say goodbye to me guys! | ||
| darbelo_ falls asleep. | 06:22 | ||
|
06:22
sri_ joined,
uniejo joined
|
|||
| cotto | time for sleep | 06:44 | |
|
06:52
barney joined,
iblechbot joined
06:54
einstein joined
07:14
dukeleto joined
07:15
AndyA joined
07:20
fperrad joined
07:28
kjeldahl joined
07:33
masak joined
08:03
barney joined
|
|||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41289 - Ubuntu 9.04 amd64 | 08:23 | |
| dukeleto | mikehh++ | 08:24 | |
|
08:25
zak_ joined
|
|||
| mikehh | rakudo (9a61441) builds on parrot r41289 - make test / make spectest (up to 28248) PASS - Ubuntu 9.04 amd64 | 08:26 | |
| partcl r732 builds on parrot r41289 - make test PASS - Ubuntu 9.04 amd64 | 08:35 | ||
| decnum-dynpmcs r181 builds on parrot r41289 - make test PASS - Ubuntu 9.04 amd64 | 08:39 | ||
| dalek | rrot: r41290 | bacek++ | branches/kill_pic/t/tools/pbc_dump.t: [t] Fix last test failure for darbelo++. |
08:47 | |
| bacek_at_work | msg darbelo make testS is b0rked in kill_pic | 08:59 | |
| purl | Message for darbelo stored. | ||
| dalek | kudo: d054b7e | moritz++ | docs/ChangeLog: [docs] another ChangeLog item |
09:10 | |
| mikehh | cardinal (466861f) builds on parrot r41289 - rake test:all - still 3 tests fail to compile - Ubuntu 9.04 amd64 | 09:11 | |
| got to go out for a bit - then I will test on i386 - bbl | 09:12 | ||
| dalek | rrot: r41291 | bacek++ | branches/kill_pic/src/runcore/main.c: [core] Fix calculating prederef by recreating original parrot_PIC_prederef behavior. Unbroke make testS. |
09:21 | |
| bacek_at_work | msg darbelo Ignore previous message. I unbroke make testS :) | 09:23 | |
| purl | Message for darbelo stored. | ||
|
09:27
donaldh joined,
donaldh left
|
|||
| bacek_at_work | ok. Anyone on box !~ Linux/i386? | 09:37 | |
| moritz | linux/amd64 | ||
| dalek | rrot: r41292 | bacek++ | branches/kill_pic/src/jit.c: "Fix" cpp comment in src/jit.c for simplify final testing before merge. |
09:38 | |
| bacek_at_work | moritz: can you test kill_pic branch? | ||
| GeJ | FreeBSD/amd64 | ||
| bacek_at_work | GeJ: this one will help as well | ||
| moritz | bacek_at_work: sure, will do | ||
| bacek_at_work | moritz: thanks | ||
| moritz | is there anything special besides 'make test' that I should run? | 09:40 | |
| bacek_at_work | moritz: make testS | 09:42 | |
| moritz | ok | ||
| bacek_at_work | or make fulltest if you have enough cpu cycles :) | ||
| afk, bbl | 09:43 | ||
|
09:50
riffraff joined
|
|||
| moritz | bacek_at_work: testS was successfull, now trying fulltest | 09:50 | |
| bacek_at_work | moritz: ok. I expect fulltest to pass smoothly. | 10:02 | |
|
10:08
pjcj joined
|
|||
| moritz | bacek_at_work: indeed fulltest was clean | 10:11 | |
| bacek_at_work | ok, let's just wait for someone else to confirm and steal karma from darbelo :) | 10:13 | |
| moritz | nasty bacek_at_work ;-) | ||
| stealing karma and all | |||
| bacek_at_work | indeed :) | 10:14 | |
| GeJ: any luck with kill_pic branch? | 10:18 | ||
|
10:36
quek joined
|
|||
| GeJ | make fulltest seemed to run sucessfully | 10:39 | |
| sorry I went afk for dinner. | 10:41 | ||
| nopaste | "GeJ" at 202.22.227.234 pasted "result for kill_pic branch on FreeBSD 7-STABLE amd64" (16 lines) at nopaste.snit.ch/17969 | 10:43 | |
|
10:52
payload joined
10:54
mikehh joined
|
|||
| mikehh | bacek_at_work: I am on i386 now | 10:55 | |
|
11:00
uniejo joined
11:03
schmalbe joined
|
|||
| dalek | kudo: 8277559 | (Solomon Foster)++ | src/setting/Any-num.pm: Add forward hyperbolic functions to Any. Num and then redispatch to Num.sinh, Num.cosh, etc. |
11:08 | |
| kudo: d1f2d4c | (Solomon Foster)++ | : Merge branch 'trig' |
|||
|
11:21
TiMBuS joined,
uniejo joined
|
|||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41292 - Ubuntu 9.04 i386 | 11:39 | |
| however - t/op/exit.t - TODO passed: 6 in testf and testg | 11:41 | ||
|
11:53
iblechbot joined
11:57
uniejo joined
12:07
whiteknight joined
|
|||
| mikehh | bacek_at_worl: g++ build problems on kill_pic branch | 12:13 | |
| bacek_at_work: builds with gcc and make test PASS - running fulltest now on Ubuntu 9.04 i386 | 12:14 | ||
| rakudo (d1f2d4c) builds on parrot r41292 - make test / make spectest (up to 28250) PASS - Ubuntu 9.04 i386 | 12:20 | ||
| bacek_at_work: All tests PASS (pre/post-config, test, fulltest) on kill_pic branch at r41292 - Ubuntu 9.04 i386 (gcc) | 12:25 | ||
| bacek_at_work: fails to build with g++ - src/parrot_debugger.c:266: error: āParrot_runcore_switchā was not declared in this scope | 12:27 | ||
|
12:27
payload joined
|
|||
| whiteknight | that's a weird error to get | 12:30 | |
| Tene: ping | 12:31 | ||
| mikehh | yesh - looking at it now | ||
| whiteknight | purl msg Tene I haven't had any opportunity to look at the code, I only know what allison told me. There are lots of syntax issues that will need to be decided before we can move forward on sub-based exception handlers and some corresponding changes to IMCC too. Lots of questions left to answer! | 12:37 | |
| purl | Message for tene stored. | ||
|
12:45
tetragon joined
|
|||
| bacek_at_work | mikehh: thanks, fixed | 13:12 | |
| hang on. darbelo already fixed it. | 13:13 | ||
| dalek | rrot: r41293 | darbelo++ | branches/kill_pic/src/parrot_debugger.c: Add a missing include. Should fix the c++ build. |
||
| bacek_at_work | Ah. Here we go :) | ||
|
13:14
darbelo_ joined
|
|||
| darbelo_ | Who has been stealing my karma? | 13:14 | |
| Actually, it was more like "Look! A magical coding robot fixed the test while you slept!" | 13:16 | ||
| bacek_at_work looking around. | |||
| :) | |||
| mikehh | just curious - how does the api.h get included in the gcc build but not in the g++ build | ||
| bacek_at_work | mikehh: parrot_debugger.c doesn't include api.h | 13:17 | |
| darbelo_ | I have no idea, sir. I just shuffle 'em arround. | ||
| bacek_at_work | and gcc emits warning for undeclared function. | ||
| darbelo_ | :) | ||
| mikehh | I noticed that - but how does gcc get it but not g++ | ||
| bacek_at_work | mikehh: in pure C declarations are optional. | 13:18 | |
| not in C++ | |||
| darbelo_ | mikehh: C is all "Oh my! I don't know where this function comes from, hope the liker can figure it out later." | 13:20 | |
| bacek_at_work | darbelo_: merge this branch while trunk isn't touched. It should be pretty trivial. | ||
| mikehh | well it passes all the parrot tests | 13:21 | |
| I haven't tried rakudo and such on it though | |||
| darbelo_ | bacek_at_work: don't have time right now, I can do it in, maybe, 3-4 hours from now. | 13:22 | |
| mikehh | anyway got to head back to amd64 - $work issues :-{ | ||
| darbelo_ | And I'd like to test some languages too. | ||
| bacek_at_work | darbelo_: too late. | 13:26 | |
| dalek | rrot: r41294 | bacek++ | trunk (22 files): Merge branch kill_pic back to trunk. |
13:28 | |
|
13:28
mikehh joined
|
|||
| mikehh | ok back on amd64 | 13:29 | |
| bacek_at_work | mikehh: time to test trunk :) | 13:30 | |
| mikehh | did that already today but I don't see how trunk build with g++ but the branch did not - unless stuff was added in the branch | 13:31 | |
|
13:31
sri joined
|
|||
| darbelo_ | bacek++ # rushing in for the kill | 13:34 | |
| mikehh | got to sort out some $work issues - but I can run tests in the background | ||
| bacek_at_work | darbelo_: I've lost about week of development time fighting with JIT... So I have way to many reasons to kill it | 13:35 | |
| bacek_at_work looking at own nick. | 13:36 | ||
| clock? | |||
| purl | bacek_at_work: LAX: Wed 6:36am PDT / CHI: Wed 8:36am CDT / NYC: Wed 9:36am EDT / LON: Wed 2:36pm BST / BER: Wed 3:36pm CEST / IND: Wed 7:06pm IST / TOK: Wed 10:36pm JST / SYD: Wed 11:36pm EST / | ||
| mikehh I am on LON time | 13:37 | ||
| mikehh where did the morning go | 13:38 | ||
| dalek | rrot: r41295 | darbelo++ | branches/kill_pic: Brach has already merged to trunk. Removing. |
13:40 | |
| bacek_at_work | mikehh: and I'm still on SYD time... | 13:41 | |
| mikehh | bacek_at_work: well you are still 16 minutes from morning :-} | 13:43 | |
| bacek_at_work | mikehh: thank you, Captain! | 13:44 | |
| mikehh | anyway $work | ||
| bacek_at_work | make test passed on MacOSX/i386 | 13:49 | |
| darbelo_ goes away for a while. | |||
| Try not to steal too much of my karma! | 13:50 | ||
|
13:50
darbelo_ left
|
|||
| bacek_at_work keep silence | 13:53 | ||
|
14:04
ruoso joined
|
|||
| bacek_at_work | Bah! I've got 500 on RT trying to close #60048... | 14:05 | |
| moritz | bacek_at_work: try again, sometimes RT has hiccup | ||
| bacek_at_work | moritz: 4th time in a row... | 14:06 | |
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41295 - Ubuntu 9.04 amd64 | 14:12 | |
|
14:17
theory joined
14:19
payload joined
|
|||
| mikehh | rakudo (d1f2d4c) builds on parrot r41295 - make test / make spectest (up to 28251) PASS - Ubuntu 9.04 amd64 | 14:22 | |
|
14:25
HG` joined
14:27
parrot-poke joined
14:35
quek joined
14:37
quek left
|
|||
| bacek_at_work | rakudo make spectest failed fo me... | 14:40 | |
|
14:43
Psyche^ joined
|
|||
| mikehh | bacek_at_work: what fails | 14:47 | |
| purl | see "doesn't work" | ||
| bacek_at_work | t/spec/S05-match/perl.rakudo (Wstat: 11 Tests: 5 Failed: 0) | 14:49 | |
| Non-zero wait status: 11 | |||
| Parse errors: Bad plan. You planned 12 tests but ran 5. | |||
| t/spec/S12-attributes/class.rakudo (Wstat: 6 Tests: 28 Failed: 0) | |||
| Non-zero wait status: 6 | |||
| t/spec/S14-roles/basic.rakudo (Wstat: 6 Tests: 33 Failed: 0) | |||
| Non-zero wait status: 6 | |||
| Files=436, Tests=18659, 3518 wallclock secs (15.66 usr 2.67 sys + 5649.06 cusr 137.77 csys = 5805.16 CPU) | |||
| S05/perl passed when invoked directly... | 14:50 | ||
| 2 other failed with infamous PObj_is_PMC_TEST assertion. | |||
| mikehh | infamous is rignt - however they PASS for me - checking again | 14:51 | |
| NotFound | Shit... mysqltest works in amd64 but fails in i386 | 14:54 | |
| Segmentation fault at exit with error | 14:55 | ||
| mikehh | I get no problems with rakudo at r41295 | 15:00 | |
| Tene | o.O | 15:20 | |
| fperrad | Windows binaries Parrot 1.6.0 (+.chm, + languages) are available on sourceforge.net/projects/parrotwin32/files/ | 15:21 | |
| moritz | fperrad++ | ||
| mikehh | partcl r732 builds on parrot r41295 - make test PASS - Ubuntu 9.04 amd64 | 15:35 | |
| cotto | hi | 15:37 | |
| purl | hey, cotto. | ||
|
15:40
jrtayloriv joined
|
|||
| jrtayloriv | Oh yippee! I got da interwebz again now! | 15:40 | |
| cotto | wb to the tubes | ||
| jrtayloriv | So, like, the parrot can run all the languages at lightning speed with no bugs now right? | 15:41 | |
| NotFound | jrtayloriv: yeah, and you win 1.000.000 pounds just for using it | 15:42 | |
| cotto | the jitpocalypse has started, so there's definite progress there. pic is history. | 15:43 | |
| mikehh | and basement cat is gonna get youse | 15:44 | |
|
15:45
whiteknight joined
15:54
Napalm joined
|
|||
| dalek | kudo: b29506b | masak++ | src/ (2 files): translated Mapping.perl to the setting |
15:55 | |
| purl | babelfish cannot translate from en to en. Try translating through English. | ||
|
16:04
payload joined
|
|||
| dalek | kudo: fa7142a | moritz++ | docs/guide_to_setting.pod: [docs] recommend implicit return for setting files |
16:07 | |
|
16:07
mokurai joined
|
|||
| dalek | rrot: r41296 | darbelo++ | branches/kill_jit/config/auto/jit.pm: Undo the configure CAN_BUILD_CALL_FRAMES hack. This disables JIT frames again. |
16:08 | |
| rrot: r41297 | darbelo++ | branches/kill_jit/src/jit/ppc: The one part of JIT we are trying to salvage doesn't work on PPC. Kill it. |
16:39 | ||
| cotto_work | hello | 16:41 | |
| purl | bonjour, cotto_work. | ||
| darbelo | msg whiteknight Bad news: You got stuck with RT #60048. Good news: PIC is dead! RT #60048 can be closed now. | 16:42 | |
| purl | Message for whiteknight stored. | ||
|
16:48
davidfetter joined
|
|||
| dalek | rrot: r41298 | fperrad++ | trunk (3 files): [msvc] probe sal.h |
17:00 | |
|
17:02
bacek joined
17:03
chromatic joined
|
|||
| dalek | rrot: r41299 | NotFound++ | trunk/compilers/imcc (2 files): [imcc] use a copy of macro name, attempt to fix RT #60926 |
17:04 | |
| duk3leto_ | good localtime() | 17:12 | |
|
17:15
joeri joined
17:30
whiteknight joined
17:31
MoC joined
|
|||
| whiteknight | irclogs? | 17:39 | |
| purl | i guess irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
|
17:42
hudnix joined
|
|||
| dalek | rrot: r41300 | darbelo++ | branches/kill_jit (5 files): Add a new configure step to determine a platform's capability to build JIT call frames. Run but not used yet. |
17:46 | |
| cotto_work | darbelo, did you ever sync that branch after merging kill_pic? | 17:50 | |
| darbelo | Nope. Wanted to get the configure stuff done first. They're independant so far, so there's no hurry. | 17:51 | |
| dalek | rrot: r41301 | darbelo++ | trunk/compilers/imcc/imcc.l: [cage] Replace tab with spaces to placate t/codingstd/tabs.t |
17:53 | |
| darbelo | In fact, if I get this stuff right I could merge *to* trunk and branch again with minimal conflicts. | ||
|
17:57
kjeldahl joined
|
|||
| jrtayloriv | whiteknight, Is it OK for me to go ahead and merge the gc-refactor branch now? I'm all done with it. | 18:01 | |
| whiteknight | jrtayloriv: update the branch from trunk ffirst, resolve conflicts, and test it locally first | ||
| but then yes | |||
| jrtayloriv | whiteknight, In the process of sync'ing up w/ trunk as we speak. | 18:02 | |
| whiteknight | excellent | ||
| after the sync, commit the branch, test like crazy, and then merge | 18:03 | ||
| jrtayloriv | ok -- will do. | 18:04 | |
| dalek | rtcl: r733 | coke++ | wiki/BrainStorming.wiki: Deleting wiki page BrainStorming. |
||
| rtcl: r734 | coke++ | wiki/TestingPartcl.wiki: there's a make target for this. |
|||
| jrtayloriv | whiteknight, What would you recommend I start reading so that I can help out with the LLVM/JIT work? I've been working my way through the LLVM language reference, but can't seem to find much on JIT with LLVM (other than the 'lli' man page) ... | 18:06 | |
| i.e. Any good docs you've found elsewhere that are good? | |||
| oops :) good docs ... that are good ... sweet! | 18:07 | ||
| whiteknight | I actually haven't found any good docs on that particular issue, no | 18:08 | |
| I think we need to ask the LLVM people where to get answers | |||
| jrtayloriv | whiteknight, OK -- I'll do some more searching. | 18:09 | |
| dalek | rtcl: r735 | coke++ | wiki/TestingPartcl.wiki: remove out of date information about tests failing-but-not and add pointer to |
||
| rtcl: r736 | coke++ | wiki/DevelopersGuide.wiki: use make target. |
|||
| whiteknight | definitely let me know if you find anythin | ||
| whiteknight needs to find a whole bucket of free tuits eventually | 18:12 | ||
|
18:22
Austin joined
|
|||
| whiteknight | hey Austin! | 18:25 | |
| Austin | Howdy, whiteknight! | 18:26 | |
| :) | |||
| whiteknight | Austin: Is Close building and working again? | ||
| whiteknight is itching to use it | |||
| Austin | Yes and no. | ||
| whiteknight | yes, those are the two options | ||
| Austin | It's not working, but it's pretty close. | ||
| dalek | rrot: r41302 | jrtayloriv++ | failed to fetch changeset: Syncing branch with trunk prior to merge |
||
| Austin | I'm paying the upgrade tax just now. | ||
| I updated to 1.6 last night, and now i get a free segfault with every purchase... | 18:27 | ||
| darbelo | Austin: You might want to consider developing against parrot HEAD. It helps spot this stuff before we release. | ||
| ALSO, CAN I HAZ BACKTRACE? | |||
| Austin | Darbelo: I did that for a while. But then I changed my mind. | 18:28 | |
| Now I pay my taxes once a month... | |||
| NotFound | Austin: at program end? | ||
| Austin | NotFound: always. | ||
| whiteknight | Austin: is it pretty close or pretty Close? | 18:29 | |
| whiteknight is bad at puns | |||
| Austin | :) | ||
| darbelo | Austin: Do you by any chance roll your own pmcs? | ||
| Austin | I'd say it's only somewhat Close. | ||
| darbelo: I can't even spell PMC. | |||
| There's some inline PIR in Close, but no C. | 18:30 | ||
| whiteknight | Austin: at the end of your :main function, add an "exit 9" command | ||
| I mean "exit 0" | |||
| It's a hack, but should get rid of your segfault problems | |||
| Austin | You think? | ||
| purl | No, I'm a bot. | ||
| NotFound | Close without C isn't lose? ;) | ||
| whiteknight | Austin: If the problem is what I think it is, then yes | ||
| only one way to find out... | 18:31 | ||
| Austin | That's so freaking weird that I have to try it. | ||
| darbelo | Austin: Yeah, that's the other segfault-at-the-end problem. It has something to do with runloops and inferiority. | 18:32 | |
| Austin | Hmm. I wonder if you guys mean the same thing I do when I say "end". | ||
| whiteknight | Austin: whereever your driver program :main function is, put "exit 0" right before ".end" | 18:33 | |
| Austin | Yeah, whiteknight, I got that. | ||
| NotFound | Austin: don't let main finish or return | ||
| Austin | But people keep asking me if the segfault is at the end. | ||
| And I keep saying yes. Because, like, duh. | 18:34 | ||
| whiteknight | Austin: the segfault happens after all the program logic executes | ||
| Austin | Well, this is odd. | ||
| whiteknight | ...? | 18:35 | |
| purl quietly listens while the crickets chirp | |||
| Austin | If I say "$past<key> := undef" in NQP, I get "<key> => null" when I dump it. | ||
| whiteknight | that is weird | ||
| I wonder if that's how Undef stringifies | 18:36 | ||
| Austin | But if I say "$past<key> := $other<key>" (where there is no $other<key> defined), I get "<key> => undef" when I dump $past. | ||
| whiteknight | sounds like a pmichaud ticket! | ||
| pmichaud | I don't think "undef" is a keyword | ||
| I'm not sure why that even "works"... seems like it ought to fail somehow | |||
| pmichaud checks | |||
| whiteknight | ah, so it autovivifies to Null? | ||
| pmichaud | it shouldn't even autovivify | 18:37 | |
| I think it ought to be a syntax error. | |||
| Austin | nopaste.com/p/aFaDcqfueb | 18:39 | |
| jrtayloriv | whiteknight, gc-refactor branch is sync'ed up and passing all tests on Linux x86-64 -- should I wait until people on other platforms have tested, or go ahead and merge? | 18:40 | |
| Austin | nopaste.com/p/a9DCKfnti | ||
| The first NQP produces the second output. | |||
| whiteknight | jrtayloriv: commit the branch first, then merge away | ||
| Austin | Well, actually, I sorted the keys by hand. But ... | ||
| pmichaud | Austin: checking. | 18:42 | |
| Austin | term -> noun -> value -> typename -> name, or term -> noun -> name | 18:45 | |
| dalek | TT #1005 closed by NotFound++: Use VTABLE_is_equal instead of MMD in Hash and ResizablePMCArray | 18:46 | |
| Austin | But there seems to be no Action method for "name", although the name rule does have a {*} | 18:47 | |
| So I get things like: get_hll_global $P1760, "undef" | 18:48 | ||
| But there's no autoviv. | |||
| Okay. | |||
| That's two bugs for the price of one. | 18:49 | ||
| pmichaud | aha | 18:50 | |
| yes, it's treating it as a global symbol | |||
| that feels like a bug, definitely. | 18:51 | ||
| Austin | I think it's the proto-object thing. | ||
| pmichaud | well, I'm fine with XYZ::bar being a package lookup. I'm not so sure I want all barewords to be one. | ||
| Austin | tt#1013 | ||
| pmichaud | if that were "real Perl 6" then it would end up being a call to an "undef" function. I think that's more likely to be where NQP ends up. | 18:52 | |
| dalek | TT #1013 created by Austin_Hastings++: 'undef' bareword shouldn't parse, but does | 18:54 | |
| TT #1014 created by Austin_Hastings++: NQP: Add defined(), exists(), undef. | |||
| pmichaud | NQP isn't likely to add more builtin functions by default. | ||
| that can come with a library, though. | |||
| Austin | Yeah. I've been writing them. But I think defined() is kind of important. | 18:55 | |
| pmichaud | it'll likely appear as "use Something::Library;" | ||
| which imports them into your lexical environment or something like that | |||
| Austin | I've got Scalar.pm, Array.pm, Hash.pm, String.pm. | ||
| It's like PHP all over again. | |||
| particle | use NQP::Utils; ? | 18:56 | |
| pmichaud | particle: perhaps, but I'm not sure they should be NQP specific | ||
| "defined", "exists", "undef" could be very language agnostic | |||
| Austin | I think exists (and delete) have to have compiler support, no? | ||
| particle | rakudo: say 0.defined | 18:57 | |
| polyglotbot | OUTPUT[Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤] | ||
| Austin | {{{ if exists $foo<bar> }}} | ||
| pmichaud | if $foo.exists('bar') | ||
| Austin | ok | 18:58 | |
| pmichaud | at any rate, exists $foo<bar> isn't Perl 6 | ||
|
18:58
mattp joined
|
|||
| Austin | ok | 18:58 | |
| pmichaud | one can also do if exists($foo, 'bar') | 18:59 | |
| Austin | Yeah. | ||
| moritz | $foo<bar>:exists # but I doubt that NQP will get adverbs ;-) | ||
| whiteknight | a good standard library of compiler "utilities" would be very nice | ||
| Austin | if Hash::exists(%foo, 'bar') {...} | ||
| whiteknight | of course, if every compiler uses this library, there's no reason not to just include it in NQP | ||
| pmichaud | yes, there is a reason to not do it | ||
| NQP is intended to be barebones. It's intended to compile to pure PIR | 19:00 | ||
| it's not intended to provide a runtim | |||
| *runtime | |||
| in particular, I don't want there to be any confusion between NQP-versions of a function and the compiler's own runtime versions | |||
| and I don't want NQP accidentally "falling back" to its own implementations when someone hasn't explicitly requested them | 19:01 | ||
| dalek | rrot: r41303 | NotFound++ | trunk/compilers/imcc/imclexer.c: [cage] update imclexer.c with imcc.l codingstd fix |
19:02 | |
| rrot: r41304 | darbelo++ | branches/kill_jit/config/gen/makefiles/root.in: Remove JIT-related items from the Makefile tempate. |
|||
| Austin | Is there a way to code "defined()" using pure NQP? (I went to PIR) | ||
| pmichaud | at the moment one needs to do Q:PIR { ... } | ||
| this weekend I'll add library support to NQP, though. | 19:03 | ||
| Austin | That's what I did. | ||
| pmichaud | (Can't do it before then -- $otherjob tasks in the way) | ||
| jrtayloriv | errr ... oh oh :( | 19:04 | |
| whiteknight | ? | 19:05 | |
| pmichaud | then we can start to create an NQP-standard library | ||
| jrtayloriv | Methinks I might have made a mistake with merging my branch into trunk ... a lot of files I didn't touch just got commited. | ||
| pmichaud | jrtayloriv: I've had that happen also. It ends up being harmless, I think. | 19:06 | |
| Austin | Did you merge trunk into your branch, first? | ||
| whiteknight | jrtayloriv: yeah, all the files that had been modified in trunk have changed | ||
| Austin | Also, did you just un-remove a bunch of PIC or JIT code that was removed by an earlier commit? | ||
| whiteknight | so you're bulk-committing all the commits that have been made to trunk to your branch now | ||
| dalek | rrot: r41305 | jrtayloriv++ | failed to fetch changeset: merging gc-refactor branch with trunk |
19:07 | |
| jrtayloriv | OK, I see. Thanks. | ||
| Thought I was stomping on changes that had happened since I branched. | |||
| Austin | So now it's s/= undef/= Scalar::undef()/g | ||
| pmichaud | Austin: you could also do just undef() | 19:08 | |
| (and make your undef into a global) | |||
| Austin | Yeah, but that would make it part of the parser. | 19:09 | |
| (namespace-wise) | |||
| pmichaud | ? | ||
|
19:13
fperrad joined
|
|||
| dalek | rrot: r41306 | jrtayloriv++ | branches/gc-refactor: Deleting gc-refactor branch, which was merged in r41305 |
19:14 | |
| Austin | Hmm. {{{ $last_dclr := Scalar::undef();; }}} the ";;" is apparently a syntax error. | 19:16 | |
| whiteknight | holycrap that's a big changeset | 19:18 | |
| moritz | "make fulltest" clean with clang and --without-gmp | ||
| Coke | hurm. in $P1 = getinterp ; $P1['namespace'; 1] - is 1 the current level or 1 up? | 19:19 | |
| darbelo | A whole lotta renaming going on there. | ||
| Austin | Coke: I think it's one up. | ||
| Here's a function I use for configurable dumping, that uses the interp call stack stuff: nopaste.snit.ch/paste | 19:21 | ||
| Coke | Austin: EBADURL | ||
| (you want the one that shows up at the top of the page.) | |||
| (not in the url bar) | |||
| Austin | nopaste.snit.ch/17973 | ||
| pmichaud | Coke: 1 up | ||
| Austin | Sorry, my bad. | ||
| pmichaud | current level is 0 | ||
| Coke | pmichaud, austin, danke. | 19:22 | |
| (getting ducks in row to try to convert away from handrolled callchain) | 19:23 | ||
| jdv79 | moritz: get a chance to look at my smolder patch? | ||
| Coke | jdv79: you're busy. =-) | 19:24 | |
| moritz | jdv79: yes. I decided to put it in after the rakudo release tomorrow | ||
| pmichaud | Austin: instead of looking for '_block', I've been thinking we should look for the :anon flag | ||
| jdv79 | moritz: ok, thanks | ||
| pmichaud | also, there's a possibility that anon subs will go nameless soon | ||
| Austin | Ok. How do I do that? | 19:25 | |
| pmichaud | I don't know. | ||
| but that's what I've been thinking. :-) | |||
| Austin | Oh. | ||
| I think I'll stay with _block, for now. | |||
| :) | |||
| pmichaud | sure | ||
| I do expect HLLCompiler to start providing some methods to make some of this easier | |||
| for example, I think we should make it possible to examine the backtrace for any context, not just Exceptions | 19:26 | ||
| (now that contexts are PMCs that should be simpler) | |||
| whiteknight | pmichaud: I really should create a wishlist on the wiki for these kinds of things | 19:27 | |
| pmichaud | whiteknight: please do :) | ||
| just cut-n-paste the irclog notes directly into the page :) | |||
| jdv79 | it looks like the latest rakudo smolder report has new errors | ||
| Austin | For sub.pmc, the easiest thing is probably to add some inspect strings for the flags. | 19:31 | |
| is_anon, is_main, is_load, is_init, etc. | |||
| whiteknight | pmichaud: done. Feel free to add to the ContextPMCUses page on the wiki | ||
| whiteknight will have to go back and get the irclogs for those thigns | 19:32 | ||
| dalek | tracwiki: v98 | whiteknight++ | WikiStart | 19:33 | |
| tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff | |||
| tracwiki: v1 | whiteknight++ | ContextPMCUses | |||
| tracwiki: a page where pmichaud++ can start creating his wishlist for Context pmcs | |||
| tracwiki: trac.parrot.org/parrot/wiki/Contex...ction=diff | |||
| pmichaud | I'm also planning to run pbc_to_exe on nqp to make it an installable binary instead of just a .pbc file | 19:34 | |
| Coke | +1 | ||
| purl | 1 | ||
| NotFound | +1 | 19:35 | |
| purl | 1 | ||
| pmichaud | biggest downside is that it doesn't start with "parrot_" like some of the other binaries. | ||
| Austin | Yeah. That's a problem... | ||
| pmichaud | I guess I could do "parrot_nqp" | ||
| whiteknight | parrot_nqp | ||
|
19:36
kyle_l5l joined
|
|||
| Austin | Hey, what's wrong with make nqp SRC=xx.nqp | 19:36 | |
| pmichaud | ? | ||
| Austin | Compiling nqp from the command line is hard. So I added a makefile target. | 19:37 | |
| pmichaud | oh. I don't think HLLs (that are using NQP) will want to do it with a makefile target | ||
| better is to just have a compiler | |||
| whiteknight | strong agreement | ||
| pmichaud | a binary, that is | ||
| Austin | 5. Strongly agree. | ||
| pmichaud | I mean, it *is* a HLL compiler, just like most others | ||
| I'd really like to see some movement on getting parrot to be able to automatically load HLLs from the command line, though. | 19:38 | ||
| whiteknight | a pge binary would be awesome too, methinks | ||
| pmichaud | My expectation is that a "pge binary" will end up being "nqp binary" | 19:39 | |
| i.e., NQP is going to become the standard interface for compiling regexes and grammars from the command line | |||
| whiteknight | pmichaud: I am planning a pretty comprehensive reworking of the Parrot commandline in the not-so-distant future | ||
| pmichaud | (instead of Perl6Grammar.pbc) | ||
| whiteknight | autoloading HLLs would be a great idea | ||
| pmichaud | autoloading HLLs has beend discussed several times in the past | ||
| whiteknight | pmichaud: ah, so we will compile NQP and PGE grammars using the same binary? | ||
| pmichaud | whiteknight: yes. | 19:40 | |
| whiteknight | even better | ||
| pmichaud | whiteknight: more to the point, HLL implementors will just use NQP to create their language | ||
| and NQP will have regex support built-in | |||
| Austin | FWIW, whiteknight, exit 0 didn't stop my segfaulting problem. | ||
| whiteknight | oh, so like mixing grammars and actions into a single .pl file? | ||
| pmichaud | whiteknight: if desired, yes. | ||
| Austin: I suspect you're running into the inferior runloop problem. | 19:41 | ||
| whiteknight | Austin: really? then you have a different problem | ||
| pmichaud | Austin: afaict there's not really a good workaround for it yet. | ||
| whiteknight | pmichaud: adding "exit 0" to the end is the hack solution to the inferior runloop problem. If that fix doesn't work, he probably doesn't have it | ||
| Austin | It's good when the experts agree... | ||
| pmichaud | whiteknight: I think Rakudo already does an explicit "exit" | ||
| checking... | 19:42 | ||
| whiteknight | pmichaud: and I don't think rakudo is currently experiencing the problem | ||
| pmichaud | sure it is | ||
| at least, it was as of yesterday | |||
| whiteknight | right now? | ||
| purl | right now it's time to kick out the jams mother fuckers | ||
| pmichaud checks. | |||
| whiteknight | pmichaud: yes, I think the "exit 0" got added yesterday. At least, that's what I heard | ||
| pmichaud | whiteknight: before or after the release? | 19:43 | |
| whiteknight | near that time, I don't know when precisely | ||
|
19:43
jsut|work joined
|
|||
| moritz | I think whiteknight ist talking about a Rakudo patch, no? | 19:43 | |
| pmichaud | oh. I didn't see the Rakudo patch if one occurred. | 19:44 | |
| whiteknight | I'm just going off what I remember hearing yesterday | ||
| pmichaud | compiling, testing now. | ||
| whiteknight | The question is this: if run right now, does rakudo segfault before exit? | ||
| and does it have an explicit "exit" at the end of it? | 19:45 | ||
| dalek | kudo: 177a379 | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 436 files, 15497 (71.5% of 21671) pass, 0 fail |
19:46 | |
| Coke | :q | 19:47 | |
| pmichaud | $ | ||
| whiteknight: you're correct, I no longer seem to get the segfault-at-exit | 19:50 | ||
| whiteknight | See? I'm not completely crazy! | 19:51 | |
| not completely | |||
| pmichaud: and is Rakudo doing an explicit "exit 0"? | |||
| pmichaud | I hope not "exit 0" | 19:52 | |
| I hope "exit $I1" | |||
| dalek | rrot: r41307 | darbelo++ | trunk/src/gc (6 files): [cage] Headerize gc files after the gc-refactor merge. |
||
| whiteknight | well, whatever it needs to be | ||
| pmichaud | or something like that | ||
| pmichaud | it does not appear to be doing an explicit 'exit' | ||
| but checking further. | 19:53 | ||
| whiteknight | based on what I know about inferior runloops, an explicit exit at the end of the program should avoid the worst of the problems | ||
| pmichaud | ...because it aborts the caller stack entirely? | ||
| whiteknight | Austin: Could you post a backtrace of your problems? | ||
| pmichaud: exactly | |||
| pmichaud | Rakudo is not doing an explicit exit. | ||
| whiteknight | hmmm...that's weird. I wonder how the problems went away then | 19:54 | |
| pmichaud | so something else must be in play here | ||
| let me update and get a clean environment to work in | |||
| whiteknight | okay | ||
| I can't realy do any testing till I get home | |||
| darbelo | msg jrtayloriv running make fulltest before a branch merge can help you catch some extra stuff that a simple make test misses. | 19:56 | |
| purl | Message for jrtayloriv stored. | ||
| whiteknight | ah yes, fulltest. Bane of my existence | 19:57 | |
| of course, I can run it pretty quickly now | |||
| Austin | Whiteknight: Sure. How do I get a backtrace? | 19:58 | |
| whiteknight | Austin: have gdb? | ||
| Austin | nerp | ||
| whiteknight | okay, what's the command I should type in to see the segfault here? | ||
| (I'll try it myself when I get home) | 19:59 | ||
| I assume something like "parrot close.pbc somefile.close"? | |||
| TimToady | phone | 20:00 | |
| darbelo | whiteknight: I've never experienced a completely succesfull fulltest run on OpenBSD. | ||
| Now I know it's becouse of people like you :) | |||
| whiteknight | darbelo: I do run make fulltest | ||
| ...every time I'm making a release | |||
| darbelo | Ha. Lately my definition of 'regression' has become 'it failed earlier' | 20:02 | |
|
20:03
ash_ joined,
mikehh joined
|
|||
| whiteknight | Austin: is this segfault the last big issue in the way of your comprehensive refactor? | 20:04 | |
| after this will you have a working Close? | |||
| darbelo | Say, are ASSERT_ARGS() macros supposed to be adde manually to functions or do we have a script for that? | 20:05 | |
| NotFound | darbelo: manually | 20:06 | |
| mattp | hey guys, i noticed on this page www.perlfoundation.org/perl5/index....9_projects one of the parrot lines | 20:07 | |
| darbelo | Guess I'll go get the yak shaver then. | ||
| mattp | # | ||
| # Improve/Implement new GC algorithms | |||
| im looking for a 4th year software engineering design project, and that one option seems a good topic to focus on | |||
| but that one line doesnt leave much extra information .. is anyone familiar? | 20:08 | ||
| NotFound | darbelo: the problem is that if you add it before make headerizer, make can fail and then make headerizer will also fail | ||
| mikehh | darbelo: was working on that - but you beat me to the headerizer so I'll leave it to you | ||
| Austin | whiteknight: No. This segfault thing is the 1.6 upgrade tax. | 20:09 | |
| NotFound | So when you add a function you must first make headerizer and later add the macro | ||
| whiteknight | Austin: so I have parrot 1.6 here. If I get the latest close and start running tests I will see these segfaults? | ||
| Austin | Probably. | 20:10 | |
| moritz | oh wow, the V8 developers have a bleeding_edge branch and a trunk/ | ||
| whiteknight | mattp: I'm familiar. What are you interestd in? | ||
| moritz | and trunk is "stable" | ||
| darbelo | NotFound: I headerized on the previous commit. I hadn't noticed the missing asserts. | ||
| NotFound | darbelo: make codetest has a check for that | ||
| But no problem, just add them now | 20:11 | ||
| mikehh | darbelo: you need to run the headerizer before adding the ASSERT macros | ||
| mattp | whiteknight: well, I'm definitely interested in working on parrot, in particular what i mentioned above | 20:12 | |
| whiteknight | mattp: could end up being a big project though. How big is a 4th year project supposed to be? | ||
| mattp | not sure if there is still work to be done / what actually needs to be done | ||
| whiteknight | mattp: YES! definitely needs to be done | 20:13 | |
| Austin | Should take 4 years, no? | ||
| whiteknight | and lots of developers itching to do it | ||
| mattp | whiteknight: its 2 semesters (8 months), with around 2-3 months for pure implementation (there is other time for requirements doc design doc and all that other stuff) | ||
| the other question i was going to ask is if im being way too ambitious :) | |||
| whiteknight | mattp: it is pretty big, but it's not as big as it used to be | 20:14 | |
| we've done a lot of cleanup on the GC recently | |||
| in fact, a big cleanup branch landed not two hours ago | |||
|
20:15
iblechbot joined
|
|||
| mattp | hmm, i dont want to duplicate effort | 20:15 | |
| whiteknight | mattp: no duplication of effort. Our GC is intended to be pluggable with multiple cores | 20:16 | |
| so if you write one, other people will write others | |||
| and we will learn something new from all of them | |||
| there are at least a handful of new collectors that we currently want, and the more we have the better our pluggability interface is going to be | 20:18 | ||
| mattp: but there are also lots of other projects in Parrot that you could do too. Creating new runcores for instance would be fantastic | |||
|
20:19
bluescreen joined
|
|||
| whiteknight | or providing interfaces for cool libraries | 20:19 | |
| mattp | im definitely too ignorant to commit to anything right now (need to research), but doing something actually useful for parrot for my project would be pretty badass | 20:21 | |
| cotto_work | mattp, I'm sure you'd have no trouble finding a mentor. | ||
| whiteknight | mattp: trac.parrot.org/parrot/wiki/BigProjectIdeas | 20:22 | |
| darbelo | WTF? t/codingstd/c_arg_assert.t is bitching about unused assert macros for functions that don't exist. | ||
| whiteknight | I'll make sure that list gets updated, and you can cherry pick what you want to do | ||
| mattp | Is there any wiki areas for discussion of those things you mentioned whiteknight, or am i going to need to troll the mailinglists .. nevermind :) | ||
| whiteknight | the mailinglist always needs new trolls! | ||
| cotto_work | darbelo, try running headerizer | ||
| make sure and close any files you have open\\ | 20:23 | ||
| s/\\\\// | |||
| (or reload them after headerizer finishes) | |||
| whiteknight | mattp: those "sizes" are just estimations, don't be frightened by them | 20:24 | |
| darbelo | did it. Didn't help. | ||
| NotFound | darbelo: looks like somenone failed to make headerizer | ||
| darbelo | NotFound: Thing is. I've make headerizer'ed this several times now. | 20:25 | |
| dalek | tracwiki: v8 | whiteknight++ | BigProjectIdeas | ||
| tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff | |||
| whiteknight | darbelo: and did headerizer succeed when you ran it? | ||
| it will abort if it doesn't like something | |||
| NotFound | make diff show me a lot of changes after running headerizer in trunk | 20:26 | |
| Er, diff after make headerizer | |||
| whiteknight | I would like to see a runcore that takes in a stream of PBC and outputs C code suitable for compiling into a standalone binary | ||
| mattp | whiteknight: thanks alot for the help. ill get back to you guys when i figure more out | ||
| whiteknight | mattp: let us know f you have any questions! We would love to have you doing cool things on Parrot | 20:27 | |
| NotFound | whiteknight: I think a standalone utility will be better | ||
| whiteknight | NotFound: whatever, I think a runcore would be easier and faster to implement | 20:28 | |
| dalek | tracwiki: v9 | whiteknight++ | BigProjectIdeas | 20:29 | |
| tracwiki: trac.parrot.org/parrot/wiki/BigPro...ction=diff | |||
| Coke has [apply] mostly working now. whee. | |||
| cotto_work | whiteknight, that sounds a lot like the old and busted exec runcore | ||
| Coke | (anonymous functions in tcl) | ||
| whiteknight: that doesn't sound like a runcore. it sounds like a pbc2c utility. | |||
| whiteknight | for each incoming op, we could output fprintf(.., "label_%x: Parrot_op_%s(interp, pc++);\\n", pc, interp->op_lib[*pc]->name); | 20:30 | |
| Coke | whiteknight: ... at that point, why not just use the (future) JIT? | ||
| whiteknight | Coke: a slightly different strategy of the same idea. But generating C could would allow cross-compilation to platforms that Parrot supports but JIT doesnt | 20:31 | |
| it's also the first step in a proper context-threaded runcore, which is like a light-JIT | |||
| cotto_work | what is a context-threaded runcore? | 20:32 | |
| whiteknight | there isn't just "JIT" and "not JIT", it's a continuum with lots of different strategies | ||
| cotto: it's like a JIT in a sense, where it generates machinecode to call each op function. It aligns Parrot's pc with the processors pc and gains like 100% pipeline efficiency | 20:33 | ||
| the beauty of this is that we have pointers to the functions in C, so we can generate the machine code for the function calls very very cheaply, much cheaper then a full JIT engine could | |||
| NotFound | whiteknight: to more efficiency, don't call op functions, insert them inline | ||
| mikehh | darbello: it finds the ASERTS in the header files and says I don't have a matching ASSERT macro being used - you need to locate the use | 20:34 | |
| dalek | tracwiki: v35 | cotto++ | ParrotQuotes | ||
| tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff | |||
| whiteknight | NotFound: not necessarily, inlined function bodies require much more memory | ||
| It's all about nuance, there are lots of different strategies we want to support, each of which will excel in different areas | |||
| And beyond that, pbc_to_exe can be majorly overhauled for increased performance | 20:35 | ||
| NotFound | Talking about ideas, having a way to call a vtable function that checks if the pmc is an object and has a vtable override and finds a way to execute it directly may be a speed improvement in a lot of ops. | 20:36 | |
| whiteknight | NotFound: definitely. Anywhere that we know 100% the type of a PMC, we should make a direct call to the VTABLE function instead of calling through a function pointer | 20:37 | |
| NotFound | I was thinking about objects from pir classes | 20:39 | |
| chromatic | We should be able to swap better pointers into the vtables of such classes when we insert a PIR override. | 20:40 | |
| NotFound | Yes, but I was thinking about avoiding C calls, using some type of continuation that puts the result in the out register and jumps to the next opcode | 20:42 | |
| chromatic | If we can do that, so much the better. | 20:43 | |
| NotFound | Just a idea, I don't planned a way to implement it. | ||
| whiteknight | NotFound: that would be pretty cool, yes | 20:44 | |
|
20:49
Napalm joined
20:50
notostraca joined
|
|||
| notostraca | How do I get JIT to work on Mac OS 10.6? | 20:51 | |
| chromatic | I don't want to check in every VTABLE_* macro for a PIR override though. | 20:52 | |
|
20:53
KatrinaTheLamia joined
|
|||
| whiteknight | We could probably see some major benefits if we updated the individual ops that were nothing more then a call to a VTABLE | 20:53 | |
| so if the argument is an Object, inline the code that the Object VTABLE would do (find method, goto method) | |||
| notostraca | according to pastebin.ca/1568872 , JIT is not available? | ||
| darbelo | I hate shaving yaks | 20:54 | |
| whiteknight | notostraca: We're redesiging the JIT system | ||
| so the old system doesn't work anymore and we are building a replacement | |||
| Coke | notostraca: not that that matters, as x86 JIT on OS X never worked. | 20:55 | |
| notostraca | oh, ok | ||
| will the new version have it? | |||
| Coke | should, yes. | ||
| will take some time. | |||
| notostraca | all right! | ||
|
20:58
kyle joined
|
|||
| whiteknight | and it will be better! | 20:58 | |
| darbelo | msg jrtayloriv Also, please make sure make codetest passes on the branch before morging. | ||
| purl | Message for jrtayloriv stored. | ||
| NotFound | whiteknight: Do you have some idea about what opcode can give the greater improvement with that? I can do a try by manually doing the insert with it. | ||
| whiteknight | yes! avoid morging | ||
| NotFound | morging? | 20:59 | |
| whiteknight | NotFound: we could contrive an example, I think | ||
| darbelo | Er, merging. | ||
| whiteknight | a loop that adds numbers together 10000 times would be a good example | ||
| jrtayloriv | darbelo, Will do -- didn't know about codetest. Sorry about that. Is codetest part of fulltest? | 21:00 | |
| whiteknight | any time that we can avoid creating a new runloop should be a big win | ||
| NotFound | I was thinking about something bigger, like rakudo make test | ||
| whiteknight | NotFound: I don't have enough information about profiling to know which ops would be the most used in this case | ||
| jrtayloriv | whiteknight, (got your message btw) -- I'll run both codetest and fulltest and fix any errors. | ||
| whiteknight | although I think that's something we could find out | ||
| NotFound | Selecting one opcode that is likely to have a noticeable impact | ||
| darbelo | jrtayloriv: yes, but fulltest is rather long, it can run for several minutes before dying on a trailing space. | 21:01 | |
| whiteknight | ask pmichaud about that | ||
| jrtayloriv | whiteknight, oops -- nm -- that was darbelo's message ... | ||
|
21:01
notostraca_ joined
|
|||
| NotFound | add, maybe? | 21:01 | |
| whiteknight | NotFound: add_p_p_p is probably a very good starting point | 21:02 | |
| although probably not used a lot in PGE/Rakudo | |||
| chromatic | Let me look at a Rakudo profile. | ||
| pmichaud | string ops are always called many times | ||
| NotFound | The idea is not to select one tha is highly used, but that is overrided by lots of classes | 21:03 | |
| whiteknight | NotFound: we might need to wait for pcc_arg_unify to land, so we have a reasonable way to pass arguments without recursing runcores | ||
| dalek | rrot: r41308 | darbelo++ | trunk/src/gc (2 files): Make codetest pass on trunk after the gc-refactor merge. |
||
| NotFound | whiteknight: the idea is to use just one opcode and hand code it. | ||
| For a quick proof of concept | 21:04 | ||
| chromatic | typeof P, P | ||
| whiteknight | ah yes, typeof_p_p is a good one | ||
| NotFound: how are you going to pass arguments to the sub from the op body? | 21:05 | ||
| pmichaud | I don't quite understand "override op by lots of classes" | ||
| chromatic | callmethodcc_p_sc | ||
| NotFound | pmichaud: an op that does just an vtable call, and that vtable is frequently overrided | 21:06 | |
| chromatic | Lots of VTABLE_find_method overriding there. | ||
| kyle | could somebody look at Parrot_default_{freeze,thaw,visit}, and see if they look sane? I'm having trouble, where visit() never thaws the metadata. | ||
| pmichaud | rakudo overrides find_method for all of its multimethod dispatch | ||
| NotFound | chromatic: I was thinking about that, yes, but I'm not sure that using that way can give some noticeable improvement. | 21:08 | |
| Need more thinking | |||
| whiteknight | I think it will be easy to do with a few ops once pcc_arg_unify lands | 21:10 | |
| *if* it lands | |||
| pmichaud | *if* is not really an option | ||
| NotFound | But the idea is to do it inside one op. | ||
| Maybe the special purpose continuation is the simpler way | 21:11 | ||
| whiteknight | NotFound: a continuation or a sub or whatever are both good options. Only problem right now is passing arguments to it | 21:13 | |
| NotFound | Is the pcc branch working? Last time I tried it doesn't build. Or I must just compile parrot and execute test manually? | ||
| chromatic | make coretest | ||
| whiteknight | NotFound: last I saw it builds but fails hundreds of tests | ||
| NotFound | whiteknight: for me it failed to build PGE, if I remember well. | 21:14 | |
| In any case, I need to look at it instead or before elaborating more the idea. | 21:15 | ||
| chromatic | You could almost call Parrot_invokecc_p directly in the body of one of these checks. | ||
| whiteknight | chromatic: but invokecc assumes the arguments will be passed before it is called using set_arg or whatever | 21:18 | |
| the arguments to the callee sub are passed in as an opcode_t* pointer | |||
| NotFound: doesn't build PGE, no. "make corevm" then "make coretest" | 21:19 | ||
| NotFound | whiteknight: ok | ||
| darbelo | That was an unexpectedly straightforward merge, given how busy trunk has been since I branched. | 21:23 | |
|
21:24
mikehh_ joined
|
|||
| whiteknight | what did you merge? | 21:24 | |
| darbelo | trunk into kill_jit. I needed the PIC killing. | 21:25 | |
| dalek | rrot: r41309 | darbelo++ | branches/kill_jit (113 files): Pull changes from trunk. |
21:26 | |
|
21:28
mikehh joined
21:29
payload joined
|
|||
| chromatic | whiteknight, one problem with your exec core (which is clever) is that we don't export ops symbols from libparrot. | 21:29 | |
| Also we'd need either to freeze all subs and global symbols or compile the code anyway without executing it. | 21:30 | ||
| mikehh | All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41308 - Ubuntu 9.04 amd64 | ||
| whiteknight | chromatic: I never said it would be easy | ||
| in a worst case scenario, I'll create all the prototypes myself and statically link | 21:31 | ||
| or create a "special" parrot build that does export the ops | 21:32 | ||
| or better yet, recompile parrot from source with the generated C code as the main entry point | 21:33 | ||
|
21:34
cotto_w0rk joined
|
|||
| whiteknight has to disappear into the night. Later | 21:37 | ||
|
21:44
japhb joined
|
|||
| mikehh | partcl r736 builds on parrot r41308 - make test PASS - Ubuntu 9.04 amd64 | 21:45 | |
| rakudo (177a379) builds on parrot r41308 - make test PASS / make spectest (up to 28262) FAIL - Ubuntu 9.04 amd64 | 22:00 | ||
| rakudo - t/spec/S02-magicals/env.rakudo - Failed tests: 7, 10 | |||
| rakudo - t/spec/S02-names_and_variables/perl.rakudo - Failed tests: 71, 73, 77, 81, 83 | |||
| rakudo - t/spec/S06-signature/slurpy-and-interplation.t - Failed test: 6 | |||
| rakudo - t/spec/S10-packages/basic.rakudo - TODO passed: 3 | |||
|
22:06
sri joined
22:15
joeri left
22:41
kyle joined
22:46
jrtayloriv joined
|
|||
| mikehh | I don't think the rakudo failures are a parrot problen - I re-installed parrot r41295 on which rakudo had previously PASSed make spectest and it gives the same failures | 22:49 | |
|
22:54
tetragon joined,
hercynium joined
|
|||
| pmichaud | message whiteknight after rebuilding and re-testing, I'm still seeing the segfaults on exit in Rakudo. | 23:03 | |
| purl | Message for whiteknight stored. | ||
| darbelo is bored. | 23:13 | ||
| darbelo breaks the build. | |||
| There. Now I can have some fun! | 23:14 | ||
| dalek | rrot: r41310 | darbelo++ | branches/kill_jit (3 files): Actually use the data gathered by auto::frames to conditionally build the frame builder. Next we'll move Parrot_jit_build_call_func and dependencies into the src/frame_builder.c and kill the x86 JIT for good. |
23:15 | |
| darbelo | Say, can somebody on ppc take the kill_jit branch for a spin? | ||
|
23:19
bacek joined
|
|||
| cotto_work | hi bacek | 23:24 | |
| clock | |||
| clock? | |||
| purl | cotto_work: LAX: Wed 4:24pm PDT / CHI: Wed 6:24pm CDT / NYC: Wed 7:24pm EDT / LON: Thu 12:24am BST / BER: Thu 1:24am CEST / IND: Thu 4:54am IST / TOK: Thu 8:24am JST / SYD: Thu 9:24am EST / | ||
| bacek | cotto_work: morning | ||
|
23:43
mattp_ joined
23:46
payload joined
|
|||