Parrot 1.3.0 "Andean Swift" released | parrot.org
Set by moderator on 23 June 2009.
bacek_at_work [eq nt,tt 00:02
bah! 00:03
sorry, ww
Infinoid Whiteknight: Hmm, all tests passing on linux/amd64 here 00:05
For trunk@39939 at least
00:06 patspam joined
dalek kudo: 48c1791 | pmichaud++ | docs/release_guide.pod:
More release_guide.pod improvements.
00:06
pmichaud draft blog post for "Rakudo release managers": gist.github.com/142466 Comments and suggestions welcomed. 00:09
Whiteknight holy crap, well it passes here now 00:23
stupid bugs
purl stupid bugs is bugzilla.gnome.org/show_bug.cgi?id=334076
Whiteknight pmichaud: excellent post! 00:25
Whiteknight has been slacking on his posts this week
Tene tapes down WK's 'blog' button. 00:30
Whiteknight this has been quite the busy week 00:32
dalek TT #818 closed by whiteknight++: packfile tests failing on amd64 00:33
Whiteknight I've actually written a handful of drafts this week, but haven't published any of them 00:34
dalek kudo: 116fa46 | jnthn++ | src/ (2 files):
Fix nextwitha and callwith.
00:41
kudo: 70bfd5c | jnthn++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
00:55 tetragon joined
dalek rrot: r39940 | jkeenan++ | branches/darwinhints/lib/Parrot/Configure/Options/Test/Prepare.pm:
Modify to accommodate two levels in t/steps/.
01:21
rrot: r39941 | jkeenan++ | branches/darwinhints/t/steps/init/hints:
Add directory.
01:28
cnum-dynpmcs: r102 | darbelo++ | trunk/src/pmc/decnum (2 files):
Add a header for common definitions and use it to define a more readable alias
01:34
cnum-dynpmcs: r103 | darbelo++ | trunk/src/pmc/definitions.h:
Actually add the file and the definition mentioned in the previous commit.
rrot: r39942 | jkeenan++ | branches/darwinhints (1 files):
Add a file to hold tests for the Darwin hints file.
01:35
darbelo cotto: ping 01:53
dalek rrot: r39943 | coke++ | trunk (2 files):
TT #450 - remove (most of) the DEPRECATED myops dynamic ops
01:58
02:01 tetragon joined, darbelo joined, davidfetter joined, japhb joined, eternaleye joined, sekimura joined, soxet joined, Coke joined, TonyC joined, dukeleto joined, preflex joined, silug joined, purl joined, rhr joined, rblackwe joined, workbench joined, jjore joined, TimToady joined, nnunley joined, mmpf joined
Austin Woot. Test cases for PAST::Node.pir completed. 02:03
dalek TT #790 closed by coke++: remove hcf dynop
TT #695 closed by coke++: subtest 3 in t/dynoplibs/myops.t segfaults on darwin
ose: r52 | Austin++ | trunk/t/builtins/ (2 files):
Added tests for some concat, elements builtins
02:10
ose: r53 | Austin++ | trunk/src/parser/builtin (2 files):
Added concat, elements builtins
ose: r54 | Austin++ | trunk/src/parser/grammar.pg:
Removed 'lexical' keyword
ose: r55 | Austin++ | trunk/src/parser/ (2 files):
Refactored binary expression code to expression_actions.pm
ose: r56 | Austin++ | trunk/library/pct/PAST/Node.pir:
Got rid of intermediate pir file
ose: r57 | Austin++ | trunk/ (8 files):
Added Node.c= file for PAST::Node, and subclasses. Added test cases. Added built
02:11 darbelo left
02:13 jdv79 joined
dalek ose: r58 | Austin++ | trunk/library/pct (3 files):
Added svn:ignore of .pir files below library/pct
02:20
02:25 Tene joined 02:36 janus joined
dalek TT #819 created by coke++: obscure.ops need tests 02:43
rrot: r39944 | coke++ | trunk (9 files):
-remove dynop myop (TT #450); migrate obscure from regular to dynop. (partial TT #449)
02:48
TT #450 closed by coke++: [TODO] Remove dynoplibs myops & dan ops 02:50
02:54 davidius joined
dalek rrot: r39945 | coke++ | trunk/docs/compiler_faq.pod:
Remove example that really doesn't look anything like the example in src/dynop*l
02:55
TT #820 created by coke++: dynops should show up in docs/ops... 02:57
Coke I dread moving another dynops file. The makefile is going to explode. 03:07
s1n particle: still no word from my company, have you spoken to allison? 03:13
03:38 Andy joined 03:46 eternaleye_ joined 03:56 tetragon joined 04:25 jrtayloriv joined
cotto darbelo (who most likely won't see this), pong 04:30
04:32 Zak joined 04:39 tetragon joined 04:54 Khisanth joined 05:12 Theory joined 05:22 tetragon_ joined 06:01 uniejo joined 06:03 chromatic joined 06:29 TiMBuS joined
TiMBuS GBACK 06:29
.. my bad
06:30 tetragon joined
dalek rrot: r39946 | petdance++ | trunk/src/spf_render.c:
hoisted up some common subexpressions and reduced a lot of string indexing. Also changed an x<<1 to x*2, because really that is our intent. Let the compiler do what it does best.
06:33
06:55 eternaleye joined 06:59 tetragon_ joined 07:02 tetragon joined 07:03 iblechbot joined 07:06 Axle joined
Axle I'm having a hard time getting through the documentation 07:06
reading docs.parrot.org/parrot/latest/html/...y.pmc.html 07:07
I would like to know how to use push and pop
moritz push array, value 07:09
Axle I tried to do that but got array index out of bounds. 07:10
new $P0 'Array' | set $P0, 10 | $S0 = 'hello' | push $P0, $S0 07:11
mikehh All tests PASS (pre/post config, smolder, fulltest) at r39946 - Ubuntu 9.04 amd64
moritz what is the set $P0, 10 supposed to do? 07:12
Axle set the size of the array to 10
moritz ah
Axle as outlined here: docs.parrot.org/parrot/latest/html/...y.pod.html
TiMBuS you're trying to push into position 11 tho.
you probably want to use a resizable array 07:13
Axle go on
I'm really new, so you're gonna have to spell it out for me 07:14
TiMBuS oh. well push appends to the end of an array. so if yu use a plain Array you won't be able to add to it
since it's a set size
use a ResizableStringArray 07:15
moritz Axle: if you do new $P0, 'ResizableStringArray' and omit the set, it works
Axle will push ever work on a regular array?
moritz it doesn't seem useful on a fixed size array 07:16
TiMBuS kind of dangerous
cotto Axle, the Array PMC isn't the one you'll usually want to use. You'll want either ResizablePMCArray or ResizableStringArray most likely.
Axle ok, why does it exist then?
TiMBuS Mostly to inherit from 07:17
cotto "Historical reasons" is my best understanding. 07:18
Axle so there it flat out does not work on a regular array?
it's kind of important, actually 07:19
moritz what is important to you, exactly? 07:20
Axle trying to write a stack language. if I want to keep the ints/floats/strings as simple as possible, I can't
TiMBuS a stack language you say
Axle because apparently I need to use ResizablePMCArray
TiMBuS i used a ResizablePMCArray for that 07:21
Axle right, just now everything will have to be boxed
moritz well, if you want to push primitives of different types onto a stack, and you want to preserve the type information (and not get back a mass of undifferentiated bytes) than you *have* to do something. 07:22
TiMBuS you could implement a lighter weight box type of your own 07:23
as a pmc
moritz if that doesn't appeal to you, you can of course write your own Array subclass that tracks the types for you
TiMBuS or that
Axle unfortunately that's beyond me TiMBuS :)
I appreciate the help all of you
moritz Axle: I think a sensible approach might be to box everything first, and when it works and you want to optimize you can still look into custom PMCs later on 07:24
"first make it run, then make it right, then make it fast"
07:24 tetragon joined
cotto Axle, just do the boxing. There's even an opcode for it ("box"). 07:24
Axle lol, you have a very good point
cotto plus what moritz said
Axle thank you again all three of you 07:25
07:25 Axle left
TiMBuS woot i was helpful 07:26
cotto no need to stick around, I guess
07:33 jimmy joined
jimmy cotto: hello 07:37
cotto jimmy, hi 07:39
jimmy cotto:I have no patch tools.but I have a patch. 07:42
cotto if you have svn, you have a patch tool
svn diff
purl rumour has it svn diff is better than cvs log, that's why I like svn more than cvs
cotto Hmm. Purl's slow lately. 07:43
moritz can you also apply patches with svn?
jimmy I have no tools and sources. 07:45
cotto possibly but I don't know how. 07:46
jimmy just r39946
cotto jimmy, it's committed. Thanks. 08:04
jimmy thank you too. 08:05
dalek rrot: r39947 | cotto++ | trunk (2 files):
[cage] use else if instead of nested if
08:07
08:16 clinton joined
cotto r40000 approaches 08:41
not that it means anything
dalek rrot: r39948 | cotto++ | branches/ops_pct/compilers/opsc (5 files):
[opsc] use a custom Op class to store Op-related information
08:44
rrot: r39949 | cotto++ | branches/ops_pct/MANIFEST:
[MANIFEST] manifest update for recently added files
rrot: r39950 | cotto++ | branches/ops_pct/compilers/opsc (4 files):
[opsc] fix failing tests by using Hash instead of RPA for op_flags, which is a simpler interface anyway
08:50
bacek_at_work $P0.'addstage'('die', 'after'=>'past') 08:55
nice :)
cotto Managed code has nothing on our mangled code.
bacek_at_work ok, going home now. 08:56
cotto I could also call it "shut_up_the_compiler_because_it_will_never_emit_pir", but that was a bit verbose.
bacek_at_work cotto: can we share work on opsc?
cotto certainly 08:57
purl rumour has it certainly is not sql-sane atm
cotto I like having a non-1 bus number.
bacek_at_work Yeah. I don't like -1 bus number too :) 08:58
cotto doesn't want to try to figure out what that means.
Maybe the guy has to hit a bus?
don't try it. ;) 08:59
bacek_at_work how many people you have to remove from project to make project alive
afk &
cotto That's not a healthy project. 09:01
09:10 riffraff joined 09:19 bacek joined
bacek hi again 09:19
purl oh, you're back!
cotto hi
with opsc, a couple (somewhat) independent things need to happen: 09:20
1) make opsc.pir cat all files from the command line before parsing them (or put all ops from all files into the same past) 09:21
2) make sure that the past contains enough info for the translators (i.e. what's in lib/Parrot/OpLib/core.pm)
- also, make sure the info gets stored somewhere convenient so we don't have to re-parse all ops for every runcore 09:22
bacek PAST is good choice for store it.
cotto 3) work on the individual translators (although this obviously depends on 2).
Sure. Just freeze it and stick it somewhere sane. 09:23
Alternately we could have opsc spit out all runcores at once.
bacek parsing all ops files took less than 2 second btw 09:24
not a big deal to reparse them for every runcore
cotto That's 6 seconds to cut off the build, but we can easily put that off until later.
bacek (Instead of investing time to implement freezing)
cotto Oh yeah. I'd forgotten that PASTs don't freeze easily. 09:25
stupid PASTs
bacek heh :)
cotto make it work, then make it work efficiently
bacek Just "make it" first 09:26
cotto it's there, fsvo it
At any rate, feel free to start on the runcores or on making opsc stuff everything into one past. I'll take whatever you dont. 09:27
*don't
bacek I'll take 2-3 steps.
cotto I thought you would.
bacek Just make some dinner
cotto I'm off to bed. 09:28
Good night.
bacek found some nice recipe of pork with sour-cream
cotto: good night.
09:33 tetragon_ joined 09:38 MoC joined, fish left 10:17 bacek joined
bacek msg pmichaud (I know that string interpolation no currently in scope for NQP) Can I add minimalistic string interpolation into NQP? It will very handy for converting current ops2c to PCT as part of L1 roadmap. 10:24
purl Message for pmichaud stored.
bacek msg pmichaud Only scalar variables (and probably argsless method calls like $self.foo) 10:25
purl Message for pmichaud stored.
bacek msg (And I'll alias "self" to "$self" manually before interpolate) 10:26
purl Sorry, I've never seen (and before.
bacek msg pmichaud (And I'll alias "self" to "$self" manually before interpolate)
purl Message for pmichaud stored.
bacek good girl
purl thanks bacek :)
10:27 masak joined
jonathan purl ain't used to being called that :-) 10:29
purl jonathan: huh?
bacek jonathan: it's rare message. That's why it so valuable :) 10:32
11:18 tetragon joined 11:19 tetragon_ joined 11:37 kid51 joined 12:00 bacek joined 12:08 tetragon joined, cognominal joined 12:11 jdv79 joined
jdv79 item 13 in rakudo/docs/release_guide.pod could be more concrete. item 15 is more about optionals... 12:12
12:17 cognominal joined 12:40 skids joined 12:45 MoC joined
bacek Bah! Who designed ops2c? I want to visit him with pizza and beer. 12:47
It's one of the best code I've seen so far.
jonathan me! me! 12:50
(not really ;-))
(but I like pizza and beer ;-)) 12:51
Util bacek: Looks like kid51++ - see r17467 and RT#41786 12:53
bacek kid51++ # ops2c ftw! 12:56
bacek passing virtual beer to jonathan. Sorry, may be it will be real net time :) 12:57
Coke_afk kid51 very likely did some cleanup, but I doubt he did the design. 13:12
13:13 jan joined 13:16 donaldh joined
bacek Coke_afk: I tend to disagree. If I read rt.perl.org/rt3/Ticket/Attachment/2...n.diff.txt correctly he designed at least half of ops2c. 13:18
OpTrans* is second half. 13:19
But... kudos for everyone who did it.
13:22 Patterner joined
bacek msg cotto Sorry, no commits to ops_pct for today. I've spent my time reading ops2c. BTW, consider to migrate ops2c to PCT "as-is". 13:24
purl Message for cotto stored.
13:41 particle joined
Coke_afk bacek; I guess it depends on what encompasses "design". he refactored it, yes. 13:50
Coke but he didn't design how ops2c was supposed to be working. He took the existing version and made it amenable to testing.
bacek Coke: "code design" vs "ops design" 13:51
Coke fair enough. 13:52
Coke wonders if his op shuffle has inconvenienced anyone yet.
bacek And explicitly said "ops2c" :) 13:53
Coke: "op shuffle"?
Ah. You mean latest commits to remove some dynops. 13:54
Coke and make some ops dynops instead of builtins.
hurm. might need to re-run renumber.
bacek Coke: -1 for make them dynops. My personal preference to kill them all :) 13:55
Coke bacek: that would need another deprecation notice, but I don't think we need, say, covers 13:56
bacek Let's deprecate all current dynops except one needed for internal testing! 13:57
Coke bacek: someone already did that. 13:58
bacek Ah. Ok.
Coke that was the old myops and danops
those are now gone.
but ...
... now there's about six other .ops files that are getting "demoted".
NotFound Did you killed hcf?
Coke NotFound: absolutely.
NotFound How can we catch the fires, then?
Coke we weren't catching them /before/ 13:59
NotFound Coke: I catched at least one. Setting an exception handler with hcf inside was a quick way to obtain a core dump 14:00
Coke ok. (it wasn't just removed because of the core dumps, the entire set of ops was deprecated post 1.0)
bacek proposing op "bah" as shortcut for "new UncatcheableException; throw"
NotFound But of course, this is no compensation for the fake bugs opened because of hcf. 14:01
Coke we shouldn't have uncatchable exceptions. :|
14:01 eternaleye joined
bacek Bah! It's tomorrow already. Time to sleep. 14:01
see you tomor^W soon 14:02
NotFound The same goal can be achieved with an infinite loop in the handler and kill -s ABRT 14:05
Coke man is config/gen/makefiles/dynop* ugly. 14:13
14:15 amuck_ joined, iblechbot joined 14:38 amuck_ left 14:43 elmex joined 14:47 NotFound joined 14:58 Theory joined 15:02 frodwith joined 15:03 frodwith joined 15:04 frodwith joined 15:20 donaldh joined 15:22 rdice joined 15:35 Theory joined 15:49 mikehh joined 16:04 darbelo joined 16:08 jrtayloriv joined 16:09 Austin joined 16:20 mikehh joined 16:23 brbrooks joined 16:24 Psyche^ joined 16:27 chromatic joined
nopaste "cotto" at 74.61.2.46 pasted "file layout reference for ops2c-related code for bacek_at_work" (18 lines) at nopaste.snit.ch/17151 16:33
cotto hi 16:43
purl bonjour, cotto.
darbelo cotto: ping again 16:44
purl I can't find again in the DNS.
cotto darbelo, pong 16:48
< purl-- >
16:54 abesapien joined
darbelo cotto: did you see my blog/parrotsketch report? 16:55
cotto darbelo, yes. Is there anything in particular you're referring to? 16:57
I'm glad you're alive. ;)
darbelo I briefly considered putting "darbelo != Michael Jackson" but I figured only Austin would get the joke. 16:59
But, getting back to the point, I'm pretty much stuck with the the failures. 17:01
Austin :)
darbelo s/the the/the test/
Austin How many times will I hear "I'll Be There" today?
17:01 mj41 joined 17:03 davidius joined
darbelo So I'm going to "move on" to working on DecInt to avoid getting further behind schedule. 17:04
Austin Darbelo: where is your blog? 17:06
darbelo Austin: parrot.org front page.
cotto darbelo, how can I help you get unstuck? 17:07
Austin, parrot.org/darbelo
Austin Cool. 17:08
cotto You too can have your own blog on parrot.org.
would a whip and/or cattle prod help? 17:10
darbelo I don't think so. 17:11
Austin pmichaud: ping 17:12
cotto You're no fun anymore.
jdv79 make test for rakudo just failed me 17:14
gist.github.com/142981 - just FYI 17:16
darbelo It's not as fun, but sanity-check on the tests that we're failing would be helpful.
moritz jdv79: what's your version of TAP::Harness? 17:17
darbelo t/multiply.t is probably the best candidate. 17:18
cotto sure. I'll take a look. 17:19
jonathan Hmm. I ain't seen the tests fail that way before... 17:20
moritz it's a harness problem, not a Perl 6 problem
jonathan moritz: Aye...curious which flag is doing it. 17:21
darbelo Before I forget: running "make test" assumes you have a 'parrot' executable on the root svn dir. I put a symlink there to the parrot in my working copy (Which is why I use the parrot checkout dir as a staging dir) 17:22
brbrooks What are the most popular systems outside of (x86 + linux/darwin/win) that people run parrot on?
17:23 Aisling joined
darbelo I'll probably change that in a few days, but not yet. 17:23
17:23 jevin joined, magnachef joined
darbelo brbrooks: I would expect amd64 + linux 17:23
moritz right; maybe also old mac PPCs 17:24
or freebsd/openbsd
probably more often than PPC
brbrooks any muster about solaris? 17:25
chromatic Occasionally, though old versions of Sun CC (and I don't know about Sun Studio) have problems with some of our not-quite-C89 code. 17:26
cotto darbelo, it looks like make realclean clobbers definitions.h
brbrooks Is anybody currently doing any GC-related work? 17:27
17:28 Whiteknight joined
Whiteknight good afternoon #parrot 17:29
cotto right on cue
Whiteknight ?
brbrooks Whiteknight: any update on the "very concurrent" GC core?
Whiteknight brbrooks: no updates yet. I have a plan for it, but haven't had time to put the pencil to the paper 17:30
plus, I have other tasks I want to tackle first, given the opportunity
brbrooks Would you have the bandwidth to mentor me?
Whiteknight certainly! I'd be glad to help 17:31
17:31 solarion joined
Whiteknight I have some development time available, just not enough to do the entire thing by myself 17:31
brbrooks Yeah, I've gotten a chance to skim some GC code, but still need to soak up more 17:32
cotto darbelo, I get complaints about DecNumContext missing when I run the tests. 17:33
Do you have any idea what could cause that? I don't mind digging in. 17:37
dalek cnum-dynpmcs: r104 | darbelo++ | trunk/build/src/pmc/Makefile.in:
Save definitions.h from make realclean.
17:38
darbelo cotto: A quick check would be to see the return value for the loadlib. I currently ignore it on the tests, but it tells you wthere parrot could find the .so or not. 17:40
cotto It doesn't seem to be returning null. 17:42
nopaste "darbelo" at 200.49.154.172 pasted "What does this output for you?" (4 lines) at nopaste.snit.ch/17154 17:43
Coke www.atarimuseum.com/videogames/cons...800/games/ - source code for atari 7800 games. 17:44
cotto a blank line
purl a blank line is one that containt nothing but s
Austin Me too. 17:45
17:45 davidius joined
darbelo cotto: Then it's not finding decnum_group.so 17:46
nopaste "Austin" at 98.235.55.43 pasted "Result of load-library decnum-group" (10 lines) at nopaste.snit.ch/17155 17:47
darbelo Austin: Don't worry it's not something you need. I'm developing an external module, not a part of parrot.
NotFound Coke: Are you planning to compile 6502 code to parrot? 17:48
darbelo Austin: also, asm {{ }} ?
Austin darbelo: From a Close test file I was editing. 17:50
darbelo I guessed something like that, but it looked like PIR, not PASM, to me.
Austin Yep.
But if you're going to drop to anything like assembly from "C", asm is the keyword to use. 17:51
And when in doubt, Close uses C
dalek rrot: r39951 | NotFound++ | trunk/compilers/imcc/reg_alloc.c:
[cage] try_allocate return value never used, making it void
17:53
ose: r59 | Austin++ | trunk/ (6 files):
Got POST::Node tests working
pmichaud Austin: pong 17:54
Coke NotFound: oh hell no. but I figured someone here would be crazy enough to try.
NotFound Coke: Maybe some day I'll try that, but with Z80 17:55
cotto darbelo, the makefile fix is simple enough. Do you mind if I commit?
Austin pmichaud: P6object does some wierd things when you tell it a parent class that isn't loaded. (Null PMC exception, I think.) Do you want tickets for that sort of thing?
17:56 rdice joined
pmichaud Austin: sure, tickets are fine. I might end up deciding that Null PMC exception is the correct answer, but at least it'll get me to look at it :-) 17:57
darbelo cotto: Go ahead.
Austin okay 17:58
darbelo cotto: Wait, you mean definitions.h ? I already did that one. 17:59
cotto so you did 18:00
The commit failed. 18:01
Austin FixedIntegerArray: index out of bounds!
There's an error you don't see every day.
18:02 confound joined
cotto darbelo, the problem was that I didn't run make install 18:02
or not. it's still not finding it
make seems to do that anyway 18:03
nopaste "darbelo" at 200.49.154.172 pasted "This is my setup. I don't need to install." (8 lines) at nopaste.snit.ch/17156
18:04 MoC joined
darbelo "/home/darbelo/parrot/trunk" is my parrot checkout on that paste. 18:04
dalek ose: r60 | Austin++ | trunk/t/library/pct/POST/Node/01-label.t:
POST::Label tests
18:05
cotto interesting 18:07
darbelo Hmm. is there a flag to tell parrot "And search here too." 18:11
Austin -L? 18:12
purl hmmm... -L is another short way to do add newlines to each line or very handy or not needed then.
Austin Works for load-bytecode. library I'm not sure about
darbelo goes afk 18:13
18:13 ruoso joined
Austin -X or --dynext ? 18:16
darbelo comes back 18:27
jdv79 2.64
darbelo Yup -X did it, Austin++ 18:28
18:30 MoC joined
jdv79 moritz: its the system Tap::Harness. i can't upgrade it. 18:30
18:30 davidius joined
jdv79 i'll just assume the tests pass 18:30
brbrooks src/gc/res_lea.c malloc.c malloc_trace.c - why do these exist if they're unused?
chromatic We haven't had the courage to delete them yet. 18:31
18:31 athomason joined
jdv79 if they're deleted and the build/test works what else is there? 18:31
chromatic The persistent belief that one day we'll use them. 18:32
brbrooks delete them, then revive them from a previous rev if need-be?
jdv79 maybe move it to an "old folder" or a branch so its clear what's actively used. 18:33
the problem in leaving it in an old rev is nobody will ever know they are tehre
brbrooks ahhh
jdv79 if they are find/grep able then there's at least a small chance someone could find them 18:34
Coke there is a ticket about removing them.
brbrooks build/test should work, they're not included in the build
Coke ISTR 1.4 need to land before we can rip them out. 18:35
needs.
brbrooks what is ISTR 1.4?
Austin ISTR = i seem to recall 18:36
Coke ISTR?
purl I Seem To Recall
jdv79 doing it in caps confused me as well
Coke 1.4 == next supported version of parrot, due this month.
jdv79 seemed like it should be a real acronym
Coke ... acronyms are supposed to be in all caps. =-)
jdv79 ok 18:37
Coke IYKWIM.
Austin Whoa. It's an acronym. It's supposed to be caps.
brbrooks why does 1.4 need to land before ripping them out?
Coke in general, because of our support policy.
in this particular case, that might be overly cautious. 18:38
brbrooks We need to support source that isn't included in the build?
Coke on the gripping hand, there's only 2 or 3 weeks left.
if you had come in 3 months ago, I'd say sure. This is assuming I am even remembering the case correctly. let me find the ticket.
rant; 'GC' is a perfectly valid trac search, trac. 18:39
trac.parrot.org/parrot/ticket/490 18:40
which points to branches/gc_options_remove - which can probably be extended to remove the actual files if it hasn't already. 18:41
then we can roll it back in immediately after the release.
but yes, in general, if something is unused and broken, we can remove it without much concern.
another rant: give me a trac search that only shows non-closed tickets. 18:42
Util Coke: if you will be more specific, I will write the trac report
Coke Util: not a report.
trac.parrot.org/parrot/search 18:43
but thanks for the offer. =-)
brbrooks I see
Coke so, like I said, if we weren't almost at 1.4 anyway and had a patch ready, sure, let's apply it. but 2 weeks? meh. 18:44
that said, please feel free to patch up the -branch- asap. 18:45
brbrooks mmm I'm sure jkeenan is ontop of it, just removing files... 18:46
brbrooks goes back to reading gc src
18:47 Theory_ joined
Coke jkeenan is more of a perl guy - if there's C code involved, he could probably use a hand. 18:48
NotFound I think that deleting C files is not very different of deleting perl files X-) 18:50
18:56 Theory joined
Util Coke: use the ticket-specific Custom Query instead. 19:10
In the basic (non-SQL) Trac ticket query, you can use `~` for "contains", and `!` for "not". 19:11
Therefore, this URL should do what (I think) you wanted:
trac.parrot.org/parrot/query?statu...ummary=~GC
Also useful: change 'summary' to 'keywords' or 'description'
19:20 brbrooks joined
Coke util;looks good, thanks. 19:22
Util glad to help
pmichaud Two weeks left.
Actually 13 days.
cotto plt? 19:24
purl i think plt is Brown/Rice.
cotto tasty, but not very useful
darbelo cotto: any luck on "make test"ing ? 19:34
mikehh All tests PASS (pre/post config, smolder, fulltest) at r39951 - Ubuntu 9.04 amd64 19:35
19:40 spinclad joined, jsut joined
Coke otl? 19:47
brbrooks I have 6 hrs of useless meetings at <dayjob> tomorrow... I'd rather sit at my cube and read parrot src... 19:48
Coke depending on the type of meeting, that shouldn't stop you. =-)
brbrooks true 19:49
Util OTL == Out To Lunch 19:52
Coke otl is Out To Lunch 19:53
purl i already had it that way, Coke.
Coke otl?
purl otl is, like, Out To Lunch
Coke does == work?
huh.
darbelo Coke: Nope, I taught it to purl in a /msg 19:54
Coke darbelo++
darbelo figured there was no need to embarrass her in public :) 19:55
mikehh darbello: how do you build decnum_dynpmcs? can you only build from an installed parrot? 19:56
sorry 19:57
darbelo: how do you build decnum_dynpmcs? can you only build from an installed parrot?
19:57 cxreg joined
darbelo mikehh: It *only* builds from an installed parrot. 19:57
mikehh damn - I was trying from my normal build setup 19:58
19:58 s1n joined
mikehh thats my normal svn co 19:59
PerlJam darbelo: that's interesting because until quite recently people were encouraged to NOT install parrot because the installed one would interfere with development
Coke mikehh: I install parrot into ~/bird, e.g.: if you're already running fulltest, 'make install-dev' doesn't take much more effort.
PerlJam: QUITE?
that's been relaxed since well before 1.0
TimToady phone 20:00
Coke TimToady: not for me. See you next week.
PerlJam Coke: sorry, that's still recent for me. :)
Coke TimToady: (and I still owe the report.)
mikehh Coke: ok will give it a try 20:01
20:02 abesapien joined
darbelo PerlJam: I install parrot to a dir under my $HOME and so far it hasn't interfered with anything. 20:02
PerlJam darbelo: I'm sure it doesn't. It's just interesting to me that before everybody was "compile against a non-installed parrot" and your thing is now "compile only against an installed parrot" 20:04
Coke PerlJam: sure, ignore tcl. 20:06
20:06 dngor_ joined, masak joined
Coke My thought is that anything truly external should be building against an installed version. 20:06
PerlJam ignore what?
purl www.delchi.net/images/edignore.jpg
PerlJam ;)
masak examples/library/ncurses_life.pir seems to have bitrotted. it runs, but it displays just an empty screen with "Generation: \\d+" at the top. 20:07
can anyone confirm this?
purl it has been said that can anyone confirm this is right, scsys.co.uk:8001/30639
darbelo PerlJam: It wasn't my first idea, but I lifted some of my build infrastructure out of the one generated by one of the scripts shipped with parrot and it ended up that way.
masak purl: forget can anyone confirm this
purl masak: I forgot can anyone confirm this
Coke masak: did you read the docs? 20:08
masak Coke: I run it the way suggested in the docs in the file, yes.
Coke: do you see anything useful when you do?
Coke yes. 20:09
after about generation 60.
masak oh.
ah, nevermind. :)
masak is too impatient
Coke er, 45 or so.
PerlJam masak: I didn't read any instructions, I just did ./parrot examples/library/ncurses_life.pir and it worked fine for me :) 20:10
masak aye, it works here too.
I just didn't wait long enough before aborting. :/
Tene masak: try running with a much huger terminal, iirc 20:11
the starting positions are way out in nowhere land
(for an 80x25 terminal)
also, O HAI MASAK
masak aye. I do 80x33. O HAI. :)
I found having font size 24 or so is more important for me than having many lines in my terminal... 20:12
Tene depends on the day... my default is font size 10
I think, lemme check 20:13
nm, font size 6
1920x1200 screen
Coke if someone is bored, that code could use some loving.
looks like we did a simple translation from pasm (need more var names), and it also seems to predate using .subs 20:14
(some comments)
masak examples/library/ncurses_life.pir mentions the files library/ncurses.pasm and library/ncurses.declarations, but there's no library/ directory in the parrot repo, as far as I can see.
Coke masak: probably runtime/parrot/library 20:15
Tene masak: yes, that
masak oki.
Tene masak: you interested in doing some curses stuff?
masak can I update those paths?
Tene: oh, yes!
Coke sure. doc updates always welcome.
masak would be nice to make this available from Rakudo.
Coke wow. could benefit from some heredocs, too.
Tene masak: use Curses:from<parrot>; works, but doesn't have proper multi variants for mv, w, mvw
masak Tene: that's great news!
Tene masak: I've also got a Curses::UI-ish port on my TODO list.
masak: old news, actually. :) 20:16
masak Tene: any working Perl 6 code somewhere?
Tene Um, dunno. I probably have some somewhere in src/
on my laptop
sitting here on my lap
lemme make something for you.
masak \\o/ 20:17
moritz Tene++
masak where do I go again to see/renew my parrot SVN authentication password? 20:18
Tene bitcard? 20:19
purl bitcard is our new auth system.
moritz no
Tene you sure?
purl you sure are purdy
moritz it's the same as the trac password on trac.parrot.org
Tene ah
right, we moved
masak um.
moritz Tene: that was back then when we were on perl.org
masak but I think the trac password was created for me...
moritz masak: I'm sure trac has a password recovery facility 20:20
masak checks
nopaste "tene" at 24.10.252.130 pasted "curses demo for masak++" (9 lines) at nopaste.snit.ch/17161
masak Tene: coolness! 20:21
purl somebody said coolness was an essential part of PERL programming.
Tene masak: I was looking into generating a version with proper multi variants... I got partway there.
Then ran into an issue with :flat and NCI 20:22
which I need to parse NCI sigs to get around.
20:22 donaldh joined, hachi joined
masak Tene: it's the first time I see this, so to me it's great news. 20:23
Tene :)
is your prior experience with curses with Curses.pm, or elsewhere?
'cos if Curses.pm, you need ot remember tha tit's not unified, so you do need ot use the mv, w, and mvw prefixes. 20:24
masak Tene: no, my only experience is playing roguelikes.
Tene Ah. 20:25
masak :)
Tene So, you might be interested in my plans to build a multiplayer realtime roguelike on Parrot?
MUD-ish, with user-constructed content?
masak sounds wonderful.
I'd at least opt for a commit bit. 20:26
Tene Write behavior for NPCs and such in any parrot-supported language?
Sweet.
That's been one of the motivations for my pushing HLL interop, for my POE clone, and for working on Curses.
masak myself, I have a plan for a MMP text-based user-built adventure universe in Rakudo, in a few years time or so. 20:27
been planning that one since 2004, I think.
Tene That was part of my original plan, but then I became infatuated with the idea of combining it with my enjoyment of roguelikes.
masak aye, it's a great idea. 20:28
mikehh hey why not some opengl type stuff :-}
masak I'll give my idea some time to get infected by yours.
mikehh: you just don't understand... :P
Tene I also wrote a prototype in Perl 5. It's in my github account, if you're interested.
mikehh ha - been there - done that - welkl sortof 20:29
masak Tene: will check it out.
mikehh well
I used to like playing Moria in my day 20:35
20:38 soxet joined
masak is currently having an Angband relapse 20:38
my 27th-level high-elf warrior is making me really proud. 20:39
20:40 HG` joined
GeJ Good morning everyone 20:40
mikehh Another one of those people with confusing time sense 20:41
It's starting to get dark here even in midsummer in the northern hemisphere 20:42
anyway hi Gej 20:43
PerlJam It's always morning. 20:45
mikehh yes I think I am in morning :-}
japhb masak, mikehh: I can definitely see the value of OpenGL acceleration for a very old school dungeon crawl. Check out Dungeons of Daggorath for instance. There was a C Linux port made, with OpenGL drawing the lines; the original was written in just 8K of 6809 assembler -- including all maps, graphics, sounds, the parser, etc. 20:50
20:50 Theory joined
NotFound Surely opengl lines are brighter ;) 20:56
pmichaud fwiw, I just reported in today's call that I'm probably not going to get the "Parrot builds an install image" refactor done this week. 20:57
20:57 soxet joined
japhb NotFound: the funny thing is that OpenGL mode can seem like cheating, because the original used stippling to make faraway objects appear faded, whereas the OpenGL version just draws dimmer lines -- but the stippling made faraway objects hard to identify, and dim lines are *much* easier to identify from quite a distance. 20:57
pmichaud I'll write a message to parrot-dev summarizing what needs to be done, but Rakudo will probably go the route of tcl and want to build from an "install-dev" parrot
NotFound japhb: add some smoke 20:59
japhb NotFound: I didn't write the port ... but that's not a bad idea if I ever decide to port it to PIR or Perl 6. :-) 21:00
NotFound japhb: youn can add it to your room ;)
japhb LOL
Depending on the source of smoke, it may make *everything* harder to identify.
NotFound More value for the game
21:02 Whiteknight joined
japhb Tene: I sent you a PM a day or two ago, but in case you didn't see it -- I'm head down with a project at $work, so I'm not really hanging out; but if you need my help with anything related to the cross-HLL work (or with OpenGL, of course), please ping me, and I'll make some time for it. 21:02
21:20 hachi joined 21:23 bacek joined
Tene japhb: I got it. I'm feeling a bit more productive today, so I might get to it. Sorry I've been so absent. 21:25
japhb Tene: No worries. I COMPLETELY understand.
well, "completely" as in "I understand how easy it is to be absent". Not that I know exactly what's going on in your life at the moment. :-) 21:26
dalek TT #510 closed by pmichaud++: HLLCompiler can't '--target=parse' from installed parrot 21:30
TT #762 closed by pmichaud++: parrot_config --dump: libparrot_linkflags, rpath_blib contain references ... 21:33
21:39 hercynium joined
Whiteknight hello 21:42
Austin hello, Andrew 21:43
Whiteknight hello Austin! 21:44
how are you doing today?
Austin Well, I'm struggling once again with null.
Austin hates null.
chromatic You'll love aleph-null even more. 21:45
Austin I kind of figured I would love it infinitely less.
I need string registers to work in order to handle null returns from a[k], and I need to handle null returns from a[k] (as part of POST::Node) before I move on to register allocation in PCT. 21:46
Whiteknight what is aleph-null? 21:47
purl aleph-null is probably the `lowest order' infinity.
Austin (Hence the "infinitely less" joke. Sorry.)
Whiteknight yay! we're telling jokes 21:48
Austin "It takes a real fashion pioneer to know that some things never go out of style. Like facial hair from the 19th century!"
Hey, what's a good syntax for aggregate literals in Close? Preferably one with type support included. 21:52
Whiteknight aggregate literals? I've been begging for those in PIR for the longest time
I had suggested something like "type:{values}", but I dont know how easy that would be to parse
Austin Well, you didn't reall want to write code in PIR anyway, did you?
Whiteknight so like ResizableIntegerArray:{1, 2, 3, 4, 5} 21:53
Austin You'd much rather write it in Close...
:)
Whiteknight haha, probably
i would far prefer if it was in close
Austin So no difference between hash and array literals?
Whiteknight not in my vision, no
bacek good morning #parrot
Whiteknight Hash:{"key1", value1, "key2", value2}
Austin pmc myhash = Hash:{ name: "Austin", city: "Philadelphia"} ? 21:54
Whiteknight that's my conception of it, yes
good morning bacek
Austin I've already got a thing for colons -- named params use them. 21:55
Whiteknight "I've got a thing for colons" <--sounds like a horrible pickup line
Austin <3 colons. 21:56
Whiteknight you buttocks colons? :)
Austin But of course.
purl Indubitably.
Austin (ba-dum-bum)
What is the right way to deal with user-specified aggregates? 21:57
Tene Austin: you're in philadelphia?
Austin Pass in all the args at once, or one at a time?
Tene, South Jersey, but close enough.
Tene I was just looking at plane tickets to PHL today. decided against, though.
too short notice.
Austin If I try to initialize: pmc foo = SomeUserClass:{ a: 1, b: 2}; 21:58
Tene, from where?
Tene SLC
Whiteknight Austin: that's a good question.
probably necessary to determine whether that type "does array" or "does hash" and populate it accordingly
Austin Is that "SomeUserClass.new( :a(1), :b(2) )" or is it "SomeUserClass.new(); foo.a(1); foo.b(2);" or something worse? 21:59
Tene I'd think the first.
Whiteknight I would actually say the second
Austin Well, since we're all agreed...
Whiteknight you don't know whether the class will have a PMC initialization routine that you expect, but if it "does array" it will handle the second
Austin I'm thinking the first. 22:00
Whiteknight okay, then do that then
you're in charge
Austin Wait.
That's wrong.
purl Austin is channeling thoth!
Whiteknight !!!
Austin It's capabilities.
Hmm. 22:01
User could say "Klass.new( { literal hash } ); " 22:02
But it would be hard to type "Klass.new().a(1).b(2).etc();"
Tene Austin: I just noticed yesterday that VNV Nation's tour is going to PHL on July 19. I saw their show here last Friday. Definitely worth going, if that's your kind of thing. 22:03
Austin So second way is better.
Tene Austin: That's a very good solution, IMO.
Austin What's VNV nation? 22:04
Whiteknight I was about to ask the same thing
Austin Electronic music band based in Hamburg, per WP.
Tene An industrial/electronica band I'm a little bit too fond of.
So, perhaps not. :) 22:05
Austin :) 22:06
So I'll use the same approach that PCT uses for literals - ask if there's a method, else try setting attributes, else try setting keyed, else die. 22:08
Cool.
How much was the air fare? 22:17
22:18 he joined
Austin About $500. Cheaper to fly than take the train. 22:19
Tene Yeah. Not cheap enough to be convenient, though, even paying with skymiles. I've got a girlfriend in PHL that I wanted to take to the show. 22:21
22:30 masak joined
masak I just wanted to note that after changing my trac password, trac puts me in a redirect loop when I try to log in. 22:31
Whiteknight Austin++
Tene (redirect loops)-- 22:32
masak also, the random password I was assigned doesn't work for committing to Parrot.
so I'll paste my small patch here, and someone else can commit it.
moritz masak: have you ever committed to parrot after the move to svn.parrot.org?
masak moritz: not sure.
probably not.
moritz masak: maybe your account isn't activeated for commiting. Let's hilight Coke_afk about it. 22:33
Austin WhiteNight?
22:33 kid51 joined
masak gist.github.com/143259 # someone please have mercy on this patch :) 22:34
Whiteknight ? 22:35
22:36 rg1 joined
dalek ose: r61 | Austin++ | trunk/build/Makefile.in:
Segregated _test from build of pct code
22:37
ose: r62 | Austin++ | trunk/ (7 files):
Got POST::Sub testing
moritz masak: let's see if my git-svn is configured correctly... 22:38
22:38 Infinoid joined
moritz seems to work, committed as r39952 22:38
Austin How interesting. Of course there's an +optional+slurpy, it's just bogus.
dalek rrot: r39952 | moritz++ | trunk/examples/library/ncurses_life.pir:
[examples] fix paths in the POD of ncurses_life.pir. Patch by masak++
22:40
masak grazie.
Whiteknight Austin++ 22:41
Austin Whiteknight? 22:42
purl Whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
Whiteknight ???
Austin You're saying "Austin++" either to get my attention (which you now have) or because it rhymes with ... ? 22:44
pmichaud ++ is the "add a karma point" operator 22:45
purl: karma Austin
purl austin has karma of 39
pmichaud Austin++
purl: karma Austin
purl austin has karma of 40
Austin Okay... 22:46
pmichaud purl: karma pmichaud
purl pmichaud has karma of 2867
Austin Can I turn my karma into frequent-flier miles, or something?
(Cash? Pizza?)
pmichaud I wish. :-)
sometimes they might be convertible to beer
karma leo
purl leo has karma of 1885
pmichaud karma coke
purl coke has karma of 3075
pmichaud karma dietcoke 22:47
purl dietcoke has karma of 6
pmichaud karma diet_coke
purl diet_coke has neutral karma
Austin Who or what is dietcoke?
dalek TT #821 created by Austin_Hastings++: PCT - POST::Sub::add_param() ignores +optional+slurpy parameters. 22:52
Whiteknight dietcoke is coke on a diet
Austin: karma is like brownie points. people give it to you when you do cool shit
purl is like brownie points. people give it to you when you do cool shit has neutral karma
Whiteknight < purl-- >
Austin And take it away, too, apparently. 22:53
pmichaud: Does the preprocessor work in the c99 language? 22:56
dalek ose: r63 | Austin++ | trunk/t/library/pct/POST/Node/04-sub.t:
Tested various flavors of add_param
22:58
23:02 tetragon joined
cotto bacek_at_work, pang 23:02
23:02 bacek joined
cotto That was odd. 23:02
bacek, ping
bacek cotto: pong
23:03 jrtayloriv joined
cotto What did you mean by migrating ops2c as-is? 23:03
Austin I've seen a bit of that the last few days. I think there's some kind of relay dropping and rejoining.
bacek cotto: layout/structure/etc
cotto Ok. So you're basically saying that we should continue the direction we're headed. 23:04
bacek :)
only one small change from ops2c: don't print directly to file. Use emit_something approach. 23:05
cotto Sure. 23:06
bacek ok. decommute to $dayjob. See you soonish 23:07
cotto bye
clock? 23:08
purl cotto: LAX: Wed 4:08pm PDT / CHI: Wed 6:08pm CDT / NYC: Wed 7:08pm EDT / LON: Thu 12:08am BST / BER: Thu 1:08am CEST / IND: Thu 4:38am IST / TOK: Thu 8:08am JST / SYD: Thu 9:08am EST /
23:08 hercynium joined
cotto Someday I too may decide to leave for my job at 0900. 23:08
kid51 bacek: Coke is correct. I did not design ops2c. The code now in Parrot::Ops2c::Utils and ::Auxiliary once existed in tools/build/ops2c.pl, unencapsulated in subroutines and therefore not amenable to deep testing. 23:09
dalek rrot: r39953 | chromatic++ | trunk/editor/skeleton.pir:
[editor] Added missing quotes around main sub name in PIR skeleton file. This
23:11
cotto I wouldn't expect usage() to need much testing. ;)
23:12 athomason joined, sekimura joined
kid51 msg brbrooks Re GC: See trac.parrot.org/parrot/ticket/490. I will be applying patch for this ticket after next release. 23:13
purl Message for brbrooks stored.
Austin Cotto: clearly, your usage() lacks sufficient functionality. 23:14
kid51 msg Coke Re: "another rant: give me a trac search that only shows non-closed tickets": See Report #10: trac.parrot.org/parrot/report/10
purl Message for coke stored.
kid51 cotto: In the build tools, the usage() functions and the options-handling functionality were the only features not amenable to an object-oriented approach. 23:15
cotto: So they got segregated into "Auxiliary" modules. 23:16
cotto That approach makes sense.
kid51 cotto: At YAPC in Buffalo in 2004, I fell under petdance's spell. "Test everything," he ranted. "Use 'prove'." "Use Devel::Cover." 23:17
... and the rest is history!
Austin Anyone here grok ".lex" ? 23:19
cotto There are worse spells to fall under, although I'd argue that some parts of the build process get (almost) enough testing by the build process itself.
Austin Hey, kid51.
23:19 brbrooks joined
Austin kid51: Did you have a change to look over that TreeUnit wiki thing I posted, and if so do you have any thoughts? 23:20
Whiteknight Austin: I know .lex, what do you need?
cotto like Luthor?
Whiteknight exactly like luthor
23:20 donaldh joined
kid51 Austin: I skimmed it, but there's a lot I don't understand. I will have to take another look at it. 23:21
Austin Bide - nopaste coming
kid51 But I have some TT I have to prioritize.
nopaste "Austin" at 98.235.55.43 pasted "Funny use of lexicals" (22 lines) at nopaste.snit.ch/17165 23:22
Austin kid51: okay, thanks.
WhiteKnight, cotto: In the pasted function, there is a search for $LINE, then a lexical-ization of the value(?). Then I can't tell if it gets used or not (depends if line= is assign or bind). Any clues? 23:23
23:23 amuck joined
Whiteknight thats an assign 23:24
Austin How do you know it's an assign? 23:25
23:25 confound joined
Whiteknight At least, I'm pretty sure = is assign in PIR 23:25
now I can't remember
pmichaud = is nearly always "set"
it's not 'assign 23:26
Austin Yeah, about that...
Whiteknight ah, so I have it backwards in my head right now
pmichaud I don't think there's a PIR notation for assign. If there is, it's probably :=
Whiteknight Austin: so to answer your question, that PIR function is borked
Austin Actually, I've seen both.
One right after another: $P0 = new something ; $P0 = 0
I assumed the =0 was an assignment, doing some kind of overloaded thing. 23:27
pmichaud the first is just 'new'
Whiteknight the = sign is syntactic sugar for PASM opcodes
pmichaud the second is 'set'
$P0 = new something # new $P0, something
Whiteknight so "$P0 = new Foo" is the same as "new $P0, Foo"
pmichaud $P0 = 0 # set $P0, 0
that PIR function is _not_ borked. 23:28
Austin Yeah, it's in PCT::Node.pir, iter = new 'Iterator', $P0 ; iter = 0
What pir function?
pmichaud the one in the nopaste
Austin The one I nopasted.
pmichaud (17165)
Austin Good. So what does it do?
Whiteknight Oh, i guess it depends on the return value of the lineof method
actually, I'm too retarded tonight to look at code 23:29
Austin WhiteKnight, I don't think so. I think it depends on the syntaxd.
*syntax
pmichaud it's the equivalent of the Perl 6: my $line := CALLER::<$line>
jdv79 does rakudo have io yet?
pmichaud basically it's declaring a local $line lexical that is initialized to whatever contextual $line has already been established
masak jdv79: as in files? yes.
Whiteknight and sockets I think 23:30
masak well, the bare minimum in terms of sockets... :/
Austin Okay, but then there's the .lex-ification of '$LINE'. I don't see a store-lex, so is $LINE now a localized lexical alias for the "my $line" register?
pmichaud .lex always associates a lexical symbol with a register
we don't need a separate store-lex 23:31
Austin Or is the local $LINE divergent from the register "my $line" ?
Aha.
Whiteknight is signing off now, so he doesn't give more stupid answers to questions
Austin Goodnight, WhiteKnight.
Whiteknight goodnight
23:31 brbrooks joined
pmichaud so in the PIR code, the find_caller_lex looks through the dynamic scope for a context with a lexical named '$line', and sets line to that 23:31
Austin pmichaud: So .lex
pmichaud the next line associates '$line' in the current context with that register
Austin pmichaud: So .lex creates a link or alias from the lexpad to a register? 23:32
pmichaud alias is probably closest analogy
lexpads in Parrot are really just register numbers
Austin 's eyes cross. 23:33
How's that?
pmichaud consider:
Austin I thought a lexpad was an allocated memory thing. A pmc.
pmichaud $P0 = new 'Foo'
Austin Ok, considering.
purl considering is was dipping below freezing just a couple weeks ago
pmichaud $P1 = $P0
$P0 = new 'Bar'
$P1 and $P0 point to different PMCs, yes?
Austin Yes. 23:34
pmichaud okay
.lex '$a', $P0
$P0 = new 'Foo'
$P1 = find_lex '$a'
$P1 and $P0 point to the same PMC
Austin Huh.
pmichaud also
.lex '$a', $P0
$P1 = new 'Foo' 23:35
store_lex '$a', $P1
$P1 and $P0 point to the same PMC
Austin Okay, sure.
So .lex is like .local, in that it creates an alias.
pmichaud yes.
Austin For a register.
pmichaud but that alias can be modified by other called functions 23:36
Austin Does it only work with register?
pmichaud er, that register can be modified by other called functions
Austin How is that?
pmichaud .lex '$a', $P0
foo() # foo is a called function that does "store_lex '$a', something"
Austin Perhaps a better question would be, how is the aliasing implemented? 23:37
pmichaud say $P0 # points to whatever foo set it to
lexicals are actually indexes into the register frame 23:38
Austin Does the find_lex return a "pointer to the aliased register, on the stack or in the VM" or does re-entering the scope of the aliasing function re-establish the alias between register and lexpad, or ...?
pmichaud a lexpad is a PMC that stores mapping between the symbol name and the register itself in the register frame
find_lex returns the register itself (more)
so in 23:39
.lex '$a', $P0
$P1 = find_lex '$a' # same as $P1 = $P0
Austin Okay. And is the register frame something like the Sparc's?
pmichaud I don't know about that (not familiar with Sparc). Each invocation of a sub allocates a new context (which contains the registers needed by the sub)
I have to run to the grocery store to pick up some ingredients -- bbiab 23:40
Austin Okay.
dalek rrot: r39954 | jkeenan++ | trunk/t/steps (5 files):
Use most traditional form of File::Path::mkpath(), as it seems to work best across all versions of Perl and File::Path.
23:42
bacek_at_work hi again 23:45
purl oh, you're back!
bacek_at_work I'm not "back", stupid girl. I'm bacek! 23:46
rg1 *rotfl* 23:50
pmichaud back 23:56
bacek_at_work pmichaud: any objections about string interpolations in NQP? 23:58