Parrot 3.8.0 "Magrathea" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 29 September 2011.
00:13 soh_cah_toa joined
cotto “Jargon live in the swamps. They feed on attention. If they can’t get that, they’ll settle for fear and confusion.” - www.laurenipsum.org/mostly-lost 00:55
01:55 plobsing joined 02:41 khisanth_ joined 02:48 bluescreen joined 03:55 tewk__ joined 04:00 tewk joined 04:38 nbrown joined 04:45 fperrad joined
dalek rrot: 4660252 | petdance++ | / (2 files):
Added splint macros on functin pointers
04:57
05:18 SHODAN joined
moritz seen soh_cah_toa 05:54
aloha soh_cah_toa was last seen in #perl6 5 hours 41 mins ago joining the channel.
alvis_ cotto: That was excellent! Thank you. (The project's probably the best chance I have up bootstraping the wife and kids, so I think I'll pledge! :-) 06:45
Btw, anyone/all, is converting tests under '/t' from perl5 to pir still a priority (or, even, a way to contribute to parrot)? (See trac.parrot.org/parrot/wiki/Convert...sToParrot) 06:56
07:13 baest joined
cotto Hmmm. 07:23
07:23 lucian joined
cotto We're coming to dislike PIR as much as anything. pure-pir tests aren't bad, but PIR isn't something we hope to keep longer than necessary 07:24
that said, changing tests isn't a bad introduction to pir 07:27
alvis_ Hmm, ok. So, I'm mostly guessing here, you're now looking at bypassing PIR and going straight to bytecode, something like what is set out in docs of the PACT project? 07:47
cotto yup 07:52
07:59 dod joined
alvis_ Wow, ok. So ..., Winxed, not NQP, especially for any new tool development, correct? 08:04
Do I still look to PCT for compiler development? Or, should I look at something else? 08:05
The reason I ask is, I was planning one (1) writing a toy compiler in PCT to, kinda get my bearings, so-to-speak, and then start to work on my "real" project, over the next year or so. 08:06
Ok, well ..., I still "ought" to spend some time in PIR (besides, there's gonna be legacy support for quite some time), so I'll expend some effort converting perl5 tests and go from there. 08:16
Thank you.
08:16 contingencyplan joined 08:48 Khisanth joined
lucian alvis_: several new parrot language implementations are/have been hosted in an external language initially 08:49
winxed has (had?) a C++ stage 0, the JS one is written with jison i think, and my crap python was written in python3 08:50
alvis_ lucian: thanks. I downloaded winxed, just yesterday evening, and was digging around, trying to figure that bit out. 08:54
lucian alvis_: its stage1 is written in itself
alvis_ I'm still, very much, just trying to get my bearings about Parrot. 08:55
lucian i believe NotFound is (was?) working on a C++ backend to winxed, in order to be able to ditch stage0
alvis_ yeah, I noticed that. (I.e., the bootstrap from stage0 to stage1) I appreciate you pointing that out though. 08:57
dalek kudo/nom: e0cc816 | masak++ | NOMMAP.markdown:
[NOMMAP.markdown] typography fixes
09:48
11:37 Psyche^ joined 11:45 benabik joined
benabik o/ #parrot 11:56
dalek kudo/nom: 3fd3534 | moritz++ | t/spectest.data:
run mro.t
12:06 jsut joined
lucian morepypy.blogspot.com/2011/10/more-...egies.html 12:13
12:16 whiteknight joined 12:20 elmex joined 13:39 nbrown joined
dalek rrot: 0fa73fa | mls++ | src/runcore/subprof.c:
use mem_sys_ variants for memory allocations
13:41
mls (hmm, could as well have used mem_internal_...) 13:46
13:58 RobertLJ joined 14:34 dmalcolm joined 14:42 RobertLJ1 joined
benabik Random thought: What does parrot do when a sub runs off the end? Do we just automatically do a .return () ? 15:21
sorear I suspect segfault but it wouldn't be hard to test 15:24
benabik I don't think it does, but PIR may be inserting that return.
mls imcc adds a .return 15:25
benabik Yeah. Looks like. 15:26
An empty sub compiles to "set_returns_pc (empty FIA)". 15:27
mls yes, at the end of imcc's expand_pcc_sub() 15:28
benabik mls: I just used pbc_{disassemble,dump} on a file that was just an empty sub. 15:29
mls it adds it if the last op is not ret/exit/end/branch/returncc
benabik: yes, I also used pbc_dump when I debugged the debug section problems 15:30
benabik Actually, that's odd. It sets the return information and doesn't call returncc or similar. 15:31
(According to disassemble)
mls bug in disassemble?
benabik mls: Maybe.
mls there should also be a returncc
pbc_dump -d shows a returncc 15:33
benabik Yup. Looks like pbc_disassemble ends one op too early.
mls the "while (line->next)" in Parrot_disassemble() looks suspicious. 15:36
(src/embed.c)
ooh, the code is from 2002 ;) 15:39
benabik The packfile format hasn't changed in a while.
Likely it was wrong in 2002 as well. :-D
mls it's the Parrot Debugger 0.0.1
ah, there used to be a bogus next element at the end 15:42
benabik mls++ # source code archeology
mls git++ 15:43
The bogus element was eliminated last year with commit 2976f129 15:45
benabik mls: Do you want to commit the fix, or should I? 15:49
mls I'll commit it
(just testing...)
seems to work
benabik Yeah, I fixed it locally too, just to see.
mls pushed 15:53
dalek rrot: 126d255 | mls++ | src/embed.c:
Fix Parrot_disassemble to not ignore the last line of a sub.

Before commit 2976f129 there used to be a bogus last element at the end of the line chain. The element is now gone, but Parrot_disassemble was not adapted.
15:59 logie joined
mls wow, it never occured to me that "$P0 = $S0" and "$P0 = $P1" are two totally different beasts 16:05
"$P0 = $S0" changes the contents of the PMC, while "$P0 = $P1" just assigns the register 16:07
(That probably shows I'm just a PIR beginner...)
benabik I somewhat dislike the confusion between setting registers and assigning to containers in PIR. 16:08
mls yes, those errors are really hard to track down
I stumbled over this while I did some PCT optimization. I had to change a "$P0 = $S0" to "$P0 = box $S0" at one place to make it work 16:10
benabik Actually, I'm not sure there's even a way to disambiguate it at the opcode level.
mls IMHO "set" should just set the register, i.e. box it. But it's much too late for such a change... 16:11
box it -> box the argument 16:12
benabik I think all set_[INS]_* ops set the register. But all {set,assign}_P_* ops let a VTABLE interfere. 16:13
(I _think_)
mls (except for P_P)
benabik set_P_P doesn't? 16:14
mls no, it just sets the register
benabik Guh.
mls (that's the "$P0 = $P1" case
benabik Ah. assign_P_P is the vtable. 16:15
mls setref_P_P is the set vtable
benabik Fun. 16:17
mls (I don't even know the difference between set and assign...)
(assign seems to copy, set seems to "bind") 16:20
benabik I would have expected set to set registers and assign to have the destination be a container.
The strange part to me is that assign_p[in] call VTABLE_set_*_native instead of VTABLE_assign_*_native like _ps 16:22
16:25 fperrad joined
dukeleto ~~ 16:26
benabik Ah. PDD17 seems to make it somewhat clearer. set is intended to directly reference while assign is supposed to copy. 16:28
Hm. Fun fact: VTABLE_set_number_same seems to never be called. 16:29
Actually, I see no indication that set_*_same is ever used. 16:31
Wow. set_bignum_int VTABLE just sounds scary. Tells a PMC to morph another PMC and then get the value. 16:32
mls hmm, book/draft/ch10_opcode_reference.pod says that "set" sets a register to a value, which is not really true 16:33
benabik Oh, no. 2nd read: Morph yourself to a BIGNUM and then set.
Why is that a fundamental operation?
mls ;)
benabik (Ignoring the fact that I hate morph.)
dukeleto mls: sometimes our PDDs lie. If you find one, feel free to fix it. 16:39
16:51 plobsing_ joined
cotto ~~ 17:28
18:47 contingencyplan joined
nine What exactly do I have to do to end up in a nested runloop? 19:11
dukeleto nine: i think if you have exceptions that throw exceptions is one way to do it 19:14
nine: whiteknight++ could give you a much more detailed answer, i am sure
cotto #ps in 11 19:18
dukeleto: how do your tuits look for the next few days? 19:19
19:22 benabik joined
benabik nine: I believe you also end up in a runloop when a PIR VTABLE gets called. 19:23
cotto it happens any time you call PIR that calls C that calls PIR 19:24
dukeleto cotto: meh-ish 19:25
cotto dukeleto: ok. I'm pretty busy and would like to offload some of the M0 research 19:26
dukeleto cotto: where does your m0 research live? 19:27
cotto dukeleto: afk for now
gist.github.com/1277224 - dart hello world 19:34
#ps time 19:35
20:00 benabik_ joined
dukeleto Util: would very much like to see your parrot_coverage.pl in a repo somewhere 20:12
20:14 soh_cah_toa joined
benabik_ dukeleto: You just want everything in a repo, don't you? 20:15
NotFound ~~ 20:19
Sorry, lacked the time for #ps
cotto benabik_: he's not alone 20:20
Util dukeleto: I will have the changes in the master branch soon.
dukeleto Util++ 20:28
benabik_: twitter.com/#!/dukeleto/status/123...2963277824 20:29
github.com/cdleary/cdlre - JS-compatible regular expressions implemented in JS 20:30
cotto dukeleto++ 20:39
20:39 nbrown joined 21:00 GodFather joined
Coke needs a webdev minion, btw, if anyone is job hunting. 21:04
21:25 PacoLinux_ joined
dalek kudo/macros: 991ade7 | masak++ | src/Perl6/Actions.pm:
decontainerize quasi AST before attr lookup

Many nqp ops will decontainerize for you, but getattr is not one of them. Occasionally the quasiquote would be hidden inside a container layer and the getattr would fail. This is now fixed.
21:33
21:40 perlite joined 22:13 aloha joined 23:03 bubaflub joined 23:10 whiteknight joined
whiteknight good evening, #parrot 23:16
cotto 'evening, whiteknight
whiteknight hello cotto, how are you doing? 23:19
cotto tired. want more tuits 23:20
also, sleep
whiteknight yeah, more of both is always good 23:30
I am in the middle of a severe tuit shortage
23:31 benabik joined
cotto what's happening? 23:31
whiteknight oh, nothing in particular. Just bad scheduling and busy evenings 23:32
23:33 RobertLJ joined
benabik o/ #parrot 23:46
cotto hi benabik 23:47