Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Long live Git! github.com/parrot/parrot | git clone git://github.com/parrot/parrot.git | Please test rakudo with bleeding edge parrot!
Set by moderator on 28 November 2010.
fbrito whiteknight: done :) 00:00
whiteknight ...and closed
congrats 00:01
cotto_work fbrito: good job so far. You're just a point away from first place. 00:02
cotto_work wonders what the scores will look like in a month 00:03
We're definitely going to need more tasks.
fbrito 388 tasks so far 00:05
(completed tasks)
by 209 students
in 9 days :o 00:06
bluescreen thats impressive 00:08
fbrito wow! an average of 43,1 tasks/day
and 1,89 points/task
00:10 theory left
whiteknight dukeleto: ping 00:10
davidfetter mmm...minion^Wstudents 00:11
dukeleto whiteknight: pong 00:14
whiteknight dukeleto: I was on my local embed_api branch and did a git rebase master. The results suck and I want to undo it 00:15
any way to get back to how it was before the rebase without deleting and cloning?
dukeleto whiteknight: git rebase --abort ?
whiteknight No rebase in progress?
(I'm already done rebasing) 00:16
at the end I am viewing the wreckage. Plus, it changes all the history which is not good
can I delete that branch, and then pull it in again from origin? 00:17
dukeleto whiteknight: that is one way 00:18
whiteknight: you don't care about the current state of the branch?
whiteknight no
dukeleto whiteknight: make sure you have no uncommitted files in your repo that you care about
whiteknight all the info is on origin, I just want to get back to there
ok
dukeleto whiteknight: do you know the sha1 of the last commit that you want? 00:19
whiteknight I can find it
dukeleto whiteknight: look at the output of "git log"
whiteknight: when you have that, you can do "git reset --hard $sha1"
whiteknight: but another way is to delete the branch, then do a "git fetch && git checkout -b my_branch origin/my_branch" 00:20
whiteknight: if you can't find the commit you want, then the 2nd way is better
dukeleto has a numb face from the dentist and will most probably pass out soon 00:21
whiteknight blah, everything is weird. It's telling me now that the master branch is 467 commits divergent from origin. I'm just deleting the repo and re-cloning 00:22
davidfetter mmm...lidocaine :d 00:23
hope your teeth are better now, dukeleto :)
dukeleto whiteknight: you rebased master or you rebased embed_api ? 00:24
whiteknight I rebased embed_api
at least, I thought i did
dukeleto whiteknight: not knowing everything you did makes it hard to tell you what to do
whiteknight who knows at this point. It's all deleted
dukeleto whiteknight: learning is fun! 00:25
whiteknight I was on the embed_api branch, and I did a git rebase master
then the universe fell off it's axis and I deleted things
dukeleto whiteknight: that rebased embed_api onto master, which probably freaked out. Did you fix a bunch of merge conflicts?
whiteknight: anyway, i guess it doesn't matter 00:26
davidfetter: meh
whiteknight dukeleto: yes, lots of conflicts
dukeleto whiteknight: yeah, rebase isn't a good idea if you expect conflicts, because you will get conflicts for every commit. A merge will only give you conflicts once. 00:29
whiteknight: i like your email about the dep policy, and I agree, DEPRECATED.pod used to be enough, but now it isn't.
whiteknight: i was thinking that we need programmatic access to deprecation info.
whiteknight: we need to store deprecations in a YAML/JSON/whatever file, so we can automate various things, and write tools that understand deprecations 00:30
whiteknight: instead of the current process, where an actual human has to do a lot of work for every deprecation
fbrito (top 5 GCI students have 130 points. bottom 100 have 131 points: img828.imageshack.us/img828/2369/gr...thday.png) 00:33
00:35 Andy left
dukeleto fbrito: there is quite a spectrum of students 00:40
fbrito: where did that graph come from?
fbrito there is a button "CSV Export" on the rank page 00:41
00:44 hercynium left
whiteknight incoming 00:48
dalek rrot/embed_api2: 557e85c | Whiteknight++ | / (37 files):
Fix conflicts in merge. Untested
whiteknight oh. Maybe not 00:49
now I have to see if this hog builds
cotto_work has anyone read the context threading paper? 00:52
whiteknight Me!! 01:04
cotto_work whiteknight: is the basic idea easy to summarize? It's on my list for tonight. 01:05
whiteknight yes, hold on
01:08 bluescreen left
whiteknight cotto_work: the idea is that you can generate some machine code (like a mini-JIT) to call opcodes in a row, instead of calling them in a loop through function pointers like we do in the fast core 01:09
basically, you cut opcode dispatch down to nothing, align the VM program counter with the hardware IP register, and go easy on the branch predictor
dngor Unrolling the dispatch loop for basic blocks? 01:10
cotto_work whiteknight: thanks
whiteknight cotto_work: it all will make sense when you read the paper
cotto_work it makes sense now, mostly 01:11
fbrito wow, that must be some pretty advanced stuff 01:12
whiteknight fbrito: that's just the tip of the iceburg
fbrito now I have to quote you. "I don't know what any of those words mean, but WE MUST HAVE IT" 01:13
whiteknight :)
dngor: it would be the runcore, so you do it for all blocks. Plus, you can cache for individual blocks so hotspots don't need to be re-compiled 01:14
01:19 bluescreen joined
whiteknight bluescreen: ping 01:20
bluescreen whiteknight: pong 01:23
hi
whiteknight bluescreen: I created the new embed_api2 branch, and used it to bring the embedding work up to date with trunk 01:24
bluescreen greap
whiteknight it's a little bit of a mess. I have it building on my machine, but fails with some weird errors
bluescreen great
whiteknight I think some of the recent string encoding changes in master are causing weirdness
bluescreen I was about to implement missing features like Parrot_api_load_language
and test cases
whiteknight nice
bluescreen should i jump to the new branch, then? 01:25
whiteknight Yes, I think so. I'm going to try to get it fixed so you can keep working on what you want to do
bluescreen ok
cotto_work goes home 01:36
whiteknight how do I create a binary-encoded STRING? 01:38
davidfetter it's a DPG thang 01:48
BCD*
dalek rrot/embed_api2: ae620cc | Whiteknight++ | src/ (3 files):
changes necessary so we build. Run fails horribly, but we build
01:51
rrot/embed_api2: 8b92734 | Whiteknight++ | src/embed/pmc.c:
we have to specify that the fpmc bytes are a binary string, otherwise defaults to ASCII
01:53 kid51 joined
whiteknight okay, I think I have it working again 02:01
cotto ~~ 02:02
whiteknight welcome back cotto. I missed you
02:03 dmalcolm left
cotto I missed me too. 02:05
02:06 dip left
dalek rrot/embed_api2: b50f1fc | Whiteknight++ | tools/dev/pbc_to_exe.pir:
fix pbc_to_exe so we build and pass all tests again
02:11
whiteknight bluescreen: all tests pass again. You can get back to work on the new embed_api2 branch
bluescreen thanks whiteknight++ 02:13
02:14 TypeNameHere_____ left
kid51 Are there any branches which would benefit from my running 'make test' over the coming weekend? 02:19
02:23 davidfetter left, frodwith left 02:35 preflex left
whiteknight kid51: embed_api2 02:36
02:37 preflex joined
whiteknight time for bed! 02:43
02:43 whiteknight left 02:51 plobsing joined 02:54 theory joined
dalek rrot/tt532_headerizer_refactor: dd3c6c9 | jkeenan++ | / (3 files):
Refactor more code into testable subroutines, place them into Functions.pm, test them in 01_functions.t.
03:08
03:21 preflex left
kid51 msg whiteknight smolder.parrot.org/app/projects/rep...tails/1464 successful smoke of embed_api2 on linux/i386 03:22
aloha OK. I'll deliver the message.
03:25 preflex joined
cotto dukeleto, ping 03:32
03:39 kid51 left 04:12 preflex left 04:14 preflex joined
fbrito seen moritz 04:21
aloha moritz was last seen in #parrot 9 hours 37 mins ago saying "plenty of time to next release".
04:36 preflex left 04:40 preflex joined
fbrito hm, I didn't find any task related to Ruby on GCI 04:41
04:42 bluescreen left
cotto That's surprising. 04:54
fbrito maybe because of the Ruby Summer of Code 04:55
cotto quite possibly 05:05
05:05 zby_ joined 05:06 zby__ left 05:21 PerlPilot joined 05:25 PerlJam left 05:26 PerlJam joined 05:27 PerlPilot left 05:36 zby_ left, zby__ joined 06:15 theory left
dukeleto cotto: pong 06:27
fbrito: i was going to make a gci task for cardinal, but i went to the dentist instead
cotto dukeleto, what would be the drawbacks of requiring perl 5.10 or 5.12 other than that older OSs would need an upgraded version? 06:28
fbrito and? found any dental caries? :P
cotto fbrito, one look at the wikipedia article on caries is enough to make me want to get up and brush and floss for a good 10 minutes. 06:29
fbrito good thing that next year my sister will finish her school of dentistry :) 06:32
they are usually so expensive
(ok, my english sucks. next year my sister will finish her studies on dentistry) 06:33
plobsing oh. I thought she was building a dental school. those are quite expensive ;) 06:34
06:36 jhelwig left
fbrito ahhaa, that's why I rewrote the sentence :P 06:36
cotto We don't mind if English is your fourth language. 06:38
fbrito I fix her computer and she fixes my teeth. seems like a good deal
cotto or second
fbrito I would say second :)
then, german, and maybe spanish (maybe) 06:39
dukeleto cotto: i am still thinking :) 06:41
cotto dukeleto, think on then. I'd hate to rush into such a decision.
dukeleto cotto: we should see which version various linux distros use. Does anyone actually ship 5.8.x still ? 06:42
cotto no idea
dukeleto cotto: i think debian stable recently went to 5.10
sorear fbrito: there is a running joke here that English is bacek's fourth language, after Russian, Rude Russian, and Very Rude Russian
opbots names
dukeleto cotto: do we expect people to be able to compile a new perl to hack on parrot ? do we want that? 06:43
cotto dukeleto, no. As J Random Hacker, I wouldn't bother if I had to find a non-distro perl just to play with Parrot.
fbrito sorear: ahahha, good to know. 06:44
cotto what does RTEMS use?
debian stable going to 5.10 sounds promising 06:46
NotFound fbrito: my motto is: Instead of worrying about bad translations to english, I write bad english myself. 06:51
cotto if it's bad enough, someone will feel obligated to fix it 06:52
fbrito ok, time to go to bed 06:57
cotto fbrito, 'night
dukeleto cotto: what does RTEMS use for what? 06:58
fbrito what time is it in the places where you guys live?
cotto dukeleto, for their build environment
plobsing clock?
cotto is on US Pacific coast
dukeleto aloha, clock?
NotFound fbrito: 7:58 in Spain
aloha dukeleto: dukeleto: LAX: Wed, 22:58 PST / CHI: Thu, 00:58 CST / NYC: Thu, 01:58 EST / UTC: Thu, 06:58 UTC / LON: Thu, 06:58 GMT / BER: Thu, 07:58 CET / TOK: Thu, 15:58 JST / SYD: Thu, 17:58 EST
cotto 2300-ish
plobsing 2h00
dukeleto it is 11pm where I am (PST)
cotto: RTEMS mostly depends on the gcc toolchain, so it would be whatever gcc requires, which is probably something very ancient 06:59
fbrito 4am here :o
NotFound It's always a good time in Parrot world.
dukeleto cotto: why do you want to upgrade our perl deps? Because of Pod::Simple ?
fbrito: do you have tasks to work on?
cotto dukeleto, I'm just thinking through what the tradeoffs would be.
dukeleto cotto: do you know what version the current strawberry perl is? 07:00
cotto dropping code from our repo is nice, but not if we lose something more valuable by doing so
dukeleto, 5.12 and 5.10 are available 07:01
fbrito dukeleto: I am waiting moritz approve my claim request here: www.google-melange.com/gci/task/sho...9079857380
dukeleto fbrito: now you have it :) 07:02
NotFound I'm starting to think that supporting more than 10 years old C compilers but requiring less than 5 years perl does not make any sense.
fbrito oh, didn't know you could also do that. thank you :)
dukeleto cotto: i think we lose a lot by requiring a newer Perl. We lose a lot of new people trying Parrot, because they don't want to compile or install their own perl 07:03
cotto: of course, I wish everyone was using perl 5.12 already.
cotto dukeleto, how common is 5.8.x?
dukeleto cotto: it is basically the de-facto ancient perl on most servers
cotto: if something has perl installed, it is probably 5.8.x. Some people still run 5.6.x, but they deserve what they get. 07:04
cotto In that case I'm inclined to stick with it, especially since we're not in any sort of pain by the requirement.
thanks for the brain picking
dukeleto cotto: i would vote to keep our dep at 5.8.4 or whatever it is, and include whatever CPAN modules we need.
cotto: it is very easy to include CPAN modules. It is not so easy to figure out why people aren't trying Parrot. 07:05
NotFound I'll suggest reviewing if the parts that can benefit most from recent perl may be rewritten with parrot tools.
cotto NotFound, you mean the ones that will be orders of magnitude slower? ;) 07:06
dukeleto I would actually like to get rid of some of our deps, such as those required for "make smoke"
NotFound cotto: I don't care about of order of magnitude if they are between nanoseconds and centiseconds. 07:07
cotto NotFound, try running opsc --core sometime
plobsing cotto: that's just an argument for reducing the number of ops in the core library ;) 07:08
NotFound Maybe you should rewrite it in winxed ;)
cotto I'm glad it's self-hosted and the code is way nicer to deal with (and can now be extended in ways the previous code couldn't), but you can't call it faster.
seen coke 07:09
aloha coke was last seen in #parrot 9 hours 28 mins ago saying "I assume it was to have consistent 3 letter names for the subsystem. -1 from me.".
fbrito seen moritz 07:11
aloha moritz was last seen in #parrot 12 hours 27 mins ago saying "plenty of time to next release".
cotto dukeleto, what kind of gymnastics are required to bundle a module that's also in core and dtrt? 07:12
NotFound About the cpan modules thing, is not so easy for people not used to perl. It took me a while to figure how to get all modules updated about 3 years ago.
For example, recent harness requiring a recent harness before installing %-) 07:13
dukeleto NotFound: we can probably downgrade our harness requirement when we deal with "make smoke" deps. That is what required the newer Test::Harness 07:16
cotto: i don't think there is anything different. It doesn't matter that we bundle a CPAN module that is also in core 07:17
cotto: we can tell our code to use our version of Pod::Simple, not the version on a users system
cotto dukeleto, that's what I suspected, especially since we haven't heard any reports of goofiness with 5.12 07:18
dukeleto cotto: all we do is set our local perl lib/ dir to be before all core directories
cotto: which is what we do already
cotto easy peasy 07:19
NotFound Why is Pod a problem? We need to parse pod to build parrot? 07:24
07:30 fbrito left
cotto bacek_at_work, ping 07:32
msg bacek_at_work What'd be the consequences for the current gc (gc_ms) of removing constant PMCs? 07:35
aloha OK. I'll deliver the message.
dalek tracwiki: v30 | cotto++ | CottoTasklist 07:37
tracwiki: stupid todo list never seems to get smaller
tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff
moritz aloha: msg fbrito just go ahead and ask your question 07:44
aloha moritz: OK. I'll deliver the message.
bacek_at_work cotto, current gc is gc_ms2 :) 08:00
cotto ok 08:01
what would removing the constant flag mean for the current code? 08:04
bacek_at_work basically - we have to call Parrot_gc_register_pmc for "constant" pmc in gc_ms2_allocate_pmc_header for deprecation cycle 08:06
during cycle we can check all places in core when pmc_new_constant called and ensure that allocated pmcs are properly marked with gc_registery hack 08:07
after - just rip off pmc_new_constant and PObj_constant_FLAG
dukeleto NotFound: it is part of the building of our documentation
bacek_at_work 2. During cycle we can cleanup gc_ms2 guts to remove special handling for constant pmcs. They will be marked through registry anyway 08:08
cotto bacek_at_work, why would that require a deprecation cycle? Isn't it an internal-only change? 08:09
bacek_at_work ripping off of pmc_new_constant requires deprecation cycle.
NotFound dukeleto: building the documentation is not a fundamental part for someone wanting to give parrot a try. They can use docs.parrot.ord/ 08:10
org
cotto Ah. Well, we have one of those coming up soon. 08:11
bacek_at_work cotto, yes. That's why I want to put it now :) 08:12
dukeleto NotFound: i hear ya. it is something to think about
NotFound If the only change will be to ignore the constant flag, you can just dispatch pmc_new_constant to pmc_new
bacek_at_work NotFound, no. To preserve "semantic" of keeping these objects alive we have to register them in gc_registery in pmc_new_constant. 08:13
but it's purely internal changes, yes. 08:14
NotFound bacek_at_work: then do that during the deprecation cycle.
bacek_at_work We can do it now, actually. 08:15
Then remove pmc_new_constant after deprecation cycle.
NotFound I know. I mean, don't kill it until the end of the cycle ;)
bacek_at_work Ah, ok :)
NotFound If we do things that way, the final killing should be fairly easy, and even can be temporarily reverted if some important reason appears. 08:22
In general, not just in this case. 08:23
bacek_at_work NotFound, agreed 08:24
anyway
time to go home
see you soon
cotto proposal: negating a Boolean doesn't make sense
NotFound cotto: what do you mean? Make Booleans immutable? 08:26
plobsing True + (-True) = False ?
cotto no, just that it's not something that applies to Booleans
sorear True + (-True) = 0 in Perl 6 08:27
NotFound I don't not fail to understand ;)
cotto sorear, by design?
sorear cotto: yes. enums degenerate to numbers when provoked 08:28
cotto ok
plobsing but in this case perl 6 is coercing to non-bool types before the operations occur. or to perform the operations (is there a difference?) 08:29
NotFound Ah, you mean unary minus, not logical negation? 08:30
cotto NotFound, yes
NotFound sees the light 08:31
cotto sorry for the ambiguity
NotFound Must go now. Later. 08:33
cotto bye
08:46 fperrad joined
cotto msg dukeleto trac.parrot.org/parrot/ticket/1682 (remove unused substr VTABLE function) would make a good gci task. 09:02
aloha OK. I'll deliver the message.
dalek a: ffd1d8a | fperrad++ | lua (2 files):
now, binary encoding needed
09:03
09:08 bacek joined
cotto sleeps 09:14
09:43 dip joined
dalek rrot/generational_gc: d8eee3e | bacek++ | src/io/buffer.c:
Properly fix merge conflict. Previous workaround isn't applicable anymore.
10:05
10:44 luben left 12:03 dip left 12:04 dip joined 12:54 lucian joined 13:16 cotto left 13:33 whiteknight joined
whiteknight good morning, #parrot 13:35
Coke perlbrews 5.8.4 to test our min requirement.
whiteknight msg bluescreen I have a commit ready (not pushed) that refactors PDB_backtrace and die_from_exception. die_from_exception no longer calls Parrot_exit. Parrot_api_get_result now returns the last unhandled exception object. All very cool stuff 13:36
aloha OK. I'll deliver the message.
Coke I cannot install perl5.8.4 via perlbrew. 13:37
Coke rolls his eyes.
whiteknight how old is perl 5.8.4? 13:39
whiteknight knows very little about perl
moritz Coke: what error do you get?
13:39 frodwith joined
nopaste "coke" at 192.168.1.3 pasted "last page of build log" (20 lines) at nopaste.snit.ch/26375 13:40
Coke finds www.nntp.perl.org/group/perl.perl5....33873.html 13:41
which says "just edit the makefile by hand, doofus!
moritz ugh
Coke realizes that he has no vested interest in making this work on 5.8.4 anyway, so just stops working on this ticket. 13:42
13:42 Psyche^ joined, Patterner left, Psyche^ is now known as Patterner
Coke easy peasy! 13:42
whiteknight Parrot's documentation should call the user a doofus more often. Apparently it's what the other VMs are doing
Coke whiteknight: that email is from Andy D. , and he didn't actually call anyone a doofus. I was editorializing. 13:43
whiteknight Coke: I know :) 13:48
14:20 dmalcolm joined
atrodo More software should be honest and call its users doofus 14:32
14:51 allison joined 14:54 lucian left
Coke aloha, allison. 15:10
allison Coke, hi 15:24
15:27 JimmyZ joined, plobsing left 15:47 fperrad left 15:50 fperrad joined
NotFound whiteknight: ping 15:57
whiteknight NotFound: pong 15:58
NotFound whiteknight: possible task for GCI: add suppor for chunked transfer to LWP;Protocols 15:59
I mean, Protocol
moritz didn't fperrad implement that?
NotFound moritz: I tested just this morning and still fails, chunk lenghts gets mixed with the content. 16:00
moritz NotFound: then youre knowledge is much fresher than mine :-) 16:01
NotFound That Is a shame, disallows lot of possible parrot real world usages.
whiteknight NotFound: how hard is it to do? 16:02
these are students, and I don't know much about it myself
moritz and it's written in PIR :( 16:03
NotFound whiteknight: the work by itseld should not be complicated, but is PIR with a lot of labels.
The task of de-chunking, I've done it with even with my 80' style basic interprter. 16:04
Now that I think about it, there is a simple way to do it. Instead of doing it during load, wait for the end of the transfer and then dechunk. 16:07
Not fast, but we can always improve later.
Having it working is usefule enough, even if slow. 16:08
16:09 hercynium joined
whiteknight okay 16:21
if you can write up a task description, I will post it
NotFound I'm going to add a test/demonstration to a version of winxed examples/ajax.winxed, will be easier to me that writing a detailed description. 16:25
whiteknight NotFound: if you have any ideas for Winxed projects that students can do, I will add them too
I've been adding PLA projects that I think of 16:26
NotFound: you said Winxed supports closures? 16:27
NotFound whiteknight: at the current point, just allow to use it for examples, tests ot whatever is enough.
whiteknight: yes
whiteknight NotFound: have you ever written a Y-combinator in Winxed?
NotFound Same syntax as anonymous functions in javascript.
whiteknight Or done the Man-Boy test in it?
(both of those might make very cool projects) 16:28
moritz and are nice stress tests for closure implementations
NotFound whiteknight: good idea, I don't like writing that type of things. 16:29
whiteknight Okay, I think I am going to add both those two as tasks in GCI. The student can write out a Y-combinator and a Man-Boy test implementation in Winxed to see if it passes both 16:30
Coke ponders slipping in some partcl tasks.
moritz "fix partcl to compile on parrot HEAD" :-)
Coke thought it did that, at least.
Coke sighs. 16:31
moritz wasn't serious 16:32
Coke ah. it was certainly plausible that you were. ;) 16:33
moritz sorry if it wasn't clear
16:36 JimmyZ left
Coke yah, it still mostly works. :| 16:39
mikehh Coke: haven't tested that for a while - partck or partcl-nqp or both? 16:43
partcl
Coke they won't work out of the box.
I don't think.
haven't incorporated the git-fix, and there are test failures in both due to parrot borkages.
16:51 theory joined
whiteknight "Parrot undocumented features" 16:54
16:55 fbrito joined 16:56 cotto joined
cotto ~~ 16:59
atrodo I was about to say "morning cotto", but that's a lie to me now 17:00
nopaste "NotFound" at 192.168.1.3 pasted "winxed ajax example with chunked transfer decoding added" (186 lines) at nopaste.snit.ch/26378 17:01
NotFound Here is. Do you think is clear enough for students? 17:02
whiteknight let me look 17:05
hello cotto
17:05 theory left
whiteknight NotFound: does that follow the algorithm in LWP code? 17:07
NotFound whiteknight: the task is add that algotithm to LWP.
whiteknight okay, if the student reads this, will they be able to find the code in LWP to change?
NotFound whiteknight: I'll wite a description now. The code is the complement. 17:08
whiteknight okay
nopaste "NotFound" at 192.168.1.3 pasted "chunked encoding task description" (11 lines) at nopaste.snit.ch/26379 17:15
17:32 PacoLinux left 17:33 PacoLinux joined
whiteknight NotFound: I'll read that in a minute 17:37
NotFound whiteknight: no urgence 17:38
cotto_work when creating a new gci task, should we use melange's form?
whiteknight cotto_work: If you're a mentor, yes 17:39
you can prototype it elsewhere and paste it in if you want 17:40
cotto_work wfm 17:44
whiteknight NotFound: you say you want the implemented chunked receive, but the code example you have now has a "Send" method 17:45
Do you want send or receive implemented?
NotFound whiteknight: send is XMLHttpRequest jargon for making a request. 17:48
These javascript guys makes such a nice method names... 17:49
whiteknight ok 17:50
NotFound The idea is that you "open" a request, and then send it to the server.
whiteknight gotcha. My memories of javascript are coming back to me 17:51
NotFound In asynchronous mode makes more sense. This is only synchronous, so you receive during send X-) 17:52
17:55 jhelwig joined
NotFound The idea of that example is to be able to quickly adapt javascript http code to winxed. 17:56
whiteknight nice 17:59
The more I think about it, the more I want a JavaScript compiler and the more I want it to be written in Winxed 18:00
that would be wonderful
NotFound I also think about that, but time is limited.
dukeleto howdy 18:01
18:03 [hercynium] joined 18:07 hercynium left, [hercynium] is now known as hercynium
cotto_work dukeleto: ignore my msg if you don't have tuits. I'll plan on making a gci task out of that ticket tonight. 18:12
dukeleto cotto_work: works for me 18:14
18:19 lucian joined, ilbot2 joined
moderator Parrot 2.10.1 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Long live Git! github.com/parrot/parrot | git clone git://github.com/parrot/parrot.git | Please test rakudo with bleeding edge parrot!
moritz left
whiteknight NotFound: I added that task to GCI 18:31
I've added 5 tasks today so far, need more 18:33
NotFound whiteknight: good! If some student pick it, I'll build a temple to the google gods.
whiteknight NotFound: the Google god temple looks exactly like a JavaScript compiler written in Winxed :) 18:34
NotFound Nice try.
18:39 preflex left 18:44 preflex joined, moritz joined
lucian whiteknight: there are javascript compilers written in javascript 18:52
whiteknight: several, in fact
whiteknight lucian: if we had a way to run javascript on Parrot, that would work
lucian whiteknight: you could bootstrap with an existing javascript runtime 18:53
generate PIR from the javascript AST
NotFound lucian: targeting what?
whiteknight that's actually not a bad idea, really 18:54
lucian: any projects in particular you think are the best to work with?
lucian whiteknight: jison is bison for js
whiteknight: and there's a project called cafe. in a sec i'll find the links 18:55
whiteknight: github.com/zaach/jison
github.com/zaach/cafe
NotFound There are also java compilers targeting javascript, and other languages, so if we get a javascript compiler we also have several more languages for free.
lucian NotFound: but they'll all kinda suck 18:56
NotFound: i agree it might be useful for bootstrapping said languages, but GWT is anything but nice
(speaking about the generated JS)
whiteknight First off, I really like this jison 18:57
We could easily use that to bootstrap a javascript compiler. All we need is the code generation backend
NotFound lucian: hey, is a free offer, don't be too exigent ;)
lucian NotFound: true :)
whiteknight Second, the source to jison is *much* easier to read and understand than bison is 18:58
lucian whiteknight: yep. and cafe is just that, a javascript parser generated by jison
atrodo bison is magic by all accounts
lucian whiteknight: that too, yes
whiteknight: in fact, there might be a way to transform the javascript AST to PAST
whiteknight I really really want an LALR parser generator for Parrot. I may try to adapt jison for winxed soon, I think
lucian: Good idea, then we can use PAST optimizations, if that branch ever merges 18:59
lucian whiteknight: all this is coming from me thinking of reusing PyPy's python compiler to replace pynie :)
atrodo whiteknight> Which one is LALR again? I can never remember which, similar looking compiler acronym is which 19:00
lucian whiteknight: but my description is much too hand-wavy, i fear this approach will never cover corner cases
NotFound I like the idea of writing the grammar in json.
lucian NotFound: yep, very lispy
whiteknight atrodo: LALR is like bison, it "compiles" the grammar down into a table of shift/reduce rules
you add in the extra compile step (compared to recursive decent), but you end up with a faster table-based parser 19:01
of course, once in table form, there's absolutely no way to read or understand it
atrodo Right, the bottom up compilers. I always thought that was brilliant once I figured out what was going on 19:02
lucian atrodo: i still treat it as magic. i should find some time to understand it 19:03
atrodo lucian> That's okay. Everytime I remeber how it works and think it's brilliant, it's only a couple days before I consider it magic again
NotFound One of the beauties of hand coded recursive descent is that people is able to understand the code without reading a lot of formal langauges theory. 19:04
(and without reading the bison manual)
lucian NotFound: and I still don't understand how I'd do good parse errors with a bottom up parser
NotFound LALR is bottom up? 19:06
Tene lucian: just don't parse incorrect documents, obviously. :P
19:07 theory joined
lucian Tene: heh 19:07
atrodo NotFound> Thats what whiteknight and wikipedia tells me
whiteknight LALR is bottom-up 19:08
lucian atrodo: yep, i also trust wikipedia and whitenight
(they both start with "w")
tadzik white night :)
atrodo lucian> can't argue with that logiv
err, logic
whiteknight basically an optimization on LR(1). Recursive descent is LL(1), I think
dukeleto jison looks pretty darn cool. 19:09
NotFound See? I haven't read enough theory, and still make languages ;)
lucian NotFound: +1
tadzik: i just noticed that 19:10
NotFound only likes dragon books when they have also fairies and elves 19:11
atrodo NotFound> I was excited the day my boss brought in his dragon book for me to borrow.
dukeleto is amazed at the amount of parrot development happening nowadays 19:13
whiteknight I'm wondering if we could use a DEPRECATED_ITEMS macro in the source? 19:14
and then a "perl Configure.pl --no-deprecated" would define it to 0, so anything deprecated would disappear from the source
that would aid testing, by having alternatives on either side of an #ifdef and be able to turn them on or off with a configure option 19:15
NotFound whiteknight: that will help to ensure that deprecated for renaming and the like already have alternative. 19:16
whiteknight Ah, better yet we have Configure.pl define DEPRECATED_CUTOFF as a timestamp. Today it would configure as 20101202, then we could do #if comparisons to determine if we passed a cutoff point. and raise warnings 19:17
dukeleto interesting
NotFound Warning? No one read warnings, #error it! 19:18
whiteknight whatever. The important part is that we can use configure.pl to make things appear and disappear with a little macro magic
NotFound Aye 19:19
whiteknight Want to see what the world looks like when all current deprecations come to fruition? Throw the switch and survey the damage
dukeleto whiteknight: that could be quite useful for many people.
whiteknight That way HLL devs could do side-by-side comparisons of interface changes
lucian whiteknight: do you think it'll be possible to have deprecation window? 19:22
whiteknight lucian: that's a good question. If we use a date stamp, that only gets updated when we reconfigure. So if you never reconfigure your depecation cutoff never changes 19:23
lucian only deprecate things after being announced in one release, and where possible have both new and old working (with warnings for old) while old is being deprecated
from the ml I understood that parrot is changing too much now for something like that
whiteknight when you configure, you would have the option to set a specific date, to turn the switch on everything (Date = 00000000) or don't show any deprecated items (date = 99999999) 19:24
lucian whiteknight: wouldn't release versions work better than dates?
whiteknight so if you like how your parrot worked back on November 13, you do perl Configure.pl --deprecation-cutoff=20101113
lucian whiteknight: ah, i see. that'd be nice, in fact
whiteknight you don't always know the release version, I don't think. You could be in some crazy fork somewhere 19:25
lucian but i still think released versions would be better than dates
whiteknight maybe. I don't dislike that idea
lucian whiteknight: if you're in some fork somewhere, then dates won't be useful either
what does the date mean? the state in github master at that date?
whiteknight lucian: no. There would be a date-stamp added by Configure.pl at configure time 19:26
lucian if you're in a fork, that's not meaningful
whiteknight has nothing to do with git at all
lucian whiteknight: right
whiteknight and we would have cutoff datestamps hardcoded in the source file. If the configure time is before the cutoff we show one set of code. After, we show another
lucian whiteknight: it seems to me like that might be confusing 19:27
whiteknight #if CONFIGURE_TIME > TT_XXX_CUTOFF 19:31
if we're after the cutoff we do one thing, before it we do something else
and with macros like that, we can have the ticket name right there in the conditional 19:32
dukeleto NotFound: does winxed have a meta object protocol ? 19:34
NotFound dukeleto: plain and simple parrot Class 19:35
whiteknight dukeleto: I really think that what we need to do is talk to jnthn about either moving his into Parrot, or adapting it for our use 19:38
dukeleto: I'm perfectly happy to do whatever adaptation work is required, of course
from what I've seen there are some Perl6-isms in that code, but the majority of it should be general enough for Parrot to use (and for other HLLs to use too)
dukeleto whiteknight: i agree. i think the philosophical foundation of jnthn's MOP is what we should use as a baseline, and tweak as needed 19:47
whiteknight dukeleto: right. As I said, the P&W paper we have been looking at pretty heavily is already mirrored reasonably closely in jnthn's work 19:48
dukeleto whiteknight: i keep losing the link to that paper 19:49
whiteknight I go to scholar.google.com and search for Piumarta
Coke suggests putting it on the wiki. ;)
whiteknight citeseerx.ist.psu.edu/viewdoc/downl...p;type=pdf 19:50
Coke: Damnit! Enough of you and your logic
:)
that would only make sense, wouldn't it?
Coke "you green blooded, inhuman---" 19:55
whiteknight I'm starting to worry that a bootstapped javascript compiler written in javascript will be a huge headache 19:57
NotFound whiteknight: why? 19:58
whiteknight there just aren't a whole lot of good command-line JS options available to get the party started in a portable way
NotFound whiteknight: it doesn't need to be portable, just copy the generated pir to other platforms.
Just like the installable winxed does. 19:59
whiteknight If Parrot changes, and the PIR is no longer valid, we will need to regenerate it. That means we need a JS interpreter available
NotFound whiteknight: we'll have it: the one in the previous parrot. 20:00
whiteknight okay. I can be on board with that. To bootstap the first layer, the best environment I can find is Narwhal
I don't like Rhino
NotFound Alternatively, write a C++ stage 0 ;) 20:01
whiteknight actually, Narwhal uses Rhino. So that's a bit of a waste 20:03
NotFound For extra dificult points: make it work with a brwoser jasvascript. 20:04
20:10 wesjdj joined
lucian whiteknight: nodejs is nice 20:16
NotFound: and that's not hard at all, in fact
whiteknight: take a look at how CoffeeScript does it 20:18
whiteknight lucian: Maybe I don't understand what nodejs is. Is it a stand-alone CLI interpreter?
lucian whiteknight: yep, that too
whiteknight ok.
lucian whiteknight: for example, it's the default CoffeeScript env
it's much faster than narwhal, too :)
PerlJam narwhal can use v8 just like nodejs 20:19
lucian PerlJam: it can? didn't know 20:20
anyway, for cli the Rhino startup time is very annoying
and both narwhal and nodejs implement a lot of CommonJS to be useful for this particular project 20:21
whiteknight So we can use nodejs to bootstrap a JavaScript compiler. We write the parser in jison, can probably borrow much of the parser code from Zaach/Cafe, and implement a PIR code backend 20:25
once we have a fakecutable that we can bootstrap, we ditch anything we don't need and self-host after that 20:26
lucian whiteknight: exactly. just like C 20:27
whiteknight Although i think we are going to want to still be able to compile on other JS interpreters, to make sure we are staying true to the standard
lucian whiteknight: since you don't need to discard any compiler, that shouldn't be a problem 20:28
whiteknight Now we come to the hardest part of the entire project
We need a fancy name for it
and anybody who recommends "ecmascript" is getting kick/banned from the channel 20:29
PerlJam whiteknight: how about "livescript"? :)
NotFound deadscript X-)
PerlJam could call it "eich" after the guy who started it all 20:30
lucian PerlJam: +1 20:31
Coke I recommend ecmascript.
NotFound ecmascipt is the language, we need a name for the compiler. 20:32
+1 for "eich"
20:32 plobsing joined
whiteknight I do a google search for "Parrot Beverage", and all I get are Parrot Bay rum, and pictures of middle-age women in bikinis 20:33
I was hoping there would be something more useful in there
PerlJam whiteknight: are you sure you didn't accidentally search for Parrot Beaverage?
;>
lucian incidentally, i thought of a great name for a Java compiler: the word 'parrot' in javanese 20:34
NotFound web.archive.org/web/20000815055653/...m/brendan/ 20:35
whiteknight lucian: and what is that word?
lucian whiteknight: dunno, looking for a dictionary
NotFound But that will be better for a java compiler, not for a javascript one. 20:37
PerlJam random somewhat related thing: 20:38
secure.wikimedia.org/wikipedia/en/...ese_script
Coke parascript.
loriscript
lucian whiteknight: manuk = bird, can't find for parrot 20:39
PerlJam: so Hanacaraka or Carakan? 20:41
PerlJam Carakan 20:42
(would be my preference)
atrodo Carakan is the cooler looking and easier to remember of the two
PerlJam eich is nice and short though
whiteknight Kakaktua is Cockatoo in javanese 20:43
lucian PerlJam: yep, i prefer eich too
NotFound Carakan sounds like "dog-headed", an insult in Galician X-) 20:44
Actually faced, not headed.
lucian carakan is taken en.wikipedia.org/wiki/Presto_(layout_engine)
NotFound Palascript, using the imaginary island of Pala instead of Java. 20:45
lucian NotFound: +.5 20:46
NotFound en.wikipedia.org/wiki/Island_(novel)
bacek_at_work "teaplot"
lucian in fact, it sounds like javascript, might be better than eich
i always though cardinal and rakudo were rather opaque names
PerlJam lucian: I've always thought of that as a feature though 20:47
lucian PerlJam: how so? they're supposed to be 100% compatible implementations 20:48
at least cardinal is
bacek_at_work dukeleto, can you look at trac.parrot.org/parrot/ticket/1833 ? 20:49
dukeleto, trac.parrot.org/parrot/ticket/1802 looks like good GCI task too.
PerlJam lucian: much better than Jython and CPython and whatever style names, cardinal and rakudo "stand alone" as far as names go.
20:49 theory left
lucian PerlJam: i much prefer Jython, IronPython, PyPy, pynie, etc 20:49
20:50 bacek left
lucian they're all obviously python 20:50
PerlJam: cardinal isn't obviously ruby
NotFound At one point we discussed suffixing or prefixing with winged the languages names, but no one used that way.
PerlJam I guess I see no need for the name to evoke some feeling of similarity between implementations
NotFound Later, I did my free adaptation of the idea ;)
lucian PerlJam: it's no significant problem, of course 20:51
but I'd still rather like the name to be descriptive
NotFound: i see 20:52
Coke just need a one syllable prefix adjective. I suggest "Par". ;) 20:53
PerlJam Coke: :-)
lucian i do like partcl as a name. it's great 20:54
PerlJam parva
lucian btw, nuri = parrot in Indonesian
which is a bit similar to Javanese
just like JavaScript is a bit similar to Java
PerlJam nuri is a nice name. 20:55
dukeleto NotFound: I am very happy that you made reference to Island :)
lucian so for me it's between 'eich' and 'nuri' 20:56
dukeleto bacek_at_work: looking at your task ideas. They do seem good, with a bit more explanation. 20:57
NotFound dukeleto: I need to mention some serious sometimes. If not, people will think that I only like fairy tales ;)
bacek_at_work dukeleto, ok.
NotFound some serious book, I mean 20:58
Tene lucian: Cardinal was named that because they're a bright ruby red.
en.wikipedia.org/wiki/File:Cardinal.jpg
fwiw
lucian Tene: yeah, i know. but the name isn't descriptive as "ruby the programming language"
Tene I don't remember who named it, but I just maintained the name
lucian Tene: the way "Jython" is obviously python on java/jvm 20:59
Tene lucian: I really don't understand what that means. You're saying that the name "ruby" is obviously descriptive of "a programming language"?
lucian: Sure, I guess.
NotFound You mean, like "C"?
lucian Tene: no, i'm saying the word "cardinal" doesn't jump to be as being Ruby, the programming language 21:00
NotFound: no, i mean like D :)
meh, i'm just nitpicking
the name doesn't matter
plobsing a ruby by any other name...
lucian plobsing: yeah, people will never say "I wrote this piece of cardinal to do ..." 21:01
Tene lucian: That's because the name of the language is "Ruby"
NotFound The future advanced version will be called "Pope" 21:02
lucian NotFound: heh
Tene You don't see people saying "I wrote this piece of rubinius" either
lucian Tene: yeah, i know. which is why I said the name of the implementation doesn't matter
Tene: the two of us keep meaning the same thing, but not understanding each other, i think 21:03
whiteknight: jashkenas.github.com/coffee-script/
Tene lucian: Okay. 21:04
NotFound I have a name looking for a program since years ago: YAYAPN: Yet Another "Yet Another" Program Name 21:09
wesjdj Does anyone know if there are any new GCI translation taks? (in German)?
dukeleto wesjdj: there probably should be :) Which translation tasks have you done?
dalek nxed: r700 | NotFound++ | trunk/examples/ajax.winxed:
use an anonymous function in example ajax to make it look more javascriptish
whiteknight wesjdj: I'm sure we could invent some 21:10
wesjdj dukeleto: I've done /dev and /download :)
dukeleto wesjdj: ok, we have more, they just need to be made.
wesjdj dukleto: OK.
PerlJam NotFound: divine secretes of the yayapn brotherhood.
s/tes/ts/ 21:11
dukeleto coffeescript looks a lot easier to parse than javascript
NotFound Another silly idea with a classic background: ASL - A Scripting Language
dukeleto NotFound: i used to hack on YACAS. Perhaps we can make a YAYACAS on parrot that uses PLA
whiteknight YACAS? 21:12
dukeleto secure.wikimedia.org/wikipedia/en/wiki/Yacas
it is an open source computer algebra system
lucian dukeleto: i don't know, it seems more ambiguous than javascript
dukeleto similar to mathematica
i wrote a bunch of symbolic integration stuff for Yacas, it was one of my first open source projects that i hacked on 21:13
NotFound Mixing ideas: YAscript
lucian NotFound: i think the world has enough java-like syntaxes :) 21:14
whiteknight dukeleto: I would love to have a symbolic algebra package for Parrot, but that's a hell of a lot of work
lucian whiteknight: R? 21:15
dukeleto whiteknight: why is it a lot of work? I know all the algorithms that need to be implemented. It is just a Simple Matter of Programming. Trivial, really...
NotFound lucian: yeah, winxed is the definitive incarnation of the style.
lucian NotFound: thanks :)
dukeleto lucian: does R do symbolics? I thought it was mostly numerics
lucian dukeleto: don't know, really
dukeleto lucian: i doubt it
whiteknight: i can see hacking on a CAS on top of PLA as being really fun 21:16
lucian dukeleto: i bet there's some lisp dsl for that
21:16 wesjdj left
dukeleto has a sick definition of fun 21:16
lucian would like something like clojure, but on parrot
NotFound lucian: and some emacs macro 21:17
C-m-butterfly, or something 21:18
lucian NotFound: heh
NotFound xkcd.com/378/ 21:19
lucian NotFound: yeah, i remember
dukeleto C-m-left-elbow-no-really-q
whiteknight: yacas.cvs.sourceforge.net/viewvc/ya...cas/tests/ 21:22
NotFound Years ago I used to say that I used a laser point and a poweful magnifying glass to grab the binary code in a virgin CD.
dukeleto whiteknight: i still see that i have the last commit on some of those files, from 7 years ago. Those might be some of the first tests I ever wrote. 21:23
whiteknight dukeleto: impressive 21:25
dukeleto whiteknight: what plans do you have for PLA? What do you want to use it for? 21:29
whiteknight dukeleto: I'll get back to you. Have to sign off now 21:32
NotFound For Linea Algebra, maybe? ;)
21:32 whiteknight left
dukeleto NotFound: nah, that is too boring. Nonlinear algebra is much more fun... 21:35
NotFound PCT: Parrot Chaos Theory 21:36
dukeleto NotFound: if a Parrot flaps it's wings in Portland ...
NotFound ...winxed born in Spain. 21:37
atrodo isparrotfastyet.com/ # I got a chance to hack on this last night 21:47
Anyone have a good idea on how to checkout a version of Rakudo that corresponds to a version of parrot? 21:48
dukeleto atrodo: you can do the other way around 21:49
atrodo: get a version of rakudo, then do "perl Configure.pl --gen-parrot"
lucian wow, how on earth did rakudo get 1000%+ slower? 21:50
dukeleto atrodo: can you think of any gci tasks relating to isparrotfastyet.com ?
atrodo: you should probably give links to the actual Tool::Bench output, so people can look at the details 21:51
lucian oh wait, rakudo is 1000% * 1000% slower 21:52
dukeleto atrodo: also, instead of "Revision $sha1", the output of "git describe --tags" would be more useful
whiteknight++ # making lots of cool GCI tasks 21:53
plobsing lucian: timings are off for versions of rakudo that fail very early. since rakudo keeps pace with parrot (more or less), none but the most recent rakudos will build or run with recent parrots. 21:54
lucian plobsing: i see
plobsing segfaults, dlopen() error, and packfile load errors don't take much time 21:55
lucian plobsing: could failures be removed from the graph then? 21:56
plobsing that's not up to me, but the question atrodo++ asked suggests he's working on it
atrodo lucian> That's because Rakudo wasn't running for those old tags
dukeleto> That's the plan, but I had to update the database schema to store the nice name 21:57
dukeleto atrodo: why is a database involved?
21:57 theory joined
atrodo dukeleto> To store all the results 21:57
21:57 dip left
dukeleto atrodo: seems like you can just store JSON and render it directly in Flot 21:57
atrodo dukeleto> Didn't think about that 21:58
dukeleto> but I already have the DB and the code for it, and i think that'd be more robust long term 22:00
especially if I start accepting submissions
dukeleto atrodo: submissions for what?
atrodo: you can't compare benchmarks across machines. It just doesn't work. 22:01
atrodo dukeleto> Submissions from other machines
dukeleto> No, but you can compare the speed of parrot over time on x86 vs. ppc vs. x86-64
dukeleto atrodo: not across machines
atrodo: you will be comparing apples and oranges 22:02
plobsing not even on the same machine at sufficiently different points in time. OS updates could change the vmem implementation for example.
atrodo dukeleto> Right. But just looking at the speed on my x86 linode won't show ppc 256m slow downs
lucian dukeleto: isparrotfastyet could be a frontend for many backends
NotFound dukeleto: you can't, apple store doesn't allow parrot.
22:02 bluescreen joined
lucian NotFound: they might if you compile it to C 22:03
dukeleto atrodo: sure. But if two people with ppc submit results, you can't compare them.
atrodo dukeleto> Correct. Results would be per-machine, not per-arch
dukeleto atrodo: you can, but it would be wrong.
atrodo: that sounds feasible, then.
atrodo: but then, if someone recompiles some basicaly library and continues to send you reports, you get wrong results. It is dicey taking submissions, unless you control the machines making the submissions. 22:05
atrodo dukeleto> Right.
NotFound We can take control of some botnet and use it. 22:06
GeJ Bonjour everyone.
atrodo NotFound> Now we're talking
GeJ Github has a b0rked again?
atrodo "Excuse us complete stranger while we benchmark our project on your machine without your permission"
NotFound "Is for a good cause" 22:07
cotto_work If anyone sees a ticket that'd make a good gci task, tag it as gci and I'll work on them tonight.
dukeleto GeJ: github seems fine to me
plobsing somebody start parrot-benchmarking-@home
dukeleto cotto_work: ok, i have 2 that bacek_at_work pointed out to me
cotto_work I tagged those already 22:08
dukeleto cotto_work: darn, i just realized that :)
cotto_work </ninja>
atrodo dukeleto> And about doing rakudo with --gen-parrot, it may work, but I was attempting to do previous release tags for the back data, so i'm not sure
GeJ dukeleto: then I have to find why I got all those 502's while syncing some repos 22:09
cotto_work I'll give you one guess why you didn't see the opening tag.
dukeleto just approved a whole bunch of tasks relating to PLA and Winxed
cotto_work ;)
dukeleto cotto_work: NINJA!
atrodo Ninja's don't yell
dukeleto atrodo: so you just checkout out an old version of Rakudo and do the same thing
NotFound What's the url of the task list?
dukeleto atrodo: it knows the version of parrot it needs
atrodo: look at build/PARROT_REVISION in rakudo.git 22:10
atrodo: but you will run into issues at the svn-to-git boundary
atrodo dukeleto> Yep, and that's where most of the release tags are 22:11
I may just say forget it and do those 12 manually
dukeleto atrodo: you can just look at the output of "git log", and then you can figure out how to turn a revision into a sha1
atrodo: old commits have their svn revision embedded in them 22:12
atrodo dukeleto> That's true. Still probably a manually job for back releases 22:13
22:43 fbrito left 22:46 theory left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1476) fulltest) at aae1ea9 - Ubuntu 10.10 i386 (g++-4.5) 22:50
22:54 plobsing left 23:02 TypeNameHere_____ joined, TypeNameHere_____ left, lucian left 23:09 hercynium left 23:33 fperrad left 23:40 whiteknight joined
bluescreen whiteknight: ping 23:50
hi, btw 23:51
23:54 donaldh joined
whiteknight bluescreen: pong 23:55
23:56 donaldh left, donaldh joined
bluescreen hey, I've a question... I'm in the way to implement Parrot_api_get_compiler and there is no Parrot_get_compiler. So I saw in core.ops that the got the COMPREG_HASH and read it from there. 23:56
then my question is, should I replicate that logic in the API or create a Parrot_get_compiler function in interp_misc.c 23:57
so both the op and the api can benefit from it
maybe is a question for the architect
I'd vote for the 2nd option 23:58