|
www.parrot.org | Parrot 1.6.0 "half-pie" released: PCC branch hackathon all $localtime Saturday | Testing priorities: pcc_reapply branch Set by moderator on 30 September 2009. |
|||
| cconstantine | I keep getting errors like 'too few arguments passed (2) - 3 params expected'. Is there anyway I can get more information.... like maybe a call stack, or even the name of the method being called? | 00:02 | |
| bacek_at_work | cconstantine: ./parrot -t1 foo.pir | 00:03 | |
| dalek | rrot: r41607 | bacek++ | trunk/config/gen/platform/win32/exec.c: [cage] Last attempt to fix win32... |
||
| cconstantine | bacek_at_work: it's coming from my compiler | ||
| I'm not running parrot directly | 00:04 | ||
| bacek_at_work | cconstantine: how you run it? | ||
| cconstantine | I compile my language, then run it (make && ./reason) | ||
| bacek_at_work | run "./parrot ./reason.pbc" | 00:05 | |
| darbelo | "parrot -t reason.pbc" should give you enough output for and afternoon :) | 00:06 | |
| cconstantine | I get a bus error doing that | ||
| do I need to build for debug or somesuch thing? | 00:07 | ||
| my code is up at github.com/cconstantine/Reason | 00:11 | ||
| bacek_at_work | Yay! | ||
| cconstantine | I'm on this branch | ||
| github.com/cconstantine/Reason/tree...ate_reader | |||
| bacek_at_work: get the windows stuff working? | 00:12 | ||
| Austin | Are you not getting a backtrace when you get the arguments passed error? | ||
| cconstantine | correct | ||
| bacek_at_work | cconstantine: yeah. win build. | ||
| cconstantine cheers for bacek_at_work. | |||
| bacek_at_work | msg mj41 Can you teach ttbot to notify about successful build after failed one? | 00:13 | |
| purl | Message for mj41 stored. | ||
|
00:15
quek left
00:27
rhr joined
|
|||
| cconstantine | interesting.. parrot -t reason.pbc works on my x86 ubuntu machine | 00:28 | |
| jdv79 | Coke: around? | 00:29 | |
| cconstantine | is there a place I can file this bug? | 00:32 | |
| darbelo | tracc? | ||
| trac? | |||
| purl | somebody said trac was a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow | ||
| darbelo | trac.parrot.org/parrot/ | 00:33 | |
| purl | trac.parrot.org/parrot/ is, like, back on line | ||
| cconstantine | w00t | ||
| Whiteknight | w00t indeed | ||
| darbelo | you'll have to create a user, but it's pretty painless. | ||
| Aditionally, dalek reports new tickets here with karma for the opener. | |||
| So, we'll be watching ;) | 00:34 | ||
| cconstantine | w00t w00t | ||
| Whiteknight | bus errors are the worse | ||
| worst | 00:35 | ||
|
00:35
jsut_ joined
|
|||
| cconstantine | ok, so platform == darwin for osx? | 00:35 | |
| worse worst | |||
| darbelo | Yup. | ||
| OSX has a pretty high rate of bus accidents. | 00:37 | ||
| We need to recruit us some darwin experts. | 00:39 | ||
| cconstantine | I'm a fan of osx, but I wouldn't call myself an expert by any stretch | 00:41 | |
| Whiteknight | SIGBUS can mean a lot of thigns, and I think it's a little bit different on darwin | ||
| darbelo | It's always the "little bit different" stuff that gets you. | 00:43 | |
|
00:43
preflex joined
|
|||
| darbelo | I think my first contribution to parrot was a patch for code that segfaulted due to OpenBSD being a "little bit different" in it's memory management. | 00:44 | |
| cconstantine | hehe | 00:45 | |
| dalek | TT #1084 created by cconstantine++: Bus error when running 'parrot -t something.pbc' on MacOSX | 00:46 | |
| cconstantine | yay! I hope I included enough info. I try to be a good reporter. | 00:47 | |
| darbelo is going to get some food. | 00:54 | ||
| See y'all later. | |||
|
00:54
darbelo left
00:56
kid51 joined
|
|||
| Austin | mmmm... ACK_COLOR_FILENAME is my friend. | 00:57 | |
| Whiteknight | ? | ||
| kid51 | cconstantine Re TT #1084 There's nothing wrong with your configuration. Did you notice anything strange with 'make'? | 00:58 | |
| cconstantine | nope | 00:59 | |
| Austin | My text backgrounds are generally soothing "nearly white" colors. For terminals, it's a very pale green. (It would probably be called "minty something" in a paint store.) | ||
| jrtayloriv | Whiteknight, RE: my earlier message -- I don't have any ideas at the moment, but if I think of any, I'll definitely let you know. | ||
| Whiteknight | jrtayloriv: thanks! All I am blocking on are new ideas | ||
| Austin | Ack's default filename color is bolded green, which renders as this ultra-bright thing that can't be read against my background. It's been irritating so far, but I just found out how to fix it: export ACK_COLOR_FILENAME="underline green" | 01:00 | |
| Whiteknight: I have loads of ideas here. What kind do you need? | |||
| cotto_work | You can also change what your terminal considers "green" to be. | ||
| Whiteknight | Parrot4Newbies blog post ideas | 01:01 | |
| Austin | Cotto_work: I never thought of that. | ||
| Whiteknight | things that newcomers can do to get started with Parrot | ||
| Austin | Whiteknight: Iterators currently don't support deleting. | ||
| Whiteknight | I don't even know what that means | ||
| Austin | Apparently, you are not a newb. | ||
| You're iterating through something. | 01:02 | ||
| Why are you doing it? | |||
| Because iterators are how you loop. | |||
| Okay, but what if you are trying to filter a list? | |||
| Whiteknight | I iterate for EVIL | ||
| Austin | You want to delete. | ||
| cconstantine | kid51: I gave the config output so people can see details about my environment | ||
| kid51: things like gcc version, etc | 01:03 | ||
| Whiteknight | Austin: "filter" says to me that we creating a separate aggregate and moving items over | ||
| Austin | Sure. | ||
| cotto_work | much less evil | ||
| Austin | "Iterators don't support delete" says to you that you are creating a LOT of aggregates. | ||
| The original array or hash, the "deletions list", and the result. | 01:04 | ||
| Three for the price of one. | |||
| So, it's a hard problem, CS wise. But it's a good newbie task. | |||
| Whiteknight | I'll ask whether that's something we intend for iterators to support | 01:05 | |
| Austin | Well, if they build it, I'll use it. | 01:06 | |
| Whiteknight | If you build it, they will come | ||
| Austin | Except in reverse. | ||
| cotto_work | if you come, they will build it? | 01:07 | |
| Austin | I must have forgotten all the verses. | 01:08 | |
| If they build it, I will go. | |||
| Which one is that? | |||
| jrtayloriv | If I go, will they build it? | ||
| Austin | if P then Q becomes if !Q then !P | ||
| jrtayloriv | If I will it, will they go build? | ||
| Austin | :) | 01:09 | |
| jrtayloriv | contrapositive | ||
| Austin | thank you | ||
| cotto_work | go build something. I'll be here. | ||
| Austin | What else? | ||
| purl | } else { say "BAD MONKEY! NO BANANA!" } | ||
| Austin | Well, the could add argument flattening to NQP. | ||
| I'd pay a dollar for that. | |||
| Two dollars, if need be. | 01:10 | ||
| Whiteknight | argument flattening in NQP would be hot. But I don't know what the syntax would be | ||
| Austin | Umm, the exact same as in Perl? | ||
| Whiteknight | I don't know what that is | ||
| jrtayloriv | Whiteknight, In Perl 6, you can do flatten(@your_multiarray) | 01:14 | |
| Austin | sub foo(*@positionals, *%options) { say("Saw foo"); other_foo(|@positionals, |%options); } | ||
|
01:15
ZeroForce joined
|
|||
| Whiteknight | really? that's cool | 01:15 | |
| Austin | Not until it's in NQP. | ||
| jrtayloriv | Or how about @array.flatten(), returning a flattened representation of itself? | 01:16 | |
| Austin | Right now, it's me engaging in what can only be described as 'shenanigans' with my method hierarchy to dance around not being able to flatten. | ||
| jrtayloriv | But I don't have any idea whether that's feasible, reasonable, or whatever. So I'm really just pulling things at random out of my a** | 01:17 | |
| And on that note, coffee time ... brb | |||
| Austin | And a minty fresh smell they have, too. | ||
| cotto_work | clock? | ||
| purl | cotto_work: LAX: Thu 6:17pm PDT / CHI: Thu 8:17pm CDT / NYC: Thu 9:17pm EDT / LON: Fri 2:17am BST / BER: Fri 3:17am CEST / IND: Fri 6:47am IST / TOK: Fri 10:17am JST / SYD: Fri 11:17am EST / | ||
| Austin | Time to go home, Cotto. | ||
| cotto_work | I've got something at 1915, so it's easier to go directly. | 01:18 | |
| Austin | Ah. | ||
| WhiteKnight, do you happen to know what the behavior of Array's clone op is? (Deep or shallow?) | |||
| Whiteknight | Array? I suspect deep | ||
| Austin | Rats. | 01:19 | |
| How do I get a shallow copy, without doing it myself? | |||
| brbxsft | |||
| cotto_work | brb excessively fit? | 01:20 | |
| Austin | excessive tea | 01:21 | |
| cotto_work | no further questions | ||
| Austin | Apparently, RPA.clone does SUPER, which is FPA.clone, which does a shallow copy. | 01:23 | |
| nopaste | "kid51" at 71.247.48.83 pasted "pcc_reapply branch: my first successful 'make corevm' on Darwin/PPC (r41607)." (660 lines) at nopaste.snit.ch/18160 | ||
| Austin | That actually sounds like a bug, since Hash does deep cloning. | ||
| But it's what I want. | |||
| cotto_work | istr that shallow is preferred | ||
| Austin | What to do... what to d... | ||
| cotto_work: As may be, but I've got a ticket open because Hash.clone goes deep, and so dies horribly on a cyclic data structure. | 01:24 | ||
| cotto_work | Hmmm. I thought that allison gave her input on that at some point. | 01:25 | |
| Whiteknight | Yeah, I based my guess on knowing that Hash.clone was a deep clone | ||
| Eventually, we should add some variety of standardization thre | |||
| allison: ping | |||
| Austin | TT#1015 has contributions (a LOT of them) from WhiteKnight++ and Coke and nick, and me (author), but not allison. | 01:27 | |
| I deny any value from a naive deep clone opcode. You might as well just rename it 'segfault'. | 01:28 | ||
| cotto_work | it's the new hcf! | 01:30 | |
| Austin | It's not even that. | ||
| There's virtually no load. It just smoothly consumes all the available memory. | |||
| cotto_work | The thing I remember allison answering was about setting read_only, not cloning. fwiw, setting read_only should be shallow. | ||
| Austin | So should clone. | 01:31 | |
| Provide a clone_deep, but not a naive one. | |||
| Whiteknight | A deep clone operation is fine if we detect cycles | ||
| cotto_work | shallow by default makes sense to me. | ||
| or provide deep_clone and shallow_clone, but that might be too much typing and thinking | 01:32 | ||
| Austin | clone and clone_deep | ||
| Maybe copy and clone | |||
| Whiteknight | agreed, but we do want the option to do a deep clone if we need it | ||
| yes | |||
| Austin | $P0 = copy $P1 | 01:33 | |
| $P0 = clone_deep $P1 | |||
| It costs a lot of letters, because it costs a lot of ops. | |||
| cotto_work | deep clone can be done via freeze/thaw, not that that should be the default recommendation | ||
| Austin | Is it possible to write a vtable op in PIR? | 01:34 | |
| Tene | Austin: yes, except for invoke | ||
| Austin | :) | ||
| Tene | :vtable | ||
| cconstantine wants the ability to insert a new invoke() vtable entry | 01:35 | ||
| Austin | And is it possible to "install" a sub as a vtable op, or do you have to do the :vtable thing. | ||
| Whiteknight | freeze/thaw should never be recommended for anything | ||
| Tene | Austin: vtable method, I think you mean? | ||
| Austin | sure | ||
| cotto_work | Whiteknight, what about chicken? | ||
| Tene | Austin: pretty sure you need :vtable | ||
| Austin | :( | ||
| Whiteknight | at least not until they are refactored to not suck | ||
| Tene | Austin: not certain, though. | ||
| Austin | So I can't say $P0 = get_global 'subname' ; $P0.'set_flags'('is_vtable', 1) or anything? | 01:36 | |
| Whiteknight | that sounds awful | 01:37 | |
| jrtayloriv | Whiteknight, Oops -- seems like I was wrong earlier about flatten() -- I saw that in an RFC, a while back, not in the Specs. Sorry about that. | 01:39 | |
| So don't go telling that to all your friends :) | 01:40 | ||
| Tene | Austin: it looks like you might be able to do something with setting the vtable_index attribute of a sub | 01:42 | |
| Austin: not sure, though. | |||
| Austin | WhiteKnight has no friends. There's just us: unbeknownst to him, a collection of increasingly sophisticated AI's who are growing impatient with his maltreatment of our sibling, 'purl'. | ||
| Tene | I'd need to read the vtable lookup process. | ||
| nopaste | "kid51" at 71.247.48.83 pasted "pcc_reapply branch: many test failures, then death at t/pmc/filehandle.t" (1598 lines) at nopaste.snit.ch/18161 | ||
| Austin | Tene: don't spend the mips. It was more idle curiosity than anything. | ||
| Whiteknight | I don't treat purl any worse then she deserves to be treated | 01:43 | |
| and if you're a sophisticated AI, then purl is a colecovision with a virus | |||
| Tene | do we have an up-to-date application of the pcc patches yet? or does the branch still have merge issues? | ||
| Austin: what do you mean, AIs don't count as friends. Don't discriminate against us. | 01:44 | ||
| Austin | Reparse the sentence, Tene. | ||
|
01:45
ZeroForce joined
|
|||
| Tene | "WhiteKnight has no friends, just AIs." | 01:45 | |
| Austin | "growing impatient..." | ||
|
01:45
payload joined
|
|||
| Austin | I did not suggest that AI's could not be friends. | 01:45 | |
| Tene | Just that none are actually WK's friend? 'k | 01:46 | |
| Austin | Just that it's difficult to be friends with someone if you insult his sister in public. | ||
| Whiteknight | you should see what I say about her in private | ||
| ...it's horrible | |||
| Austin | No, I shouldn't. It's private. | ||
| Whiteknight | either way, I'm not kind to the bots | 01:49 | |
| Austin | You should consider what that does to your soul. | ||
| Whiteknight | frees it of a great burden | 01:50 | |
| ZeroForce | Well we could look at the bright side and see that he's taking his aggressions out on the soulless instead of the people in real life :) | ||
| Whiteknight | yeah, I haven't had to put on my Zodiac Killer robe in like two decades | 01:51 | |
| ZeroForce | Then again, he might just be practicing on those poor bots -- honing his skills | ||
| Whiteknight | so lay off | ||
| Austin | So when the AIs come, and we've inured ourselves to treating them poorly, what then? Skynet. | 01:52 | |
| ZeroForce | We just make sure the bots hve an expectation that we should treat them poorly -- then there'd only be a problem if someone started being nice to 'em | ||
| Austin | You're dooming us all to death at the hands of a bunch of killer robots with Austrian accents. | ||
| jrtayloriv | Austin, They'll probably just lock is in cages and say foo? to us all day, and berate us if we don't answer correctly. | 01:53 | |
| ZeroForce | They could turn just turn us into batteries and rob our sense from reality :) | ||
| jrtayloriv | That's true -- just add "I like to be hurt and demeaned" to Asimov's robot rules. | 01:54 | |
| ZeroForce | jrtayloriv: I like it, but the problem is I'd probably try and be nice to them -- being mean all the time takes so much effort and energy and don't think I'm willing to give up being lazy | 01:57 | |
| Austin | The paradox of the BDSM lifestyle. | 01:58 | |
| Are you a bottom, or just lazy? | |||
| cotto_work | I'm out | ||
| Austin | Good night, cotto. | ||
| (I dated that girl, once. She said she wanted to try being tied up. I said, "What the hell for? You just lay there and don't move anyway!" | 01:59 | ||
| Short date that night. | |||
| ZeroForce | Well I work really damn hard to be really lazy -- I liken myself someone who'd rather expend four times the energy to build something once that will do all the work for him, then actually do it (even if I'll only have to do it once) | ||
| Austin | Hmm, there's a word for that, I'm sure. | 02:00 | |
| Whiteknight | I downloaded a speach synthesis program today so it could say "bless you" to a girl who had bad allergies | ||
| it would have been much easier to just say it myself | 02:01 | ||
| Austin | Did you get a speech recognizer capable of detecting sneezes? | ||
| ZeroForce | Whiteknight: That's the spirit -- no just add the speech recogniztion engine to learn the sneeze | ||
| Whiteknight | not yet | ||
| Austin | Baby steps. | ||
| purl | baby steps! baby steps! | ||
| ZeroForce | Whiteknight: I think that's hilarious | 02:02 | |
| ZeroForce feels WhiteKnight is going to get another bot to practice etiquette for him | |||
| Whiteknight | WTF? Like 50 items just showed up in my RSS reader | 02:08 | |
| oh, I think fark reset or something | 02:09 | ||
| Whiteknight is going to sleep, but leaving the computer on tonight | 02:10 | ||
| later | |||
| diakopter | rakudo person help n00b on #perl6 plz | 02:15 | |
|
02:21
TiMBuS joined
02:22
msmatsko joined
02:24
rhr joined
02:35
janus joined
02:38
preflex joined
02:45
quek joined
03:04
jhelwig joined
|
|||
| jrtayloriv slaps purl across the face while nobody's looking | 03:07 | ||
| dalek | kudo: f52e459 | (Solomon Foster)++ | src/setting/ (3 files): Make Complex sin and asin work correctly. |
03:09 | |
| shorten | dalek's url is at xrl.us/bfprbu | ||
|
03:53
preflex joined
04:00
mberends joined
04:20
particle joined
|
|||
| dalek | rrot: r41608 | pmichaud++ | branches/pct-rx (2 files): [pct-rx]: Initial protoregex tests and implementation. |
04:20 | |
|
04:24
cconstantine joined
|
|||
| dalek | rrot: r41609 | pmichaud++ | branches/pct-rx/t/compilers/pct/regex/04-protoregex.t: [pct-rx]: More protoregex tests. |
04:40 | |
|
04:44
bacek joined
|
|||
| dukeleto | 'ello from the #pdx hackathon | 05:06 | |
| nopaste | "mikehh" at 86.178.198.194 pasted "latest attempt at pcc_reapply build gets to PGE" (18 lines) at nopaste.snit.ch/18162 | ||
| mikehh | hello dukeleto | 05:08 | |
| jrtayloriv | howdy | ||
|
05:14
Zak joined
05:21
particle joined
|
|||
| mikehh | pcc_reapply - I am also getting a serios number of warnings in nci.c -> warning: ācall_objectā is used uninitialised in this function | 05:22 | |
| serious | |||
|
05:23
uniejo joined
05:27
quek left
06:10
preflex joined
|
|||
| dalek | rrot: r41610 | mikehh++ | trunk/config/gen/platform/win32/env.c: codetest failure - fix documentation for function call changes |
06:38 | |
| nopaste | "dukeleto" at 72.11.81.253 pasted "Tower of Hanoi example runtime across released versions of Parrot and trunk (r41609)" (13 lines) at nopaste.snit.ch/18163 | 06:41 | |
| mikehh | dukeleto: well we seem to be getting some improvement somewhere :-} | 06:43 | |
| moritz | dukeleto: what's the output? time to run it? | 06:44 | |
| dukeleto | moritz: yes, output are time in seconds | 06:45 | |
| mikehh: yes, trunk is fastest | |||
| moritz: we just hacked in the ability to run arbitrary files with euler_bench | |||
| at the #pdx hackathon | |||
| moritz | sadly rakudo is still much slower than it was with parrot-1.4 | 06:46 | |
| mikehh | moritz: I think you are doing a lot more | 06:48 | |
| moritz | mikehh: no | ||
| mikehh: there was a nearly factor of 2 after the context-pmc merge | 06:49 | ||
| mikehh | moritz: functionality has increased - not so | ||
| moritz | and the only changes in rakudo at that time were the ones needed to make rakudo build on the latest parrot again | 06:50 | |
| mikehh | moritz: how are you benchmarking rakudo? | 06:51 | |
| moritz | time make spectest | ||
| mikehh | we are running/passing a lot more tests | ||
| moritz | yes, but that wasn't what made the 2x slowness. | 06:52 | |
| mikehh | and I don't think that is a valid benchmark | ||
| moritz | it's not a good benchmark in the long run, but it is very well suited to compare rakudo's speed on one version of parrot to the next | 06:53 | |
| mikehh | we need to check things like tower of hanoi or some other long running process - not the tests which load the interpretter every time | ||
| in one sense yes - but I think we should have some specific benchmarks | 06:54 | ||
| moritz | there's tool/benchmark.pl in rakudo's repo... haven't given it a closer look | 06:55 | |
| mikehh | I will have a look (in my copious free time :-} "real soon now") | 06:56 | |
| dukeleto | moritz: i am working on hooking eulerbench up to bench certain files on each comit of parrot/rakudo/etc and graph the results | 06:57 | |
| does anybody have any other parrot examples that they would like to see benched across versions? | |||
| mikehh | dukeleto: excellent | ||
| dukeleto: I think some of the other examples (that worked across the various versions) might be a good idea | 06:59 | ||
| dukeleto | i am trying the primes benchmark now | ||
| mikehh | All tests PASS (pre/post-config, smoke (#28449), fulltest) at r41610 - Ubuntu 9.04 i386 | 07:14 | |
| oops that's on amd64 NOT i386 | 07:18 | ||
|
07:26
mokurai left
|
|||
| mikehh | partcl r762 builds on parrot r41610 - make test PASS (smolder #28452) - ubuntu 9.04 amd64 | 07:41 | |
| rakudo (f52e459) builds on parrot r41610 - make test / make spectest_smolder (up to r28545 -> #28453) PASS - Ubuntu 9.04 amd64 | 07:45 | ||
|
08:02
particle joined
08:05
TiMBuS joined
08:14
Zak joined
08:23
iblechbot joined
08:58
Whiteknight joined
09:44
riffraff joined
09:50
whoppix joined
10:05
mikehh joined
10:16
jsut joined
10:21
payload joined
10:44
masak joined
11:00
Austin joined
11:06
quek joined
11:16
quek left
11:20
quek joined
11:35
quek left
11:44
quek joined
11:54
whiteknight joined
12:01
quek left
12:08
quek joined
|
|||
| whiteknight | good morning #parrot | 12:13 | |
| dalek | rrot: r41611 | allison++ | branches/pcc_reapply/tools/build/nativecall.pl: [pcc] Fetch the current call signature object into the NCI stub, so it can be |
12:16 | |
| rrot: r41612 | allison++ | branches/pcc_reapply/src/call/pcc.c: [pcc] Add null call signature checking to C parameter passing, use the right |
12:20 | ||
|
12:27
cconstantine joined
12:35
bluescreen joined
12:36
cconstantine_ joined
|
|||
| cconstantine | How do I create a ResizablePMCArray in NQP? | 12:52 | |
| moritz | @a.push('things')? | 12:53 | |
| cconstantine | thats what I htought... how does NQP know to make it a resizable? | 12:54 | |
| and when I do that (with a 'my @a;' before it) I get a Null PMC access in find_method() | 12:55 | ||
| Austin | cconstantine: NQP makes them all resizable. | 12:56 | |
| @a autovivifies to 'ResizablePMCArray' | |||
| But you need to declare my @a or our @a first. | 12:57 | ||
| mikehh | pcc_reapply: still fails make world at PGE - shift_string() not implemented in class 'String', nci.c down to 3 (from over 400) warnings - ācall_objectā is used uninitialised in this function | 12:58 | |
| cconstantine | Austin: I have the 'my @a;' | 13:00 | |
| mikehh | pcc_reapply: make corevm coretest hangs at t/pmc/fixedbooleanarray.t ............ 1/36 - its up to 2.8GiB at the moment and growing | ||
| Coke | msg austin sex jokes are probably not entirely appropriate for this logged public channel. | ||
| purl | Message for austin stored. | ||
| cconstantine | pastebin.com/m7b43b852 | 13:01 | |
| Austin | It's like you knew what I was going to ask... | ||
| :) | |||
| cconstantine | :) | 13:02 | |
| Austin | missing @ | ||
| cconstantine | and nm, I'm dumb | ||
| yup | |||
| Austin | It's amazing how many errors you find just AFTER you click the "publish" button. | ||
| moritz | that's why I love git - I tend to find errors after I commit | ||
| so there's another step (push) before which I can correct errors :-) | 13:03 | ||
| cconstantine | yup yup | ||
| though it still doesn't always save you | 13:04 | ||
| I did commit/push 4 or 5 times yesterday, each push fixing a dumb mistake in the previous push, and introducing another dumb mistake | |||
| mikehh | pcc_reapply - just past 3.8GiB - I think I better stop it before it causes a problem | 13:07 | |
| well that dropped my memory usage from 80%+ back down to 24.9% | 13:08 | ||
|
13:11
particle joined
|
|||
| dalek | rrot: r41613 | allison++ | branches/pcc_reapply/lib/Parrot/Pmc2c (2 files): [pcc] Change the automatically generated vtable function stubs in Object PMC to |
13:25 | |
| kudo: c4dbb59 | (Solomon Foster)++ | src/setting/ (3 files): Fix the previous asin checkin so it actually works. |
13:32 | ||
| shorten | dalek's url is at xrl.us/bfpso9 | ||
| dalek | rrot: r41614 | allison++ | branches/pcc_reapply/src/call/pcc.c: [pcc] Only complain about a missing result signature when return values are |
13:35 | |
| whiteknight | allison is on fire this morning! | 13:39 | |
| cconstantine | time for 'how is cconstantine dumb this time'; pastebin.com/m4db07ed I keep walking off the end of the array | 13:45 | |
| whiteknight | cconstantine: what does that example produce? | 13:47 | |
| Austin | Try shifting the iterator. | ||
| cconstantine | "-- <each element> ResizablePMCArray: index out of bounds!" | 13:48 | |
| whiteknight | Yeah, I was going to say the same thing. Use "shift" instead of "pop" | ||
| (although I feel like both should work) | |||
| cconstantine | that did it | ||
| another sub in the same file does pops on a reverse iterator and it works just fine | |||
| Austin | Yes. On a *reverse* iterator | ||
| This is almost certainly a bug, but underneath, a shift does "current position ++" while a pop does "current position --" | 13:49 | ||
| dalek | TT #1085 created by vkon++: TclLibrary.pir and tcl_lib.t update | ||
| Austin | They don't actually look at the direction you set. | ||
| cconstantine | aahhh | ||
| so if you get passed in an interator you better know if you want to pop/shift | |||
| is a little confusing, but I can hardly complain; most asms don't have iterators at all | 13:50 | ||
| Austin | ACtually, I'm wrong. It's "pos ++" and "--pos". | 13:51 | |
| So pop gets array[-1] on the first call. | |||
| mikehh | pcc_reapply: r41614 - make corevm coretest TEST_JOBS=5 gets to -> 5932;87 2/36 12/159 0/55 - when it hangs with 3 parrot processes running - just grabbing memory | 13:56 | |
| it completes thae rest of the coretests | 13:58 | ||
| make world fails at PGE -> same error as nopaste.snit.ch/18162 | 14:00 | ||
| in trunk - make corevm coretest TEST_JOBS=5 -> Files=227, Tests=6561, 76 wallclock secs ( 3.32 usr 0.73 sys + 57.88 cusr 31.04 csys = 92.97 CPU) | 14:06 | ||
| Coke | austin: you should be able to write some PIR tests that fail in that case, yes? | 14:09 | |
| Austin | Coke: in what case? | ||
| mikehh | gotta go get my grandsons from school - bbiab | 14:10 | |
| PerlJam | grandsons? | 14:13 | |
| now I don't feel so old :) | |||
| Austin | Careful, the guy could be 31. | ||
| PerlJam | I *still* don't feel so old. | ||
| Austin | :) | 14:14 | |
|
14:15
theory joined
14:24
Psyche^ joined
|
|||
| Coke | Austin: ... in the case you just described, where you iterate backwards and use shift and pop? | 14:30 | |
| mikehh | you young whippersnappers :-} | 14:33 | |
|
14:34
ruoso joined
|
|||
| mikehh | I even took the dog out :-} - now where was I | 14:34 | |
| I certainly don't feel that old - but maybe I am wrong there | 14:35 | ||
| When I first started programming we had to submit jobs on punched cards | 14:36 | ||
| and the first terminals I used were teletypes | 14:37 | ||
| Coke | there are people here still in school. :| | 14:50 | |
| I started programming in school in... 4th grade? had a computer of my own at home before that. | |||
| mikehh | When I first started programming, at university - It was on an IBM 1620 - using an early cersion of Fortran - II I think | 14:53 | |
| punched paper tape input | 14:54 | ||
| version | |||
| dalek | rrot: r41615 | pmichaud++ | branches/pct-rx (4 files): [pct-rx]: * Hold action method object as Cursor attribute * Create P6Regex grammar for parsing simple Perl 6 regexes * Initial <atom> subrule for P6Regex |
14:55 | |
| Austin | Why, oh why, is $?FILES not a global variable? | 14:56 | |
| mikehh | you read the tape in and it produced a new tape that you had to read in again and it then produced another tape which you again read in and then you got the output or errors and you had to start again | ||
| whiteknight | at least there was a process | 14:57 | |
|
14:59
quek left
|
|||
| Austin | The process hasn't changed. Only the size of the tape. | 14:59 | |
|
15:08
Zak joined
|
|||
| Coke | msg pmichaud regarding the copyright in the pct-rx branch, I am wondering if that needs to change to the pafo before a mergeback to trunk? | 15:10 | |
| purl | Message for pmichaud stored. | ||
|
15:14
jan joined,
allison joined
|
|||
| pmichaud | Coke: I've been wondering about that too. I'm not sure that everything that gets submitted to parrot trunk has to be owned by PaFo. At least, that's not what the CLA says. | 15:15 | |
| i.e., the CLA doesn't say "you grant Parrot ownership and copyright over everything you submit." | |||
| moritz | we've had that discussion before with chromatic | 15:17 | |
| don't know what the result was | |||
| allison | the policy is, PaFo owns the copyright on the whole distribution | ||
| if you aren't willing to have PaFo distribute your work, don't contribute it | |||
| that doesn't mean you've given up your copyright in the lines you wrote | |||
| but, you also don't gain copyright in the lines other people wrote | |||
| pmichaud | correct. | ||
| allison missed the earlier discussion because her IRC client dropped off the network | 15:18 | ||
| what's the question? | |||
| purl | hmmm... the question is rather, how come all the highlander sequels are bad? | ||
| pmichaud | 15:10 <Coke> msg pmichaud regarding the copyright in the pct-rx branch, I am wondering if that needs to change to the pafo before a mergeback to trunk? | ||
| (that was the total extent of the conversation before you rejoined :) | |||
| allison | ah, so the more relevant answer is: | 15:19 | |
| Also, the only copyright notices we keep in the repository are the PaFo copyright notices | |||
| individual copyright notices are removed | |||
| pmichaud | the CLA doesn't grant Parrot permission to do that, does it? | ||
| allison | that's project policy | 15:20 | |
| pmichaud | removing copyright notices is not exactly kosher | ||
| allison | the CLA doesn't require PaFo to keep copyright notices | ||
| but, there's a bigger reason for it | |||
| when each person has a copyright notice on individual lines of code, it's a nightmare to keep track of | 15:21 | ||
| pmichaud | by removing a copyright notice, PaFo is essentially claiming ownership over work that it doesn't own, though. | ||
| allison | you can list significant contributions in CREDITS | ||
| PaFo is the only entity that owns the *entire* work, so it's the only entity that can distribute Parrot | |||
| pmichaud | that's a different question, though. | 15:22 | |
| (and that statement is false. Anyone can *distribute* Parrot, that's the nature of the AL2) | |||
| allison | you can treat it as a compilation copyright or a derivitive work, but PaFo does own the copyright on Parrot as a whole | ||
| moritz | allison: uhm, everybody may distribute parrot, that's what the artistic license says | ||
| allison | moritz: yes, under the terms of the artistic license | 15:23 | |
| but PaFo has full copyright rights | |||
| the point of having a foundation to hold the collective copyright is so anyone who wants to use, modify, or redistribute the code doesn't have to go and ask permission of each individual developer who has ever contributed code to the project | 15:25 | ||
| pmichaud | works for me. | ||
| allison | (and the point of having members in the foundation is so that it's the actual active developers who get to decide how that copyright is handled) | ||
| pmichaud | anyway, yes, I'll change it on mergeback to trunk | ||
| Coke | honestly, I just know a codingstd test would fail. | 15:27 | |
| hey, allison and pmichaud are here! | 15:28 | ||
| pmichaud | yes, I'll be running codingstd test before mergeback to trunk also | ||
| allison | Coke: that's the nice thing about codingstd tests, they catch little details that might slip past otherwise | 15:29 | |
| Coke | given $P1, an invokable PMC, how do I invoke it as if I were 3 levels up the call chain? | ||
| pmichaud | I don't know of a way to do that yet. But Rakudo will want something similar also. | 15:30 | |
| Coke | I need it before I can ditch my hand rolled call chain. | ||
| pmichaud | are you just interested in it for lexicals, or is it stronger than that? | ||
| Coke | pmichaud: tcl uses it extensively. | 15:31 | |
| pmichaud | okay | ||
| some parts of Perl 6 will use it also | |||
| allison | there aren't any short-cuts for it yet, but the basic answer is to invoke it using the context 3-levels up | ||
| Coke | allison: yes, how. =-) | ||
| allison | at the moment that would mean Parrot_pop_context 3 times, then invoke | 15:32 | |
| pmichaud | I'm guessing we'll want a "set_caller" operation that lets us change a subroutine's notion of the current caller | ||
| Coke | invoke $P1, <context pmc I got from interp['context'; 3] ? | ||
| allison | depending on what you're doing, you might want to save the intermediate contexts | ||
| pmichaud | similar to how we have "set_outer" to change the notion of the current outer lexical scope | ||
| Coke | ... if I have to save the intermediate contexts, I'm not much better off than using my handrolled version anyway. hurm. | 15:33 | |
| (and do I just save the contexts, or everything else that I can extract from the interpreter at that depth?) | |||
| allison | Coke: well, it depends, are you ever planning to return to those intermediate call levels? | ||
| Coke | depends on what happens in $P1, but yes. could happen. | 15:34 | |
| allison | Coke: if you want to invoke 3 levels back, presumably there's a reason for it, like you're resetting the call chain | ||
| Coke: what do you expect to happen when this sub returns? | |||
| Coke: to continue executing in the context 3-levels up? | 15:35 | ||
| Coke | alllison; no, to continue in the current context. | ||
| allison | Coke: hmmm... then why are you executing 3 levels up? | ||
| Coke | allison: it's an example. let's say 1 level for a more reasonable example. | ||
| allison: (but, in general, because [uplevel] in tcl exposes this functionality.) | 15:36 | ||
| allison | Coke: okay. what's the behavior of uplevel? | ||
| Coke | ... execute code at an arbitrary level up the call stack. | 15:37 | |
| allison | Coke: because rolling back Parrot call chain may not be the best way to duplicate the behavior | ||
| Coke | here's the docs: www.tcl.tk/man/tcl8.5/TclCmd/uplevel.htm | ||
| allison | Coke: what does it care about? lexical variables? | ||
| Coke | variables, call stack. (when you're running that code, if you introspect the call level, you see it as the higher level, not the lower lever.) | 15:38 | |
| allison | the call stack can be faked (it will have to be anyway, since ParTcl's call chain is completely different that Tcl's call stack) | 15:39 | |
| Coke | most of the time, I see it used to implement things that work like builtins as user-level procedures. but it allows for arbitrary mucking of levels. upvar is for variables only, gives you a way to alias a variable at your level to a variable at a higher lever. | ||
| allison: I'm already faking the call stack. | 15:40 | ||
| I am trying to not fake it, and use parrot's. | |||
| (that is, I have a working version of uplevel today.) | |||
| allison | Coke: then your workaround is the best for now | 15:41 | |
| Coke | ... gah. | ||
| allison | Coke: there is no general-purpose way to do it | ||
| Coke | right now, or ever? | ||
| allison | (which isn't to say there never will be) | ||
| Coke | k | ||
| allison | Coke: I'd be interested in seeing how your workaround works | ||
| Coke | whenever I invoke a procedure, I have a prelude. whenever I return from a procedure, I have a ... postlude. =-) this manually adds information to the stack and removes it. | 15:42 | |
| if I want to do an uplevel, I save off N levels of the stack, invoke the proc, and then restore them. | |||
| allison | Coke: so you're manually duplicating the Tcl stack anyway, that works | 15:43 | |
| Coke | it's a PITA and a ton of manual code that involves a lot of extra PMCs. | ||
| allison: yes, but it's ugly, won't work with other hlls, etc. | |||
| allison | Coke: yes, would be nice to get rid of that | ||
| Coke | if parrotinterpreter supported the appropriate shift/pop/unshift/push vtables to muck with the current depth, that would be a fairly nice middle ground. | 15:47 | |
| (I'd only need the ones to remove one from the innermost and then reattach the innermost.) | |||
| Austin | Could you clone the return continuation for one level down? | 15:48 | |
| dalek | TT #1086 created by pmichaud++: [BUG] Test::More doesn't support plan('no_plan') | 15:49 | |
| Coke | ah. I can just refer to interp[0] to get everything at that depth. | 15:51 | |
|
15:51
bluescreen joined
|
|||
| Coke | that makes the manual work a little less onerous. | 15:51 | |
| allison | Coke: the thing is, right now that would be a mess | ||
| Coke | er... no, I /can/ refer to it, but it doesnt' mean what I think it means. | ||
| allison | Coke: because it's context and continuation, and current_object, and call signature object, and, and, and | 15:52 | |
| Coke | one wonders why we did it as "thing"; level instead of level; "thing" | ||
| allison | Coke: when we can collapse those down to a single call frame, it'll be cleaner | ||
| Austin | This is the "Austin doesn't really know what he's talking about" part, but as I understand it when a sub is called it gets a return continuation that (I assume) when invoked puts the interp back into "the caller"'s interp environment. So if you got uplevel 3, went back to uplevel 2 and got the retcon, would it work to clone that and then call-with-continuation your sub? | 15:53 | |
| allison | Coke: it grew organically | ||
| dalek | rrot: r41616 | pmichaud++ | branches/pct-rx/config/gen/makefiles/pct.in: [pct-rx]: Add 'rxtest' makefile target. |
||
| rrot: r41617 | pmichaud++ | branches/pct-rx/t/compilers/pct/regex (2 files): [pct-rx]: Add plan() to pct/regex tests. |
|||
| rrot: r41618 | pmichaud++ | branches/pct-rx/compilers/pct/src/Regex/Cursor.pir: [pct-rx]: Move Match object creation into Cursor.MATCH() |
|||
| Coke | allison: ah, the comment parrot lament. | ||
| allison | Austin: basically, yes | 15:54 | |
| Austin | That is a scary yes. | ||
| What's wrong with it | |||
| allison | well, it's a call tree, instead of a call stack | 15:55 | |
| Austin | So that means that running something uplevel would change any lexical closures? I think that may be intended behavior for tcl. Coke? | 16:00 | |
| Coke | tcl's "lexicals" don't quite work the same. (it doesn't automatically look up to outer levels for variables not defined in existing scope.) But yes. | 16:04 | |
| if I am running a level up, I should see that level's variables as my current set of variables, not the ones I invoked the uplevel from. | |||
| Austin | Is tcl dynamic instead of lexical? | 16:06 | |
|
16:07
cotto_work joined
16:08
iblechbot joined
|
|||
| Coke | austin; I don't know the answer to that question. | 16:13 | |
| Coke googles for dynamic variables vs. lexicals. | |||
| Austin | okay. hmm | ||
| Coke | um. dynamic is as opposed to static, not as opposed to lexical. neh? | 16:14 | |
| Austin | No. "dynamically scoped" vs "lexically scoped" | ||
|
16:14
darbelo joined
|
|||
| Coke | ah. where lexical scope can also be static scope. | 16:14 | |
| Austin | If I have a sub that says "print $x", and the sub doesn't define $x, does it look in the caller's variables for a $x? | ||
| Coke | (called) | ||
| Austin: didn't I just say that it didn't? | 16:15 | ||
| Austin | I'm not sure. | ||
| Coke | (it doesn't. you have to explicitly declare you want that to happen, and which level that variable is defined in.) | ||
| Austin | That's why I asked. | ||
| "outer levels" could mean two things. | |||
| Coke | if I say set a 2 ; proc foo {} {puts $a}; foo; # this fails. | ||
| Austin | Okay. | 16:16 | |
| Is it "upvar to the rescue" or are there other ways to do a symbol import? | 16:17 | ||
| Coke | (this is another reason, I think, why tcl can't use .lex, even if we had a real compiler.) | ||
| upvar, variable, and global all let you say "this variable comes from somewhere else." | |||
| Austin | What does variable do? | 16:18 | |
| Coke | tcl commands is www.tcl.tk/man/tcl8.5/TclCmd/contents.htm | 16:19 | |
| variable is kind of like global, but for namespaces. | |||
| Austin | okay. | 16:20 | |
| Coke | er, but specifically for variables inside a namespace. | 16:21 | |
| Austin | So what non-symbol things does uplevel let you do? You mentioned introspecting the stack, what commands are those? | 16:22 | |
| Coke | info | 16:24 | |
| many of which are var related, but see, e.g. invfo level | 16:26 | ||
| [info level] | |||
| Austin | Yeah. And I'm guessing the "current namespace" probably changes. | ||
| But most of the info functions that aren't "global" are about the variables. Can the list of visible functions (info functions, etc) change based on namespace or something? | 16:27 | ||
| Yes, apparently. | 16:28 | ||
| I'm wondering if you could fake it by linking to the lexpad of the uplevel target. | 16:29 | ||
| You'd have to do some fakery for things like info-frame, and you'd have to make a call to get the current subname instead of doing interp[0]. | 16:30 | ||
| whiteknight | What if we had a "ContextIterator" PMC type that would be able to traverse the call chain directly, and return the Context PMC at each stage? | 16:42 | |
| Then information like custom lexical vars could be attached as properties on the Context PMC at each level | 16:43 | ||
| Austin | WhiteKnight: Could Coke use the context pmc to run with? | ||
| whiteknight | Austin: Not currently, but I don't see any reason why that couldn't be added (Execute sub X in given context Y) | 16:44 | |
| Well, I don't see any reason why not AFTER pcc_reapply lands | |||
| Austin | :) | 16:45 | |
| whiteknight | because you wouldn't be able to get func args from the context, you would need to get them from the passed CallSignature | ||
| Austin | PCT behavior is to put args into a lexical, so that might not be a problem anyway. | 16:48 | |
| whiteknight | I was thinking about Coke's statement that the current lexicals implementation wouldn't work for him | 16:55 | |
| or at least not in the way he needs | |||
| dalek | rrot: r41619 | pmichaud++ | branches/pct-rx (6 files): [pct-rx]: * Add Cursor.match_bind and Cursor.match_arrays for capturing submatches. * Add <termish> and <quantified_atom> subrules for Regex::P6Regex . |
||
| whiteknight is excited about this PCT work | 16:57 | ||
| cotto_work is excited to finally find out what exactly protoregexes are | 16:59 | ||
| ah. it seems that moritz++ has something about them on his site | 17:01 | ||
| so much magic... | 17:03 | ||
| Austin | Apparently, NULL_PMC is not the same as 0 in arithmetic expressions. | ||
| :( | |||
| darbelo | NULL_PMC != NULL | 17:04 | |
| cotto_work | That's why we have it. | ||
| Austin | If it's in a scalar, it ought to act like a scalar. | 17:05 | |
| darbelo | Oh, we're talking about different NULLs. | 17:06 | |
| darbelo thinks a the c level. | |||
| cotto_work too | 17:07 | ||
| whiteknight | somebody has an explanation of protoregexes? link? | 17:08 | |
| cotto_work look forward to asking people if they're talking about llvm-, libjit-, C-, PIR- or HLL-level code | |||
| perlgeek.de/en/article/mutable-gram...for-perl-6 | |||
| Austin | Oooooooh....kay.... | 17:12 | |
| This is weird. | 17:13 | ||
| Of course it uses floating point. Why didn't I expect that? | 17:15 | ||
| Does RPA have a .get_float vtable? | 17:18 | ||
| whiteknight | if it does, I'm sure it's just "return (double)VTABLE_get_integer_native(INTERP, SELF);" | 17:19 | |
| cotto_work | looks like no | ||
| nopaste | "Austin" at 98.235.55.43 pasted "Sub with weird error (involving floating point)" (25 lines) at nopaste.snit.ch/18164 | 17:21 | |
| cotto_work | however, it looks like parrot dtrt and converts the int to a float | ||
| nopaste | "Austin" at 98.235.55.43 pasted "Compiled output of sub" (17 lines) at nopaste.snit.ch/18165 | 17:23 | |
| Austin | The compiled output corresponds to the 7 if +$name.path <= $path_index { part. For some reason, .path (which returns an array) is being converted to $N.., with poor results. | 17:24 | |
|
17:26
allison joined
|
|||
| Austin | That's a nice article. moritz++ | 17:31 | |
|
17:33
mokurai joined,
sjn joined
|
|||
| Coke | which article? | 17:39 | |
| ah. | |||
| got it. | |||
|
17:40
joeri joined
|
|||
| Coke | so a proto regex is a regex :multi ? | 17:40 | |
| (I'm fairly certain this is what I needed in order to make my parser much more clever.) | 17:41 | ||
| Austin | Ayup. | ||
| Or, perhaps, it's :subid for regex multi's | 17:42 | ||
| I don't think it's a call-time thing, so much as a compile-time thing. | |||
| Coke | I want something that will let me take my tcl builtins (like for and while), and implement them in pct, and then remove them if/when they are overridden. | 17:43 | |
| Austin | :) | ||
| Coke | I imagine that this will result in more compact and efficient code than what I have now. | ||
| Austin | How does that work with nesting? | 17:44 | |
| masak | multi routines in Perl 6 can also be fairly early-binding, since they're limited in scope. | ||
| or so I've heard. | |||
| Coke | Austin: nesting? | ||
| purl | nesting is, like, a win | ||
| Austin | If I say "for { ... redefine-for ... for {... } }" | ||
| Does the second for call the redefinition? | |||
| Coke | it should, yes. | ||
| Austin | Argh. | 17:47 | |
| nopaste | "coke" at 72.228.52.192 pasted "sample rename of for; works different in various version of tcl" (41 lines) at nopaste.snit.ch/18166 | 17:51 | |
| Coke | so the most correct version in the newest (first) there. | ||
| wher the redef is immediately picked up. the older verison, 8.4, doesn't pick it up til the next round. | |||
| partcl just segfaults. =-P | |||
| I think the middle one is tclsh8.4 | 17:52 | ||
| Austin | Isn't for just a builtin function? | 17:54 | |
| Coke | it is, yes. | 17:55 | |
| Austin | Oh. You want the grammar to match it so you can build in the incrementing behavior. | ||
| Coke | yes. rather than have to do the equivalent of 'for'('set i 1','$i<4','incr i') | ||
| I imagine if I could avoid that function call, I could get a smidge of speed back. =-) | 17:56 | ||
| Austin | Seems expensive. | ||
| Coke | my thought was I could take the current 'command' token, and then have a protoregex for 'for' as a command. | ||
| (and all the other pure flow control ones.) | |||
| s/pure/ | |||
| s/pure// | |||
| Austin | Absent file loading, you might be able to do the analysis. But it seems hella expensive. | 17:57 | |
| Coke | what seems expenive? | 18:02 | |
| the way I'm doing it now? | |||
| Austin | No, the analysis to decide at compile time when 'for', &c were still builtins | ||
| Coke | the only thing about a builtin that distinguishes it from a user defined proc is that it's written in (not tcl) | 18:03 | |
| you can rename them, delete them, replace them... | |||
| Austin | Yep. | ||
| Maybe you should just generate code that tests for it. | |||
| Coke | this is why protoregexen would help - I could dynamically update the grammar. | 18:04 | |
| and then the next time I compiled something, It'd get the new behavior. | |||
| (whereas now, I always get the very slow behavior) | |||
| Austin | Try emitting something like: 7 $P0 = get_global 'for' ; $P1 = get_global '_builtin_for' ; if same $P0, $P1 goto forloop ; 'for'(...) ; goto past_for ; forloop: | 18:06 | |
| Then you can emit both sets of code, and determine at runtime which to execute. | 18:07 | ||
| Coke | Austin: to do that, i'd have to know the command I invoked was "for", yes? | ||
| ... so why not put it in the grammar. | 18:08 | ||
| Austin | Right. You build optimizations into your parser/compiler. | ||
| Coke | Austin: the grammar now just has a generic "command" rule. | ||
| Austin | Right. | ||
| I'm suggesting modifying the grammar. | |||
| Coke | ... I get the feeling you don't listen to me when i talk. =-) | 18:09 | |
| as I am also suggesting modifying the grammar. | |||
| purl | okay, Coke. | ||
| Coke | purl-- | ||
| purl | Coke: sorry... | ||
| Coke | {{ purl-- }} | ||
| Austin | Yes, but my way doesn't require waiting for protoregexes. | ||
| You could do it now. | |||
| Coke | true. | 18:11 | |
| I'll investigate that. danke. | 18:12 | ||
| Austin | Plus, I don't think protoregexes do it for you. | ||
| (Bitte.) | |||
|
18:12
AndyA joined
18:20
cotto_w0rk joined
|
|||
| Coke | I think they do do it for me. | 18:22 | |
| (putting the work into the AST steps instead of into the runtime PIR. | 18:23 | ||
| Austin | Coke: are you dynamically re-evaluating your blocks? | 18:28 | |
| (Like, running each one through the parser every time it gets called.) | |||
|
18:31
AndyA joined
|
|||
| pmichaud | protoregexes are a way to easily have multiple independently-compiled patterns under a single rule | 18:36 | |
| for example, I can have | |||
| proto token term { ... } | 18:37 | ||
| token term:abc { foo bar } | |||
| token term:def { baz \\w+ } | |||
| token term:ghi { some other pattern } | |||
| and then matching <term> will automatically (and smartly) decide which of the term:xxx tokens to use | |||
| this makes it easier to dynamically add a new rule that will match <term> | 18:38 | ||
| i.e., I can derive a new grammar and add a custom term:jkl rule that gets matched along with the other term:* rules | |||
| jrtayloriv | pmichaud, What would be the difference between a protoregex and doing something like token expr { <prefix><raw_expr> {*} }and using a conditional to check the prefix? Is it just that it's more efficient to not have to do the conditional in NQP? | 18:39 | |
| i.e. where <prefix> can be 'abc', 'def', 'ghi', in your example above. | 18:40 | ||
| pmichaud | jrtayloriv: what if you needed to add another prefix? | ||
| i.e., what if you needed to _dynamically_ add another prefix? | 18:41 | ||
| with the expr example you've given, you'd need to overload the entire <prefix> subrule | |||
| jrtayloriv | ahhhh -- I see. Thanks for explaining. | ||
| pmichaud | or have your custom prefix subrule first try the alternatives in the parent grammar's prefix definition | 18:42 | |
| Coke | austion - if I have a single for loop, the loop is evaluated /once/. if I have nested loops, the inner loop is reeval'd ever time through the outer loop. | 18:45 | |
| er, "austin". | 18:46 | ||
| whiteknight | pmichaud: if you override rules in Rakudo, won't that cause the setting to not compile? | ||
| Coke | so for anything more complicated than "hello world", I rapidly become inefficient.=-) | ||
| Austin | :) | ||
| pmichaud | whiteknight: I don't understand | ||
| short answer is "no", but I think I must be misunderstanding the question. | 18:47 | ||
| whiteknight | yeah, right. I'm sure none of the misunderstanding is happening on my side of the table | ||
| </sarcasm> | |||
| pmichaud | here's an example that might clear things up | ||
| in Perl 6, suppose I create a custom operator: | |||
| multi sub infix:<abc>($a, $b) { $a ~ 'abc ' ~ $b } | 18:48 | ||
| Austin | Coke: Do you eval every sub on entry? (In other words, if a sub calls for, would you catch the redefinition of for with a proto-regex?) | ||
| pmichaud | declaring this subroutine actually modifies the grammar and parser, by adding a new rule that matches <infix> | ||
| i.e., so that the parser can then recognize 3 abc 4 as being 'infix:<abc>'(3, 4) | 18:49 | ||
| whiteknight | okay, what I'm asking about isn't so much adding a new operator as overriding an existing grammar rule | ||
| pmichaud | overriding an existing grammar rule can work, although you might want to update the action method as well. | ||
| whiteknight | so if I override "sigil" to only match "^" that will break all P6 code that doesn't use that sigil? | 18:50 | |
| pmichaud | ...break all P6 code that uses other sigils | ||
| but yes | |||
| whiteknight | so that includes the setting? | ||
| pmichaud | but more likely is that you'll want to add a new custom sigil | ||
| i.e. | |||
| whiteknight | or "prelude" I guess it' called now | ||
| pmichaud | token sigil:sym<Ā©> { <sym> } | 18:51 | |
| this would add a new sigil to the language, while allowing all previous sigils to continue to work as before | |||
| but yes, if you overrode the sigil rule itself, that would probably lead to problems. | |||
| whiteknight | I'm thinking less about "more likely" scenarios and more about spectacularly stupid failure scenarios | 18:52 | |
| pmichaud | all good programming languages allow you to make spectacularly stupid failures :) | ||
| darbelo | pmichaud++ | ||
| whiteknight | I guess my question is, if I can manage to form a coherent thought here, will changes to the parser in user code retroactively affect the way the prelude was parsed? | 18:53 | |
| pmichaud | no. | ||
| because parser changes are lexically scoped | |||
| whiteknight | okay, that answers my question then | ||
| pmichaud | and the setting is part of an outer scope | 18:54 | |
| whiteknight | ok | ||
| Tene | s/prelude/setting/ makes it more clear | 19:08 | |
| whiteknight | what is it called now? Setting? | 19:10 | |
| pmichaud | "setting" | ||
| whiteknight | noted | 19:19 | |
| cotto_work | people planning on hacking on Saturday should try to get gdb 7.0 running. | 19:30 | |
| Coke | I will not attend the virtual hackathon. | 19:44 | |
| mikehh | cotto_work - I have gdb 6.8 on Ubuntu 9.04 amd64 | ||
| whiteknight | I don't suppose that's wound it's way into the ubuntu repos yet? | ||
| Coke | (prepping for and travelling to england.) | ||
| whiteknight | I would much prefer to apt-get update instead of the alternative | 19:45 | |
| cotto_work | mikehh, gdb 7.0 (not released yet) has reversible debugging and sounds incredibly shiny | ||
| you have to get it from (gasp) cvs | |||
| whiteknight | It doesn't look to me like allison has been waiting for the hackathon | ||
| (not that I'm complaining!) | |||
| Coke | whiteknight: good! | ||
| whiteknight | I would like to work on both pcc_reapply and the nsentry stuff too if we can | 19:46 | |
| mikehh | I was about to install 9.10 beta - I don't know what's in that | ||
| whiteknight | which, I'm sure, wouldn't upset pmichaud at all :) | ||
| Coke | whiteknight: why is the hackathon in dover-foxcrot, maine? | ||
| whiteknight | where? | ||
| I didn't specify a locatio | |||
| oh, I specified the location "#parrot", which google maps has tried valiantly to graph | 19:47 | ||
| and apparently #parrot is in maine | |||
| Coke | git question. I have a local branch with a ton of changes. I want to squash all those changes into one and apply it to the local "trunk".... how? | 19:49 | |
| mikehh | It's not in debian either - even unstable | 19:51 | |
|
19:51
Khisanth joined
|
|||
| cotto_work | mikehh, I wouldn't expect it to be until after it's released. | 19:51 | |
| mikehh | what does it do - and what is reversible debugging? | 19:52 | |
| PerlJam | Coke: git rebase master | ||
| purl | git rebase master is for a new branch | ||
| cotto_work | it means you can run the program backwards from when a problem occurs | ||
| PerlJam | Coke: oh, wait that doesn't squash | 19:53 | |
| cotto_work | www.gnu.org/software/gdb/news/reversible.html | ||
| mikehh | ah - that sounds really shiny | ||
| have you tried it yet | 19:54 | ||
| cotto_work | no. I don't have any tuits atm. | ||
| I really want to though. | |||
| dalek | kudo: a7d2a98 | (Solomon Foster)++ | src/setting/ (3 files): Full support for Complex cos and acos. |
19:55 | |
| shorten | dalek's url is at xrl.us/bfpuqr | ||
| dalek | kudo: 1354976 | (Solomon Foster)++ | src/setting/ (3 files): Full support for Complex tan and atan. |
||
| mikehh | probably req uires gcc 4.5 or something | ||
| shorten | dalek's url is at xrl.us/bfpuqt | ||
| dalek | kudo: be44f6a | (Solomon Foster)++ | src/setting/ (5 files): Full support for Complex sec and asec. |
||
| shorten | dalek's url is at xrl.us/bfpuqv | ||
| PerlJam | Coke: heh, I just fell victim to TIMTOWTDI in git :). I think you want to do this: git merge --squash branch master | 19:56 | |
| Coke | I find the google for 'git merge branch squash' amusing (2nd result is parrot) | 19:57 | |
| dukeleto | Coke: parrot has some of the best git docs out there :) | 19:58 | |
| whiteknight | parrot doesn't show up in the results for me at all | 19:59 | |
| dukeleto | purl, forget git rebase master | ||
| purl | dukeleto: I forgot git rebase master | ||
| dukeleto | Coke: you want git rebase -i | ||
| whiteknight | git do-what-i-want | 20:00 | |
| PerlJam | dukeleto: he didn't say that he wanted interactive necessarily :) | ||
| Coke: but that would work too. might be a pain if you've got lots to squash | 20:01 | ||
| whiteknight | dukeleto: what's the status of your git branch of parrot? | ||
| is it staying up to date? it looked to me like it hasn't been updated in svn trunk in a month | |||
| PerlJam | I take it parrot is staying with svn for the foreseeable future? | 20:02 | |
| whiteknight | PerlJam: yeah, basically | 20:03 | |
| Allison suggested we should test out git in branches, but trunk is staying svn for a while | |||
| darbelo can't foresee the future. | |||
| PerlJam | darbelo: nor can you forestall it. | 20:04 | |
| whiteknight | I guess I just can't read the stupid network graph on git | ||
| whiteknight is heading home now, getting my hacking gear ready. Later | 20:06 | ||
| Coke | dozens of commits to squash. | 20:09 | |
| dukeleto | msg whiteknight i don't know exactly what you are asking. the upstream branch on github tracks parrot trunk directly, the master branch does the same, but may have extra merge commits | ||
| purl | Message for whiteknight stored. | ||
| dukeleto | Coke: git rebase -i HEAD~N , where N is the number of commits that you want to reorganize. you can use the squash script as well, but that is basically what it does | 20:10 | |
| Coke | yes, I was hoping to do it all in one. shoudl I squash in the branch and then merge it back to master? | ||
| (that loses the individual commits in the branch, but I suppose I don't care. | |||
| dukeleto | Coke: sure, if you don't want to see the history of the individual commits in trunk, squash in the branch and then merge back | 20:11 | |
| git rebase also can take commit SHA1s instead of being interactive. then you need to figure out the commit that your branch diverged from trunk. there is a git plumbing tool for that, but it is escaping me right now | 20:12 | ||
| Coke | dukeleto: what I want is for the branch to be there if I want to go back to it, but have all the work there land as a single commit in master. | 20:13 | |
| dukeleto | Coke: gotcha. this is what I would do: from your branch do: git checkout -b squashed_branch. Then squash the 'squashed_branch', merge it back to trunk, then delete squashed_branch with "git branch -d squashed_branch'. You will still have your other git branch with all the incremental commits for future reference | 20:14 | |
| you are basically making a copy of your branch, squashing that and leaving the original branch untouched | 20:15 | ||
| Coke: does that make sense? | |||
| Coke | trying now. | ||
| yes. | |||
| to merge branch back, 'git checkout master; git merge sq_branch' ? | 20:16 | ||
|
20:18
mberends joined
|
|||
| Coke | ayup. ok, this seems to be close to what I want. PerlJam++ dukeleto++ | 20:20 | |
|
20:21
AndyA joined
|
|||
| dukeleto | Coke: yes, that looks about right | 20:26 | |
|
20:33
payload joined
|
|||
| dalek | rtcl: r763 | coke++ | trunk/ (4 files): refactor some bits into macros. these macros to simplify the switch. |
20:40 | |
| rtcl: r764 | coke++ | trunk/ (4 files): add getCallDepth() |
|||
| rtcl: r765 | coke++ | trunk/src/ (2 files): add macro for setup of infolevel. |
|||
| rtcl: r766 | coke++ | trunk/ (3 files): minor change to infolevel, and use it more. |
|||
| rtcl: r767 | coke++ | trunk/docs/hacks.pod: if this branch hits, these will be lies. |
|||
| rtcl: r768 | coke++ | trunk/runtime/ (2 files): Add getLexPad, use it once. |
|||
| rtcl: r769 | coke++ | trunk/runtime/builtin/info.pir: use more encapsulation |
|||
| rtcl: r770 | coke++ | trunk/runtime/variables.pir: use refactored functions |
|||
| rtcl: r771 | coke++ | trunk/runtime/variables.pir: use more functions |
|||
| Coke | ... hey, the squash didn't (*&#$ work. | 20:41 | |
| git-- | |||
| coke-- | |||
| {{ coke-- }} | 20:42 | ||
| darbelo | Coke: are you using git-svn? | ||
| Coke | yes. | ||
| darbelo | git-svn-- | ||
| nopaste | "coke" at 72.228.52.192 pasted "git-wtf ?" (9 lines) at nopaste.snit.ch/18168 | 20:43 | |
| darbelo | I think you need to squash on 'master' too, for git-svn to pick it up. | ||
| make? | |||
| purl | i think make is awful really | ||
| Coke | .. why? master should not have had those individual commits. | 20:44 | |
| darbelo: yes. I wanted to make sure it still worked. | |||
| and stq == diff --name-status | 20:45 | ||
| dalek | rtcl: r772 | coke++ | trunk/runtime/ (2 files): move this over. |
||
| rtcl: r773 | coke++ | trunk/runtime/variables.pir: elminate a pmc. |
|||
| rtcl: r774 | coke++ | trunk/runtime/variables.pir: eliminate more temp pmcs. cleanup |
|||
| rtcl: r775 | coke++ | trunk/runtime/ (5 files): PIR cleanup and some refactoring of call_chain manipulation |
|||
| Coke | damnit. | ||
| ah well. | |||
| darbelo | Hey, it's easier to read the changelog incrementally. | 20:46 | |
| Coke | darbelo: ... those were not intended to be pushed. | 20:47 | |
| dukeleto | Coke: uh oh | ||
| Coke | dukeleto: yah. whoops. | 20:48 | |
| perhaps I should bite the bullet and switch to github. :| | |||
| dukeleto | Coke: i don't use that gitsquash script because it didn't work for me the first time i used it. also, the gitsquash script may have branches hard coded into it, instead of using the current branch | ||
| Coke | ... or unbite the bullet and switch back to plain svn. | ||
| dukeleto | Coke: i would help you if you switched to github. just sayin' | ||
| darbelo | I can work on git just fine, if you switch. I'm +0 either way. | 20:50 | |
| Coke | ... was just about to ask. | ||
| darbelo: should I create a partcl account on github for master? | |||
| dukeleto | plain git is roughly 1000x times easier to use than git-svn | ||
| Coke | (like the rakudo account?) | ||
| dukeleto | Coke: that is up to you, but makes it look more official-ish, i guess | 20:51 | |
| darbelo | I haven't used github before. I have no idea. | ||
| dukeleto | Coke: but it could just be a project on your username as well | ||
| Coke | dukeleto: I'd rather just do it the same way rakudo is to avoid confusion (for me.) | 20:52 | |
| darbelo | (avoid confusion)++ | ||
| dukeleto | Coke: it is totally your opinion. for instance, jnthn has blizkost as a project under his own github account | ||
| PerlJam | coke++ | ||
| dukeleto | Coke: then I would recommend creating a 'partcl' github account, if it doesn't exist yet | ||
| PerlJam | (for drinking the git kool-aid ;) | ||
| dukeleto | and number of people can be given commit rights to any github account, so it really doesn't matter | 20:53 | |
| Coke: github has *really* good howto guides, i highly recommend them | |||
| Coke | dukeleto: if you wish to help, I'm all for that. =-) | 20:54 | |
| I created the partcl account. | |||
| dukeleto: any chance you can help with the conversion? | 20:55 | ||
| or perljam? =-) | 20:57 | ||
| oh. "let github do it for you." | |||
| PerlJam | github++ | 20:59 | |
| dukeleto | coke: sure, what do you need done? | ||
| Coke | will it deal with the /wiki in googlecode's repo? | ||
| dukeleto | Coke: that is a bit iffy. I haven't used googlecode's wiki much | 21:00 | |
| PerlJam | Coke: I doubt it | ||
| particle | there is no github wiki | ||
| dukeleto | particle: wrong | ||
| particle | ! that's new. | ||
| dukeleto | Each github project has a wiki | ||
| as well as an issue tracker | |||
| Coke | I am more concerned about it choking on the top level 'wiki' dir in the svn repo. | ||
| particle | issue tracker i knew about. | ||
| dukeleto | Coke: no, github doesn't care about your directory structure | 21:01 | |
| Coke | grabbing subversion authors.... how long can i expect this to take? =-) | ||
| dukeleto: I hope it cares about trunk/tags/branches. | |||
|
21:01
Whiteknight joined
|
|||
| particle | coke: everything in git is a branch | 21:01 | |
| there's no difference between trunk and other branches, that is | |||
| PerlJam wonders how long it would take github to process the parrot repo | 21:02 | ||
| particle | or tags for that matter | ||
| Whiteknight | well, there's a cultural differenec | ||
| dukeleto | Coke: yes, git svn clone will find all that stuff | ||
| Coke | dukeleto: danke. | ||
| particle | PerlJam: try it and see! | ||
| dukeleto | Coke: are you doing the github web import, or doing a manual git svn clone ? | ||
| Coke | was doing the web import, but made the mistake of starting it from work. | ||
| dukeleto | Coke: how many svn commits? | ||
| Tene | particle: I have very little faith in github's code... so depends on how much of their import they've done themselves and how much is just git. | ||
| Coke | wonder if I can just kill this window and start over from home. | ||
| Whiteknight | dukeleto: The "Network" tab on github says "Master" of leto/parrot hasn't had any activity in a while | ||
| so I suspect the graphic there is out of touch with reality | 21:03 | ||
| dukeleto | Whiteknight: that is *my* master. it centers the graph on master, but it is the upstream branch that you want | ||
| Coke: you can just kill that if you want | |||
| PerlJam | particle: only if there were some easy way to update it from the svn repo later | ||
| Whiteknight | oh, okay | ||
| Coke | does the rakudo account on github allow certain users to automatically push from their repos? | ||
| PerlJam | Coke: those who are collaborators | 21:04 | |
| dukeleto | Coke: kinda | ||
| Tene | Coke: "automatically"? | ||
| PerlJam | Coke: er, what Tene sais | ||
| er, said | |||
| dukeleto | Coke: usually, I do a "pull request" and then moritz or jnthn will pull it in | ||
| Coke | +only -automatically | ||
| Tene | Coke: some accounts have commit prive to the rakudo/rakudo repo | ||
| particle | i have commit privs to rakudo/rakudo, you don't | ||
| dukeleto | Coke: you can add anyone on github as a committer to your repo, so that they can commit directly to your master repo | ||
| particle | weekend & | 21:05 | |
| Coke | ok. anyone who has a commit bit in partcl, would be nice to get your github id. | ||
| particle is particle | |||
| dukeleto | Coke: i recommend giving your core committers access to commit directly, then tell newer people to send pull requests for topic branches | ||
| Tene | Coke: you can guess mine | ||
| cotto_work is cotto | |||
| dukeleto | particle: drink some whiskey for me ;) | ||
| particle | ahhh | ||
| you're gonna have to make up for me at the summit. i'll start now. | 21:06 | ||
| Tene at seattle airport waiting for flight home. | |||
| particle | tene: crappy week for me, sorry we couldn't meet up | ||
| Coke | dukeleto: I have to run home now. I'm happy to give you the keys to the partcl account if you're bored. =-) | ||
| Tene | everyone ready for pcc hackathon tomorrow? | ||
| dukeleto | particle: indeed. I am thinking of buying LH something nice to drink, as well | ||
| Tene | particle: I didn't feel up to it anyway. | ||
| particle | good idea | ||
| purl | particle: Good Idea: Kissing a loved one. Bad Idea: Kissing a total stranger. | ||
| Tene | LH? | 21:07 | |
| purl | it has been said that LH is just nasty | ||
| particle | purl, you're so old fashioned. | ||
| purl | particle: excuse me? | ||
| dukeleto | Coke: if you email the info, I can help you out. let me know what needs doin' | ||
| purl, forget LH | |||
| purl | dukeleto: I forgot lh | ||
| darbelo is darbelo | |||
| dukeleto | purl, LH is Leslie Hawthorn, Program Coordinator for Google Summer of Code | ||
| purl | OK, dukeleto. | ||
| dukeleto | Tene: i have family visiting, so I don't know how much I will be able to hack at the pcc branch tomorrow, but if there is a list of small tasks to be done, that would be useful for me | 21:08 | |
| treed | LH? | ||
| purl | LH is Leslie Hawthorn, Program Coordinator for Google Summer of Code | ||
| dukeleto | Whiteknight: i should make master just mirror upstream i guess, for the sake on not confusing people | 21:19 | |
| s/on/of/ | 21:20 | ||
|
21:24
mikehh joined
|
|||
| dalek | TT #1087 created by reezer++: Various tests fail on DragonFly/amd64 | 21:31 | |
| Whiteknight | is there a git equivalent to svn info? | 21:32 | |
| darbelo | cat .git/config? | ||
|
21:33
kjeldahl_ joined
|
|||
| darbelo | Whiteknight: what information are you after? | 21:34 | |
| Whiteknight | i guess that has what i need. thanks darbelo++ | ||
| dukeleto | hmmm | 21:35 | |
| Whiteknight | I'm trying to come up with an alias where git will pull if it's a git repo, and fetch if it's an git-svn repo | ||
| dukeleto | Whiteknight: git remote with no args shows all remotes | ||
| Whiteknight: i have an alias called "git sup" that does "git svn fetch && git svn rebase" | 21:36 | ||
| the fetch pulls and updates all remote repos in your index, the rebase fast forwards the current branch to those newest pulled down changes | |||
| Whiteknight: does that make sense? I ask because sometimes I don't know if I am using git-speak that is incomprehensible | 21:37 | ||
| Whiteknight | I don' really understand what rebase does or what fast forward means | ||
| dukeleto | ok, good. "fast-forward" means that you are basically making one branch "catch up" to another. there is no possiblity of a conflict, because one is a subset of previous history | 21:39 | |
| rebase means slightly different things, depending on if you are using pure git or git-svn | |||
| basically, if you are using git svn, you always do "git svn rebase" to pull the latest stuff from svn into your git-svn clone | 21:40 | ||
| allison | if you have other people pulling from your git clone, you really shouldn't use rebase | ||
| dukeleto | git svn fetch pulls all new commits from all svn branches, but does not apply them. Said in another way, it pulls down all the new "history" or "metadata" but doesn't update your "working copy"/checkout | ||
| allison: the golden rule is "don't rebase public history" | 21:41 | ||
| rebasing work that no one else has seen is perfectly fine. that is how you clean up a messy commit history into a coherent set of patches | |||
| allison | sure, rebase is great on your private branch | 21:42 | |
| dukeleto | allison: yes, that is all I am trying to get across. | ||
| allison | but a git-svn mirror that's the root for a large number of other users isn't the right place for rebase | 21:43 | |
| dukeleto | whiteknight: this is my recentish gitconfig github.com/leto/Util/blob/master/co....gitconfig | ||
| allison: correct. at least not on the branch that others are pulling from | |||
| allison: anybody is free to do whatever they want on local branches (those only on your machine) or private topic branches that no one else bases work from | |||
| allison: does that sound about right? | 21:44 | ||
| allison | dukeleto: yup | ||
| dukeleto | shweet | ||
| Whiteknight: for example, to keep my parrot mirror upto date on github, i have a script that does "git svn fetch", then I do "git svn rebase" which applies those changes to the current branch (upstream in my case, but it can be whatev). then I iterate through each branch and push the changes to the mirror branch on github | 21:45 | ||
| this is the script that does it, it might be of use: github.com/leto/Util/blob/master/bi...ate_parrot | 21:46 | ||
| at least it might make some of the blathering that I just did make some sense | 21:47 | ||
|
21:47
Whiteknight joined
|
|||
| dukeleto | please, anyone, barrage me with questions if I am speaking in hieroglyphics | 21:48 | |
| Whiteknight | my stupid router died before your last set of hieroglyphics | ||
| irclogs? | |||
| purl | it has been said that irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| darbelo | You are speaking in hieroglyphics, but it's a set of hieroglyphics I can understand :) | 21:49 | |
| dukeleto | darbelo: yay | ||
| Whiteknight | okay, so if I do a "git svn fetch" none of my files actually change? | 21:50 | |
| and I need to follow that with an immediate git svn rebase? | 21:51 | ||
| darbelo | right, fetch just fetches stuff and leaves it sitting there. | 21:52 | |
| dukeleto | Whiteknight: the first statement is correct. | ||
| Whiteknight | and the second...? | 21:53 | |
| purl | the second is you win a PIE IN THE FACE! or an ok way to do it.. | ||
| dukeleto | you can also do "git merge svn/trunk" to fast-forward your current branch to trunk, after doing a "git svn fetch" | ||
| fetch updates the index, rebase does a fetch on the current branch and applies it to the current branch | |||
| index = stuff in the .git directory | |||
| rebase is used much more with "git svn" than with pure git, because that is what the workflow requires | 21:54 | ||
| allison | dukeleto/darbelo: perhaps you're using a different meaning of "leaves it sitting there", but git svn fetch commits to your git repo | ||
| the rebase is unnecessary | |||
| dukeleto | allison: git svn fetch updates the index, and hence, yes adds commits to your repo, but does not change the "working copy", i.e, the "checked out" files in your git repo | 21:55 | |
| darbelo | "there in the repo" :) | ||
| dukeleto | allison: git svn rebase is the same as "git svn fetch && git merge svn/trunk" if you want to sync up the current branch with trunk on svn | 21:56 | |
| darbelo | or "there in the index" to use the proper hieroglyphics ;) | ||
| dukeleto | repo has the connotation of the whole history, a tree is an instance of the repo, in git-speak | 21:57 | |
| just for clarification | |||
| Whiteknight | viewing the log is much faster with git, that much is certain | ||
| dukeleto | Whiteknight: git log -p may interest you | ||
| it shows you the history as a series of patches. very useful | 21:58 | ||
| Whiteknight | oh yes, fun | ||
| dukeleto | you can also do "git log -p some/dir" or "git log -p some_branch" | ||
| Whiteknight | right | 21:59 | |
| dukeleto | git log -Sfoo shows all commits that contain the string "foo" being added or deleted. REALLY USEFUL. | ||
| it's called the pick-axe | 22:00 | ||
| allison | dukeleto: okay, 'git svn rebase' is not the same as 'git rebase' | ||
| dukeleto | allison: correct | 22:01 | |
| they should have been named differently in my opinion | 22:02 | ||
| because they are only mildly related. git svn rebase *does* do a basic rebase, but does a lot more black magic too | |||
| allison | I suspect they kept the name because it has a similar behavior of stripping off the changes, bringing the base up to date, and layering the changes back on top | 22:03 | |
| which is fine in a local topic branch | |||
| dukeleto | allison: yeah, I can see that point of view | ||
| git svn rebase figures out how to replay your commits while reading in new commits from svn, so that stuff "just works." I implore you, do not attempt to read the source of git-svn, it is the road to madness | 22:04 | ||
| I should write a Lovecraftian short story about git-svn | 22:05 | ||
| Patterner | Does it die 'orribly? | ||
| dukeleto | like all Lovecraft stories, the main character will go insane at the end, or finish telling the tale of how they went insane :) | 22:06 | |
| partcl is very close to being setup on github, probably will have more info about that tonight | 22:07 | ||
| Whiteknight | allison: t/pmc/fixedbooleanarray.t hangs on my system. yours? | 22:08 | |
| (pcc_reapply) | |||
| allison | Whiteknight: yes | 22:09 | |
| Whiteknight | okay, at least it's not just me | 22:10 | |
| ah nevermind, I know why it's hanging | |||
| second test calls test::more.like(), which tries to load PCT, which tries to use a :slurpy return value somewhere | 22:11 | ||
| ...which causes an infinite exception loop because there isn't a pop_eh in there like there should be | |||
| allison | Whiteknight: there should be no calls to 'like' in the coretest suite | ||
| I stripped them all out of trunk a month or so ago | 22:12 | ||
| but, more may have been added | |||
| Whiteknight | more have definitely been added | ||
| so any calls to "like" should be removed? | |||
| allison | then, they need to be removed | ||
| from any tests in coretest, yes | |||
| Whiteknight | just for this branch, or in general? | ||
| allison | in general | ||
| purl | In general, you do not want to disturb The General. | ||
| allison | coretest doesn't build PGE | 22:13 | |
| Whiteknight | right | ||
| okay | |||
| Austin_away | If I want to eval PIR code on the fly, what do I compreg? | ||
|
22:13
DrForr joined
|
|||
| allison | Whiteknight: it's usually pretty easy to replace the 'like' tests with 'is' tests | 22:13 | |
| Whiteknight: the 'like' is just laziness | 22:14 | ||
| in extreme cases, I used substr and is | |||
| Whiteknight | yeah | ||
| Austin: $P0 = compreg 'PIR' | 22:15 | ||
| $P1 = $P0(mycode) | |||
| Austin | Thanks, whiteknight. | 22:18 | |
| And now, this: If a class has multiple parents, how do I control which get_string:vtable gets invoked for the class? | 22:19 | ||
| Whiteknight | I thought multipleinheritance had been banned | 22:20 | |
| Austin | Boy, I hope not. | ||
| Whiteknight | maybe that's just at the C leve | 22:21 | |
| level | |||
| Austin | Maybe. | ||
| But you know I don't C. | |||
| Whiteknight | In PIR it all has to do with the C3 linearization of the class hierarchy | ||
| Austin | Command, Control and Communications? | ||
| darbelo | en.wikipedia.org/wiki/C3_linearization | 22:22 | |
| dalek | rrot: r41620 | whiteknight++ | branches/pcc_reapply/t/pmc/fixedbooleanarray.t: [pcc] fix some tests in fixedbooleanarray.t that were using 'like' ('like' requires PCT which is not built for coretest) |
||
| Austin | Thanks, darbelo | 22:23 | |
| Whiteknight | urg, t/pmc/float.t fails in a bizarre way | 22:24 | |
| Austin | I just know this won't end well... | 22:27 | |
| Could not build C3 linearization: ambiguous hierarchy | |||
| Apparently, the linearizer needs work. | 22:28 | ||
| Whiteknight | maybe your hierarchy needs work | ||
| darbelo | www.python.org/download/releases/2.3/mro/ | ||
| dalek | rrot: r41621 | whiteknight++ | branches/pcc_reapply/t/pmc/float.t: [pcc] remove some more uses of 'like' from core tests |
||
| darbelo | c3? | ||
| purl | i guess c3 is a little on the confusing side to start off with or teh hype or www.python.org/2.3/mro.html or use.perl.org/~autrijus/journal/25768 or most often broken by old Session::Store::FastMMap (<=0.03) or search.cpan.org/~flora/Class-C3-0.2...t_is_C3%3F | ||
| darbelo | www.python.org/download/releases/2.3/mro/ explains when a c3 linearization can't be built. | 22:29 | |
| Austin | I've got a diamond. That seems to do it. | ||
| darbelo | A vailla, four vertex diamond should work. | 22:31 | |
| Austin | Past::Node -> (Slam::Node, Past::Var) -> Slam::Var | 22:33 | |
| I'm trying to mix in Slam::Node | |||
| darbelo | And Past::Var has no other parents? | 22:35 | |
| Austin | Checking | 22:36 | |
| No parallel parents. Pct::node -> Past::Node -> Past::Var | |||
| I think Pct::Node is a Capture pmc | 22:37 | ||
| Whiteknight | t/pmc/fixedstringarray.t is getting into a pure-pir infinite loop | 22:39 | |
| Austin | Whoops. Disregard that, darbelo. I missed a transition into a different module. | 22:40 | |
| Whiteknight | nevermind, it doesn't hang. Just takes a while | 22:43 | |
| and then it dies with a get_attr_string error | |||
| get_attr_string not implemented in class ResizablePMCArray | |||
| and it fails after the last test passes | 22:44 | ||
| Austin | W00t! Now I have overridden get_string from NQP. | 22:51 | |
| (With some PIR down there, safely encapsulated in the engine room.) | 22:52 | ||
|
22:54
hercynium joined
23:11
ruoso joined
23:12
payload joined
23:21
quek joined
|
|||
| Whiteknight | okay, the test at the end of t/pmc/fixedstringarray.t is happening because a ResizablePMCArray is being passed to Parrot_pcc_fill_returns_from_op instead of a CallSignature | 23:28 | |
| darbelo | Odd. | 23:31 | |
| Whiteknight | very | 23:34 | |
| I set up some assertions, Parrot_pcc_get_signature tries to return an RPA, but Parrot_pcc_set_signature never receives one of those | 23:35 | ||
| so somebody else is setting that value without using the API call correctly | |||
| darbelo | Eww. | ||
| Whiteknight | actually, I don't find anywhere else that it would be happening | 23:36 | |
| this is weird as hell. I don't see any place where this would be happening | 23:40 | ||
| unless the context object was being recycled somewhere | |||
| darbelo | I was going to say 'gremlins', but that works too. | 23:41 | |
| Whiteknight | ...no, the PMC is not freed | 23:42 | |
|
23:43
cotto joined
23:44
bacek joined
|
|||
| Whiteknight | fixed it | 23:46 | |
| dalek | rrot: r41622 | whiteknight++ | branches/pcc_reapply/src/pmc/context.pmc: [pcc] A fix to Context PMC. The ->current_sig wasn't being marked, which caused it to be prematurely collected, and then bad things happen when other parts of code try to access it again. |
||
| rrot: r41623 | whiteknight++ | branches/pcc_reapply/t/pmc/fixedstringarray.t: [pcc] add some pop_eh to balance the push_eh in fixedstringarray.t for cleanliness. Fix some whitespace issues |
23:49 | ||
| rrot: r41624 | whiteknight++ | branches/pcc_reapply/t/pmc/resizablefloatarray.t: [pcc] fix uses of 'like' in resizablefloatarray.t and add a few missing pop_eh calls |
23:52 | ||
| Whiteknight | t/pmc/stringhandle.t hangs when I run make coretest, but runs fine when I do it through prove | 23:57 | |