Camelia, the Perl 6 bug

IRC log for #parrot, 2011-10-11

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:13 soh_cah_toa joined #parrot
00:55 cotto “Jargon live in the swamps. They feed on attention. If they can’t get that, they’ll settle for fear and confusion.” - http://www.laurenipsum.org/mostly-lost
01:55 plobsing joined #parrot
02:41 khisanth_ joined #parrot
02:48 bluescreen joined #parrot
03:55 tewk__ joined #parrot
04:00 tewk joined #parrot
04:38 nbrown joined #parrot
04:45 fperrad joined #parrot
04:57 dalek parrot: 4660252 | petdance++ | / (2 files):
04:57 dalek parrot: Added splint macros on functin pointers
04:57 dalek parrot: review: https://github.com/parrot/parrot/commit/46602529a1
05:18 SHODAN joined #parrot
05:54 moritz seen soh_cah_toa
05:54 aloha soh_cah_toa was last seen in #perl6 5 hours 41 mins ago joining the channel.
06:45 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:56 alvis_ Btw, anyone/all, is converting tests under '/t' from perl5 to pir still a priority (or, even, a way to contribute to parrot)? (See http://trac.parrot.org/parro​t/wiki/ConvertTestsToParrot)
07:13 baest joined #parrot
07:23 cotto Hmmm.
07:23 lucian joined #parrot
07:24 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:27 cotto that said, changing tests isn't a bad introduction to pir
07:47 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:52 cotto yup
07:59 dod joined #parrot
08:04 alvis_ Wow, ok.  So ..., Winxed, not NQP, especially for any new tool development, correct?
08:05 alvis_ Do I still look to PCT for compiler development?  Or, should I look at something else?
08:06 alvis_ 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:16 alvis_ 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 alvis_ Thank you.
08:16 contingencyplan joined #parrot
08:48 Khisanth joined #parrot
08:49 lucian alvis_: several new parrot language implementations are/have been hosted in an external language initially
08:50 lucian 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:54 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
08:55 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
08:57 alvis_ yeah, I noticed that. (I.e., the bootstrap from stage0 to stage1) I appreciate you pointing that out though.
09:48 dalek rakudo/nom: e0cc816 | masak++ | NOMMAP.markdown:
09:48 dalek rakudo/nom: [NOMMAP.markdown] typography fixes
09:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0cc816218
11:37 Psyche^ joined #parrot
11:45 benabik joined #parrot
11:56 benabik o/ #parrot
11:56 dalek rakudo/nom: 3fd3534 | moritz++ | t/spectest.data:
11:56 dalek rakudo/nom: run mro.t
11:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3fd353406b
12:06 jsut joined #parrot
12:13 lucian http://morepypy.blogspot.com/2011/10/more​-compact-lists-with-list-strategies.html
12:16 whiteknight joined #parrot
12:20 elmex joined #parrot
13:39 nbrown joined #parrot
13:41 dalek parrot: 0fa73fa | mls++ | src/runcore/subprof.c:
13:41 dalek parrot: use mem_sys_ variants for memory allocations
13:41 dalek parrot: review: https://github.com/parrot/parrot/commit/0fa73fa182
13:46 mls (hmm, could as well have used mem_internal_...)
13:58 RobertLJ joined #parrot
14:34 dmalcolm joined #parrot
14:42 RobertLJ1 joined #parrot
15:21 benabik Random thought: What does parrot do when a sub runs off the end?  Do we just automatically do a .return () ?
15:24 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.
15:25 mls imcc adds a .return
15:26 benabik Yeah.  Looks like.
15:27 benabik An empty sub compiles to "set_returns_pc (empty FIA)".
15:28 mls yes, at the end of imcc's expand_pcc_sub()
15:29 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
15:30 mls benabik: yes, I also used pbc_dump when I debugged the debug section problems
15:31 benabik Actually, that's odd.  It sets the return information and doesn't call returncc or similar.
15:31 benabik (According to disassemble)
15:31 mls bug in disassemble?
15:31 benabik mls: Maybe.
15:31 mls there should also be a returncc
15:33 mls pbc_dump -d shows a returncc
15:33 benabik Yup.  Looks like pbc_disassemble ends one op too early.
15:36 mls the "while (line->next)" in Parrot_disassemble() looks suspicious.
15:36 mls (src/embed.c)
15:39 mls ooh, the code is from 2002 ;)
15:39 benabik The packfile format hasn't changed in a while.
15:39 benabik Likely it was wrong in 2002 as well.  :-D
15:39 mls it's the Parrot Debugger 0.0.1
15:42 mls ah, there used to be a bogus next element at the end
15:42 benabik mls++ # source code archeology
15:43 mls git++
15:45 mls The bogus element was eliminated last year with commit 2976f129
15:49 benabik mls: Do you want to commit the fix, or should I?
15:49 mls I'll commit it
15:49 mls (just testing...)
15:49 mls seems to work
15:49 benabik Yeah, I fixed it locally too, just to see.
15:53 mls pushed
15:53 dalek parrot: 126d255 | mls++ | src/embed.c:
15:53 dalek parrot: Fix Parrot_disassemble to not ignore the last line of a sub.
15:53 dalek parrot:
15:53 dalek parrot: Before commit 2976f129 there used to be a bogus last element at the end of the
15:53 dalek parrot: line chain. The element is now gone, but Parrot_disassemble was not adapted.
15:53 dalek parrot: review: https://github.com/parrot/parrot/commit/126d25548b
15:59 logie joined #parrot
16:05 mls wow, it never occured to me that "$P0 = $S0" and "$P0 = $P1" are two totally different beasts
16:07 mls "$P0 = $S0" changes the contents of the PMC, while "$P0 = $P1" just assigns the register
16:07 mls (That probably shows I'm just a PIR beginner...)
16:08 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
16:10 mls 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.
16:11 mls IMHO "set" should just set the register, i.e. box it. But it's much too late for such a change...
16:12 mls box it -> box the argument
16:13 benabik I think all set_[INS]_* ops set the register.  But all {set,assign}_P_* ops let a VTABLE interfere.
16:13 benabik (I _think_)
16:13 mls (except for P_P)
16:14 benabik set_P_P doesn't?
16:14 mls no, it just sets the register
16:14 benabik Guh.
16:14 mls (that's the "$P0 = $P1" case
16:15 benabik Ah.  assign_P_P is the vtable.
16:15 mls setref_P_P is the set vtable
16:17 benabik Fun.
16:17 mls (I don't even know the difference between set and assign...)
16:20 mls (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.
16:22 benabik The strange part to me is that assign_p[in] call VTABLE_set_*_native instead of VTABLE_assign_*_native like _ps
16:25 fperrad joined #parrot
16:26 dukeleto ~~
16:28 benabik Ah.  PDD17 seems to make it somewhat clearer.  set is intended to directly reference while assign is supposed to copy.
16:29 benabik Hm.  Fun fact:  VTABLE_set_number_same seems to never be called.
16:31 benabik Actually, I see no indication that set_*_same is ever used.
16:32 benabik Wow.  set_bignum_int VTABLE just sounds scary.  Tells a PMC to morph another PMC and then get the value.
16:33 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.
16:33 benabik Why is that a fundamental operation?
16:33 mls ;)
16:33 benabik (Ignoring the fact that I hate morph.)
16:39 dukeleto mls: sometimes our PDDs lie. If you find one, feel free to fix it.
16:51 plobsing_ joined #parrot
17:28 cotto ~~
18:47 contingencyplan joined #parrot
19:11 nine What exactly do I have to do to end up in a nested runloop?
19:14 dukeleto nine: i think if you have exceptions that throw exceptions is one way to do it
19:14 dukeleto nine: whiteknight++ could give you a much more detailed answer, i am sure
19:18 cotto #ps in 11
19:19 cotto dukeleto: how do your tuits look for the next few days?
19:22 benabik joined #parrot
19:23 benabik nine: I believe you also end up in a runloop when a PIR VTABLE gets called.
19:24 cotto it happens any time you call PIR that calls C that calls PIR
19:25 dukeleto cotto: meh-ish
19:26 cotto dukeleto: ok.  I'm pretty busy and would like to offload some of the M0 research
19:27 dukeleto cotto: where does your m0 research live?
19:27 cotto dukeleto: afk for now
19:34 cotto https://gist.github.com/1277224 - dart hello world
19:35 cotto #ps time
20:00 benabik_ joined #parrot
20:12 dukeleto Util: would very much like to see your parrot_coverage.pl in a repo somewhere
20:14 soh_cah_toa joined #parrot
20:15 benabik_ dukeleto: You just want everything in a repo, don't you?
20:19 NotFound ~~
20:19 NotFound Sorry, lacked the time for #ps
20:20 cotto benabik_: he's not alone
20:20 Util dukeleto: I will have the changes in the master branch soon.
20:28 dukeleto Util++
20:29 dukeleto benabik_: https://twitter.com/#!/dukele​to/status/123857742963277824
20:30 dukeleto https://github.com/cdleary/cdlre - JS-compatible regular expressions implemented in JS
20:39 cotto dukeleto++
20:39 nbrown joined #parrot
21:00 GodFather joined #parrot
21:04 * Coke needs a webdev minion, btw, if anyone is job hunting.
21:25 PacoLinux_ joined #parrot
21:33 dalek rakudo/macros: 991ade7 | masak++ | src/Perl6/Actions.pm:
21:33 dalek rakudo/macros: decontainerize quasi AST before attr lookup
21:33 dalek rakudo/macros:
21:33 dalek rakudo/macros: Many nqp ops will decontainerize for you, but getattr is not
21:33 dalek rakudo/macros: one of them. Occasionally the quasiquote would be hidden
21:33 dalek rakudo/macros: inside a container layer and the getattr would fail. This is
21:33 dalek rakudo/macros: now fixed.
21:33 dalek rakudo/macros: review: https://github.com/rakudo/rakudo/commit/991ade7447
21:40 perlite joined #parrot
22:13 aloha joined #parrot
23:03 bubaflub joined #parrot
23:10 whiteknight joined #parrot
23:16 whiteknight good evening, #parrot
23:16 cotto 'evening, whiteknight
23:19 whiteknight hello cotto, how are you doing?
23:20 cotto tired.  want more tuits
23:20 cotto also, sleep
23:30 whiteknight yeah, more of both is always good
23:30 whiteknight I am in the middle of a severe tuit shortage
23:31 benabik joined #parrot
23:31 cotto what's happening?
23:32 whiteknight oh, nothing in particular. Just bad scheduling and busy evenings
23:33 RobertLJ joined #parrot
23:46 benabik o/ #parrot
23:47 cotto hi benabik

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

Parrot | source cross referenced