|
Parrot 2.5.0 Released! | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: review experimental features for promotion or removal, fix 'make html', pre-release testing. Set by moderator on 8 July 2010. |
|||
| dalek | kudo: 91a34e7 | jonathan++ | src/ (2 files): Rip out the non-syntactic Whatever method call to block logic. Doesn't cause any path. |
00:09 | |
|
00:28
rv2733 joined
00:43
tcurtis joined
|
|||
| dalek | rtcl-nqp: 6c17315 | Coke++ | (2 files): define some more globals. |
00:54 | |
|
01:32
tcurtis_ joined
02:18
hercynium joined
|
|||
| dalek | kudo: bb6df24 | pmichaud++ | src/Perl6/Grammar.pm: Accept <.ws> after version or module information in 'use' (per STD.pm6). |
02:27 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34858), fulltest) at r48074 - Ubuntu 10.04 amd64 (gcc with --optimize) | 02:33 | |
|
02:42
janus joined
03:03
TiMBuS joined
03:10
theory joined
|
|||
| bacek_at_work | ~~ | 03:12 | |
| seen tcurtis | |||
| purl | tcurtis was last seen on purl 1 hours, 33 minutes and 19 seconds ago, saying: <private message> | ||
| tcurtis | bacek: yes? | 03:13 | |
| bacek_at_work | aloha, tcurtis | ||
| tcurtis | Hello. | ||
| bacek_at_work | Can you drop post-optimization branch in pirate? I merged it into master already | ||
| Or you want to continue to work in branch? | |||
| tcurtis | Deleting it is fine. | 03:17 | |
| bacek_at_work | ok | 03:18 | |
| mikehh | rakudo (bb6df24) builds on parrot r48074 - make test PASS, spectest_smolder -> #348 (pugs r31630) FAIL - Ubuntu 10.04 amd64 (gcc with --optimize) | 03:32 | |
| t/spec/S14-roles/basic.rakudo - Parse errors: No plan found in TAP output - All 4 subtests passed | |||
| t/spec/S32-temporal/DateTime.t - Failed 23/47 subtests | |||
| 20 TODO PASSes in 4 files | |||
| bacek_at_work: pir/PIRATE fails tests - Parse errors: Unknown TAP token: ""load_bytecode" couldn't find file 'POST/Pattern.pbc'" | 03:36 | ||
| tcurtis | mikehh: do you have my GSoC stuff installed? PIRATE requires it now. | 03:40 | |
| mikehh | tcurtis: how do I do that? | 03:42 | |
| tcurtis | mikehh: if you have plumage, "./plumage install tree-optimization" will work. Otherwise, it's at github.com/ekiru/tree-optimization now. | 03:43 | |
| bacek_at_work | tcurtis, can you update pirate's README to reflect dependency on tree-optimization? | 03:44 | |
| mikehh | tcurtis: I can probably test through plumage - at the moment I have local dirs with parrot instaled in /usr/local, plumage does a checkout into .parrot dir | 03:45 | |
| tcurtis | bacek_at_work: will do. | 03:46 | |
| mikehh | partcl-nqp(6c17315) - make ok, make test PASS - t/cmd_expr.t - TODO passed: 287 - parrot r48074 - Ubuntu 10.04 amd64 (gcc with --optimize) | 03:49 | |
| tcurtis | bacek_at_work: pushed the README change. | 03:58 | |
| dalek | r: 1c61c4b | (Tyler Leslie Curtis)++ | README: Add a note in README about the dependency on tree-optimization. |
04:00 | |
|
04:01
slavorgn joined
04:02
GeJ joined
|
|||
| mikehh | tcurtis: ok that worked | 04:08 | |
| tcurtis: is all your GSOC work in that or are you still working with the svn branch? | 04:09 | ||
| tcurtis | mikehh: all of it is in the github repository. | 04:10 | |
| mikehh | tcurtis: you need to get dalek to report changes there as it does for pir/rakudo/partcl-nqp,winxed etc. - dont ask me how, don't know, but someone else should | 04:14 | |
| tcurtis | mikehh: Alright. | 04:18 | |
| mikehh | tcurtis: I think either sorear, particle or infinoid handles that | 04:19 | |
| sorear | the official go-to person for dalek configuration changes is diakopter | ||
| mikehh | sorear: noted | 04:20 | |
| sorear | ...who is mysteriously absent from #parrot atm, but present in #perl6 | ||
| I'll ask him what the procedure is next time we meet, it could use more redundancy | |||
|
04:28
brooksbp joined
04:44
dalek left,
dalek joined
04:55
GeJ joined,
fperrad joined
05:24
slavorgn joined
05:25
GeJ joined
05:43
uniejo joined
|
|||
| bacek_at_work | tcurtis, thanks! Is it typo - "plumage or on plumage"? | 05:45 | |
| tcurtis | bacek_at_work: indeed, it is. Thanks for catching that. | 05:46 | |
| tcurtis pushes a fix. | |||
| dalek | r: 080f2f2 | (Tyler Leslie Curtis)++ | README: Fix typo. |
05:47 | |
| website: tcurtis++ | Tail-call elimination and moving to github | 06:15 | ||
| website: www.parrot.org/content/tail-call-el...ing-github | |||
|
06:15
jsut joined
|
|||
| tcurtis | bacek_at_work: I'm off to bed. Good night. Hopefully this week will allow me PIRATE optimization-hacking time. | 06:16 | |
|
06:22
jsut joined,
uniejo joined,
slavorgn joined,
dalek joined,
theory joined,
TiMBuS joined,
janus joined,
hercynium joined,
rv2733 joined,
Patterner joined,
Chandon joined,
pjcj joined,
plobsing joined,
eternaleye joined,
LoganLK joined,
lucian_ joined,
jan joined,
preflex joined,
PerlJam joined,
JaphMalik joined,
contingencyplan joined,
TonyC joined,
baest joined,
cotto_work joined,
mikehh joined,
NotFound joined,
skv joined,
szabgab joined,
Hunger joined,
gaz joined,
ttbot joined,
simcop2387 joined,
Khisanth joined,
cotto joined,
hudnix joined,
pmichaud joined,
japhb joined,
Util joined,
integral joined,
cosimo joined,
Essobi joined,
wagle joined,
ingy joined,
aloha joined,
spinclad joined,
rblackwe joined,
treed joined,
arnsholt joined,
jhelwig joined,
atrodo joined,
particle joined,
slavorg joined,
athomason joined,
estrabd joined,
jjore joined,
sjn joined,
Ryan52 joined,
sri joined,
zibri joined,
bacek_at_work joined,
knewt joined,
ascent joined,
TimToady joined,
workbench joined,
KatrinaTheLamia joined,
mattp joined,
moritz joined,
jnthn joined,
purl joined
06:28
ttbot joined
06:31
theory joined,
rv2733 joined,
plobsing joined,
eternaleye joined,
LoganLK joined,
jan joined,
PerlJam joined,
cotto joined,
hudnix joined,
rblackwe joined,
arnsholt joined
06:54
purl joined
06:56
purl joined,
ttbot joined,
rv2733 joined,
eternaleye joined,
LoganLK joined,
jan joined,
PerlJam joined,
cotto joined,
hudnix joined,
rblackwe joined,
arnsholt joined
06:58
fperrad joined
07:02
LoganLK joined
07:26
integral joined
07:29
elmex joined
08:34
jsut_ joined
|
|||
| bacek | ~~ | 09:17 | |
| tcurtis++ # good post | |||
| msg tcurtis You did answer your "question" about why I didn't "explicitly stated" reason for moving optimizer into own repo. Just because I want to use it in PIRATE without additional complexity :) | 09:19 | ||
| purl | Message for tcurtis stored. | ||
|
09:26
clinton joined
09:34
ruoso joined
09:37
preflex joined
|
|||
| bacek | msg tcurtis afaiu Tree::Walker is in really good shape now. Let's move to SSA for the next challenge :) | 09:42 | |
| purl | Message for tcurtis stored. | ||
|
09:52
muixirt joined
|
|||
| muixirt | hi folks | 09:52 | |
| anyone here and familiar with parrot srcs and the build process | 09:53 | ||
| ? | |||
| moritz | a bit | 09:54 | |
| muixirt | ok moritz do these ARGIN/ARGOUT etc. macros do any good nowadays? | 09:55 | |
| muixirt isn't even an amateur if it comes to C | |||
| moritz | yes, I think so | 09:56 | |
| muixirt | moritz: these macros seem to be empty on my platform (linux amd64) | 09:57 | |
| moritz | uhm. They detemine the arity of ops and PMC methods, no? | 09:58 | |
| I kinda don't see how parrot could work if they were empty | |||
| muixirt | some magic incantation for Configure.pl or make? | 10:00 | |
| moritz | how did you figure out it is empty? | ||
| muixirt | moritz: gimme just a minute to look for it again | 10:01 | |
| moritz: it seem to depend on PARROT_HAS_HEADER_SAL which is not set (sal is a windows thing right?) | 10:04 | ||
| according to compiler.h | 10:05 | ||
| another thing is make splint, parrot isn't kept lint clean | 10:10 | ||
| moritz: to be more precise: ARGIN(x) resolves simply to x, it doesn't do anything to it | 10:20 | ||
| bacek | muixirt, it's all about headerizer and PARROT_ASSERT_ARGS | 10:21 | |
| So, ARGIN(x) doesn't do anything (you are correct) | 10:22 | ||
| ASSERT_ARGS (without PARROT_ prefix) | 10:24 | ||
| muixirt | sorry for being stupid, but what does it do? example? | 10:28 | |
| bacek | ASSERT_ARGS macro expanded to quite few asserts. | ||
| E.g. arg shouldn't be NULL for pointer, etc | 10:29 | ||
| (and it's basically what it does) | 10:30 | ||
| muixirt | bacek it depends on compiler/platform? | 10:32 | |
| bacek | Plus it add compiler specific pragmas on args. Which can give better performance in optimized builds. Because decent compiler can omit some checks on arguments | ||
| muixirt, sorta :) | |||
| mikehh | muixirt: what compiler/platform are you using/om? | 10:33 | |
| bacek | ASSERT_ARGS are platform independent, pragmas are | ||
| mikehh | s/om/on/ | ||
| muixirt | mikehh: gcc/linux amd64 | 10:34 | |
| mikehh | muixirt: me also - Ubuntu 10.04 amd64 | ||
| muixirt: ASSERT_ARGS needs to be the first entry in any sub, before anything else | 10:35 | ||
| muixirt | this C macro jungle in a real project is too hard to grasp for a beginner like me | 10:36 | |
| bacek | muixirt, yeah... I personally hate it for screwing up vim indenting. But it's necessary evil because it can catch some very-hard-to-catch error early :) | 10:38 | |
| mikehh | muixirt: I **HATE** C macros, but they seem to be necessary for consistancy | ||
|
10:50
lucian joined
|
|||
| muixirt | 12099 code warnings, parrot isn't going to be lint clean in the near future, I presume. | 11:08 | |
| bacek | muixirt, Andy "Petdance" Lester is your man-in-charge for such things. He did a quite good job in making parrot lint/slint clean. | 11:12 | |
| muixirt | bacek but then was that? | 11:13 | |
| and imho all devs are in charge of keeping the source lint clean (if it is an objective) | 11:15 | ||
| bacek | muixirt, erm... Can you rephrase your question? English is only my forth language. | ||
| muixirt | how long was that ago? (being lint clean) | 11:16 | |
| bacek | muixirt, not quite true about "lint clean" | ||
| First - lint (or splint) isn't available on all platforms. | 11:17 | ||
| Second - we have slightly different coding standards (covered by "make codetest") | 11:18 | ||
| Third - alas, there is not much available resources to make our codebase "lint clean" | |||
| I do like idea of being "compiler warnings"/"lint clean" in general. But... | 11:20 | ||
| We just doesn't have enough time and people to do all of this. | 11:21 | ||
| muixirt, you can chase mikehh for enforce some coding standards. | 11:23 | ||
| muixirt | 12099 code warnings. let's say one per cent are real problems you could catch 120 potential bugs :-) | 11:28 | |
| bacek | we have 600+ opened trac tickets already :) | 11:29 | |
| muixirt | you don't want to hear about more bugs? :-) | 11:30 | |
| bacek | I _do_ want to _know_ about them | ||
| Especially if "lint" can point on exact location where bug is. | 11:32 | ||
| And _I_ will put everything aside to fix it. | 11:33 | ||
| So, it's classical trade-off: you'll point to some function/line-of-code with potential bug, we'll try to fix it :) | 11:35 | ||
|
11:37
whiteknight joined
|
|||
| bacek | Even simple "Lint complains about blah-blah-blah" will help. | 11:38 | |
|
11:42
rv2733 joined
|
|||
| mikehh | muixirt: how did you run lint/splint | 11:43 | |
| muixirt | make splint | 11:44 | |
| mikehh | muixirt: I thought that was broken - let me check | ||
| muixirt | trac.parrot.org/parrot/wiki/splint | 11:45 | |
| Coke seems to be the man for it | |||
|
12:05
khairul joined
|
|||
| mikehh got to go out for a bit - bbl | 12:20 | ||
|
13:01
jsut joined
|
|||
| Coke | what did I do this time? | 13:25 | |
| I am more of a "clean up makefile" guy than a "splint" guy. | |||
| you might need to dig deeper with 'svn blame'. =-) Seriously, though, lester is your man for linting. | 13:26 | ||
|
13:35
AzureStone joined
13:53
uniejo joined
14:01
bubaflub joined
14:04
Andy joined
14:10
PacoLinux joined
|
|||
| Coke | Andy: hio. muixirt was asking about splint. | 14:11 | |
| but he seems to be gone now. just fyi. | |||
|
14:12
gbacon joined
14:14
NotFound joined
|
|||
| NotFound | hi | 14:15 | |
| purl | hola, NotFound. | ||
|
14:19
muixirt joined
14:22
tcurtis joined
14:30
ash_ joined
14:49
PacoLinux_ joined,
patspam joined
14:57
rblackwe joined
|
|||
| cotto_work | ~~ | 15:20 | |
| dalek | rrot: r48075 | khairul++ | branches/gsoc_instrument (9 files): Refactored common items out of InstrumentGC and InstrumentVtable. |
15:40 | |
| cotto_work | That is not a small diff. | 15:41 | |
| khairul's blog? | 15:42 | ||
| atrodo | Not even close to a small diff. | ||
| khairul | sorry. | ||
| cotto_work | khairul's blog is parrot.mangkok.com/ | ||
| ohai | |||
| I wasn't complaining | 15:43 | ||
| khairul | hiya cotto. | ||
| cotto_work | It looks like much of it is generated code anyway. | 15:45 | |
| clock? | |||
| purl | cotto_work: LAX: Mon 8:45am PDT / CHI: Mon 10:45am CDT / NYC: Mon 11:45am EDT / LON: Mon 4:45pm BST / BER: Mon 5:45pm CEST / IND: Mon 9:15pm IST / TOK: Tue 12:45am JST / SYD: Tue 1:45am EST / | ||
|
15:54
davidfetter joined
15:58
theory joined
16:04
whiteknight joined
16:08
ruoso joined
16:14
whiteknight__ joined
16:28
eternaleye joined
|
|||
| Coke | mildew? | 16:40 | |
| cotto_work | no thanks. I just ate. | 16:43 | |
| tcurtis | mildew is www.perlfoundation.org/perl6/index.cgi?mildew | 16:44 | |
| Although I don't know how up-to-date that is. | 16:45 | ||
| davidfetter | o/` i've got 99 opcodes and fopen ain't one o/` | ||
| cotto_work | davidfetter++ | ||
| that gives me an idea for an alternate name for "gripe" ;) | 16:46 | ||
| davidfetter | heh | 16:47 | |
| tcurtis | gripe? | ||
| cotto_work | write to stderr | ||
| davidfetter | :) | ||
| "whinge" | 16:48 | ||
|
16:50
AndyA joined
17:14
gbacon joined
|
|||
| atrodo | "whinge"? | 17:33 | |
| cotto_work | I too am confused by suspicious foreign words. | 17:35 | |
|
17:36
bubaflub_ joined
|
|||
| Coke | whinge is british for whine. | 17:47 | |
| cotto_work | like I said, suspicious foreign words | ||
|
17:51
bubaflub joined
|
|||
| Coke | If you only learn one other language, British isn't so hard. | 17:52 | |
| atrodo | I wouldn't use british enough to remember it | 17:53 | |
|
18:54
LoganLK joined
|
|||
| Coke | Is it possible to use find_lex or find_dynamic_lex to go higher up the lex chain? | 19:17 | |
| ah, .outer. | 19:18 | ||
| (pmichaud++ already did this trick for [uplevel] for partcl-nqp) | |||
| dalek | kudo: cfca4fb | moritz++ | src/core/IO.pm: implement cwd, jnthn++ |
19:19 | |
| kudo: 129c37f | moritz++ | src/core/Match.pm: [Match.perl] fix double-brackets |
|||
| kudo: 94d01ff | moritz++ | src/core/Match.pm: initial Match.new - does not handle subcaptures yet |
|||
|
19:27
bubaflub joined
19:50
eternaleye joined
20:11
hercynium joined
20:33
joeri joined
20:34
joeri left,
AndyA joined
20:40
lucian joined
20:44
bluescreen joined
|
|||
| bacek | aloha, humans | 20:48 | |
| cotto_work | ~~ bacek | 20:51 | |
| bacek | hi cotto | ||
| dalek | nxed: r545 | NotFound++ | trunk/winxedst1.winxed: tiny refactor of NewExpr, first step towards constructor calls |
20:55 | |
|
21:09
Mark joined
|
|||
| Mark | hey | 21:09 | |
| moritz | hi | 21:10 | |
| Mark | before i ask my question, I'd like to say how much I am currently liking Parrot ;) | ||
| seems like a very useful platform/tool | 21:11 | ||
| with that said, i am following the pct introduction. I have set up languages/squaak and tried to run parrot setup.pir test | 21:12 | ||
| I got Parrot revision r44549 required (currently r0) | |||
| moritz | where did you get parrot from? | ||
| Mark | Current supported release | 21:13 | |
| tar | |||
| moritz | I only ever use development releases, so I fear I can't really help you | 21:15 | |
| also I've heard that the squaak tuorial is a bit out of date... but that information could be out of date as well | |||
| Coke | no, the meta-information is correct. | 21:16 | |
| updating the tutorial has slipped through the cracks. :( | 21:17 | ||
| Mark | so, parrot setup.pir test should not work? | ||
| bacek | Mark, It should. Let me check. | 21:19 | |
| Mark, are you on 2.3? | 21:21 | ||
| Mark | bacek: yes, it seems like Stable release is 2.3 | ||
| bacek | Mark, yeah... Sorry, it's probably broken in 2.3. I fixed it on April, 24th. Which is 4 days after 2.3... | 21:23 | |
| Mark, you can try to get squaak from svn. It should work with 2.3. | 21:24 | ||
| Mark | bacek: squaak, or parrot? | ||
| bacek | squaak | ||
| Mark | so, the generator is old? | ||
| bacek | Mark, yes. It uses old nqp. | 21:25 | |
| trac.parrot.org/parrot/browser/trun...ges/squaak | |||
| Mark | bacek: i see, k. Trying with checkout | 21:26 | |
| what version is the svn? | |||
| 2.5? | |||
| purl | well, 2.5 is out, and OpenBSD has a nice port of egcs-stable (the current -snapshot is actually older) | ||
| bacek | Mark, it's almost 2.6 :) | 21:27 | |
| Mark | so, i better re-make ;) | ||
| bacek | :) | ||
| Mark | hm, will "make install" replace the older binaries? | ||
| bacek | Mark, yes. | 21:28 | |
| Mark | great | ||
| bacek | Libraries will not be replaced. | ||
| somewhere in /usr/local/lib/parrot/ | |||
| Mark | bacek: should I worry about that? | 21:29 | |
| bacek | Nope | ||
| Mark | k | ||
| tcurtis | Mark: the new ones will be in a different path /usr/local/lib/parrot/2.5.0-devel(I think) as opposed to /usr/local/lib/parrot/SOMETHING-ELSE, and the newly installed parrot will know where to find the new ones. | 21:30 | |
| Mark | thnx | ||
| i dont see tools/dev/mk_language_shell.pl | 21:31 | ||
| bacek | tcurtis, aloha! Where is my beloved SSA? :) | ||
| cotto_work | bacek, if you have your way our optimizations will give real compilers a run for their money | 21:32 | |
| bacek | Mark, it should be in /usr/local/lib/parrot/2.5.0-devel/tools/dev/ | 21:33 | |
| cotto_work, :) We do need some kind of SSA for any decent optimizations. | 21:34 | ||
| tcurtis | bacek: NYdesigned. :) | ||
| Mark | ah | ||
| bacek passing "Modern Compiler Design and Implementation" by Muchnick to tcurtis | 21:35 | ||
| tcurtis, actually you can choose lambda lifting instead of SSA. | 21:37 | ||
| ash_ | lambda lifting? | 21:47 | |
| tcurtis | bacek: I'd have thought CPS would be a more obvious alternative to SSA. | ||
| bacek | tcurtis, erm... They are orthogonal. | 21:48 | |
| SSA form is about variable assignment. CPS is control flow. | 21:49 | ||
| "lambda lifting" is wrong term, sorry. | |||
| tcurtis | bacek: according to secure.wikimedia.org/wikipedia/en/...nment_form , SSA is formally equivalent to CPS without non-local control flow. | 21:50 | |
| bacek | tcurtis, github.com/bacek/pir/blob/alpha/TODO (under OPTIMIZATION) | ||
| tcurtis, hmm. "citation required" (or how it's usually called in wikipedia) :) | 21:54 | ||
| Anyway, parrot is CPS based. So, got for it :) | |||
| " The CPS!SSA transformation is especially helpful for compiling functional programs. Many optimizations that normally require flow analysis can be performed directly on functional CPS programs by viewing them as SSA programs" | 21:56 | ||
|
22:01
davidfetter joined
|
|||
| tcurtis became significantly less excited about the free ACM student membership from GSoC when he realized it wouldn't actually let him read ACM-published papers. | 22:02 | ||
| cotto_work | not much point to that | 22:04 | |
| bacek | afk # rl | ||
| tcurtis | bacek: citeseerx.ist.psu.edu/viewdoc/summa...1.1.3.6773 is a paper about the equivalence. | ||
| cotto_work | robot life? | 22:05 | |
| ;) | |||
| tcurtis is wondering when the best time to do SSA/CPS transformation and related optimizations is. | 22:14 | ||
| Mark | "First, open your editor and open the files src/parser/grammar.pg" i dont have the parser folder in src/ ? | 22:17 | |
| where can i find the grammar generated by mk_language_shell ? | 22:21 | ||
| tcurtis | Mark: unfortunately the tutorial is out of date. I think mk_language_shell.pl creates the core of a NQP-rx and PCT-based compiler, but the tutorial still uses PGE. | 22:23 | |
| Mark | tcurtis: where can i go for updated reference? | 22:24 | |
| :( The tutorial was beginning to get very informative and easy to follow | 22:26 | ||
| it was always, actually | |||
| cotto_work | which tutorial were you looking at? | ||
| Mark | docs.parrot.org/parrot/latest/html/index.html | ||
| docs.parrot.org/parrot/latest/html/...orial.html to be exact | 22:27 | ||
| tcurtis | A lot of the grammar stuff will be either close to the same or almost the same, now, but there are some differences. | 22:28 | |
| Mark | tcurtis: well, to start off, i dont see the grammar file :P | ||
| tcurtis | The grammar file should not be in src/LANGUAGE_NAME/Grammar.pm | ||
| The actions in src/LANGUAGE_NAME/Actions.pm | 22:29 | ||
| Mark | oh, its a pm though | ||
| what is the difference between a .pm and a .pg? | 22:30 | ||
| tcurtis | Right. Now that NQP-rx has regex/grammar support, grammars are written in NQP itself. | ||
| Mark | tcurtis: thnx btw | ||
| tcurtis | .pg is used for PGE grammars, but .pm is used for modules in NQP or Perl 5 or 6. In this case, it's an NQP file. | 22:31 | |
| Mark | what is the difference between a token and a ri;e? | 22:33 | |
| tcurtis | The best reference for information about Perl 6 regexes, as NQP implements, is the Perl 6 spec(perlcabal.org/syn/S05.html is the main relevant part). | ||
| Mark | tcurtis: nvm, its in the tutorial :P | 22:34 | |
| thnx | |||
| cotto_work | Mark, moritz++ has a good explanation on his blog: perlgeek.de/blog-en/perl-5-to-6/07-rules.html | 22:36 | |
| Mark | cotto_work: thnx | ||
| cotto_work | under Named Regexes and Grammars | 22:37 | |
| tcurtis | perlgeek.de/blog-en/perl-5-to-6/19-regex.html and perlgeek.de/blog-en/perl-5-to-6/20-...r-xml.html are a couple further posts from Moritz about them. The last one writes a simple grammar. No actions, though. | 22:38 | |
| Mark | on a scale of 1 to 10, how practical is it to write a language that targets the Parrot vm? | ||
| tcurtis | There are some aspects of regexes that aren't yet fully implemented from the spec, but it's pretty well implemented. | ||
| cotto_work | what do you mean by "practical"? | ||
| Mark | not inefficient | 22:39 | |
|
22:39
rv2733 joined,
kid51 joined
|
|||
| cotto_work | in terms of how fast your code will run or in terms of how fast you'll get to a working compiler? | 22:40 | |
| Mark | cotto_work: how fast your code will run ('m not doubting the working compiler part ;) ) | ||
| cotto_work | parsing is pretty slow atm | ||
| in PIRATE, it's the slowest stage by orders of magnitude | 22:41 | ||
| ash_ | are there any good examples of nqp grammars with actions? | ||
| maybe i should say simple examples of them? | 22:42 | ||
| cotto_work | an action is just a chunk of nqp code that gets called (kinda) once a grammar rule has found a match. | 22:43 | |
| It'll probably be easiest to get used to nqp by looking at existing code (i.e. its test suite) so you're not learning both nqp's syntax *and* PAST manipulation at the same time. | 22:44 | ||
| tcurtis | Mark: how fast do you need it to run? Do you need it to run really fast right now? Parrot's not terribly fast right now; if I had a chance to run some code on a super-computer for a length of time, I definitely wouldn't use Parrot to do it. On the other hand, that's definitely something we're working on, and getting some significant improvements in. | 22:45 | |
| cotto_work | Lorito is a big part of our plan to get faster. | 22:46 | |
| tcurtis | In addition, there are some plans in the work for some things that will hopefully result in very significant performance improvements for Parrot. e.g., Lorito, as cotto mentioned. | ||
| Mark | tcurtis: fast in comparison to ruby per se | ||
|
22:52
whiteknight joined
|
|||
| ash_ | parrot's not terribly slow with hand crafted parrot code, but as a whole its not faster than ruby | 22:55 | |
| whiteknight | not yet. Performance is definitely not Parrot's strong point right now | 22:58 | |
| cotto_work | you could go with a hand-rolled parser in C or C++ like winxed | 23:06 | |
| I'm not saying I would, but it's possible. | |||
| tcurtis | Mark: on the plus side, I'm working on an optimization framework right now to help HLL compilers optimize their code more easily. That's one of the biggest slow spots currently: HLLs without very thoroughly-optimized generated code. For example, on a simple loop incrementing a variable from 1 to 100,000, PIR is faster than Ruby or Python for me, but NQP is significantly slower than either. Trivial benchmarks, of course. | 23:07 | |
| But my point is that there's a lot of room for optimization of Parrot compilers. Probably the biggest slow-down here in the NQP compared to the PIR is that the PIR version doesn't box its numbers. | 23:09 | ||
| ash_: what exactly is the new runcore you're working on going to do? | 23:13 | ||
| Mark: there are two obvious big differences I can think of between the Squaak tutorial and now, by the way. | 23:14 | ||
| Mark: first is that the appropriate action method is automatically called at the end of a rule successfully matching. | 23:15 | ||
| The other is that $( $<foo> ) is no longer the correct way to get a match result's AST: $<foo>.ast is. | |||
| cotto_work | Heh. A blog post I was reading on creating a tiny toy language ended with a link to the p&w paper. ( thingsaaronmade.com/blog/bootstrapp...-code.html ) | 23:20 | |
| tcurtis | cotto_work: I'm using P&W's object system as the base for my Perl 6 to LLVM compiler. :) | 23:23 | |
| Well, as the base of the runtime. | |||
| cotto_work | are you blogging about that? | ||
| sounds like an interesting project | 23:24 | ||
| tcurtis | cotto_work: not yet. Maybe once it does more than "say 42;" or "my $a = 42; say $a;" and going from Perl 6 to native code requires less than 7(although to be fair, two of them only need to be done once to build the runtime) commands. :) | 23:26 | |
| cotto_work: github.com/ekiru/bennu is the github repository. It currently uses Yapsi as its parser. | 23:29 | ||
| cotto_work starts to count the layers and gets dizzy | 23:30 | ||
|
23:34
ruoso joined
23:55
Psyche^ joined
|
|||