Camelia, the Perl 6 bug

IRC log for #parrot, 2012-02-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
02:52 PacoAir joined #parrot
03:05 cotto ~~
03:54 bluescreen joined #parrot
09:32 dalek Heuristic branch merge: pushed 138 commits to parrot/threads by niner
09:47 Psyche^ joined #parrot
10:03 mj41 joined #parrot
10:13 zby_home joined #parrot
11:18 lucian joined #parrot
12:12 mj41 joined #parrot
12:53 dalek rakudo/stdinit: 50d8eec | jnthn++ | src/Perl6/Grammar.pm:
12:53 dalek rakudo/stdinit: Make my &infix:<c> = ... add the required categorical. (Note, bit messy, but categorical handling is in for an overhaul anyway when we get qbootstrap in place.)
12:53 dalek rakudo/stdinit: review: https://github.com/rakudo/rakudo/commit/50d8eec815
13:19 Psyche^ joined #parrot
13:30 PacoAir joined #parrot
13:57 seme joined #parrot
13:59 seme hi guys
14:01 masak o/
14:15 seme anyone here work on puffin?
14:22 lucian seme: i did during gsoc last year
14:22 lucian let's say it's sleeping atm
14:25 seme he hee
14:25 seme I've just checked out the code to get familiar with it but it doesn't build
14:26 seme I'm just troubleshooting it now
14:27 lucian haven't looked at it much
14:27 lucian as the docs say, the compiler is pretty much useless, it's there just as p.o.c. for the object system
14:27 lucian object system was building and passing tests last time
14:28 seme ok let me just look at that
14:29 lucian but it's been half a year since then
14:30 seme yeah there must have been some changes... it looks like it can't find the OS class
14:30 seme I have to tell you I'm very new to all this. I discovered it as I was trying to study how to write a compiler/language
14:31 lucian seme: also, make sure you're getting it from bitbucket
14:32 lucian seme: the one from github may be outdated. hg-git broke at some point
14:32 seme yeah I branched it from tip
14:32 seme is that the right point to fork from?
14:33 lucian sure, as long as it's on bitbucket
14:34 seme also I'm running parrot 3.6.0 does that matter?
14:34 seme with winxed 1.0.0
14:35 lucian dunno
14:40 whiteknight joined #parrot
14:45 whiteknight good morning, #parrot
14:45 seme morning, or afternoon in my case ;)
14:46 whiteknight hello seme, how are you doing today?
14:47 seme so far so good.. I'm reviewing puffin at the moment to see if I can understand it
14:47 whiteknight it would be good if you could. That project needs more love
14:48 whiteknight We need a lot more Python love around here
14:49 seme well I'm new to all this and it looks like a steep learning curve... but what else am I going to do while everyone else is asleep ;)
14:50 lucian whiteknight: :)
14:51 whiteknight lucian: howdy! We were just talking about your brainchild
14:52 lucian whiteknight: even before you joined
14:52 whiteknight oh, okay. Sorry I'm late to the show :(
14:53 lucian not that long before
14:54 whiteknight either way, my point stands: we need more Python
14:55 lucian sure
14:55 lucian what's the status of 6model, btw?
14:55 lucian new asm?
14:56 whiteknight lucian: I had started on a simple copy+paste port, then cotto asked if that was the best way to go forward and I didn't have an answer
14:56 whiteknight so, I waited until I could come up with an answer, which has taken until....just this moment
14:56 lucian heh
14:57 lucian as i said before, an MOP would be the only real advantage parrot would have over the competition
14:57 whiteknight I've got a pcc-related branch I want to get merged soon, and I want to check in on the threading stuff, but I am definitely going to get back to work on 6model before spring
14:58 dalek Heuristic branch merge: pushed 150 commits to parrot/whiteknight/pcc_ops by Whiteknight
14:59 whiteknight msg cotto If you have a moment would you please take a quick look at the whiteknight/pcc_ops branch? The changes are mostly orthogonal additions at this point, and I would like to merge to master soon
14:59 aloha OK. I'll deliver the message.
15:00 seme looks like pynie doesn't build either :) is http://pynie.googlecode.com/svn/trunk/ the right location for pynie or is that hosted somewhere else too?
15:01 lucian as a python developer at least, pypy is ahead by so much. one can even call different pypy vms in pypy (calling the regex vm from the python vm)
15:01 seme oooh I see that there is a launchpad link
15:01 lucian if i wrote a ruby pypy vm, i could call it from the python one, but only at the lowest level (eval this string)
15:01 lucian seme: i believe latest pynie is on bb too
15:01 lucian it's even more outdated though
15:02 seme aah ok
15:02 seme let me check that out :)
15:02 lucian (more outdated than puffin)
15:02 lucian i tried it before starting work on puffin and the repl didn't even start
15:03 seme he hee well at the moment I can't get any of them to even build
15:03 * lucian shrugs
15:03 lucian this is part of why i'm against parrot's deprecation policy (if it still has it)
15:04 lucian unmaintaned code will rot anyway, maintained code can adapt quickly
15:32 whiteknight We've basically abandoned the deprecation policy
15:33 whiteknight good riddance, I say
15:56 dalek Heuristic branch merge: pushed 22 commits to winxed/pcc_ops by Whiteknight
16:15 lucian joined #parrot
16:15 lucian whiteknight: ah, good
16:52 dukeleto ~~
16:53 dukeleto seme: pynie was abandoned long ago
16:53 dukeleto seme: it probably builds on some ancient parrot versions, though
17:02 lucian joined #parrot
17:19 cotto ~~
17:24 cotto whiteknight, what's the long-term goal of pcc_ops?
17:26 cotto I think I can see where you're going.  +1 to merge when you're ready.
17:53 whiteknight cotto: eventually to get rid of get_params and fill_params
17:59 dalek parrot: 7aef369 | Whiteknight++ | / (371 files):
17:59 dalek parrot: Merge from master. we had some conflicts in the ops because of the earlier green_threads merge, so those conflicts have been resolved and the new ops files have been generated
17:59 dalek parrot: review: https://github.com/parrot/parrot/commit/7aef369055
18:01 whiteknight good, I finally got that stuff merged and finally got something committed to master
18:01 whiteknight it's been months
18:09 cotto It appears to be gsoc time again
18:09 cotto http://google-opensource.blogspot.com/2012​/02/google-summer-of-code-2012-is-on.html
18:09 whiteknight holy crap, already?
18:10 cotto seriously
18:10 cotto I think someone broke into my apartment and stole January.
18:10 cotto at least they didn't get my birthday ;)
18:16 whiteknight yeah, I don't have any January to spare either. You know, because of the economy
18:27 whiteknight blah. implicitly-defined "self" in PIR is a pain
18:28 whiteknight because if you have a :method, IMCC automatically adds a "self" variable, which automatically generates a get_params call
18:49 dalek nqp/bs: cac5607 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Give SCs an extra slot set for code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/cac560741f
18:49 dalek nqp/bs: 9d4ef26 | jnthn++ | t/serialization/02-types.t:
18:49 dalek nqp/bs: Add (currently failing) tests for serializing types with methods.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/9d4ef26e76
18:49 dalek nqp/bs: 4a1b573 | jnthn++ | src/6model/serialization.c:
18:49 dalek nqp/bs: Start sketching out serialization of static code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/4a1b573ec6
18:49 dalek nqp/bs: 4a9b1a7 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Update deserialization API to take an initial list of the compilation unit's static code refs.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/4a9b1a7867
18:49 dalek nqp/bs: 3410ab0 | jnthn++ | t/serialization/0 (2 files):
18:49 dalek nqp/bs: Update tests for new deserialization API.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/3410ab0634
18:49 dalek nqp/bs: ff11af1 | jnthn++ | src/ (3 files):
18:49 dalek nqp/bs: Add an op for adding a code ref to an SC.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/ff11af14ec
18:49 dalek nqp/bs: d0e53db | jnthn++ | t/serialization/02-types.t:
18:49 dalek nqp/bs: Update test case to bring it inline with current design. Now survives serialization, though not deserialization.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/d0e53db5e5
18:49 dalek nqp/bs: 016bec6 | jnthn++ | src/6model/serialization.c:
18:49 dalek nqp/bs: Static code ref deserialization. Tests for this now pass.
18:49 dalek nqp/bs: review: https://github.com/perl6/nqp/commit/016bec62f5
19:08 jsut joined #parrot
19:25 seme ok figured out what was up with puffin... the ./objects/puffin directory wasn't there which caused the build to fail
19:25 seme slowly getting there
19:25 seme :)
19:27 whiteknight seme++
19:30 whiteknight Can anybody tell me why IMCC defines a "SymHash" type which is just an array with inefficient lookups when we have a good Hash type in libparrot already?
19:33 sorear whiteknight: at a first guess, I'd say because IMCC wasn't always part of libparrot
19:33 sorear it was originally a standalone program that wrote .pbc files
19:34 whiteknight sorear: that's as good a guess as any, though this code has been worked on since IMCC was moved into Parrot
19:51 mj41 joined #parrot
20:06 seme hey guys can someone give me a hand with this... proto infix:B+<<B;   is looser(infix:<+>)  is pirop('shl')     { ... }
20:06 seme oddly when I paste it here some odd character shows up as B+ but in my code it looks like a very small version of <<
20:07 seme and that is causing the grammar for pynie not to compile
20:07 seme at least I think so
20:11 masak seme: sounds like you're having some encoding problems, maybe.
20:11 masak seme: the character you're talking about is «
20:11 masak it can be produced in vim using Ctrl+K < <
20:12 masak (in insert mode)
20:13 seme hrm... let me open the file in vi and see what shows up
20:15 seme ok same thing shows up... any idea what the character should be so I can replace and resave the file?
20:23 perlite_ joined #parrot
20:31 seme I think I've got it.. :)
20:33 bluescreen joined #parrot
20:39 seme hrm... looks like my install of parrot doesn't come with nqp or brew screwed up the packaging... I'm going to build from source and see what happens
20:42 whiteknight seme: you just can't win today, it seems. What are you working on, pynie or puffin?
20:43 sorear seme: what text editor are you using?  what is LANG / LC_ALL / LC_CTYPE ?
20:44 sorear <Bravo> <plus> is what you get if you start with <left-guillemot>, encode it in UTF-8, then strip the high bits
20:47 whiteknight I think Rakudo can benefit from the new get_context op. I'm going to experiment with it now
20:49 whiteknight sorear: you might know the answer to this one: Does NQP use the argument binder, or is that only for Rakudo?
20:50 sorear I don't know offhand what
20:51 sorear "the argument binder" is
20:51 sorear what does get_context do?
20:52 whiteknight nevermind, I answered my own question
20:53 whiteknight get_context returns the current CallContext PMC much more quickly than any previous sequence
20:53 whiteknight Rakudo gets the CallContext and passes it to a custom argument binder for parameter processing
20:53 whiteknight so with the new op, they can get the CallContext faster, if indeed they are doing two separate steps
20:53 sorear Rakudo doesn't use an op to do that
20:54 sorear Rakudo uses :call_sig parameters, which are bound to the current CallContext
20:54 sorear seems rather hackish, but I guess it saves an op
20:55 whiteknight right, and :call_sig implicitly creates a get_params op, which is expensive
20:55 whiteknight taking out :call_sig and replacing it with a call to get_context should be much faster
20:55 sorear if you don't have any parameters, don't you still need a get_params to throw the "too many arguments" error?
20:56 seme whiteknight: well I was initially just trying to learn about writing compilers hense my find of parrot... I thought that it would be fun to try and use python as a language to implement and that led me to pynie and puffin... I've gotten puffin to build now and I realize it is just an experiment for how the objects could be written... now I'm trying to get pynie to build.  I fixed the encoding issue and now I'm getting a different error
20:56 whiteknight Rakudo's argument binder bypasses the parrot logic for that anyway
20:57 sorear so, whiteknight, you are saying that a PIR sub with no .params can be called with ANY number of arguments?
20:57 seme Can't stat /usr/local/Cellar/parrot/3.6.​0/lib//languages/nqp/nqp.pbc, code 2. that doesn't exist... so I'm trying to figure out how it works so I can fix that... :)
20:57 sorear code 2 is and has always been ENOENT, "No such file or directory"
20:57 whiteknight sorear: argument processing always happens callee side, and the callee can process them however. By default Parrot uses the get_params opcode to do the processing
20:58 sorear whiteknight: and without .params, there is no get_params?
20:58 whiteknight sorear: but Rakudo uses get_params to do nothing but get the CallContext, and then passes to a second processing routine
20:58 whiteknight sorear: yes
20:58 sorear that's... suprising
20:58 whiteknight sorear: that is, yes with caveats
20:58 whiteknight it doesn't look like NQP uses the troublesome :method flag, which is one of the biggest caveats
20:59 whiteknight sorear: my point is, Rakudo is processing arguments twice: First to get the CallContext, once to do the custom binding. I want to remove the first one
20:59 whiteknight Maybe I should put together a benchmark for demonstration
21:07 whiteknight https://gist.github.com/1740148
21:07 whiteknight so, about a half second savings on my machine using get_context instead of .param pmc sig :call_Sig
21:08 whiteknight and that's while I'm running the Rakudo build in another terminal, so the numbers are a little inflated
21:08 sorear as far as I'm concerned, go for it
21:09 whiteknight when you think about how many .subs Rakudo uses for nested lexical scopes et al, the savings can add up quickly
21:09 whiteknight plus, every little bit counts
21:20 seme WOOT!!!! got pynie to build :)
21:20 seme just a little updating to work with the 3.9 version of parrot
21:21 sorear seme: any comment on my editor questions?
21:21 whiteknight seme++
21:22 seme sorear: sorry what was the question?
21:22 sorear 12:43 <@sorear> seme: what text editor are you using?  what is LANG / LC_ALL /  LC_CTYPE ?
21:22 sorear 12:44 <@sorear> <Bravo> <plus> is what you get if you start with  <left-guillemot>, encode it in UTF-8, then strip the high bits
21:23 sorear I guess you don't have an IRC client with highlighting and scrollback
21:23 seme sorear: he hee I'm using a weird client at the moment that I'm not too familiar with...
21:24 seme yeah I am using textmate
21:24 seme I'm not sure what LC_ALL/LC_CTYPE, etc are
21:24 sorear iirc, ircii supports alt-p for scrolling
21:25 sorear environment variables
21:25 seme the only one that is set is lang which is en_GB.UTF-8
21:26 sorear that's your problem
21:26 sorear LANG has to be shouted
21:27 seme shouted?
21:27 sorear uppercase?
21:28 seme odd... I didn't set it... I think it is set by default to that
21:28 sorear do you have lang set, or LANG?
21:28 sorear they
21:28 sorear they're completely different
21:28 sorear I'm hoping "lang" was a type
21:28 sorear typo
21:28 seme $LANG
21:29 seme :)
21:29 seme yeah was just me typing quickly
21:29 seme well I've updated it now and it looks like everything is building and running
21:29 sorear anyway, I blame ircii for your problems
21:30 sorear I never regretted switching from ircii to irssi
21:30 sorear you should too. :p
21:32 seme thanks
22:03 rurban_ joined #parrot
22:06 contingencyplan joined #parrot
22:25 jsut_ joined #parrot

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

Parrot | source cross referenced