Camelia, the Perl 6 bug

IRC log for #parrot, 2010-12-02

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 fbrito whiteknight: done :)
00:00 whiteknight ...and closed
00:01 whiteknight congrats
00:02 cotto_work fbrito: good job so far.  You're just a point away from first place.
00:03 * cotto_work wonders what the scores will look like in a month
00:03 cotto_work We're definitely going to need more tasks.
00:05 fbrito 388 tasks so far
00:05 fbrito (completed tasks)
00:05 fbrito by 209 students
00:06 fbrito in 9 days :o
00:08 bluescreen thats impressive
00:08 fbrito wow! an average of 43,1 tasks/day
00:08 fbrito and 1,89 points/task
00:10 theory left #parrot
00:10 whiteknight dukeleto: ping
00:11 davidfetter mmm...minion^Wstudents
00:14 dukeleto whiteknight: pong
00:15 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 whiteknight any way to get back to how it was before the rebase without deleting and cloning?
00:15 dukeleto whiteknight: git rebase --abort ?
00:15 whiteknight No rebase in progress?
00:16 whiteknight (I'm already done rebasing)
00:16 whiteknight at the end I am viewing the wreckage. Plus, it changes all the history which is not good
00:17 whiteknight can I delete that branch, and then pull it in again from origin?
00:18 dukeleto whiteknight: that is one way
00:18 dukeleto whiteknight: you don't care about the current state of the branch?
00:18 whiteknight no
00:18 dukeleto whiteknight: make sure you have no uncommitted files in your repo that you care about
00:18 whiteknight all the info is on origin, I just want to get back to there
00:18 whiteknight ok
00:19 dukeleto whiteknight: do you know the sha1 of the last commit that you want?
00:19 whiteknight I can find it
00:19 dukeleto whiteknight: look at the output of "git log"
00:19 dukeleto whiteknight: when you have that, you can do "git reset --hard $sha1"
00:20 dukeleto whiteknight: but another way is to delete the branch, then do a "git fetch && git checkout -b my_branch origin/my_branch"
00:20 dukeleto whiteknight: if you can't find the commit you want, then the 2nd way is better
00:21 * dukeleto has a numb face from the dentist and will most probably pass out soon
00:22 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:23 davidfetter mmm...lidocaine :d
00:23 davidfetter hope your teeth are better now, dukeleto :)
00:24 dukeleto whiteknight: you rebased master or you rebased embed_api ?
00:24 whiteknight I rebased embed_api
00:24 whiteknight at least, I thought i did
00:24 dukeleto whiteknight: not knowing everything you did makes it hard to tell you what to do
00:24 whiteknight who knows at this point. It's all deleted
00:25 dukeleto whiteknight: learning is fun!
00:25 whiteknight I was on the embed_api branch, and I did a git rebase master
00:25 whiteknight then the universe fell off it's axis and I deleted things
00:25 dukeleto whiteknight: that rebased embed_api onto master, which probably freaked out. Did you fix a bunch of merge conflicts?
00:26 dukeleto whiteknight: anyway, i guess it doesn't matter
00:26 dukeleto davidfetter: meh
00:26 whiteknight dukeleto: yes, lots of conflicts
00:29 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 dukeleto whiteknight: i like your email about the dep policy, and I agree, DEPRECATED.pod used to be enough, but now it isn't.
00:29 dukeleto whiteknight: i was thinking that we need programmatic access to deprecation info.
00:30 dukeleto 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 dukeleto whiteknight: instead of the current process, where an actual human has to do a lot of work for every deprecation
00:33 fbrito (top 5 GCI students have 130 points. bottom 100 have 131 points: http://img828.imageshack.us/​img828/2369/graph9thday.png)
00:35 Andy left #parrot
00:40 dukeleto fbrito: there is quite a spectrum of students
00:40 dukeleto fbrito: where did that graph come from?
00:41 fbrito there is a button "CSV Export" on the rank page
00:44 hercynium left #parrot
00:48 whiteknight incoming
00:48 dalek parrot/embed_api2: 557e85c | Whiteknight++ | / (37 files):
00:48 dalek parrot/embed_api2: Fix conflicts in merge. Untested
00:48 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/557e85c1fa
00:49 whiteknight oh. Maybe not
00:49 whiteknight now I have to see if this hog builds
00:52 cotto_work has anyone read the context threading paper?
01:04 whiteknight Me!!
01:05 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 #parrot
01:09 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 whiteknight 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
01:10 dngor Unrolling the dispatch loop for basic blocks?
01:10 cotto_work whiteknight: thanks
01:10 whiteknight cotto_work: it all will make sense when you read the paper
01:11 cotto_work it makes sense now, mostly
01:12 fbrito wow, that must be some pretty advanced stuff
01:12 whiteknight fbrito: that's just the tip of the iceburg
01:13 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 :)
01:14 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:19 bluescreen joined #parrot
01:20 whiteknight bluescreen: ping
01:23 bluescreen whiteknight: pong
01:23 bluescreen hi
01:24 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
01:24 whiteknight it's a little bit of a mess. I have it building on my machine, but fails with some weird errors
01:24 bluescreen great
01:24 whiteknight I think some of the recent string encoding changes in master are causing weirdness
01:24 bluescreen I was about to implement missing features like Parrot_api_load_language
01:24 bluescreen and test cases
01:24 whiteknight nice
01:25 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
01:25 bluescreen ok
01:36 * cotto_work goes home
01:38 whiteknight how do I create a binary-encoded STRING?
01:48 davidfetter it's a DPG thang
01:48 davidfetter BCD*
01:51 dalek parrot/embed_api2: ae620cc | Whiteknight++ | src/ (3 files):
01:51 dalek parrot/embed_api2: changes necessary so we build. Run fails horribly, but we build
01:51 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/ae620cc94b
01:51 dalek parrot/embed_api2: 8b92734 | Whiteknight++ | src/embed/pmc.c:
01:51 dalek parrot/embed_api2: we have to specify that the fpmc bytes are a binary string, otherwise defaults to ASCII
01:51 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/8b92734619
01:53 kid51 joined #parrot
02:01 whiteknight okay, I think I have it working again
02:02 cotto ~~
02:02 whiteknight welcome back cotto. I missed you
02:03 dmalcolm left #parrot
02:05 cotto I missed me too.
02:06 dip left #parrot
02:11 dalek parrot/embed_api2: b50f1fc | Whiteknight++ | tools/dev/pbc_to_exe.pir:
02:11 dalek parrot/embed_api2: fix pbc_to_exe so we build and pass all tests again
02:11 dalek parrot/embed_api2: review: https://github.com/parrot/parrot/commit/b50f1fcecc
02:11 whiteknight bluescreen: all tests pass again. You can get back to work on the new embed_api2 branch
02:13 bluescreen thanks whiteknight++
02:14 TypeNameHere_____ left #parrot
02:19 kid51 Are there any branches which would benefit from my running 'make test' over the coming weekend?
02:23 davidfetter left #parrot
02:23 frodwith left #parrot
02:35 preflex left #parrot
02:36 whiteknight kid51: embed_api2
02:37 preflex joined #parrot
02:43 whiteknight time for bed!
02:43 whiteknight left #parrot
02:51 plobsing joined #parrot
02:54 theory joined #parrot
03:08 dalek parrot/tt532_headerizer_refactor: dd3c6c9 | jkeenan++ | / (3 files):
03:08 dalek parrot/tt532_headerizer_refactor: Refactor more code into testable subroutines, place them into Functions.pm, test them in 01_functions.t.
03:08 dalek parrot/tt532_headerizer_refactor: review: https://github.com/parrot/parrot/commit/dd3c6c9290
03:21 preflex left #parrot
03:22 kid51 msg whiteknight http://smolder.parrot.org/app​/projects/report_details/1464 successful smoke of embed_api2 on linux/i386
03:22 aloha OK. I'll deliver the message.
03:25 preflex joined #parrot
03:32 cotto dukeleto, ping
03:39 kid51 left #parrot
04:12 preflex left #parrot
04:14 preflex joined #parrot
04:21 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 #parrot
04:40 preflex joined #parrot
04:41 fbrito hm, I didn't find any task related to Ruby on GCI
04:42 bluescreen left #parrot
04:54 cotto That's surprising.
04:55 fbrito maybe because of the Ruby Summer of Code
05:05 cotto quite possibly
05:05 zby_ joined #parrot
05:06 zby__ left #parrot
05:21 PerlPilot joined #parrot
05:25 PerlJam left #parrot
05:26 PerlJam joined #parrot
05:27 PerlPilot left #parrot
05:36 zby_ left #parrot
05:36 zby__ joined #parrot
06:15 theory left #parrot
06:27 dukeleto cotto: pong
06:27 dukeleto fbrito: i was going to make a gci task for cardinal, but i went to the dentist instead
06:28 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
06:29 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:32 fbrito good thing that next year my sister will finish her school of dentistry :)
06:32 fbrito they are usually so expensive
06:33 fbrito (ok, my english sucks. next year my sister will finish her studies on dentistry)
06:34 plobsing oh. I thought she was building a dental school. those are quite expensive ;)
06:36 jhelwig left #parrot
06:36 fbrito ahhaa, that's why I rewrote the sentence :P
06:38 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
06:38 cotto or second
06:38 fbrito I would say second :)
06:39 fbrito then, german, and maybe spanish (maybe)
06:41 dukeleto cotto: i am still thinking :)
06:41 cotto dukeleto, think on then.  I'd hate to rush into such a decision.
06:42 dukeleto cotto: we should see which version various linux distros use. Does anyone actually ship 5.8.x still ?
06:42 cotto no idea
06:42 dukeleto cotto: i think debian stable recently went to 5.10
06:42 sorear fbrito: there is a running joke here that English is bacek's fourth language, after Russian, Rude Russian, and Very Rude Russian
06:42 sorear opbots names
06:43 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.
06:44 fbrito sorear: ahahha, good to know.
06:44 cotto what does RTEMS use?
06:46 cotto debian stable going to 5.10 sounds promising
06:51 NotFound fbrito: my motto is: Instead of worrying about bad translations to english, I write bad english myself.
06:52 cotto if it's bad enough, someone will feel obligated to fix it
06:57 fbrito ok, time to go to bed
06:57 cotto fbrito, 'night
06:58 dukeleto cotto: what does RTEMS use for what?
06:58 fbrito what time is it in the places where you guys live?
06:58 cotto dukeleto, for their build environment
06:58 plobsing clock?
06:58 * cotto is on US Pacific coast
06:58 dukeleto aloha, clock?
06:58 NotFound fbrito: 7:58 in Spain
06:58 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
06:58 cotto 2300-ish
06:58 plobsing 2h00
06:58 dukeleto it is 11pm where I am (PST)
06:59 dukeleto 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
06:59 NotFound It's always a good time in Parrot world.
06:59 dukeleto cotto: why do you want to upgrade our perl deps? Because of Pod::Simple ?
06:59 dukeleto fbrito: do you have tasks to work on?
06:59 cotto dukeleto, I'm just thinking through what the tradeoffs would be.
07:00 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
07:01 cotto dukeleto, 5.12 and 5.10 are available
07:01 fbrito dukeleto: I am waiting moritz approve my claim request here: http://www.google-melange.com/gci/task/show/goog​le/gci2010/parrot_perl_foundations/t129079857380
07:02 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.
07:02 fbrito oh, didn't know you could also do that. thank you :)
07:03 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 dukeleto cotto: of course, I wish everyone was using perl 5.12 already.
07:03 cotto dukeleto, how common is 5.8.x?
07:03 dukeleto cotto: it is basically the de-facto ancient perl on most servers
07:04 dukeleto 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.
07:04 cotto thanks for the brain picking
07:04 dukeleto cotto: i would vote to keep our dep at 5.8.4 or whatever it is, and include whatever CPAN modules we need.
07:05 dukeleto 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.
07:06 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"
07:07 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
07:08 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 ;)
07:08 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.
07:09 cotto 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.".
07:11 fbrito seen moritz
07:11 aloha moritz was last seen in #parrot 12 hours 27 mins ago saying "plenty of time to next release".
07:12 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.
07:13 NotFound For example, recent harness requiring a recent harness before installing %-)
07:16 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:17 dukeleto 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 dukeleto cotto: we can tell our code to use our version of Pod::Simple, not the version on a users system
07:18 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
07:18 dukeleto cotto: which is what we do already
07:19 cotto easy peasy
07:24 NotFound Why is Pod a problem? We need to parse pod to build parrot?
07:30 fbrito left #parrot
07:32 cotto bacek_at_work, ping
07:35 cotto 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.
07:37 dalek tracwiki: v30 | cotto++ | CottoTasklist
07:37 dalek tracwiki: stupid todo list never seems to get smaller
07:37 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Cot​toTasklist?version=30&action=diff
07:44 moritz aloha: msg fbrito just go ahead and ask your question
07:44 aloha moritz: OK. I'll deliver the message.
08:00 bacek_at_work cotto, current gc is gc_ms2 :)
08:01 cotto ok
08:04 cotto what would removing the constant flag mean for the current code?
08:06 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:07 bacek_at_work 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 bacek_at_work after - just rip off pmc_new_constant and PObj_constant_FLAG
08:07 dukeleto NotFound: it is part of the building of our documentation
08:08 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:09 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.
08:10 NotFound dukeleto: building the documentation is not a fundamental part for someone wanting to give parrot a try. They can use http://docs.parrot.ord/
08:10 NotFound org
08:11 cotto Ah.  Well, we have one of those coming up soon.
08:12 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
08:12 NotFound If the only change will be to ignore the constant flag, you can just dispatch pmc_new_constant to pmc_new
08:13 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:14 bacek_at_work but it's purely internal changes, yes.
08:14 NotFound bacek_at_work: then do that during the deprecation cycle.
08:15 bacek_at_work We can do it now, actually.
08:15 bacek_at_work Then remove pmc_new_constant after deprecation cycle.
08:15 NotFound I know. I mean, don't kill it until the end of the cycle ;)
08:15 bacek_at_work Ah, ok :)
08:22 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:23 NotFound In general, not just in this case.
08:24 bacek_at_work NotFound, agreed
08:24 bacek_at_work anyway
08:24 bacek_at_work time to go home
08:24 bacek_at_work see you soon
08:24 cotto proposal: negating a Boolean doesn't make sense
08:26 NotFound cotto: what do you mean? Make Booleans immutable?
08:26 plobsing True + (-True) = False ?
08:26 cotto no, just that it's not something that applies to Booleans
08:27 sorear True + (-True) = 0 in Perl 6
08:27 NotFound I don't not fail to understand ;)
08:27 cotto sorear, by design?
08:28 sorear cotto: yes.  enums degenerate to numbers when provoked
08:28 cotto ok
08:29 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:30 NotFound Ah, you mean unary minus, not logical negation?
08:30 cotto NotFound, yes
08:31 * NotFound sees the light
08:31 cotto sorry for the ambiguity
08:33 NotFound Must go now. Later.
08:33 cotto bye
08:46 fperrad joined #parrot
09:02 cotto msg dukeleto http://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.
09:03 dalek lua: ffd1d8a | fperrad++ | lua (2 files):
09:03 dalek lua: now, binary encoding needed
09:03 dalek lua: review: https://github.com/fperrad/lua/commit/ffd1d8ac70
09:08 bacek joined #parrot
09:14 * cotto sleeps
09:43 dip joined #parrot
10:05 dalek parrot/generational_gc: d8eee3e | bacek++ | src/io/buffer.c:
10:05 dalek parrot/generational_gc: Properly fix merge conflict. Previous workaround isn't applicable anymore.
10:06 dalek parrot/generational_gc: review: https://github.com/parrot/parrot/commit/d8eee3e152
10:44 luben left #parrot
12:03 dip left #parrot
12:04 dip joined #parrot
12:54 lucian joined #parrot
13:16 cotto left #parrot
13:33 whiteknight joined #parrot
13:35 whiteknight good morning, #parrot
13:35 * Coke perlbrews 5.8.4 to test our min requirement.
13:36 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.
13:37 Coke I cannot install perl5.8.4 via perlbrew.
13:37 * Coke rolls his eyes.
13:39 whiteknight how old is perl 5.8.4?
13:39 * whiteknight knows very little about perl
13:39 moritz Coke: what error do you get?
13:39 frodwith joined #parrot
13:40 nopaste "coke" at 192.168.1.3 pasted "last page of build log" (20 lines) at http://nopaste.snit.ch/26375
13:41 * Coke finds http://www.nntp.perl.org/group/perl.​perl5.porters/2008/02/msg133873.html
13:41 Coke which says "just edit the makefile by hand, doofus!
13:41 moritz ugh
13:42 * 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 Psyche^ joined #parrot
13:42 Patterner left #parrot
13:42 Psyche^ is now known as Patterner
13:42 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
13:43 Coke whiteknight: that email is from Andy D. , and he didn't actually call anyone a doofus. I was editorializing.
13:48 whiteknight Coke: I know :)
14:20 dmalcolm joined #parrot
14:32 atrodo More software should be honest and call its users doofus
14:51 allison joined #parrot
14:54 lucian left #parrot
15:10 Coke aloha, allison.
15:24 allison Coke, hi
15:27 JimmyZ joined #parrot
15:27 plobsing left #parrot
15:47 fperrad left #parrot
15:50 fperrad joined #parrot
15:57 NotFound whiteknight: ping
15:58 whiteknight NotFound: pong
15:59 NotFound whiteknight: possible task for GCI: add suppor for chunked transfer to LWP;Protocols
15:59 NotFound I mean, Protocol
15:59 moritz didn't fperrad implement that?
16:00 NotFound moritz: I tested just this morning and still fails, chunk lenghts gets mixed with the content.
16:01 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.
16:02 whiteknight NotFound: how hard is it to do?
16:02 whiteknight these are students, and I don't know much about it myself
16:03 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.
16:04 NotFound The task of de-chunking, I've done it with even with my 80' style basic interprter.
16:07 NotFound 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 NotFound Not fast, but we can always improve later.
16:08 NotFound Having it working is usefule enough, even if slow.
16:09 hercynium joined #parrot
16:21 whiteknight okay
16:21 whiteknight if you can write up a task description, I will post it
16:25 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
16:26 whiteknight I've been adding PLA projects that I think of
16:27 whiteknight 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.
16:27 NotFound whiteknight: yes
16:27 whiteknight NotFound: have you ever written a Y-combinator in Winxed?
16:27 NotFound Same syntax as anonymous functions in javascript.
16:27 whiteknight Or done the Man-Boy test in it?
16:28 whiteknight (both of those might make very cool projects)
16:28 moritz and are nice stress tests for closure implementations
16:29 NotFound whiteknight: good idea, I don't like writing that type of things.
16:30 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.
16:30 moritz "fix partcl to compile on parrot HEAD" :-)
16:30 * Coke thought it did that, at least.
16:31 * Coke sighs.
16:32 * moritz wasn't serious
16:33 Coke ah. it was certainly plausible that you were. ;)
16:33 moritz sorry if it wasn't clear
16:36 JimmyZ left #parrot
16:39 Coke yah, it still mostly works. :|
16:43 mikehh Coke: haven't tested that for a while - partck or partcl-nqp or both?
16:43 mikehh partcl
16:43 Coke they won't work out of the box.
16:43 Coke I don't think.
16:43 Coke haven't incorporated the git-fix, and there are test failures in both due to parrot borkages.
16:51 theory joined #parrot
16:54 whiteknight "Parrot undocumented features"
16:55 fbrito joined #parrot
16:56 cotto joined #parrot
16:59 cotto ~~
17:00 atrodo I was about to say "morning cotto", but that's a lie to me now
17:01 nopaste "NotFound" at 192.168.1.3 pasted "winxed ajax example with chunked transfer decoding added" (186 lines) at http://nopaste.snit.ch/26378
17:02 NotFound Here is. Do you think is clear enough for students?
17:05 whiteknight let me look
17:05 whiteknight hello cotto
17:05 theory left #parrot
17:07 whiteknight NotFound: does that follow the algorithm in LWP code?
17:07 NotFound whiteknight: the task is add that algotithm to LWP.
17:07 whiteknight okay, if the student reads this, will they be able to find the code in LWP to change?
17:08 NotFound whiteknight: I'll wite a description now. The code is the complement.
17:08 whiteknight okay
17:15 nopaste "NotFound" at 192.168.1.3 pasted "chunked encoding task description" (11 lines) at http://nopaste.snit.ch/26379
17:32 PacoLinux left #parrot
17:33 PacoLinux joined #parrot
17:37 whiteknight NotFound: I'll read that in a minute
17:38 NotFound whiteknight: no urgence
17:38 cotto_work when creating a new gci task, should we use melange's form?
17:39 whiteknight cotto_work: If you're a mentor, yes
17:40 whiteknight you can prototype it elsewhere and paste it in if you want
17:44 cotto_work wfm
17:45 whiteknight NotFound: you say you want the implemented chunked receive, but the code example you have now has a "Send" method
17:45 whiteknight Do you want send or receive implemented?
17:48 NotFound whiteknight: send is XMLHttpRequest jargon for making a request.
17:49 NotFound These javascript guys makes such a nice method names...
17:50 whiteknight ok
17:50 NotFound The idea is that you "open" a request, and then send it to the server.
17:51 whiteknight gotcha. My memories of javascript are coming back to me
17:52 NotFound In asynchronous mode makes more sense. This is only synchronous, so you receive during send X-)
17:55 jhelwig joined #parrot
17:56 NotFound The idea of that example is to be able to quickly adapt javascript http code to winxed.
17:59 whiteknight nice
18:00 whiteknight 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 whiteknight that would be wonderful
18:00 NotFound I also think about that, but time is limited.
18:01 dukeleto howdy
18:03 [hercynium] joined #parrot
18:07 hercynium left #parrot
18:07 [hercynium] is now known as hercynium
18:12 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:14 dukeleto cotto_work: works for me
18:19 lucian joined #parrot
18:19 ilbot2 joined #parrot
18:19 Topic for #parrot is now Parrot 2.10.1 Released | http://parrot.org | Log: irclog.perlgeek.de/parrot/today | Long live Git! https://github.com/parrot/parrot | git clone git://github.com/parrot/parrot.git | Please test rakudo with bleeding edge parrot!
18:19 moritz left #parrot
18:31 whiteknight NotFound: I added that task to GCI
18:33 whiteknight 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.
18:34 whiteknight NotFound: the Google god temple looks exactly like a JavaScript compiler written in Winxed :)
18:34 NotFound Nice try.
18:39 preflex left #parrot
18:44 preflex joined #parrot
18:44 moritz joined #parrot
18:52 lucian whiteknight: there are javascript compilers written in javascript
18:52 lucian whiteknight: several, in fact
18:52 whiteknight lucian: if we had a way to run javascript on Parrot, that would work
18:53 lucian whiteknight: you could bootstrap with an existing javascript runtime
18:53 lucian generate PIR from the javascript AST
18:53 NotFound lucian: targeting what?
18:54 whiteknight that's actually not a bad idea, really
18:54 whiteknight lucian: any projects in particular you think are the best to work with?
18:54 lucian whiteknight: jison is bison for js
18:55 lucian whiteknight: and there's a project called cafe. in a sec i'll find the links
18:55 lucian whiteknight: https://github.com/zaach/jison
18:55 lucian https://github.com/zaach/cafe
18:55 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.
18:56 lucian NotFound: but they'll all kinda suck
18:56 lucian NotFound: i agree it might be useful for bootstrapping said languages, but GWT is anything but nice
18:56 lucian (speaking about the generated JS)
18:57 whiteknight First off, I really like this jison
18:57 whiteknight We could easily use that to bootstrap a javascript compiler. All we need is the code generation backend
18:57 NotFound lucian: hey, is a free offer, don't be too exigent ;)
18:57 lucian NotFound: true :)
18:58 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
18:58 atrodo bison is magic by all accounts
18:58 lucian whiteknight: that too, yes
18:58 lucian whiteknight: in fact, there might be a way to transform the javascript AST to PAST
18:58 whiteknight I really really want an LALR parser generator for Parrot. I may try to adapt jison for winxed soon, I think
18:59 whiteknight 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 :)
19:00 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
19:00 NotFound I like the idea of writing the grammar in json.
19:00 lucian NotFound: yep, very lispy
19:00 whiteknight atrodo: LALR is like bison, it "compiles" the grammar down into a table of shift/reduce rules
19:01 whiteknight you add in the extra compile step (compared to recursive decent), but you end up with a faster table-based parser
19:01 whiteknight of course, once in table form, there's absolutely no way to read or understand it
19:02 atrodo Right, the bottom up compilers.  I always thought that was brilliant once I figured out what was going on
19:03 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
19:04 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 NotFound (and without reading the bison manual)
19:04 lucian NotFound: and I still don't understand how I'd do good parse errors with a bottom up parser
19:06 NotFound LALR is bottom up?
19:06 Tene lucian: just don't parse incorrect documents, obviously. :P
19:07 theory joined #parrot
19:07 lucian Tene: heh
19:07 atrodo NotFound> Thats what whiteknight and wikipedia tells me
19:08 whiteknight LALR is bottom-up
19:08 lucian atrodo: yep, i also trust wikipedia and whitenight
19:08 lucian (they both start with "w")
19:08 tadzik white night :)
19:08 atrodo lucian> can't argue with that logiv
19:08 atrodo err, logic
19:08 whiteknight basically an optimization on LR(1). Recursive descent is LL(1), I think
19:09 dukeleto jison looks pretty darn cool.
19:09 NotFound See? I haven't read enough theory, and still make languages ;)
19:09 lucian NotFound: +1
19:10 lucian tadzik: i just noticed that
19:11 * 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.
19:13 * dukeleto is amazed at the amount of parrot development happening nowadays
19:14 whiteknight I'm wondering if we could use a DEPRECATED_ITEMS macro in the source?
19:14 whiteknight and then a "perl Configure.pl --no-deprecated" would define it to 0, so anything deprecated would disappear from the source
19:15 whiteknight 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:16 NotFound whiteknight: that will help to ensure that deprecated for renaming and the like already have alternative.
19:17 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
19:18 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
19:19 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
19:19 dukeleto whiteknight: that could be quite useful for many people.
19:19 whiteknight That way HLL devs could do side-by-side comparisons of interface changes
19:22 lucian whiteknight: do you think it'll be possible to have deprecation window?
19:23 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
19:23 lucian from the ml I understood that parrot is changing too much now for something like that
19:24 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?
19:24 whiteknight so if you like how your parrot worked back on November 13, you do perl Configure.pl --deprecation-cutoff=20101113
19:24 lucian whiteknight: ah, i see. that'd be nice, in fact
19:25 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
19:25 whiteknight maybe. I don't dislike that idea
19:25 lucian whiteknight: if you're in some fork somewhere, then dates won't be useful either
19:25 lucian what does the date mean? the state in github master at that date?
19:26 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
19:26 whiteknight has nothing to do with git at all
19:26 lucian whiteknight: right
19:26 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
19:27 lucian whiteknight: it seems to me like that might be confusing
19:31 whiteknight #if CONFIGURE_TIME > TT_XXX_CUTOFF
19:31 whiteknight if we're after the cutoff we do one thing, before it we do something else
19:32 whiteknight and with macros like that, we can have the ticket name right there in the conditional
19:34 dukeleto NotFound: does winxed have a meta object protocol ?
19:35 NotFound dukeleto: plain and simple parrot Class
19:38 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 whiteknight dukeleto: I'm perfectly happy to do whatever adaptation work is required, of course
19:38 whiteknight 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)
19:47 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:48 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:49 dukeleto whiteknight: i keep losing the link to that paper
19:49 whiteknight I go to scholar.google.com and search for Piumarta
19:49 * Coke suggests putting it on the wiki. ;)
19:50 whiteknight http://citeseerx.ist.psu.edu/viewdoc/download?​doi=10.1.1.132.7845&rep=rep1&type=pdf
19:50 whiteknight Coke: Damnit! Enough of you and your logic
19:50 whiteknight :)
19:50 whiteknight that would only make sense, wouldn't it?
19:55 Coke "you green blooded, inhuman---"
19:57 whiteknight I'm starting to worry that a bootstapped javascript compiler written in javascript will be a huge headache
19:58 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
19:58 NotFound whiteknight: it doesn't need to be portable, just copy the generated pir to other platforms.
19:59 NotFound 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
20:00 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
20:00 whiteknight I don't like Rhino
20:01 NotFound Alternatively, write a C++ stage 0 ;)
20:03 whiteknight actually, Narwhal uses Rhino. So that's a bit of a waste
20:04 NotFound For extra dificult points: make it work with a brwoser jasvascript.
20:10 wesjdj joined #parrot
20:16 lucian whiteknight: nodejs is nice
20:16 lucian NotFound: and that's not hard at all, in fact
20:18 lucian 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?
20:18 lucian whiteknight: yep, that too
20:18 whiteknight ok.
20:18 lucian whiteknight: for example, it's the default CoffeeScript env
20:18 lucian it's much faster than narwhal, too :)
20:19 PerlJam narwhal can use v8 just like nodejs
20:20 lucian PerlJam: it can? didn't know
20:20 lucian anyway, for cli the Rhino startup time is very annoying
20:21 lucian and both narwhal and nodejs implement a lot of CommonJS to be useful for this particular project
20:25 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:26 whiteknight once we have a fakecutable that we can bootstrap, we ditch anything we don't need and self-host after that
20:27 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
20:28 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
20:28 whiteknight We need a fancy name for it
20:29 whiteknight and anybody who recommends "ecmascript" is getting kick/banned from the channel
20:29 PerlJam whiteknight: how about "livescript"?  :)
20:29 NotFound deadscript X-)
20:30 PerlJam could call it "eich" after the guy who started it all
20:31 lucian PerlJam: +1
20:31 Coke I recommend ecmascript.
20:32 NotFound ecmascipt is the language, we need a name for the compiler.
20:32 NotFound +1 for "eich"
20:32 plobsing joined #parrot
20:33 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 whiteknight I was hoping there would be something more useful in there
20:33 PerlJam whiteknight: are you sure you didn't accidentally search for Parrot Beaverage?
20:33 PerlJam ;>
20:34 lucian incidentally, i thought of a great name for a Java compiler: the word 'parrot' in javanese
20:35 NotFound http://web.archive.org/web/20000815​055653/people.netscape.com/brendan/
20:35 whiteknight lucian: and what is that word?
20:35 lucian whiteknight: dunno, looking for a dictionary
20:37 NotFound But that will be better for a java compiler, not for a javascript one.
20:38 PerlJam random somewhat related thing:
20:38 PerlJam https://secure.wikimedia.org/wi​kipedia/en/wiki/Javanese_script
20:38 Coke parascript.
20:38 Coke loriscript
20:39 lucian whiteknight: manuk = bird, can't find for parrot
20:41 lucian PerlJam: so Hanacaraka or Carakan?
20:42 PerlJam Carakan
20:42 PerlJam (would be my preference)
20:42 atrodo Carakan is the cooler looking and easier to remember of the two
20:42 PerlJam eich is nice and short though
20:43 whiteknight Kakaktua is Cockatoo in javanese
20:43 lucian PerlJam: yep, i prefer eich too
20:44 NotFound Carakan sounds like "dog-headed", an insult in Galician X-)
20:44 NotFound Actually faced, not headed.
20:44 lucian carakan is taken http://en.wikipedia.org/wi​ki/Presto_(layout_engine)
20:45 NotFound Palascript, using the imaginary island of Pala instead of Java.
20:46 lucian NotFound: +.5
20:46 NotFound http://en.wikipedia.org/wiki/Island_(novel)
20:46 bacek_at_work "teaplot"
20:46 lucian in fact, it sounds like javascript, might be better than eich
20:46 lucian i always though cardinal and rakudo were rather opaque names
20:47 PerlJam lucian: I've always thought of that as a feature though
20:48 lucian PerlJam: how so? they're supposed to be 100% compatible implementations
20:48 lucian at least cardinal is
20:49 bacek_at_work dukeleto, can you look at http://trac.parrot.org/parrot/ticket/1833 ?
20:49 bacek_at_work dukeleto, http://trac.parrot.org/parrot/ticket/1802 looks like good GCI task too.
20:49 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 #parrot
20:49 lucian PerlJam: i much prefer Jython, IronPython, PyPy, pynie, etc
20:50 bacek left #parrot
20:50 lucian they're all obviously python
20:50 lucian PerlJam: cardinal isn't obviously ruby
20:50 NotFound At one point we discussed suffixing or prefixing with winged the languages names, but no one used that way.
20:50 PerlJam I guess I see no need for the name to evoke some feeling of similarity between implementations
20:50 NotFound Later, I did my free adaptation of the idea ;)
20:51 lucian PerlJam: it's no significant problem, of course
20:51 lucian but I'd still rather like the name to be descriptive
20:52 lucian NotFound: i see
20:53 Coke just need a one syllable prefix adjective. I suggest "Par". ;)
20:53 PerlJam Coke:  :-)
20:54 lucian i do like partcl as a name. it's great
20:54 PerlJam parva
20:54 lucian btw, nuri = parrot in Indonesian
20:54 lucian which is a bit similar to Javanese
20:54 lucian just like JavaScript is a bit similar to Java
20:55 PerlJam nuri is a nice name.
20:55 dukeleto NotFound: I am very happy that you made reference to Island :)
20:56 lucian so for me it's between 'eich' and 'nuri'
20:57 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 ;)
20:57 bacek_at_work dukeleto, ok.
20:58 NotFound some serious book, I mean
20:58 Tene lucian: Cardinal was named that because they're a bright ruby red.
20:58 Tene http://en.wikipedia.org/wiki/File:Cardinal.jpg
20:58 Tene fwiw
20:58 lucian Tene: yeah, i know. but the name isn't descriptive as "ruby the programming language"
20:58 Tene I don't remember who named it, but I just maintained the name
20:59 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"?
20:59 Tene lucian: Sure, I guess.
20:59 NotFound You mean, like "C"?
21:00 lucian Tene: no, i'm saying the word "cardinal" doesn't jump to be as being Ruby, the programming language
21:00 lucian NotFound: no, i mean like D :)
21:00 lucian meh, i'm just nitpicking
21:00 lucian the name doesn't matter
21:00 plobsing a ruby by any other name...
21:01 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"
21:02 NotFound The future advanced version will be called "Pope"
21:02 lucian NotFound: heh
21:02 Tene You don't see people saying "I wrote this piece of rubinius" either
21:02 lucian Tene: yeah, i know. which is why I said the name of the implementation doesn't matter
21:03 lucian Tene: the two of us keep meaning the same thing, but not understanding each other, i think
21:03 lucian whiteknight: http://jashkenas.github.com/coffee-script/
21:04 Tene lucian: Okay.
21:09 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)?
21:09 dukeleto wesjdj: there probably should be :) Which translation tasks have you done?
21:09 dalek winxed: r700 | NotFound++ | trunk/examples/ajax.winxed:
21:09 dalek winxed: use an anonymous function in example ajax to make it look more javascriptish
21:09 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=700
21:10 whiteknight wesjdj: I'm sure we could invent some
21:10 wesjdj dukeleto: I've done /dev and /download :)
21:10 dukeleto wesjdj: ok, we have more, they just need to be made.
21:10 wesjdj dukleto: OK.
21:10 PerlJam NotFound: divine secretes of the yayapn brotherhood.
21:11 PerlJam s/tes/ts/
21:11 dukeleto coffeescript looks a lot easier to parse than javascript
21:11 NotFound Another silly idea with a classic background: ASL - A Scripting Language
21:11 dukeleto NotFound: i used to hack on YACAS. Perhaps we can make a YAYACAS on parrot that uses PLA
21:12 whiteknight YACAS?
21:12 dukeleto https://secure.wikimedia.o​rg/wikipedia/en/wiki/Yacas
21:12 dukeleto it is an open source computer algebra system
21:12 lucian dukeleto: i don't know, it seems more ambiguous than javascript
21:12 dukeleto similar to mathematica
21:13 dukeleto 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
21:14 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
21:15 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...
21:15 NotFound lucian: yeah, winxed is the definitive incarnation of the style.
21:15 lucian NotFound: thanks :)
21:15 dukeleto lucian: does R do symbolics? I thought it was mostly numerics
21:15 lucian dukeleto: don't know, really
21:15 dukeleto lucian: i doubt it
21:16 dukeleto 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 #parrot
21:16 * dukeleto has a sick definition of fun
21:16 * lucian would like something like clojure, but on parrot
21:17 NotFound lucian: and some emacs macro
21:18 NotFound C-m-butterfly, or something
21:18 lucian NotFound: heh
21:19 NotFound http://xkcd.com/378/
21:19 lucian NotFound: yeah, i remember
21:19 dukeleto C-m-left-elbow-no-really-q
21:22 dukeleto whiteknight: http://yacas.cvs.sourceforge.​net/viewvc/yacas/yacas/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.
21:23 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:25 whiteknight dukeleto: impressive
21:29 dukeleto whiteknight: what plans do you have for PLA? What do you want to use it for?
21:32 whiteknight dukeleto: I'll get back to you. Have to sign off now
21:32 NotFound For Linea Algebra, maybe? ;)
21:32 whiteknight left #parrot
21:35 dukeleto NotFound: nah, that is too boring. Nonlinear algebra is much more fun...
21:36 NotFound PCT: Parrot Chaos Theory
21:36 dukeleto NotFound: if a Parrot flaps it's wings in Portland ...
21:37 NotFound ...winxed born in Spain.
21:47 atrodo http://isparrotfastyet.com/ # I got a chance to hack on this last night
21:48 atrodo Anyone have a good idea on how to checkout a version of Rakudo that corresponds to a version of parrot?
21:49 dukeleto atrodo: you can do the other way around
21:49 dukeleto atrodo: get a version of rakudo, then do "perl Configure.pl --gen-parrot"
21:50 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 ?
21:51 dukeleto atrodo: you should probably give links to the actual Tool::Bench output, so people can look at the details
21:52 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
21:53 dukeleto whiteknight++ # making lots of cool GCI tasks
21:54 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
21:55 plobsing segfaults, dlopen() error, and packfile load errors don't take much time
21:56 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
21:56 atrodo lucian> That's because Rakudo wasn't running for those old tags
21:57 atrodo 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 #parrot
21:57 atrodo dukeleto> To store all the results
21:57 dip left #parrot
21:57 dukeleto atrodo: seems like you can just store JSON and render it directly in Flot
21:58 atrodo dukeleto> Didn't think about that
22:00 atrodo dukeleto> but I already have the DB and the code for it, and i think that'd be more robust long term
22:00 atrodo especially if I start accepting submissions
22:00 dukeleto atrodo: submissions for what?
22:01 dukeleto atrodo: you can't compare benchmarks across machines. It just doesn't work.
22:01 atrodo dukeleto> Submissions from other machines
22:01 atrodo dukeleto> No, but you can compare the speed of parrot over time on x86 vs. ppc vs. x86-64
22:01 dukeleto atrodo: not across machines
22:02 dukeleto 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.
22:02 atrodo dukeleto> Right.  But just looking at the speed on my x86 linode won't show ppc 256m slow downs
22:02 lucian dukeleto: isparrotfastyet could be a frontend for many backends
22:02 NotFound dukeleto: you can't, apple store doesn't allow parrot.
22:02 bluescreen joined #parrot
22:03 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.
22:03 atrodo dukeleto> Correct.  Results would be per-machine, not per-arch
22:03 dukeleto atrodo: you can, but it would be wrong.
22:03 dukeleto atrodo: that sounds feasible, then.
22:05 dukeleto 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.
22:06 NotFound We can take control of some botnet and use it.
22:06 GeJ Bonjour everyone.
22:06 atrodo NotFound> Now we're talking
22:06 GeJ Github has a b0rked again?
22:06 atrodo "Excuse us complete stranger while we benchmark our project on your machine without your permission"
22:07 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.
22:07 dukeleto GeJ: github seems fine to me
22:07 plobsing somebody start parrot-benchmarking-@home
22:07 dukeleto cotto_work: ok, i have 2 that bacek_at_work pointed out to me
22:08 cotto_work I tagged those already
22:08 dukeleto cotto_work: darn, i just realized that :)
22:08 cotto_work </ninja>
22:08 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
22:09 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.
22:09 * dukeleto just approved a whole bunch of tasks relating to PLA and Winxed
22:09 cotto_work ;)
22:09 dukeleto cotto_work: NINJA!
22:09 atrodo Ninja's don't yell
22:09 dukeleto atrodo: so you just checkout out an old version of Rakudo and do the same thing
22:09 NotFound What's the url of the task list?
22:09 dukeleto atrodo: it knows the version of parrot it needs
22:10 dukeleto atrodo: look at build/PARROT_REVISION in rakudo.git
22:10 dukeleto atrodo: but you will run into issues at the svn-to-git boundary
22:11 atrodo dukeleto> Yep, and that's where most of the release tags are
22:11 atrodo I may just say forget it and do those 12 manually
22:11 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
22:12 dukeleto atrodo: old commits have their svn revision embedded in them
22:13 atrodo dukeleto> That's true.  Still probably a manually job for back releases
22:43 fbrito left #parrot
22:46 theory left #parrot
22:50 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#1476) fulltest) at aae1ea9 - Ubuntu 10.10 i386 (g++-4.5)
22:54 plobsing left #parrot
23:02 TypeNameHere_____ joined #parrot
23:02 TypeNameHere_____ left #parrot
23:02 lucian left #parrot
23:09 hercynium left #parrot
23:33 fperrad left #parrot
23:40 whiteknight joined #parrot
23:50 bluescreen whiteknight: ping
23:51 bluescreen hi, btw
23:54 donaldh joined #parrot
23:55 whiteknight bluescreen: pong
23:56 donaldh left #parrot
23:56 donaldh joined #parrot
23:56 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:57 bluescreen 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 bluescreen so both the op and the api can benefit from it
23:57 bluescreen maybe is a question for the architect
23:58 bluescreen I'd vote for the 2nd option

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

Parrot | source cross referenced