Camelia, the Perl 6 bug

IRC log for #parrot, 2010-07-12

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 dalek rakudo: 91a34e7 | jonathan++ | src/ (2 files):
00:09 dalek rakudo: Rip out the non-syntactic Whatever method call to block logic. Doesn't cause any
00:09 dalek rakudo: spectest regressions, and removes a check from the method dispatch critical
00:09 dalek rakudo: path.
00:09 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​1a34e765d230097b8a02154e947e5523b07c472
00:28 rv2733 joined #parrot
00:43 tcurtis joined #parrot
00:54 dalek partcl-nqp: 6c17315 | Coke++ |  (2 files):
00:54 dalek partcl-nqp: define some more globals.
00:54 dalek partcl-nqp: bump PARROT_REVISION to track change in iglobals constants.
00:54 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/6c17315dbcc661c1355aeb06e3eeab9430090afb
01:32 tcurtis_ joined #parrot
02:18 hercynium joined #parrot
02:27 dalek rakudo: bb6df24 | pmichaud++ | src/Perl6/Grammar.pm:
02:27 dalek rakudo: Accept <.ws> after version or module information in 'use' (per STD.pm6).
02:27 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​b6df249fa0b0662eb8293ae83e035ee713491d0
02:33 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34858), fulltest) at r48074 - Ubuntu 10.04 amd64 (gcc with --optimize)
02:42 janus joined #parrot
03:03 TiMBuS joined #parrot
03:10 theory joined #parrot
03:12 bacek_at_work ~~
03:12 bacek_at_work seen tcurtis
03:12 purl tcurtis was last seen on purl 1 hours, 33 minutes and 19 seconds ago, saying: <private message>
03:13 tcurtis bacek: yes?
03:13 bacek_at_work aloha, tcurtis
03:13 tcurtis Hello.
03:13 bacek_at_work Can you drop post-optimization branch in pirate? I merged it into master already
03:13 bacek_at_work Or you want to continue to work in branch?
03:17 tcurtis Deleting it is fine.
03:18 bacek_at_work ok
03:32 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 mikehh t/spec/S14-roles/basic.rakudo - Parse errors: No plan found in TAP output - All 4 subtests passed
03:32 mikehh t/spec/S32-temporal/DateTime.t - Failed 23/47 subtests
03:32 mikehh 20 TODO PASSes in 4 files
03:36 mikehh bacek_at_work: pir/PIRATE fails tests - Parse errors: Unknown TAP token: ""load_bytecode" couldn't find file 'POST/Pattern.pbc'"
03:40 tcurtis mikehh: do you have my GSoC stuff installed? PIRATE requires it now.
03:42 mikehh tcurtis: how do I do that?
03:43 tcurtis mikehh: if you have plumage, "./plumage install tree-optimization" will work. Otherwise, it's at http://github.com/ekiru/tree-optimization now.
03:44 bacek_at_work tcurtis, can you update pirate's README to reflect dependency on tree-optimization?
03:45 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:46 tcurtis bacek_at_work: will do.
03:49 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:58 tcurtis bacek_at_work: pushed the README change.
04:00 dalek pir: 1c61c4b | (Tyler Leslie Curtis)++ | README:
04:00 dalek pir: Add a note in README about the dependency on tree-optimization.
04:00 dalek pir: review: http://github.com/bacek/pir/commit/1c6​1c4bd3688ce9fc6a4c595f5e6b0048073b227
04:01 slavorgn joined #parrot
04:02 GeJ joined #parrot
04:08 mikehh tcurtis: ok that worked
04:09 mikehh tcurtis: is all your GSOC work in that or are you still working with the svn branch?
04:10 tcurtis mikehh: all of it is in the github repository.
04:14 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:18 tcurtis mikehh: Alright.
04:19 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
04:20 mikehh sorear: noted
04:20 sorear ...who is mysteriously absent from #parrot atm, but present in #perl6
04:20 sorear I'll ask him what the procedure is next time we meet, it could use more redundancy
04:28 brooksbp joined #parrot
04:44 dalek left #parrot
04:44 dalek joined #parrot
04:55 GeJ joined #parrot
04:55 fperrad joined #parrot
05:24 slavorgn joined #parrot
05:25 GeJ joined #parrot
05:43 uniejo joined #parrot
05:45 bacek_at_work tcurtis, thanks! Is it typo - "plumage or on plumage"?
05:46 tcurtis bacek_at_work: indeed, it is. Thanks for catching that.
05:46 * tcurtis pushes a fix.
05:47 dalek pir: 080f2f2 | (Tyler Leslie Curtis)++ | README:
05:47 dalek pir: Fix typo.
05:47 dalek pir: review: http://github.com/bacek/pir/commit/080​f2f282f65b85dcf79032d3f5df202e43fd52d
06:15 dalek website: tcurtis++ | Tail-call elimination and moving to github
06:15 dalek website: http://www.parrot.org/content/tail-​call-elimination-and-moving-github
06:15 jsut joined #parrot
06:16 tcurtis bacek_at_work: I'm off to bed. Good night. Hopefully this week will allow me PIRATE optimization-hacking time.
06:22 jsut joined #parrot
06:22 uniejo joined #parrot
06:22 slavorgn joined #parrot
06:22 dalek joined #parrot
06:22 theory joined #parrot
06:22 TiMBuS joined #parrot
06:22 janus joined #parrot
06:22 hercynium joined #parrot
06:22 rv2733 joined #parrot
06:22 Patterner joined #parrot
06:22 Chandon joined #parrot
06:22 pjcj joined #parrot
06:22 plobsing joined #parrot
06:22 eternaleye joined #parrot
06:22 LoganLK joined #parrot
06:22 lucian_ joined #parrot
06:22 jan joined #parrot
06:22 preflex joined #parrot
06:22 PerlJam joined #parrot
06:22 JaphMalik joined #parrot
06:22 contingencyplan joined #parrot
06:22 TonyC joined #parrot
06:22 baest joined #parrot
06:22 cotto_work joined #parrot
06:22 mikehh joined #parrot
06:22 NotFound joined #parrot
06:22 skv joined #parrot
06:22 szabgab joined #parrot
06:22 Hunger joined #parrot
06:22 gaz joined #parrot
06:22 ttbot joined #parrot
06:22 simcop2387 joined #parrot
06:22 Khisanth joined #parrot
06:22 cotto joined #parrot
06:22 hudnix joined #parrot
06:22 pmichaud joined #parrot
06:22 japhb joined #parrot
06:22 Util joined #parrot
06:22 integral joined #parrot
06:22 cosimo joined #parrot
06:22 Essobi joined #parrot
06:22 wagle joined #parrot
06:22 ingy joined #parrot
06:22 aloha joined #parrot
06:22 spinclad joined #parrot
06:22 rblackwe joined #parrot
06:22 treed joined #parrot
06:22 arnsholt joined #parrot
06:22 jhelwig joined #parrot
06:22 atrodo joined #parrot
06:22 particle joined #parrot
06:22 slavorg joined #parrot
06:22 athomason joined #parrot
06:22 estrabd joined #parrot
06:22 jjore joined #parrot
06:22 sjn joined #parrot
06:22 Ryan52 joined #parrot
06:22 sri joined #parrot
06:22 zibri joined #parrot
06:22 bacek_at_work joined #parrot
06:22 knewt joined #parrot
06:22 ascent joined #parrot
06:22 TimToady joined #parrot
06:22 workbench joined #parrot
06:22 KatrinaTheLamia joined #parrot
06:22 mattp joined #parrot
06:22 moritz joined #parrot
06:22 jnthn joined #parrot
06:22 purl joined #parrot
06:28 ttbot joined #parrot
06:31 theory joined #parrot
06:31 rv2733 joined #parrot
06:31 plobsing joined #parrot
06:31 eternaleye joined #parrot
06:31 LoganLK joined #parrot
06:31 jan joined #parrot
06:31 PerlJam joined #parrot
06:31 cotto joined #parrot
06:31 hudnix joined #parrot
06:31 rblackwe joined #parrot
06:31 arnsholt joined #parrot
06:54 purl joined #parrot
06:56 purl joined #parrot
06:56 ttbot joined #parrot
06:56 rv2733 joined #parrot
06:56 eternaleye joined #parrot
06:56 LoganLK joined #parrot
06:56 jan joined #parrot
06:56 PerlJam joined #parrot
06:56 cotto joined #parrot
06:56 hudnix joined #parrot
06:56 rblackwe joined #parrot
06:56 arnsholt joined #parrot
06:58 fperrad joined #parrot
07:02 LoganLK joined #parrot
07:26 integral joined #parrot
07:29 elmex joined #parrot
08:34 jsut_ joined #parrot
09:17 bacek ~~
09:17 bacek tcurtis++ # good post
09:19 bacek 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 #parrot
09:34 ruoso joined #parrot
09:37 preflex joined #parrot
09:42 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 #parrot
09:52 muixirt hi folks
09:53 muixirt anyone here and familiar with parrot srcs and the build process
09:53 muixirt ?
09:54 moritz a bit
09:55 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
09:56 moritz yes, I think so
09:57 muixirt moritz: these macros seem to be empty on my platform (linux amd64)
09:58 moritz uhm. They detemine the arity of ops and PMC methods, no?
09:58 moritz I kinda don't see how parrot could work if they were empty
10:00 muixirt some magic incantation for Configure.pl or make?
10:00 moritz how did you figure out it is empty?
10:01 muixirt moritz: gimme just a minute to look for it again
10:04 muixirt moritz: it seem to depend on PARROT_HAS_HEADER_SAL which is not set (sal is a windows thing right?)
10:05 muixirt according to compiler.h
10:10 muixirt another thing is make splint, parrot isn't kept lint clean
10:20 muixirt moritz: to be more precise: ARGIN(x) resolves simply to x, it doesn't do anything to it
10:21 bacek muixirt, it's all about headerizer and PARROT_ASSERT_ARGS
10:22 bacek So, ARGIN(x) doesn't do anything (you are correct)
10:24 bacek ASSERT_ARGS (without PARROT_ prefix)
10:28 muixirt sorry for being stupid, but what does it do? example?
10:28 bacek ASSERT_ARGS macro expanded to quite few asserts.
10:29 bacek E.g. arg shouldn't be NULL for pointer, etc
10:30 bacek (and it's basically what it does)
10:32 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
10:32 bacek muixirt, sorta :)
10:33 mikehh muixirt: what compiler/platform are you using/om?
10:33 bacek ASSERT_ARGS are platform independent, pragmas are
10:33 mikehh s/om/on/
10:34 muixirt mikehh: gcc/linux amd64
10:34 mikehh muixirt: me also - Ubuntu 10.04 amd64
10:35 mikehh muixirt: ASSERT_ARGS needs to be the first entry in any sub, before anything else
10:36 muixirt this C macro jungle in a real project is too hard to grasp for a beginner like me
10:38 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 #parrot
11:08 muixirt 12099 code warnings, parrot isn't going to be lint clean in the near future, I presume.
11:12 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:13 muixirt bacek but then was that?
11:15 muixirt 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.
11:16 muixirt how long was that ago? (being lint clean)
11:16 bacek muixirt, not quite true about "lint clean"
11:17 bacek First - lint (or splint) isn't available on all platforms.
11:18 bacek Second - we have slightly different coding standards (covered by "make codetest")
11:18 bacek Third - alas, there is not much available resources to make our codebase "lint clean"
11:20 bacek I do like idea of being "compiler warnings"/"lint clean" in general. But...
11:21 bacek We just doesn't have enough time and people to do all of this.
11:23 bacek muixirt, you can chase mikehh for enforce some coding standards.
11:28 muixirt 12099 code warnings. let's say one per cent are real problems you could catch 120 potential bugs :-)
11:29 bacek we  have 600+ opened trac tickets already :)
11:30 muixirt you don't want to hear about more bugs? :-)
11:30 bacek I _do_ want to _know_ about them
11:32 bacek Especially if "lint" can point on exact location where bug is.
11:33 bacek And _I_ will put everything aside to fix it.
11:35 bacek 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:37 whiteknight joined #parrot
11:38 bacek Even simple "Lint complains about blah-blah-blah" will help.
11:42 rv2733 joined #parrot
11:43 mikehh muixirt: how did you run lint/splint
11:44 muixirt make splint
11:44 mikehh muixirt: I thought that was broken - let me check
11:45 muixirt http://trac.parrot.org/parrot/wiki/splint
11:45 muixirt Coke seems to be the man for it
12:05 khairul joined #parrot
12:20 * mikehh got to go out for a bit - bbl
13:01 jsut joined #parrot
13:25 Coke what did I do this time?
13:25 Coke I am more of a "clean up makefile" guy than a "splint" guy.
13:26 Coke you might need to dig deeper with 'svn blame'. =-) Seriously, though, lester is your man for linting.
13:35 AzureStone joined #parrot
13:53 uniejo joined #parrot
14:01 bubaflub joined #parrot
14:04 Andy joined #parrot
14:10 PacoLinux joined #parrot
14:11 Coke Andy: hio. muixirt was asking about splint.
14:11 Coke but he seems to be gone now. just fyi.
14:12 gbacon joined #parrot
14:14 NotFound joined #parrot
14:15 NotFound hi
14:15 purl hola, NotFound.
14:19 muixirt joined #parrot
14:22 tcurtis joined #parrot
14:30 ash_ joined #parrot
14:49 PacoLinux_ joined #parrot
14:49 patspam joined #parrot
14:57 rblackwe joined #parrot
15:20 cotto_work ~~
15:40 dalek parrot: r48075 | khairul++ | branches/gsoc_instrument (9 files):
15:40 dalek parrot: Refactored common items out of InstrumentGC and InstrumentVtable.
15:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/48075/
15:41 cotto_work That is not a small diff.
15:42 cotto_work khairul's blog?
15:42 atrodo Not even close to a small diff.
15:42 khairul sorry.
15:42 cotto_work khairul's blog is http://parrot.mangkok.com/
15:42 cotto_work ohai
15:43 cotto_work I wasn't complaining
15:43 khairul hiya cotto.
15:45 cotto_work It looks like much of it is generated code anyway.
15:45 cotto_work clock?
15:45 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 #parrot
15:58 theory joined #parrot
16:04 whiteknight joined #parrot
16:08 ruoso joined #parrot
16:14 whiteknight__ joined #parrot
16:28 eternaleye joined #parrot
16:40 Coke mildew?
16:43 cotto_work no thanks.  I just ate.
16:44 tcurtis mildew is http://www.perlfoundation.​org/perl6/index.cgi?mildew
16:45 tcurtis 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/`
16:45 cotto_work davidfetter++
16:46 cotto_work that gives me an idea for an alternate name for "gripe" ;)
16:47 davidfetter heh
16:47 tcurtis gripe?
16:47 cotto_work write to stderr
16:47 davidfetter :)
16:48 davidfetter "whinge"
16:50 AndyA joined #parrot
17:14 gbacon joined #parrot
17:33 atrodo "whinge"?
17:35 cotto_work I too am confused by suspicious foreign words.
17:36 bubaflub_ joined #parrot
17:47 Coke whinge is british for whine.
17:47 cotto_work like I said, suspicious foreign words
17:51 bubaflub joined #parrot
17:52 Coke If you only learn one other language, British isn't so hard.
17:53 atrodo I wouldn't use british enough to remember it
18:54 LoganLK joined #parrot
19:17 Coke Is it possible to use find_lex or find_dynamic_lex to go higher up the lex chain?
19:18 Coke ah, .outer.
19:18 Coke (pmichaud++ already did this trick for [uplevel] for partcl-nqp)
19:19 dalek rakudo: cfca4fb | moritz++ | src/core/IO.pm:
19:19 dalek rakudo: implement cwd, jnthn++
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​fca4fb14ccc8e83372528d9684ad94cf9b4795f
19:19 dalek rakudo: 129c37f | moritz++ | src/core/Match.pm:
19:19 dalek rakudo: [Match.perl] fix double-brackets
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​29c37f47b70ca264eefdd16363325ff5afdee1f
19:19 dalek rakudo: 94d01ff | moritz++ | src/core/Match.pm:
19:19 dalek rakudo: initial Match.new - does not handle subcaptures yet
19:19 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​4d01ff504f3ff7a8114c4239bf60476b4d1d4e6
19:27 bubaflub joined #parrot
19:50 eternaleye joined #parrot
20:11 hercynium joined #parrot
20:33 joeri joined #parrot
20:34 joeri left #parrot
20:34 AndyA joined #parrot
20:40 lucian joined #parrot
20:44 bluescreen joined #parrot
20:48 bacek aloha, humans
20:51 cotto_work ~~ bacek
20:51 bacek hi cotto
20:55 dalek winxed: r545 | NotFound++ | trunk/winxedst1.winxed:
20:55 dalek winxed: tiny refactor of NewExpr, first step towards constructor calls
20:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=545
21:09 Mark joined #parrot
21:09 Mark hey
21:10 moritz hi
21:10 Mark before i ask my question, I'd like to say how much I am currently liking Parrot ;)
21:11 Mark seems like a very useful platform/tool
21:12 Mark 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 Mark I got Parrot revision r44549 required (currently r0)
21:12 moritz where did you get parrot from?
21:13 Mark Current supported release
21:13 Mark tar
21:15 moritz I only ever use development releases, so I fear I can't really help you
21:15 moritz also I've heard that the squaak tuorial is a bit out of date... but that information could be out of date as well
21:16 Coke no, the meta-information is correct.
21:17 Coke updating the tutorial has slipped through the cracks. :(
21:17 Mark so, parrot setup.pir test should not work?
21:19 bacek Mark, It should. Let me check.
21:21 bacek Mark, are you on 2.3?
21:21 Mark bacek: yes, it seems like Stable release is 2.3
21:23 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:24 bacek Mark, you can try to get squaak from svn. It should work with 2.3.
21:24 Mark bacek: squaak, or parrot?
21:24 bacek squaak
21:24 Mark so, the generator is old?
21:25 bacek Mark, yes. It uses old nqp.
21:25 bacek http://trac.parrot.org/parrot/brows​er/trunk/examples/languages/squaak
21:26 Mark bacek: i see, k. Trying with checkout
21:26 Mark what version is the svn?
21:26 Mark 2.5?
21:26 purl well, 2.5 is out, and OpenBSD has a nice port of egcs-stable (the current -snapshot is actually older)
21:27 bacek Mark, it's almost 2.6 :)
21:27 Mark so, i better re-make ;)
21:27 bacek :)
21:27 Mark hm, will "make install" replace the older binaries?
21:28 bacek Mark, yes.
21:28 Mark great
21:28 bacek Libraries will not be replaced.
21:28 bacek somewhere in /usr/local/lib/parrot/
21:29 Mark bacek: should I worry about that?
21:29 bacek Nope
21:29 Mark k
21:30 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
21:31 Mark i dont see tools/dev/mk_language_shell.pl
21:31 bacek tcurtis, aloha! Where is my beloved SSA? :)
21:32 cotto_work bacek, if you have your way our optimizations will give real compilers a run for their money
21:33 bacek Mark, it should be in /usr/local/lib/parrot/2.5.0-devel/tools/dev/
21:34 bacek cotto_work, :) We do need some kind of SSA for any decent optimizations.
21:34 tcurtis bacek: NYdesigned. :)
21:34 Mark ah
21:35 * bacek passing "Modern Compiler Design and Implementation" by Muchnick to tcurtis
21:37 bacek tcurtis, actually you can choose lambda lifting instead of SSA.
21:47 ash_ lambda lifting?
21:47 tcurtis bacek: I'd have thought CPS would be a more obvious alternative to SSA.
21:48 bacek tcurtis, erm... They are orthogonal.
21:49 bacek SSA form is about variable assignment. CPS is control flow.
21:49 bacek "lambda lifting" is wrong term, sorry.
21:50 tcurtis bacek: according to https://secure.wikimedia.org/wikipedia​/en/wiki/Static_single_assignment_form , SSA is formally equivalent to CPS without non-local control flow.
21:50 bacek tcurtis, http://github.com/bacek/pir/blob/alpha/TODO (under OPTIMIZATION)
21:54 bacek tcurtis, hmm. "citation required" (or how it's usually called in wikipedia) :)
21:54 bacek Anyway, parrot is CPS based. So, got for it :)
21:56 bacek " 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"
22:01 davidfetter joined #parrot
22:02 * 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:04 cotto_work not much point to that
22:04 bacek afk # rl
22:04 tcurtis bacek: http://citeseerx.ist.psu.edu/vi​ewdoc/summary?doi=10.1.1.3.6773 is a paper about the equivalence.
22:05 cotto_work robot life?
22:05 cotto_work ;)
22:14 * tcurtis is wondering when the best time to do SSA/CPS transformation and related optimizations is.
22:17 Mark "First, open your editor and open the files src/parser/grammar.pg" i dont have the parser folder in src/ ?
22:21 Mark where can i find the grammar generated by mk_language_shell ?
22:23 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:24 Mark tcurtis: where can i go for updated reference?
22:26 Mark :( The tutorial was beginning to get very informative and easy to follow
22:26 Mark it was always, actually
22:26 cotto_work which tutorial were you looking at?
22:26 Mark http://docs.parrot.org/par​rot/latest/html/index.html
22:27 Mark http://docs.parrot.org/parrot/​latest/html/PCT_Tutorial.html to be exact
22:28 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
22:28 tcurtis The grammar file should not be in src/LANGUAGE_NAME/Grammar.pm
22:29 tcurtis The actions in src/LANGUAGE_NAME/Actions.pm
22:29 Mark oh, its a pm though
22:30 Mark 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.
22:30 Mark tcurtis: thnx btw
22:31 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:33 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(http://perlcabal.org/syn/S05.html is the main relevant part).
22:34 Mark tcurtis: nvm, its in the tutorial :P
22:34 Mark thnx
22:36 cotto_work Mark, moritz++ has a good explanation on his blog: http://perlgeek.de/blog-en​/perl-5-to-6/07-rules.html
22:36 Mark cotto_work: thnx
22:37 cotto_work under Named Regexes and Grammars
22:38 tcurtis http://perlgeek.de/blog-en​/perl-5-to-6/19-regex.html and http://perlgeek.de/blog-en/perl-​5-to-6/20-a-grammar-for-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?
22:38 tcurtis There are some aspects of regexes that aren't yet fully implemented from the spec, but it's pretty well implemented.
22:38 cotto_work what do you mean by "practical"?
22:39 Mark not inefficient
22:39 rv2733 joined #parrot
22:39 kid51 joined #parrot
22:40 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 ;) )
22:40 cotto_work parsing is pretty slow atm
22:41 cotto_work in PIRATE, it's the slowest stage by orders of magnitude
22:41 ash_ are there any good examples of nqp grammars with actions?
22:42 ash_ maybe i should say simple examples of them?
22:43 cotto_work an action is just a chunk of nqp code that gets called (kinda) once a grammar rule has found a match.
22:44 cotto_work 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:45 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:46 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.
22:46 Mark tcurtis: fast in comparison to ruby per se
22:52 whiteknight joined #parrot
22:55 ash_ parrot's not terribly slow with hand crafted parrot code, but as a whole its not faster than ruby
22:58 whiteknight not yet. Performance is definitely not Parrot's strong point right now
23:06 cotto_work you could go with a hand-rolled parser in C or C++ like winxed
23:06 cotto_work I'm not saying I would, but it's possible.
23:07 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:09 tcurtis 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:13 tcurtis ash_: what exactly is the new runcore you're working on going to do?
23:14 tcurtis Mark: there are two obvious big differences I can think of between the Squaak tutorial and now, by the way.
23:15 tcurtis Mark: first is that the appropriate action method is automatically called at the end of a rule successfully matching.
23:15 tcurtis The other is that $( $<foo> ) is no longer the correct way to get a match result's AST: $<foo>.ast is.
23:20 cotto_work Heh.  A blog post I was reading on creating a tiny toy language ended with a link to the p&w paper. ( http://thingsaaronmade.com/blog/bootst​rapping-a-prototype-based-object-orien​ted-language-in-44-lines-of-code.html )
23:23 tcurtis cotto_work: I'm using P&W's object system as the base for my Perl 6 to LLVM compiler. :)
23:23 tcurtis Well, as the base of the runtime.
23:23 cotto_work are you blogging about that?
23:24 cotto_work sounds like an interesting project
23:26 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:29 tcurtis cotto_work: http://github.com/ekiru/bennu is the github repository. It currently uses Yapsi as its parser.
23:30 * cotto_work starts to count the layers and gets dizzy
23:34 ruoso joined #parrot
23:55 Psyche^ joined #parrot

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

Parrot | source cross referenced