Camelia, the Perl 6 bug

IRC log for #parrot, 2009-10-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 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:03 bacek_at_work cconstantine: ./parrot -t1 foo.pir
00:03 dalek parrot: r41607 | bacek++ | trunk/config/gen/platform/win32/exec.c:
00:03 dalek parrot: [cage] Last attempt to fix win32...
00:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41607/
00:03 cconstantine bacek_at_work: it's coming from my compiler
00:04 cconstantine I'm not running parrot directly
00:04 bacek_at_work cconstantine: how you run it?
00:04 cconstantine I compile my language, then run it (make && ./reason)
00:05 bacek_at_work run "./parrot ./reason.pbc"
00:06 darbelo "parrot -t reason.pbc" should give you enough output for and afternoon :)
00:06 cconstantine I get a bus error doing that
00:07 cconstantine do I need to build for debug or somesuch thing?
00:11 cconstantine my code is up at http://github.com/cconstantine/Reason
00:11 bacek_at_work Yay!
00:11 cconstantine I'm on this branch
00:11 cconstantine http://github.com/cconstanti​ne/Reason/tree/create_reader
00:12 cconstantine bacek_at_work: get the windows stuff working?
00:12 Austin Are you not getting a backtrace when you get the arguments passed error?
00:12 cconstantine correct
00:12 bacek_at_work cconstantine: yeah. win build.
00:12 * cconstantine cheers for bacek_at_work.
00:13 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 #parrot
00:27 rhr joined #parrot
00:28 cconstantine interesting.. parrot -t reason.pbc works on my x86 ubuntu machine
00:29 jdv79 Coke: around?
00:32 cconstantine is there a place I can file this bug?
00:32 darbelo tracc?
00:32 darbelo trac?
00:32 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.  http://projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at https://trac.parrot.org/parrot/ or slow or REALLY slow
00:33 darbelo https://trac.parrot.org/parrot/
00:33 purl https://trac.parrot.org/parrot/ is, like, back on line
00:33 cconstantine w00t
00:33 Whiteknight w00t indeed
00:33 darbelo you'll have to create a user, but it's pretty painless.
00:33 darbelo Aditionally, dalek reports new tickets here with karma for the opener.
00:34 darbelo So, we'll be watching ;)
00:34 cconstantine w00t w00t
00:34 Whiteknight bus errors are the worse
00:35 Whiteknight worst
00:35 jsut_ joined #parrot
00:35 cconstantine ok, so platform == darwin for osx?
00:35 cconstantine worse worst
00:35 darbelo Yup.
00:37 darbelo OSX has a pretty high rate of bus accidents.
00:39 darbelo We need to recruit us some darwin experts.
00:41 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
00:43 darbelo It's always the "little bit different" stuff that gets you.
00:43 preflex joined #parrot
00:44 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:45 cconstantine hehe
00:46 dalek TT #1084 created by cconstantine++: Bus error when running 'parrot -t something.pbc' on MacOSX
00:47 cconstantine yay!  I hope I included enough info.  I try to be a good reporter.
00:54 * darbelo is going to get some food.
00:54 darbelo See y'all later.
00:54 darbelo left #parrot
00:56 kid51 joined #parrot
00:57 Austin mmmm...  ACK_COLOR_FILENAME is my friend.
00:57 Whiteknight ?
00:58 kid51 cconstantine Re TT #1084 There's nothing wrong with your configuration.  Did you notice anything strange with 'make'?
00:59 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.)
00:59 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.
00:59 Whiteknight jrtayloriv: thanks! All I am blocking on are new ideas
01:00 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 Austin Whiteknight: I have loads of ideas here. What kind do you need?
01:00 cotto_work You can also change what your terminal considers "green" to be.
01:01 Whiteknight Parrot4Newbies blog post ideas
01:01 Austin Cotto_work: I never thought of that.
01:01 Whiteknight things that newcomers can do to get started with Parrot
01:01 Austin Whiteknight: Iterators currently don't support deleting.
01:01 Whiteknight I don't even know what that means
01:01 Austin Apparently, you are not a newb.
01:02 Austin You're iterating through something.
01:02 Austin Why are you doing it?
01:02 Austin Because iterators are how you loop.
01:02 Austin Okay, but what if you are trying to filter a list?
01:02 Whiteknight I iterate for EVIL
01:02 Austin You want to delete.
01:02 cconstantine kid51: I gave the config output so people can see details about my environment
01:03 cconstantine kid51: things like gcc version, etc
01:03 Whiteknight Austin: "filter" says to me that we creating a separate aggregate and moving items over
01:03 Austin Sure.
01:03 cotto_work much less evil
01:03 Austin "Iterators don't support delete" says to you that you are creating a LOT of aggregates.
01:04 Austin The original array or hash, the "deletions list", and the result.
01:04 Austin Three for the price of one.
01:04 Austin So, it's a hard problem, CS wise. But it's a good newbie task.
01:05 Whiteknight I'll ask whether that's something we intend for iterators to support
01:06 Austin Well, if they build it, I'll use it.
01:06 Whiteknight If you build it, they will come
01:06 Austin Except in reverse.
01:07 cotto_work if you come, they will build it?
01:08 Austin I must have forgotten all the verses.
01:08 Austin If they build it, I will go.
01:08 Austin Which one is that?
01:08 jrtayloriv If I go, will they build it?
01:08 Austin if P then Q   becomes if !Q then !P
01:08 jrtayloriv If I will it, will they go build?
01:09 Austin :)
01:09 jrtayloriv contrapositive
01:09 Austin thank you
01:09 cotto_work go build something.  I'll be here.
01:09 Austin What else?
01:09 purl } else { say "BAD MONKEY! NO BANANA!" }
01:09 Austin Well, the could add argument flattening to NQP.
01:09 Austin I'd pay a dollar for that.
01:10 Austin 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
01:10 Austin Umm, the exact same as in Perl?
01:10 Whiteknight I don't know what that is
01:14 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 #parrot
01:15 Whiteknight really? that's cool
01:15 Austin Not until it's in NQP.
01:16 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.
01:17 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 jrtayloriv And on that note, coffee time ... brb
01:17 Austin And a minty fresh smell they have, too.
01:17 cotto_work clock?
01:17 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 /
01:17 Austin Time to go home, Cotto.
01:18 cotto_work I've got something at 1915, so it's easier to go directly.
01:18 Austin Ah.
01:18 Austin WhiteKnight, do you happen to know what the behavior of Array's clone op is? (Deep or shallow?)
01:18 Whiteknight Array? I suspect deep
01:19 Austin Rats.
01:19 Austin How do I get a shallow copy, without doing it myself?
01:19 Austin brbxsft
01:20 cotto_work brb excessively fit?
01:21 Austin excessive tea
01:21 cotto_work no further questions
01:23 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 http://nopaste.snit.ch/18160
01:23 Austin That actually sounds like a bug, since Hash does deep cloning.
01:23 Austin But it's what I want.
01:23 cotto_work istr that shallow is preferred
01:23 Austin What to do... what to d...
01:24 Austin 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:25 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
01:25 Whiteknight Eventually, we should add some variety of standardization thre
01:25 Whiteknight allison: ping
01:27 Austin TT#1015 has contributions (a LOT of them) from WhiteKnight++ and Coke and nick, and me (author), but not allison.
01:28 Austin I deny any value from a naive deep clone opcode. You might as well just rename it 'segfault'.
01:30 cotto_work it's the new hcf!
01:30 Austin It's not even that.
01:30 Austin There's virtually no load. It just smoothly consumes all the available memory.
01:30 cotto_work The thing I remember allison answering was about setting read_only, not cloning.  fwiw, setting read_only should be shallow.
01:31 Austin So should clone.
01:31 Austin Provide a clone_deep, but not a naive one.
01:31 Whiteknight A deep clone operation is fine if we detect cycles
01:31 cotto_work shallow by default makes sense to me.
01:32 cotto_work or provide deep_clone and shallow_clone, but that might be too much typing and thinking
01:32 Austin clone and clone_deep
01:32 Austin Maybe copy and clone
01:32 Whiteknight agreed, but we do want the option to do a deep clone if we need it
01:32 Whiteknight yes
01:33 Austin $P0 = copy $P1
01:33 Austin $P0 = clone_deep $P1
01:33 Austin It costs a lot of letters, because it costs a lot of ops.
01:33 cotto_work deep clone can be done via freeze/thaw, not that that should be the default recommendation
01:34 Austin Is it possible to write a vtable op in PIR?
01:34 Tene Austin: yes, except for invoke
01:34 Austin :)
01:34 Tene :vtable
01:35 * 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.
01:35 Whiteknight freeze/thaw should never be recommended for anything
01:35 Tene Austin: vtable method, I think you mean?
01:35 Austin sure
01:35 cotto_work Whiteknight, what about chicken?
01:35 Tene Austin: pretty sure you need :vtable
01:35 Austin :(
01:35 Whiteknight at least not until they are refactored to not suck
01:35 Tene Austin: not certain, though.
01:36 Austin So I can't say $P0 = get_global 'subname' ; $P0.'set_flags'('is_vtable', 1)  or anything?
01:37 Whiteknight that sounds awful
01:39 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:40 jrtayloriv So don't go telling that to all your friends :)
01:42 Tene Austin: it looks like you might be able to do something with setting the vtable_index attribute of a sub
01:42 Tene Austin: not sure, though.
01:42 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'.
01:42 Tene I'd need to read the vtable lookup process.
01:42 nopaste "kid51" at 71.247.48.83 pasted "pcc_reapply branch: many test failures, then death at t/pmc/filehandle.t" (1598 lines) at http://nopaste.snit.ch/18161
01:42 Austin Tene: don't spend the mips. It was more idle curiosity than anything.
01:43 Whiteknight I don't treat purl any worse then she deserves to be treated
01:43 Whiteknight and if you're a sophisticated AI, then purl is a colecovision with a virus
01:43 Tene do we have an up-to-date application of the pcc patches yet?  or does the branch still have merge issues?
01:44 Tene 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 #parrot
01:45 Tene "WhiteKnight has no friends, just AIs."
01:45 Austin "growing impatient..."
01:45 payload joined #parrot
01:45 Austin I did not suggest that AI's could not be friends.
01:46 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.
01:46 Whiteknight you should see what I say about her in private
01:46 Whiteknight ...it's horrible
01:46 Austin No, I shouldn't. It's private.
01:49 Whiteknight either way, I'm not kind to the bots
01:49 Austin You should consider what that does to your soul.
01:50 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 :)
01:51 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
01:51 Whiteknight so lay off
01:52 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
01:52 Austin You're dooming us all to death at the hands of a bunch of killer robots with Austrian accents.
01:53 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 :)
01:54 jrtayloriv That's true -- just add "I like to be hurt and demeaned" to Asimov's robot rules.
01:57 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:58 Austin The paradox of the BDSM lifestyle.
01:58 Austin Are you a bottom, or just lazy?
01:58 cotto_work I'm out
01:58 Austin Good night, cotto.
01:59 Austin (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 Austin Short date that night.
01:59 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)
02:00 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
02:01 Whiteknight it would have been much easier to just say it myself
02:01 Austin Did you get a speech recognizer capable of detecting sneezes?
02:01 ZeroForce Whiteknight: That's the spirit -- no just add the speech recogniztion engine to learn the sneeze
02:01 Whiteknight not yet
02:01 Austin Baby steps.
02:01 purl baby steps! baby steps!
02:02 ZeroForce Whiteknight: I think that's hilarious
02:02 * ZeroForce feels WhiteKnight is going to get another bot to practice etiquette for him
02:08 Whiteknight WTF? Like 50 items just showed up in my RSS reader
02:09 Whiteknight oh, I think fark reset or something
02:10 * Whiteknight is going to sleep, but leaving the computer on tonight
02:10 Whiteknight later
02:15 diakopter rakudo person help n00b on #perl6 plz
02:21 TiMBuS joined #parrot
02:22 msmatsko joined #parrot
02:24 rhr joined #parrot
02:35 janus joined #parrot
02:38 preflex joined #parrot
02:45 quek joined #parrot
03:04 jhelwig joined #parrot
03:07 * jrtayloriv slaps purl across the face while nobody's looking
03:09 dalek rakudo: f52e459 | (Solomon Foster)++ | src/setting/ (3 files):
03:09 dalek rakudo: Make Complex sin and asin work correctly.
03:09 dalek rakudo: This involved taking "is export" off Num.sin, adding Complex.asin, and implementing Any functions which forward the sub version of sin and asin to method versions.
03:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​52e45936087b0ad00b1fb4afc8fcf4f46e415a8
03:09 shorten dalek's url is at http://xrl.us/bfprbu
03:53 preflex joined #parrot
04:00 mberends joined #parrot
04:20 particle joined #parrot
04:20 dalek parrot: r41608 | pmichaud++ | branches/pct-rx (2 files):
04:20 dalek parrot: [pct-rx]:  Initial protoregex tests and implementation.
04:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41608/
04:24 cconstantine joined #parrot
04:40 dalek parrot: r41609 | pmichaud++ | branches/pct-rx/t/compilers​/pct/regex/04-protoregex.t:
04:40 dalek parrot: [pct-rx]:  More protoregex tests.
04:40 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41609/
04:44 bacek joined #parrot
05:06 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 http://nopaste.snit.ch/18162
05:08 mikehh hello dukeleto
05:08 jrtayloriv howdy
05:14 Zak joined #parrot
05:21 particle joined #parrot
05:22 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 mikehh serious
05:23 uniejo joined #parrot
05:27 quek left #parrot
06:10 preflex joined #parrot
06:38 dalek parrot: r41610 | mikehh++ | trunk/config/gen/platform/win32/env.c:
06:38 dalek parrot: codetest failure - fix documentation for function call changes
06:38 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41610/
06:41 nopaste "dukeleto" at 72.11.81.253 pasted "Tower of Hanoi example runtime across released versions of Parrot and trunk (r41609)" (13 lines) at http://nopaste.snit.ch/18163
06:43 mikehh dukeleto: well we seem to be getting some improvement somewhere :-}
06:44 moritz dukeleto: what's the output? time to run it?
06:45 dukeleto moritz: yes, output are time in seconds
06:45 dukeleto mikehh: yes, trunk is fastest
06:45 dukeleto moritz: we just hacked in the ability to run arbitrary files with euler_bench
06:45 dukeleto at the #pdx hackathon
06:46 moritz sadly rakudo is still much slower than it was with parrot-1.4
06:48 mikehh moritz: I think you are doing a lot more
06:48 moritz mikehh: no
06:49 moritz mikehh: there was a nearly factor of 2 after the context-pmc merge
06:49 mikehh moritz: functionality has increased - not so
06:50 moritz and the only changes in rakudo at that time were the ones needed to make rakudo build on the latest parrot again
06:51 mikehh moritz: how are you benchmarking rakudo?
06:51 moritz time make spectest
06:51 mikehh we are running/passing a lot more tests
06:52 moritz yes, but that wasn't what made the 2x slowness.
06:52 mikehh and I don't think that is a valid benchmark
06:53 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
06:54 mikehh in one sense yes - but I think we should have some specific benchmarks
06:55 moritz there's tool/benchmark.pl in rakudo's repo... haven't given it a closer look
06:56 mikehh I will have a look (in my copious free time :-} "real soon now")
06:57 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 dukeleto does anybody have any other parrot examples that they would like to see benched across versions?
06:57 mikehh dukeleto: excellent
06:59 mikehh 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
07:14 mikehh All tests PASS (pre/post-config, smoke (#28449), fulltest) at r41610 - Ubuntu 9.04 i386
07:18 mikehh oops that's on amd64 NOT i386
07:26 mokurai left #parrot
07:41 mikehh partcl r762 builds on parrot r41610 - make test PASS (smolder #28452) - ubuntu 9.04 amd64
07:45 mikehh rakudo (f52e459) builds on parrot r41610 - make test / make spectest_smolder (up to r28545 -> #28453) PASS - Ubuntu 9.04 amd64
08:02 particle joined #parrot
08:05 TiMBuS joined #parrot
08:14 Zak joined #parrot
08:23 iblechbot joined #parrot
08:58 Whiteknight joined #parrot
09:44 riffraff joined #parrot
09:50 whoppix joined #parrot
10:05 mikehh joined #parrot
10:16 jsut joined #parrot
10:21 payload joined #parrot
10:44 masak joined #parrot
11:00 Austin joined #parrot
11:06 quek joined #parrot
11:16 quek left #parrot
11:20 quek joined #parrot
11:35 quek left #parrot
11:44 quek joined #parrot
11:54 whiteknight joined #parrot
12:01 quek left #parrot
12:08 quek joined #parrot
12:13 whiteknight good morning #parrot
12:16 dalek parrot: r41611 | allison++ | branches/pcc_reapply/tools/build/nativecall.pl:
12:16 dalek parrot: [pcc] Fetch the current call signature object into the NCI stub, so it can be
12:16 dalek parrot: used for extracting params and storing return values.
12:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41611/
12:20 dalek parrot: r41612 | allison++ | branches/pcc_reapply/src/call/pcc.c:
12:20 dalek parrot: [pcc] Add null call signature checking to C parameter passing, use the right
12:20 dalek parrot: value for the count of passed return values.
12:20 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41612/
12:27 cconstantine joined #parrot
12:35 bluescreen joined #parrot
12:36 cconstantine_ joined #parrot
12:52 cconstantine How do I create a ResizablePMCArray  in NQP?
12:53 moritz @a.push('things')?
12:54 cconstantine thats what I htought... how does NQP know to make it a resizable?
12:55 cconstantine and when I do that (with a 'my @a;' before it) I get a Null PMC access in find_method()
12:56 Austin cconstantine: NQP makes them all resizable.
12:56 Austin @a autovivifies to 'ResizablePMCArray'
12:57 Austin But you need to declare my @a or our @a first.
12:58 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
13:00 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
13:00 Coke msg austin sex jokes are probably not entirely appropriate for this logged public channel.
13:00 purl Message for austin stored.
13:01 cconstantine http://pastebin.com/m7b43b852
13:01 Austin It's like you knew what I was going to ask...
13:01 Austin :)
13:02 cconstantine :)
13:02 Austin missing @
13:02 cconstantine and nm, I'm dumb
13:02 cconstantine yup
13:02 Austin It's amazing how many errors you find just AFTER you click the "publish" button.
13:02 moritz that's why I love git - I tend to find errors after I commit
13:03 moritz so there's another step (push) before which I can correct errors :-)
13:03 cconstantine yup yup
13:04 cconstantine though it still doesn't always save you
13:04 cconstantine I did commit/push 4 or 5 times yesterday, each push fixing a dumb mistake in the previous push, and introducing another dumb mistake
13:07 mikehh pcc_reapply - just past 3.8GiB - I think I better stop it before it causes a problem
13:08 mikehh well that dropped my memory usage from 80%+ back down to 24.9%
13:11 particle joined #parrot
13:25 dalek parrot: r41613 | allison++ | branches/pcc_reapply/lib/Parrot/Pmc2c (2 files):
13:25 dalek parrot: [pcc] Change the automatically generated vtable function stubs in Object PMC to
13:25 dalek parrot: call vtable overrides using the new pcc call functions instead of the old ones.
13:25 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41613/
13:32 dalek rakudo: c4dbb59 | (Solomon Foster)++ | src/setting/ (3 files):
13:32 dalek rakudo: Fix the previous asin checkin so it actually works.
13:32 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​4dbb591c7cda59847b904f7340532668bed5f5f
13:32 shorten dalek's url is at http://xrl.us/bfpso9
13:35 dalek parrot: r41614 | allison++ | branches/pcc_reapply/src/call/pcc.c:
13:35 dalek parrot: [pcc] Only complain about a missing result signature when return values are
13:35 dalek parrot: passed.
13:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41614/
13:39 whiteknight allison is on fire this morning!
13:45 cconstantine time for 'how is cconstantine dumb this time'; http://pastebin.com/m4db07ed  I keep walking off the end of the array
13:47 whiteknight cconstantine: what does that example produce?
13:47 Austin Try shifting the iterator.
13:48 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"
13:48 whiteknight (although I feel like both should work)
13:48 cconstantine that did it
13:48 cconstantine another sub in the same file does pops on a reverse iterator and it works just fine
13:48 Austin Yes. On a *reverse* iterator
13:49 Austin 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
13:49 Austin They don't actually look at the direction you set.
13:49 cconstantine aahhh
13:49 cconstantine so if you get passed in an interator you better know if you want to pop/shift
13:50 cconstantine is a little confusing, but I can hardly complain; most asms don't have iterators at all
13:51 Austin ACtually, I'm wrong. It's "pos ++" and "--pos".
13:51 Austin So pop gets array[-1] on the first call.
13:56 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:58 mikehh it completes thae rest of the coretests
14:00 mikehh make world fails at PGE -> same error as http://nopaste.snit.ch/18162
14:06 mikehh 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:09 Coke austin: you should be able to write some PIR tests that fail in that case, yes?
14:09 Austin Coke: in what case?
14:10 mikehh gotta go get my grandsons from school - bbiab
14:13 PerlJam grandsons?
14:13 PerlJam now I don't feel so old  :)
14:13 Austin Careful, the guy could be 31.
14:13 PerlJam I *still* don't feel so old.
14:14 Austin :)
14:15 theory joined #parrot
14:24 Psyche^ joined #parrot
14:30 Coke Austin: ... in the case you just described, where you iterate backwards and use shift and pop?
14:33 mikehh you young whippersnappers :-}
14:34 ruoso joined #parrot
14:34 mikehh I even took the dog out :-} - now where was I
14:35 mikehh I certainly don't feel that old - but maybe I am wrong there
14:36 mikehh When I first started programming we had to submit jobs on punched cards
14:37 mikehh and the first terminals I used were teletypes
14:50 Coke there are people here still in school. :|
14:50 Coke I started programming in school in... 4th grade? had a computer of my own at home before that.
14:53 mikehh When I first started programming, at university - It was on an IBM 1620 - using an early cersion of Fortran - II I think
14:54 mikehh punched paper tape input
14:54 mikehh version
14:55 dalek parrot: r41615 | pmichaud++ | branches/pct-rx (4 files):
14:55 dalek parrot: [pct-rx]:
14:55 dalek parrot: * Move reduction operation into Cursor.!matchify
14:55 dalek parrot: * Hold action method object as Cursor attribute
14:55 dalek parrot: * Create P6Regex grammar for parsing simple Perl 6 regexes
14:55 dalek parrot: * Initial <atom> subrule for P6Regex
14:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41615/
14:56 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
14:57 whiteknight at least there was a process
14:59 quek left #parrot
14:59 Austin The process hasn't changed. Only the size of the tape.
15:08 Zak joined #parrot
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?
15:10 purl Message for pmichaud stored.
15:14 jan joined #parrot
15:14 allison joined #parrot
15:15 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 pmichaud i.e., the CLA doesn't say "you grant Parrot ownership and copyright over everything you submit."
15:17 moritz we've had that discussion before with chromatic
15:17 moritz don't know what the result was
15:17 allison the policy is, PaFo owns the copyright on the whole distribution
15:17 allison if you aren't willing to have PaFo distribute your work, don't contribute it
15:17 allison that doesn't mean you've given up your copyright in the lines you wrote
15:17 allison but, you also don't gain copyright in the lines other people wrote
15:17 pmichaud correct.
15:18 * allison missed the earlier discussion because her IRC client dropped off the network
15:18 allison what's the question?
15:18 purl hmmm... the question is rather, how come all the highlander sequels are bad?
15:18 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?
15:18 pmichaud (that was the total extent of the conversation before you rejoined :)
15:19 allison ah, so the more relevant answer is:
15:19 allison Also, the only copyright notices we keep in the repository are the PaFo copyright notices
15:19 allison individual copyright notices are removed
15:19 pmichaud the CLA doesn't grant Parrot permission to do that, does it?
15:20 allison that's project policy
15:20 pmichaud removing copyright notices is not exactly kosher
15:20 allison the CLA doesn't require PaFo to keep copyright notices
15:20 allison but, there's a bigger reason for it
15:21 allison 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.
15:21 allison you can list significant contributions in CREDITS
15:21 allison PaFo is the only entity that owns the *entire* work, so it's the only entity that can distribute Parrot
15:22 pmichaud that's a different question, though.
15:22 pmichaud (and that statement is false.  Anyone can *distribute* Parrot, that's the nature of the AL2)
15:22 allison you can treat it as a compilation copyright or a derivitive work, but PaFo does own the copyright on Parrot as a whole
15:22 moritz allison: uhm, everybody may distribute parrot, that's what the artistic license says
15:23 allison moritz: yes, under the terms of the artistic license
15:23 allison but PaFo has full copyright rights
15:25 allison 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.
15:25 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)
15:25 pmichaud anyway, yes, I'll change it on mergeback to trunk
15:27 Coke honestly, I just know a codingstd test would fail.
15:28 Coke hey, allison and pmichaud are here!
15:28 pmichaud yes, I'll be running codingstd test before mergeback to trunk also
15:29 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?
15:30 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.
15:30 pmichaud are you just interested in it for lexicals, or is it stronger than that?
15:31 Coke pmichaud: tcl uses it extensively.
15:31 pmichaud okay
15:31 pmichaud some parts of Perl 6 will use it also
15:31 allison there aren't any short-cuts for it yet, but the basic answer is to invoke it using the context 3-levels up
15:31 Coke allison: yes, how. =-)
15:32 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
15:32 Coke invoke $P1, <context pmc I got from interp['context'; 3] ?
15:32 allison depending on what you're doing, you might want to save the intermediate contexts
15:32 pmichaud similar to how we have "set_outer" to change the notion of the current outer lexical scope
15:33 Coke ... if I have to save the intermediate contexts, I'm not much better off than using my handrolled version anyway. hurm.
15:33 Coke (and do I just save the contexts, or everything else that I can extract from the interpreter at that depth?)
15:33 allison Coke: well, it depends, are you ever planning to return to those intermediate call levels?
15:34 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
15:34 allison Coke: what do you expect to happen when this sub returns?
15:35 allison Coke: to continue executing in the context 3-levels up?
15:35 Coke alllison; no, to continue in the current context.
15:35 allison Coke: hmmm... then why are you executing 3 levels up?
15:35 Coke allison: it's an example. let's say 1 level for a more reasonable example.
15:36 Coke allison: (but, in general, because [uplevel] in tcl exposes this functionality.)
15:36 allison Coke: okay. what's the behavior of uplevel?
15:37 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
15:37 Coke here's the docs: http://www.tcl.tk/man/tcl8.5/TclCmd/uplevel.htm
15:37 allison Coke: what does it care about? lexical variables?
15:38 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:39 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.
15:40 Coke allison: I'm already faking the call stack.
15:40 Coke I am trying to not fake it, and use parrot's.
15:40 Coke (that is, I have a working version of uplevel today.)
15:41 allison Coke: then your workaround is the best for now
15:41 Coke ... gah.
15:41 allison Coke: there is no general-purpose way to do it
15:41 Coke right now, or ever?
15:41 allison (which isn't to say there never will be)
15:41 Coke k
15:41 allison Coke: I'd be interested in seeing how your workaround works
15:42 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 Coke if I want to do an uplevel, I save off N levels of the stack, invoke the proc, and then restore them.
15:43 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.
15:43 Coke allison: yes, but it's ugly, won't work with other hlls, etc.
15:43 allison Coke: yes, would be nice to get rid of that
15:47 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 Coke (I'd only need the ones to remove one from the innermost and then reattach the innermost.)
15:48 Austin Could you clone the return continuation for one level down?
15:49 dalek TT #1086 created by pmichaud++: [BUG]  Test::More doesn't support plan('no_plan')
15:51 Coke ah. I can just refer to interp[0] to get everything at that depth.
15:51 bluescreen joined #parrot
15:51 Coke that makes the manual work a little less onerous.
15:51 allison Coke: the thing is, right now that would be a mess
15:51 Coke er... no, I /can/ refer to it, but it doesnt' mean what I think it means.
15:52 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"
15:52 allison Coke: when we can collapse those down to a single call frame, it'll be cleaner
15:53 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
15:53 dalek parrot: r41616 | pmichaud++ | branches/pct-rx/config/gen/makefiles/pct.in:
15:53 dalek parrot: [pct-rx]:  Add 'rxtest' makefile target.
15:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41616/
15:53 dalek parrot: r41617 | pmichaud++ | branches/pct-rx/t/compilers/pct/regex (2 files):
15:53 dalek parrot: [pct-rx]:  Add plan() to pct/regex tests.
15:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41617/
15:53 dalek parrot: r41618 | pmichaud++ | branches/pct-rx/compilers/​pct/src/Regex/Cursor.pir:
15:53 dalek parrot: [pct-rx]:  Move Match object creation into Cursor.MATCH()
15:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41618/
15:53 Coke allison: ah, the comment parrot lament.
15:54 allison Austin: basically, yes
15:54 Austin That is a scary yes.
15:54 Austin What's wrong with it
15:55 allison well, it's a call tree, instead of a call stack
16:00 Austin So that means that running something uplevel would change any lexical closures? I think that may be intended behavior for tcl. Coke?
16:04 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 Coke 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.
16:06 Austin Is tcl dynamic instead of lexical?
16:07 cotto_work joined #parrot
16:08 iblechbot joined #parrot
16:13 Coke austin; I don't know the answer to that question.
16:13 * Coke googles for dynamic variables vs. lexicals.
16:13 Austin okay. hmm
16:14 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 #parrot
16:14 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?
16:14 Coke (called)
16:15 Coke Austin: didn't I just say that it didn't?
16:15 Austin I'm not sure.
16:15 Coke (it doesn't. you have to explicitly declare you want that to happen, and which level that variable is defined in.)
16:15 Austin That's why I asked.
16:15 Austin "outer levels" could mean two things.
16:15 Coke if I say set a 2 ; proc foo {} {puts $a}; foo; # this fails.
16:16 Austin Okay.
16:17 Austin 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.)
16:17 Coke upvar, variable, and global all let you say "this variable comes from somewhere else."
16:18 Austin What does variable do?
16:19 Coke tcl commands is http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
16:19 Coke variable is kind of like global, but for namespaces.
16:20 Austin okay.
16:21 Coke er, but specifically for variables inside a namespace.
16:22 Austin So what non-symbol things does uplevel let you do? You mentioned introspecting the stack, what commands are those?
16:24 Coke info
16:26 Coke many of which are var related, but see, e.g. invfo level
16:26 Coke [info level]
16:26 Austin Yeah. And I'm guessing the "current namespace" probably changes.
16:27 Austin 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:28 Austin Yes, apparently.
16:29 Austin I'm wondering if you could fake it by linking to the lexpad of the uplevel target.
16:30 Austin 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:42 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:43 whiteknight 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?
16:44 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 whiteknight Well, I don't see any reason why not AFTER pcc_reapply lands
16:45 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
16:48 Austin PCT behavior is to put args into a lexical, so that might not be a problem anyway.
16:55 whiteknight I was thinking about Coke's statement that the current lexicals implementation wouldn't work for him
16:55 whiteknight or at least not in the way he needs
16:55 dalek parrot: r41619 | pmichaud++ | branches/pct-rx (6 files):
16:56 dalek parrot: [pct-rx]:
16:56 dalek parrot: * Add dumper for Regex::Match
16:56 dalek parrot: * Add Cursor.match_bind and Cursor.match_arrays for capturing submatches.
16:56 dalek parrot: * Add <termish> and <quantified_atom> subrules for Regex::P6Regex .
16:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41619/
16:57 * whiteknight is excited about this PCT work
16:59 * cotto_work is excited to finally find out what exactly protoregexes are
17:01 cotto_work ah.  it seems that moritz++ has something about them on his site
17:03 cotto_work so much magic...
17:03 Austin Apparently, NULL_PMC is not the same as 0 in arithmetic expressions.
17:03 Austin :(
17:04 darbelo NULL_PMC != NULL
17:04 cotto_work That's why we have it.
17:05 Austin If it's in a scalar, it ought to act like a scalar.
17:06 darbelo Oh, we're talking about different NULLs.
17:06 * darbelo thinks a the c level.
17:07 * cotto_work too
17:08 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
17:08 cotto_work http://perlgeek.de/en/articl​e/mutable-grammar-for-perl-6
17:12 Austin Oooooooh....kay....
17:13 Austin This is weird.
17:15 Austin Of course it uses floating point. Why didn't I expect that?
17:18 Austin Does RPA have a .get_float vtable?
17:19 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
17:21 nopaste "Austin" at 98.235.55.43 pasted "Sub with weird error (involving floating point)" (25 lines) at http://nopaste.snit.ch/18164
17:21 cotto_work however, it looks like parrot dtrt and converts the int to a float
17:23 nopaste "Austin" at 98.235.55.43 pasted "Compiled output of sub" (17 lines) at http://nopaste.snit.ch/18165
17:24 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:26 allison joined #parrot
17:31 Austin That's a nice article. moritz++
17:33 mokurai joined #parrot
17:33 sjn joined #parrot
17:39 Coke which article?
17:39 Coke ah.
17:39 Coke got it.
17:40 joeri joined #parrot
17:40 Coke so a proto regex is a regex :multi ?
17:41 Coke (I'm fairly certain this is what I needed in order to make my parser much more clever.)
17:41 Austin Ayup.
17:42 Austin Or, perhaps, it's :subid for regex multi's
17:42 Austin I don't think it's a call-time thing, so much as a compile-time thing.
17:43 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 :)
17:43 Coke I imagine that this will result in more compact and efficient code than what I have now.
17:44 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.
17:44 masak or so I've heard.
17:44 Coke Austin: nesting?
17:44 purl nesting is, like, a win
17:44 Austin If I say "for { ... redefine-for ... for {... } }"
17:44 Austin Does the second for call the redefinition?
17:44 Coke it should, yes.
17:47 Austin Argh.
17:51 nopaste "coke" at 72.228.52.192 pasted "sample rename of for; works different in various version of tcl" (41 lines) at http://nopaste.snit.ch/18166
17:51 Coke so the most correct version in the newest (first) there.
17:51 Coke wher the redef is immediately picked up. the older verison, 8.4, doesn't pick it up til the next round.
17:51 Coke partcl just segfaults. =-P
17:52 Coke I think the middle one is tclsh8.4
17:54 Austin Isn't for just a builtin function?
17:55 Coke it is, yes.
17:55 Austin Oh. You want the grammar to match it so you can build in the incrementing behavior.
17:55 Coke yes. rather than have to do the equivalent of 'for'('set i 1','$i<4','incr i')
17:56 Coke I imagine if I could avoid that function call, I could get a smidge of speed back. =-)
17:56 Austin Seems expensive.
17:56 Coke my thought was I could take the current 'command' token, and then have a protoregex for 'for' as a command.
17:56 Coke (and all the other pure flow control ones.)
17:56 Coke s/pure/
17:56 Coke s/pure//
17:57 Austin Absent file loading, you might be able to do the analysis. But it seems hella expensive.
18:02 Coke what seems expenive?
18:02 Coke the way I'm doing it now?
18:02 Austin No, the analysis to decide at compile time when 'for', &c were still builtins
18:03 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 Coke you can rename them, delete them, replace them...
18:03 Austin Yep.
18:03 Austin Maybe you should just generate code that tests for it.
18:04 Coke this is why protoregexen would help - I could dynamically update the grammar.
18:04 Coke and then the next time I compiled something, It'd get the new behavior.
18:04 Coke (whereas now, I always get the very slow behavior)
18:06 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:07 Austin 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?
18:08 Coke ... so why not put it in the grammar.
18:08 Austin Right. You build optimizations into your parser/compiler.
18:08 Coke Austin: the grammar now just has a generic "command" rule.
18:08 Austin Right.
18:08 Austin I'm suggesting modifying the grammar.
18:09 Coke ... I get the feeling you don't listen to me when i talk. =-)
18:09 Coke as I am also suggesting modifying the grammar.
18:09 purl okay, Coke.
18:09 Coke purl--
18:09 purl Coke: sorry...
18:09 Coke {{ purl-- }}
18:09 Austin Yes, but my way doesn't require waiting for protoregexes.
18:09 Austin You could do it now.
18:11 Coke true.
18:12 Coke I'll investigate that. danke.
18:12 Austin Plus, I don't think protoregexes do it for you.
18:12 Austin (Bitte.)
18:12 AndyA joined #parrot
18:20 cotto_w0rk joined #parrot
18:22 Coke I think they do do it for me.
18:23 Coke (putting the work into the AST steps instead of into the runtime PIR.
18:28 Austin Coke: are you dynamically re-evaluating your blocks?
18:28 Austin (Like, running each one through the parser every time it gets called.)
18:31 AndyA joined #parrot
18:36 pmichaud protoregexes are a way to easily have multiple independently-compiled patterns under a single rule
18:36 pmichaud for example, I can have
18:37 pmichaud proto token term { ... }
18:37 pmichaud token term:abc { foo bar }
18:37 pmichaud token term:def { baz \w+ }
18:37 pmichaud token term:ghi { some other pattern }
18:37 pmichaud and then matching <term> will automatically (and smartly) decide which of the term:xxx tokens to use
18:38 pmichaud this makes it easier to dynamically add a new rule that will match <term>
18:38 pmichaud i.e., I can derive a new grammar and add a custom term:jkl rule that gets matched along with the other term:* rules
18:39 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:40 jrtayloriv 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?
18:41 pmichaud i.e., what if you needed to _dynamically_ add another prefix?
18:41 pmichaud with the expr example you've given, you'd need to overload the entire <prefix> subrule
18:41 jrtayloriv ahhhh -- I see. Thanks for explaining.
18:42 pmichaud or have your custom prefix subrule first try the alternatives in the parent grammar's prefix definition
18:45 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:46 Coke er, "austin".
18:46 whiteknight pmichaud: if you override rules in Rakudo, won't that cause the setting to not compile?
18:46 Coke so for anything more complicated than "hello world", I rapidly become inefficient.=-)
18:46 Austin :)
18:46 pmichaud whiteknight: I don't understand
18:47 pmichaud 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
18:47 whiteknight </sarcasm>
18:47 pmichaud here's an example that might clear things up
18:47 pmichaud in Perl 6, suppose I create a custom operator:
18:48 pmichaud 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?)
18:48 pmichaud declaring this subroutine actually modifies the grammar and parser, by adding a new rule that matches <infix>
18:49 pmichaud 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
18:49 pmichaud overriding an existing grammar rule can work, although you might want to update the action method as well.
18:50 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
18:50 pmichaud but yes
18:50 whiteknight so that includes the setting?
18:50 pmichaud but more likely is that you'll want to add a new custom sigil
18:50 pmichaud i.e.
18:50 whiteknight or "prelude" I guess it' called now
18:51 pmichaud token sigil:sym<©> { <sym> }
18:51 pmichaud this would add a new sigil to the language, while allowing all previous sigils to continue to work as before
18:51 pmichaud but yes, if you overrode the sigil rule itself, that would probably lead to problems.
18:52 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 :)
18:52 darbelo pmichaud++
18:53 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.
18:53 pmichaud because parser changes are lexically scoped
18:53 whiteknight okay, that answers my question then
18:54 pmichaud and the setting is part of an outer scope
18:54 whiteknight ok
19:08 Tene s/prelude/setting/ makes it more clear
19:10 whiteknight what is it called now? Setting?
19:10 pmichaud "setting"
19:19 whiteknight noted
19:30 cotto_work people planning on hacking on Saturday should try to get gdb 7.0 running.
19:44 Coke I will not attend the virtual hackathon.
19:44 mikehh cotto_work - I have gdb 6.8 on Ubuntu 9.04 amd64
19:44 whiteknight I don't suppose that's wound it's way into the ubuntu repos yet?
19:44 Coke (prepping for and travelling to england.)
19:45 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
19:45 cotto_work you have to get it from (gasp) cvs
19:45 whiteknight It doesn't look to me like allison has been waiting for the hackathon
19:45 whiteknight (not that I'm complaining!)
19:45 Coke whiteknight: good!
19:46 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
19:46 whiteknight which, I'm sure, wouldn't upset pmichaud at all :)
19:46 Coke whiteknight: why is the hackathon in dover-foxcrot, maine?
19:46 whiteknight where?
19:46 whiteknight I didn't specify a locatio
19:47 whiteknight oh, I specified the location "#parrot", which google maps has tried valiantly to graph
19:47 whiteknight and apparently #parrot is in maine
19:49 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:51 mikehh It's not in debian either - even unstable
19:51 Khisanth joined #parrot
19:51 cotto_work mikehh, I wouldn't expect it to be until after it's released.
19:52 mikehh what does it do - and what is reversible debugging?
19:52 PerlJam Coke: git rebase master
19:52 purl git rebase master is for a new branch
19:52 cotto_work it means you can run the program backwards from when a problem occurs
19:53 PerlJam Coke: oh, wait that doesn't squash
19:53 cotto_work http://www.gnu.org/softwar​e/gdb/news/reversible.html
19:53 mikehh ah - that sounds really shiny
19:54 mikehh have you tried it yet
19:54 cotto_work no.  I don't have any tuits atm.
19:54 cotto_work I really want to though.
19:55 dalek rakudo: a7d2a98 | (Solomon Foster)++ | src/setting/ (3 files):
19:55 dalek rakudo: Full support for Complex cos and acos.
19:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​7d2a982604df8d4f33896246e5f84e8acd50b9b
19:55 shorten dalek's url is at http://xrl.us/bfpuqr
19:55 dalek rakudo: 1354976 | (Solomon Foster)++ | src/setting/ (3 files):
19:55 mikehh probably req uires gcc 4.5 or something
19:55 dalek rakudo: Full support for Complex tan and atan.
19:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​354976ccad5ce013194c1e4dddff48da2a223b2
19:55 shorten dalek's url is at http://xrl.us/bfpuqt
19:55 dalek rakudo: be44f6a | (Solomon Foster)++ | src/setting/ (5 files):
19:55 dalek rakudo: Full support for Complex sec and asec.
19:55 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​e44f6a97a52d19df63b3d4a66b53c2bb9ac17a2
19:55 shorten dalek's url is at http://xrl.us/bfpuqv
19:56 PerlJam Coke: heh,  I just fell victim to TIMTOWTDI in git  :).   I think you want to do this:  git merge --squash branch master
19:57 Coke I find the google for 'git merge branch squash' amusing (2nd result is parrot)
19:58 dukeleto Coke: parrot has some of the best git docs out there :)
19:59 whiteknight parrot doesn't show up in the results for me at all
19:59 dukeleto purl, forget git rebase master
19:59 purl dukeleto: I forgot git rebase master
19:59 dukeleto Coke: you want git rebase -i
20:00 whiteknight git do-what-i-want
20:00 PerlJam dukeleto: he didn't say that he wanted interactive necessarily  :)
20:01 PerlJam 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?
20:01 whiteknight is it staying up to date? it looked to me like it hasn't been updated in svn trunk in a month
20:02 PerlJam I take it parrot is staying with svn for the foreseeable future?
20:03 whiteknight PerlJam: yeah, basically
20:03 whiteknight Allison suggested we should test out git in branches, but trunk is staying svn for a while
20:03 * darbelo can't foresee the future.
20:04 PerlJam darbelo: nor can you forestall it.
20:04 whiteknight I guess I just can't read the stupid network graph on git
20:06 * whiteknight is heading home now, getting my hacking gear ready. Later
20:09 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
20:09 purl Message for whiteknight stored.
20:10 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?
20:10 Coke (that loses the individual commits in the branch, but I suppose I don't care.
20:11 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:12 dukeleto 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:13 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:14 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:15 dukeleto you are basically making a copy of your branch, squashing that and leaving the original branch untouched
20:15 dukeleto Coke: does that make sense?
20:15 Coke trying now.
20:15 Coke yes.
20:16 Coke to merge branch back, 'git checkout master; git merge sq_branch' ?
20:18 mberends joined #parrot
20:20 Coke ayup. ok, this seems to be close to what I want. PerlJam++ dukeleto++
20:21 AndyA joined #parrot
20:26 dukeleto Coke: yes, that looks about right
20:33 payload joined #parrot
20:40 dalek partcl: r763 | coke++ | trunk/ (4 files):
20:40 dalek partcl: refactor some bits into macros.
20:40 dalek partcl: Trying to isolate all access to the call chain and info_level through
20:40 dalek partcl: these macros to simplify the switch.
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=763
20:40 dalek partcl: r764 | coke++ | trunk/ (4 files):
20:40 dalek partcl: add getCallDepth()
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=764
20:40 dalek partcl: r765 | coke++ | trunk/src/ (2 files):
20:40 dalek partcl: add macro for setup of infolevel.
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=765
20:40 dalek partcl: r766 | coke++ | trunk/ (3 files):
20:40 dalek partcl: minor change to infolevel, and use it more.
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=766
20:40 dalek partcl: r767 | coke++ | trunk/docs/hacks.pod:
20:40 dalek partcl: if this branch hits, these will be lies.
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=767
20:40 dalek partcl: r768 | coke++ | trunk/runtime/ (2 files):
20:40 dalek partcl: Add getLexPad, use it once.
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=768
20:40 dalek partcl: r769 | coke++ | trunk/runtime/builtin/info.pir:
20:40 dalek partcl: use more encapsulation
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=769
20:40 dalek partcl: r770 | coke++ | trunk/runtime/variables.pir:
20:40 dalek partcl: use refactored functions
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=770
20:40 dalek partcl: r771 | coke++ | trunk/runtime/variables.pir:
20:40 dalek partcl: use more functions
20:40 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=771
20:41 Coke ... hey, the squash didn't (*&#$  work.
20:41 Coke git--
20:41 Coke coke--
20:42 Coke {{ coke-- }}
20:42 darbelo Coke: are you using git-svn?
20:42 Coke yes.
20:42 darbelo git-svn--
20:43 nopaste "coke" at 72.228.52.192 pasted "git-wtf ?" (9 lines) at http://nopaste.snit.ch/18168
20:43 darbelo I think you need to squash on 'master' too, for git-svn to pick it up.
20:43 darbelo make?
20:43 purl i think make is awful really
20:44 Coke .. why? master should not have had those individual commits.
20:44 Coke darbelo: yes. I wanted to make sure it still worked.
20:45 Coke and stq == diff --name-status
20:45 dalek partcl: r772 | coke++ | trunk/runtime/ (2 files):
20:45 dalek partcl: move this over.
20:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=772
20:45 dalek partcl: r773 | coke++ | trunk/runtime/variables.pir:
20:45 dalek partcl: elminate a pmc.
20:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=773
20:45 dalek partcl: r774 | coke++ | trunk/runtime/variables.pir:
20:45 dalek partcl: eliminate more temp pmcs. cleanup
20:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=774
20:45 dalek partcl: r775 | coke++ | trunk/runtime/ (5 files):
20:45 dalek partcl: PIR cleanup and some refactoring of call_chain manipulation
20:45 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=775
20:45 Coke damnit.
20:45 Coke ah well.
20:46 darbelo Hey, it's easier to read the changelog incrementally.
20:47 Coke darbelo: ... those were not intended to be pushed.
20:47 dukeleto Coke: uh oh
20:48 Coke dukeleto: yah. whoops.
20:48 Coke perhaps I should bite the bullet and switch to github. :|
20:48 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
20:48 Coke ... or unbite the bullet and switch back to plain svn.
20:48 dukeleto Coke: i would help you if you switched to github. just sayin'
20:50 darbelo I can work on git just fine, if you switch. I'm +0 either way.
20:50 Coke ... was just about to ask.
20:50 Coke darbelo: should I create a partcl account on github for master?
20:50 dukeleto plain git is roughly 1000x times easier to use than git-svn
20:50 Coke (like the rakudo account?)
20:51 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.
20:51 dukeleto Coke: but it could just be a project on your username as well
20:52 Coke dukeleto: I'd rather just do it the same way rakudo is to avoid confusion (for me.)
20:52 darbelo (avoid confusion)++
20:52 dukeleto Coke: it is totally your opinion. for instance, jnthn has blizkost as a project under his own github account
20:52 PerlJam coke++
20:52 dukeleto Coke: then I would recommend creating a 'partcl' github account, if it doesn't exist yet
20:52 PerlJam (for drinking the git kool-aid ;)
20:53 dukeleto and number of people can be given commit rights to any github account, so it really doesn't matter
20:53 dukeleto Coke: github has *really* good howto guides, i highly recommend them
20:54 Coke dukeleto: if you wish to help, I'm all for that. =-)
20:54 Coke I created the partcl account.
20:55 Coke dukeleto: any chance you can help with the conversion?
20:57 Coke or perljam? =-)
20:57 Coke oh. "let github do it for you."
20:59 PerlJam github++
20:59 dukeleto coke: sure, what do you need done?
20:59 Coke will it deal with the /wiki in googlecode's repo?
21:00 dukeleto Coke: that is a bit iffy. I haven't used googlecode's wiki much
21:00 PerlJam Coke: I doubt it
21:00 particle there is no github wiki
21:00 dukeleto particle: wrong
21:00 particle ! that's new.
21:00 dukeleto Each github project has a wiki
21:00 dukeleto as well as an issue tracker
21:00 Coke I am more concerned about it choking on the top level 'wiki' dir in the svn repo.
21:00 particle issue tracker i knew about.
21:01 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? =-)
21:01 Coke dukeleto: I hope it cares about trunk/tags/branches.
21:01 Whiteknight joined #parrot
21:01 particle coke: everything in git is a branch
21:01 particle there's no difference between trunk and other branches, that is
21:02 * PerlJam wonders how long it would take github to process the parrot repo
21:02 particle or tags for that matter
21:02 Whiteknight well, there's a cultural differenec
21:02 dukeleto Coke: yes, git svn clone will find all that stuff
21:02 Coke dukeleto: danke.
21:02 particle PerlJam: try it and see!
21:02 dukeleto Coke: are you doing the github web import, or doing a manual git svn clone ?
21:02 Coke was doing the web import, but made the mistake of starting it from work.
21:02 dukeleto Coke: how many svn commits?
21:02 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.
21:02 Coke wonder if I can just kill this window and start over from home.
21:02 Whiteknight dukeleto: The "Network" tab on github says "Master" of leto/parrot hasn't had any activity in a while
21:03 Whiteknight 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
21:03 dukeleto Coke: you can just kill that if you want
21:03 PerlJam particle: only if there were some easy way to update it from the svn repo later
21:03 Whiteknight oh, okay
21:03 Coke does the rakudo account on github allow certain users to automatically push from their repos?
21:04 PerlJam Coke: those who are collaborators
21:04 dukeleto Coke: kinda
21:04 Tene Coke: "automatically"?
21:04 PerlJam Coke: er, what Tene sais
21:04 PerlJam er, said
21:04 dukeleto Coke: usually, I do a "pull request" and then moritz or jnthn will pull it in
21:04 Coke +only -automatically
21:04 Tene Coke: some accounts have commit prive to the rakudo/rakudo repo
21:04 particle i have commit privs to rakudo/rakudo, you don't
21:04 dukeleto Coke: you can add anyone on github as a committer to your repo, so that they can commit directly to your master repo
21:05 particle weekend &
21:05 Coke ok. anyone who has a commit bit in partcl, would be nice to get your github id.
21:05 * particle is particle
21:05 dukeleto Coke: i recommend giving your core committers access to commit directly, then tell newer people to send pull requests for topic branches
21:05 Tene Coke: you can guess mine
21:05 * cotto_work is cotto
21:05 dukeleto particle: drink some whiskey for me ;)
21:05 particle ahhh
21:06 particle 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.
21:06 particle tene: crappy week for me, sorry we couldn't meet up
21:06 Coke dukeleto: I have to run home now. I'm happy to give you the keys to the partcl account if you're bored. =-)
21:06 Tene everyone ready for pcc hackathon tomorrow?
21:06 dukeleto particle: indeed. I am thinking of buying LH something nice to drink, as well
21:06 Tene particle: I didn't feel up to it anyway.
21:06 particle good idea
21:06 purl particle: Good Idea: Kissing a loved one. Bad Idea: Kissing a total stranger.
21:07 Tene LH?
21:07 purl it has been said that LH is just nasty
21:07 particle purl, you're so old fashioned.
21:07 purl particle: excuse me?
21:07 dukeleto Coke: if you email the info, I can help you out. let me know what needs doin'
21:07 dukeleto purl, forget LH
21:07 purl dukeleto: I forgot lh
21:07 * darbelo is darbelo
21:07 dukeleto purl, LH is Leslie Hawthorn, Program Coordinator for Google Summer of Code
21:07 purl OK, dukeleto.
21:08 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?
21:08 purl LH is Leslie Hawthorn, Program Coordinator for Google Summer of Code
21:19 dukeleto Whiteknight: i should make master just mirror upstream i guess, for the sake on not confusing people
21:20 dukeleto s/on/of/
21:24 mikehh joined #parrot
21:31 dalek TT #1087 created by reezer++: Various tests fail on DragonFly/amd64
21:32 Whiteknight is there a git equivalent to svn info?
21:32 darbelo cat .git/config?
21:33 kjeldahl_ joined #parrot
21:34 darbelo Whiteknight: what information are you after?
21:34 Whiteknight i guess that has what i need. thanks darbelo++
21:35 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
21:35 dukeleto Whiteknight: git remote with no args shows all remotes
21:36 dukeleto Whiteknight: i have an alias called "git sup" that does "git svn fetch && git svn rebase"
21:36 dukeleto the fetch pulls and updates all remote repos in your index, the rebase fast forwards the current branch to those newest pulled down changes
21:37 dukeleto 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
21:39 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 dukeleto rebase means slightly different things, depending on if you are using pure git or git-svn
21:40 dukeleto 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
21:40 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
21:41 dukeleto allison: the golden rule is "don't rebase public history"
21:41 dukeleto 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
21:42 allison sure, rebase is great on your private branch
21:42 dukeleto allison: yes, that is all I am trying to get across.
21:43 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 http://github.com/leto/Util/b​lob/master/config/.gitconfig
21:43 dukeleto allison: correct. at least not on the branch that others are pulling from
21:43 dukeleto 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
21:44 dukeleto allison: does that sound about right?
21:44 allison dukeleto: yup
21:44 dukeleto shweet
21:45 dukeleto 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:46 dukeleto this is the script that does it, it might be of use: http://github.com/leto/Util/b​lob/master/bin/update_parrot
21:47 dukeleto at least it might make some of the blathering that I just did make some sense
21:47 Whiteknight joined #parrot
21:48 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
21:48 Whiteknight irclogs?
21:48 purl it has been said that irclogs is http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
21:49 darbelo You are speaking in hieroglyphics, but it's a set of hieroglyphics I can understand :)
21:49 dukeleto darbelo: yay
21:50 Whiteknight okay, so if I do a "git svn fetch" none of my files actually change?
21:51 Whiteknight and I need to follow that with an immediate git svn rebase?
21:52 darbelo right, fetch just fetches stuff and leaves it sitting there.
21:52 dukeleto Whiteknight: the first statement is correct.
21:53 Whiteknight and the second...?
21:53 purl the second is you win a PIE IN THE FACE! or an ok way to do it..
21:53 dukeleto you can also do "git merge svn/trunk" to fast-forward your current branch to trunk, after doing a "git svn fetch"
21:53 dukeleto fetch updates the index, rebase does a fetch on the current branch and applies it to the current branch
21:53 dukeleto index = stuff in the .git directory
21:54 dukeleto 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
21:54 allison the rebase is unnecessary
21:55 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" :)
21:56 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 ;)
21:57 dukeleto repo has the connotation of the whole history, a tree is an instance of the repo, in git-speak
21:57 dukeleto just for clarification
21:57 Whiteknight viewing the log is much faster with git, that much is certain
21:57 dukeleto Whiteknight: git log -p may interest you
21:58 dukeleto it shows you the history as a series of patches. very useful
21:58 Whiteknight oh yes, fun
21:58 dukeleto you can also do "git log -p some/dir"  or "git log -p some_branch"
21:59 Whiteknight right
21:59 dukeleto git log -Sfoo shows all commits that contain the string "foo" being added or deleted. REALLY USEFUL.
22:00 dukeleto it's called the pick-axe
22:00 allison dukeleto: okay, 'git svn rebase' is not the same as 'git rebase'
22:01 dukeleto allison: correct
22:02 dukeleto they should have been named differently in my opinion
22:02 dukeleto because they are only mildly related. git svn rebase *does* do a basic rebase, but does a lot more black magic too
22:03 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 allison which is fine in a local topic branch
22:03 dukeleto allison: yeah, I can see that point of view
22:04 dukeleto 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:05 dukeleto I should write a Lovecraftian short story about git-svn
22:05 Patterner Does it die 'orribly?
22:06 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:07 dukeleto partcl is very close to being setup on github, probably will have more info about that tonight
22:08 Whiteknight allison: t/pmc/fixedbooleanarray.t hangs on my system. yours?
22:08 Whiteknight (pcc_reapply)
22:09 allison Whiteknight: yes
22:10 Whiteknight okay, at least it's not just me
22:10 Whiteknight ah nevermind, I know why it's hanging
22:11 Whiteknight second test calls test::more.like(), which tries to load PCT, which tries to use a :slurpy return value somewhere
22:11 Whiteknight ...which causes an infinite exception loop because there isn't a pop_eh in there like there should be
22:11 allison Whiteknight: there should be no calls to 'like' in the coretest suite
22:12 allison I stripped them all out of trunk a month or so ago
22:12 allison but, more may have been added
22:12 Whiteknight more have definitely been added
22:12 Whiteknight so any calls to "like" should be removed?
22:12 allison then, they need to be removed
22:12 allison from any tests in coretest, yes
22:12 Whiteknight just for this branch, or in general?
22:12 allison in general
22:12 purl In general, you do not want to disturb The General.
22:13 allison coretest doesn't build PGE
22:13 Whiteknight right
22:13 Whiteknight okay
22:13 Austin_away If I want to eval PIR code on the fly, what do I compreg?
22:13 DrForr joined #parrot
22:13 allison Whiteknight: it's usually pretty easy to replace the 'like' tests with 'is' tests
22:14 allison Whiteknight: the 'like' is just laziness
22:14 allison in extreme cases, I used substr and is
22:14 Whiteknight yeah
22:15 Whiteknight Austin: $P0 = compreg 'PIR'
22:15 Whiteknight $P1 = $P0(mycode)
22:18 Austin Thanks, whiteknight.
22:19 Austin And now, this: If a class has multiple parents, how do I control which get_string:vtable gets invoked for the class?
22:20 Whiteknight I thought multipleinheritance had been banned
22:20 Austin Boy, I hope not.
22:21 Whiteknight maybe that's just at the C leve
22:21 Whiteknight level
22:21 Austin Maybe.
22:21 Austin But you know I don't C.
22:21 Whiteknight In PIR it all has to do with the C3 linearization of the class hierarchy
22:21 Austin Command, Control and Communications?
22:22 darbelo http://en.wikipedia.org/wiki/C3_linearization
22:22 dalek parrot: r41620 | whiteknight++ | branches/pcc_reapply/t/pmc/fixedbooleanarray.t:
22:22 dalek parrot: [pcc] fix some tests in fixedbooleanarray.t that were using 'like' ('like' requires PCT which is not built for coretest)
22:22 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41620/
22:23 Austin Thanks, darbelo
22:24 Whiteknight urg, t/pmc/float.t fails in a bizarre way
22:27 Austin I just know this won't end well...
22:27 Austin Could not build C3 linearization: ambiguous hierarchy
22:28 Austin Apparently, the linearizer needs work.
22:28 Whiteknight maybe your hierarchy needs work
22:28 darbelo http://www.python.org/download/releases/2.3/mro/
22:28 dalek parrot: r41621 | whiteknight++ | branches/pcc_reapply/t/pmc/float.t:
22:28 dalek parrot: [pcc] remove some more uses of 'like' from core tests
22:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41621/
22:28 darbelo c3?
22:28 purl i guess c3 is a little on the confusing side to start off with or teh hype or http://www.python.org/2.3/mro.html or http://use.perl.org/~autrijus/journal/25768 or most often broken by old Session::Store::FastMMap (<=0.03) or http://search.cpan.org/~flora/Class-C​3-0.21/lib/Class/C3.pm#What_is_C3%3F
22:29 darbelo http://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.
22:31 darbelo A vailla, four vertex diamond should work.
22:33 Austin Past::Node -> (Slam::Node, Past::Var) -> Slam::Var
22:33 Austin I'm trying to mix in Slam::Node
22:35 darbelo And Past::Var has no other parents?
22:36 Austin Checking
22:36 Austin No parallel parents. Pct::node -> Past::Node -> Past::Var
22:37 Austin I think Pct::Node is a Capture pmc
22:39 Whiteknight t/pmc/fixedstringarray.t is getting into a pure-pir infinite loop
22:40 Austin Whoops. Disregard that, darbelo. I missed a transition into a different module.
22:43 Whiteknight nevermind, it doesn't hang. Just takes a while
22:43 Whiteknight and then it dies with a get_attr_string error
22:43 Whiteknight get_attr_string not implemented in class ResizablePMCArray
22:44 Whiteknight and it fails after the last test passes
22:51 Austin W00t! Now I have overridden get_string from NQP.
22:52 Austin (With some PIR down there, safely encapsulated in the engine room.)
22:54 hercynium joined #parrot
23:11 ruoso joined #parrot
23:12 payload joined #parrot
23:21 quek joined #parrot
23:28 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:31 darbelo Odd.
23:34 Whiteknight very
23:35 Whiteknight 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 Whiteknight so somebody else is setting that value without using the API call correctly
23:35 darbelo Eww.
23:36 Whiteknight actually, I don't find anywhere else that it would be happening
23:40 Whiteknight this is weird as hell. I don't see any place where this would be happening
23:40 Whiteknight unless the context object was being recycled somewhere
23:41 darbelo I was going to say 'gremlins', but that works too.
23:42 Whiteknight ...no, the PMC is not freed
23:43 cotto joined #parrot
23:44 bacek joined #parrot
23:46 Whiteknight fixed it
23:46 dalek parrot: r41622 | whiteknight++ | branches/pcc_reapply/src/pmc/context.pmc:
23:46 dalek parrot: [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.
23:46 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41622/
23:49 dalek parrot: r41623 | whiteknight++ | branches/pcc_reapply/t/pmc/fixedstringarray.t:
23:49 dalek parrot: [pcc] add some pop_eh to balance the push_eh in fixedstringarray.t for cleanliness. Fix some whitespace issues
23:49 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41623/
23:52 dalek parrot: r41624 | whiteknight++ | branches/pcc_reapply/t/pmc/resizablefloatarray.t:
23:52 dalek parrot: [pcc] fix uses of 'like' in resizablefloatarray.t and add a few missing pop_eh calls
23:52 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41624/
23:57 Whiteknight t/pmc/stringhandle.t hangs when I run make coretest, but runs fine when I do it through prove

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

Parrot | source cross referenced