Parrot 4.0.0 "Hyperstasis" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 18 January 2012.
02:52 PacoAir joined
cotto ~~ 03:05
03:54 bluescreen joined
dalek Heuristic branch merge: pushed 138 commits to parrot/threads by niner 09:32
09:47 Psyche^ joined 10:03 mj41 joined 10:13 zby_home joined 11:18 lucian joined 12:12 mj41 joined
dalek kudo/stdinit: 50d8eec | jnthn++ | src/Perl6/Grammar.pm:
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
13:19 Psyche^ joined 13:30 PacoAir joined 13:57 seme joined
seme hi guys 13:59
masak o/ 14:01
seme anyone here work on puffin? 14:15
lucian seme: i did during gsoc last year 14:22
let's say it's sleeping atm
seme he hee 14:25
I've just checked out the code to get familiar with it but it doesn't build
I'm just troubleshooting it now 14:26
lucian haven't looked at it much 14:27
as the docs say, the compiler is pretty much useless, it's there just as p.o.c. for the object system
object system was building and passing tests last time
seme ok let me just look at that 14:28
lucian but it's been half a year since then 14:29
seme yeah there must have been some changes... it looks like it can't find the OS class 14:30
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
lucian seme: also, make sure you're getting it from bitbucket 14:31
seme: the one from github may be outdated. hg-git broke at some point 14:32
seme yeah I branched it from tip
is that the right point to fork from?
lucian sure, as long as it's on bitbucket 14:33
seme also I'm running parrot 3.6.0 does that matter? 14:34
with winxed 1.0.0
lucian dunno 14:35
14:40 whiteknight joined
whiteknight good morning, #parrot 14:45
seme morning, or afternoon in my case ;)
whiteknight hello seme, how are you doing today? 14:46
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
We need a lot more Python love around here 14:48
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:49
lucian whiteknight: :) 14:50
whiteknight lucian: howdy! We were just talking about your brainchild 14:51
lucian whiteknight: even before you joined 14:52
whiteknight oh, okay. Sorry I'm late to the show :(
lucian not that long before 14:53
whiteknight either way, my point stands: we need more Python 14:54
lucian sure 14:55
what's the status of 6model, btw?
new asm?
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
so, I waited until I could come up with an answer, which has taken until....just this moment
lucian heh
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
dalek Heuristic branch merge: pushed 150 commits to parrot/whiteknight/pcc_ops by Whiteknight 14:58
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.
seme looks like pynie doesn't build either :) is pynie.googlecode.com/svn/trunk/ the right location for pynie or is that hosted somewhere else too? 15:00
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
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)
seme: i believe latest pynie is on bb too
it's even more outdated though
seme aah ok 15:02
let me check that out :)
lucian (more outdated than puffin)
i tried it before starting work on puffin and the repl didn't even start
seme he hee well at the moment I can't get any of them to even build 15:03
lucian shrugs
this is part of why i'm against parrot's deprecation policy (if it still has it)
unmaintaned code will rot anyway, maintained code can adapt quickly 15:04
whiteknight We've basically abandoned the deprecation policy 15:32
good riddance, I say 15:33
dalek Heuristic branch merge: pushed 22 commits to winxed/pcc_ops by Whiteknight 15:56
16:15 lucian joined
lucian whiteknight: ah, good 16:15
dukeleto ~~ 16:52
seme: pynie was abandoned long ago 16:53
seme: it probably builds on some ancient parrot versions, though
17:02 lucian joined
cotto ~~ 17:19
whiteknight, what's the long-term goal of pcc_ops? 17:24
I think I can see where you're going. +1 to merge when you're ready. 17:26
whiteknight cotto: eventually to get rid of get_params and fill_params 17:53
dalek rrot: 7aef369 | Whiteknight++ | / (371 files):
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
whiteknight good, I finally got that stuff merged and finally got something committed to master 18:01
it's been months
cotto It appears to be gsoc time again 18:09
google-opensource.blogspot.com/2012...is-on.html
whiteknight holy crap, already?
cotto seriously 18:10
I think someone broke into my apartment and stole January.
at least they didn't get my birthday ;)
whiteknight yeah, I don't have any January to spare either. You know, because of the economy 18:16
blah. implicitly-defined "self" in PIR is a pain 18:27
because if you have a :method, IMCC automatically adds a "self" variable, which automatically generates a get_params call 18:28
dalek p/bs: cac5607 | jnthn++ | src/ (3 files):
Give SCs an extra slot set for code refs.
18:49
p/bs: 9d4ef26 | jnthn++ | t/serialization/02-types.t:
Add (currently failing) tests for serializing types with methods.
p/bs: 4a1b573 | jnthn++ | src/6model/serialization.c:
Start sketching out serialization of static code refs.
p/bs: 4a9b1a7 | jnthn++ | src/ (3 files):
Update deserialization API to take an initial list of the compilation unit's static code refs.
p/bs: 3410ab0 | jnthn++ | t/serialization/0 (2 files):
Update tests for new deserialization API.
p/bs: ff11af1 | jnthn++ | src/ (3 files):
Add an op for adding a code ref to an SC.
p/bs: d0e53db | jnthn++ | t/serialization/02-types.t:
Update test case to bring it inline with current design. Now survives serialization, though not deserialization.
p/bs: 016bec6 | jnthn++ | src/6model/serialization.c:
Static code ref deserialization. Tests for this now pass.
19:08 jsut joined
seme ok figured out what was up with puffin... the ./objects/puffin directory wasn't there which caused the build to fail 19:25
slowly getting there
:)
whiteknight seme++ 19:27
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:30
sorear whiteknight: at a first guess, I'd say because IMCC wasn't always part of libparrot 19:33
it was originally a standalone program that wrote .pbc files
whiteknight sorear: that's as good a guess as any, though this code has been worked on since IMCC was moved into Parrot 19:34
19:51 mj41 joined
seme hey guys can someone give me a hand with this... proto infix:B+<<B; is looser(infix:<+>) is pirop('shl') { ... } 20:06
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 <<
and that is causing the grammar for pynie not to compile 20:07
at least I think so
masak seme: sounds like you're having some encoding problems, maybe. 20:11
seme: the character you're talking about is Ā«
it can be produced in vim using Ctrl+K < <
(in insert mode) 20:12
seme hrm... let me open the file in vi and see what shows up 20:13
ok same thing shows up... any idea what the character should be so I can replace and resave the file? 20:15
20:23 perlite_ joined
seme I think I've got it.. :) 20:31
20:33 bluescreen joined
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:39
whiteknight seme: you just can't win today, it seems. What are you working on, pynie or puffin? 20:42
sorear seme: what text editor are you using? what is LANG / LC_ALL / LC_CTYPE ? 20:43
<Bravo> <plus> is what you get if you start with <left-guillemot>, encode it in UTF-8, then strip the high bits 20:44
whiteknight I think Rakudo can benefit from the new get_context op. I'm going to experiment with it now 20:47
sorear: you might know the answer to this one: Does NQP use the argument binder, or is that only for Rakudo? 20:49
sorear I don't know offhand what 20:50
"the argument binder" is 20:51
what does get_context do?
whiteknight nevermind, I answered my own question 20:52
get_context returns the current CallContext PMC much more quickly than any previous sequence 20:53
Rakudo gets the CallContext and passes it to a custom argument binder for parameter processing
so with the new op, they can get the CallContext faster, if indeed they are doing two separate steps
sorear Rakudo doesn't use an op to do that
Rakudo uses :call_sig parameters, which are bound to the current CallContext 20:54
seems rather hackish, but I guess it saves an op
whiteknight right, and :call_sig implicitly creates a get_params op, which is expensive 20:55
taking out :call_sig and replacing it with a call to get_context should be much faster
sorear if you don't have any parameters, don't you still need a get_params to throw the "too many arguments" error?
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
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... :)
sorear code 2 is and has always been ENOENT, "No such file or directory"
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
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
sorear: yes
sorear that's... suprising
whiteknight sorear: that is, yes with caveats
it doesn't look like NQP uses the troublesome :method flag, which is one of the biggest caveats
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
Maybe I should put together a benchmark for demonstration
gist.github.com/1740148 21:07
so, about a half second savings on my machine using get_context instead of .param pmc sig :call_Sig
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
whiteknight when you think about how many .subs Rakudo uses for nested lexical scopes et al, the savings can add up quickly 21:09
plus, every little bit counts
seme WOOT!!!! got pynie to build :) 21:20
just a little updating to work with the 3.9 version of parrot
sorear seme: any comment on my editor questions? 21:21
whiteknight seme++
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 ?
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
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...
yeah I am using textmate 21:24
I'm not sure what LC_ALL/LC_CTYPE, etc are
sorear iirc, ircii supports alt-p for scrolling
environment variables 21:25
seme the only one that is set is lang which is en_GB.UTF-8
sorear that's your problem 21:26
LANG has to be shouted
seme shouted? 21:27
sorear uppercase?
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?
they
they're completely different
I'm hoping "lang" was a type
typo
seme $LANG
:) 21:29
yeah was just me typing quickly
well I've updated it now and it looks like everything is building and running
sorear anyway, I blame ircii for your problems
I never regretted switching from ircii to irssi 21:30
you should too. :p
seme thanks 21:32
22:03 rurban_ joined 22:06 contingencyplan joined 22:25 jsut_ joined