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