|
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
|
|||