Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2011-05-25

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:07 _jaldhar joined #perl6
00:07 silug joined #perl6
00:09 LoRe left #perl6
00:16 silug left #perl6
00:17 silug joined #perl6
00:35 alester joined #perl6
00:41 LoRe joined #perl6
00:41 whiteknight Any Rakudo folks around tonight?
00:46 kid51 joined #perl6
00:46 sorear whiteknight: define "Rakudo folk"
00:46 GinoMan joined #perl6
00:47 kid51 If I wish to follow *one* Perl 6 list via NNTP (and am coming from the Parrot angle), which should I follow: perl.perl6.compiler?
00:47 whiteknight it's a genre of folk music with Rakudo influences
00:48 sorear kid51: yes .compiler is the main one where Parrot is discussed
00:50 dalek niecza: 69fc81c | sorear++ | lib/ (2 files):
00:50 dalek niecza: Simplify calling convention for NewBoundVar
00:50 dalek niecza: review: https://github.com/sorear/niecza/commit/69fc81cc62
00:50 dalek niecza: 22c5703 | sorear++ | / (4 files):
00:50 dalek niecza: Make , and => inlinable
00:50 dalek niecza: review: https://github.com/sorear/niecza/commit/22c5703f9a
01:16 ymasory joined #perl6
01:19 kanishka left #perl6
01:22 alester left #perl6
01:31 ascent_ left #perl6
01:31 ascent_ joined #perl6
01:37 kanishka joined #perl6
01:37 colomon jnthn: any idea why changing PERL6_EXE doesn't seem to actually change the name of the executable it tries to build?  (for r-nom, I mean)
01:41 s1n left #perl6
01:43 kid51 left #perl6
01:45 dalek niecza: 187ee75 | sorear++ | / (3 files):
01:45 dalek niecza: Deinline most of the subrule calling logic
01:45 dalek niecza: review: https://github.com/sorear/niecza/commit/187ee75b12
01:49 Helios left #perl6
01:50 gbacon joined #perl6
01:52 ascent_ left #perl6
01:54 ascent_ joined #perl6
01:59 Helios joined #perl6
02:01 drbean joined #perl6
02:08 whiteknight left #perl6
02:09 yinyin joined #perl6
02:18 dalek niecza: 964c1a9 | sorear++ | src/NieczaCompiler.pm6:
02:18 dalek niecza: Fix stage time display
02:18 dalek niecza: review: https://github.com/sorear/niecza/commit/964c1a9c12
02:23 Transformer joined #perl6
02:24 Transformer left #perl6
02:32 yinyin left #perl6
02:33 yinyin joined #perl6
02:33 yinyin left #perl6
02:33 yinyin joined #perl6
02:50 GinoMan left #perl6
02:58 silug left #perl6
03:10 molaf joined #perl6
03:13 gbacon left #perl6
03:25 [particle]1 joined #perl6
03:26 [particle] left #perl6
03:35 kanishka left #perl6
03:36 molaf left #perl6
03:39 ingy seen patch_
03:39 aloha patch_ was last seen in #perl6 19 days 2 hours ago joining the channel.
03:54 wamba joined #perl6
04:20 daniel-s joined #perl6
04:25 mberends left #perl6
04:29 satyavvd joined #perl6
04:29 nymacro joined #perl6
04:30 mberends joined #perl6
04:32 dalek niecza: 85c5cf8 | sorear++ | lib/ (2 files):
04:32 dalek niecza: Remove LoadSubInfo calls to a data-driven loop
04:32 dalek niecza: review: https://github.com/sorear/niecza/commit/85c5cf87e9
04:32 dalek niecza: bc071de | sorear++ | lib/ (3 files):
04:32 dalek niecza: Avoid insanely calling Array.new/Hash.new during metaobject thaw
04:32 dalek niecza: review: https://github.com/sorear/niecza/commit/bc071de783
04:35 birdwindupbird joined #perl6
04:37 [particle]1 is now known as [particle]
04:38 daniel-s left #perl6
04:42 kanishka joined #perl6
05:03 wamba left #perl6
05:08 ymasory left #perl6
05:14 silug joined #perl6
05:26 mberends left #perl6
05:32 lue joined #perl6
05:33 kanishka left #perl6
05:44 koban joined #perl6
05:47 kanishka joined #perl6
05:52 wtw joined #perl6
06:04 jfried joined #perl6
06:07 fhelmberger joined #perl6
06:12 mtk left #perl6
06:20 mtk joined #perl6
06:24 dalek niecza: 82fa631 | sorear++ | lib/ (3 files):
06:24 dalek niecza: Start bringing package storage into the data age, too
06:24 dalek niecza: review: https://github.com/sorear/niecza/commit/82fa631443
06:24 dalek niecza: 0a14ada | sorear++ | lib/ (2 files):
06:24 dalek niecza: .HOW is built using runtime methods
06:24 dalek niecza: review: https://github.com/sorear/niecza/commit/0a14ada7b1
06:24 dalek niecza: a6e2cfe | sorear++ | / (2 files):
06:24 dalek niecza: Start to simplify method call code
06:24 dalek niecza: review: https://github.com/sorear/niecza/commit/a6e2cfe551
06:37 mberends joined #perl6
06:38 amkrankruleuen left #perl6
06:39 amkrankruleuen joined #perl6
06:42 BinGOs left #perl6
06:42 silug left #perl6
06:42 BinGOs joined #perl6
06:44 wamba joined #perl6
06:45 dalek niecza: 15c1085 | sorear++ | lib/CLRBackend.cs:
06:45 dalek niecza: Enable unrestricted reordering of function argument evaluation
06:45 dalek niecza: review: https://github.com/sorear/niecza/commit/15c1085d02
06:47 amkrankruleuen left #perl6
06:48 amkrankruleuen joined #perl6
06:58 amkrankruleuen left #perl6
06:59 amkrankruleuen joined #perl6
06:59 wamba left #perl6
07:00 * sorear waits for the public outcry to that last one.
07:01 kanishka left #perl6
07:02 wamba joined #perl6
07:11 jdhore1 moritz, Good news!
07:12 jdhore1 moritz, I have the perfect name for Rakudo 2011.06
07:13 koban left #perl6
07:16 wamba left #perl6
07:19 orafu left #perl6
07:23 amkrankruleuen left #perl6
07:24 mj41 joined #perl6
07:25 Mowah joined #perl6
07:28 wamba joined #perl6
07:29 amkrankruleuen joined #perl6
07:37 dalek niecza: 16e033d | sorear++ | lib/CLRBackend.cs:
07:37 dalek niecza: Treat constant pool values as constant
07:37 dalek niecza: review: https://github.com/sorear/niecza/commit/16e033d3d9
07:37 dalek niecza: aaa3bbe | sorear++ | / (2 files):
07:37 dalek niecza: Fix backward logic, also implement handling of void context optimizations in regexes
07:37 dalek niecza: review: https://github.com/sorear/niecza/commit/aaa3bbef5b
07:37 dalek niecza: 90e4727 | sorear++ | lib/CLRBackend.cs:
07:37 dalek niecza: Mark RxFrame as reorderable
07:37 dalek niecza: review: https://github.com/sorear/niecza/commit/90e472738b
07:49 wamba left #perl6
08:05 amkrankruleuen left #perl6
08:06 amkrankruleuen joined #perl6
08:07 * sorear out for tonight
08:07 sorear std's down to 1.51 mb.  maybe improvable
08:16 tadzik re the yesterday named-positional discussion, I think when a function takes 8 positional params, like mysql_real_connect or something, that means one should probably think about making it accept named params instead. So fix the odd cases instead of fixing the language
08:16 tadzik Just my 5 gr.
08:17 jdhore1 sorear, Just my 2p, but IMO size isn't the best thing in the world to optimize. Diskspace is cheap.
08:20 tadzik loadtime is not
08:20 jnthn mornin'
08:21 tadzik hey jnthn
08:21 jnthn <= at $dayjob
08:22 perigrin me too!
08:22 perigrin except my day job seems to be a night job
08:22 perigrin :/
08:22 beppu left #perl6
08:22 lue left #perl6
08:23 lue joined #perl6
08:23 Yappoko__ left #perl6
08:24 beppu joined #perl6
08:24 Yappoko__ joined #perl6
08:26 dakkar joined #perl6
08:26 xinming joined #perl6
08:26 * mberends <= also @work, and with plenty idle time between presentations :)
08:28 SHODAN joined #perl6
08:28 mberends for parameter passing, I like the Microsoft SQL (Transact-SQL) style, which seems not too far from the pre-manifesto Perl 6 style.
08:28 amkrankruleuen left #perl6
08:29 mberends positional by default, optional aliases, and when mixed in a single call, positionals first until exhausted, then nameds.
08:29 fhelmberger_ joined #perl6
08:31 tadzik aliases?
08:31 mberends names
08:31 tadzik oh, names for positional?
08:31 fhelmberger left #perl6
08:31 tadzik ($foo, $bar is also-named<babar>), or something?
08:32 mberends yes, kinda. func($foo, :name($bar))
08:34 amkrankruleuen joined #perl6
08:35 jdhore1 related question (somewhat): Are P6 std macros intended to be more like C macros or LISP macros?
08:36 mberends I believe less like C macros (not plain textual)
08:37 jdhore1 ah, not bad
08:37 jdhore1 I like C macros for their simplicity, but LISP macros can be relatively simple but INSANELY powerful
08:39 arnsholt_ IIRC they're supposed to be hygienic macros like in Scheme
08:40 mathw they're not at all like C ones
08:41 mathw much more like lisp ones
08:41 mathw definitely in the line of parse tree transformation/grammar extension rather than text expansion and substitution
08:42 jnthn Indeed.
08:43 mathw jnthn: but they don't work yet! Chop chop! :P
08:43 jnthn :P
08:46 moritz jdhore1: (re name for rakudo) does Douglas Adam's home town has a .pm group? :-)
08:47 jdhore1 moritz, Unfortunately, no, nor does where he died or was buried (Well they do, but it's been used), but i have one just as good
08:48 jdhore1 moritz, Bruxelles, Belgium
08:48 moritz jdhore1: why?
08:49 jdhore1 moritz, http://en.wikipedia.org/wiki/Life,_the_Universe_and_Everything#Censorship
08:53 moritz :-)
08:53 tadzik hehe
08:53 jdhore1 I love that Belgium is the most offensive word in the universe
08:54 jdhore1 er, the galaxy
08:59 perigrin "Another Mother Belgian Release"
09:00 mathw In all places except one. Where they don't know what it means.
09:01 mathw I also liked the idea that the game of cricket is considered to be in incredibly poor taste by everybody else in the galaxy.
09:02 silug joined #perl6
09:03 donri left #perl6
09:09 MayDaniel joined #perl6
09:20 daniel-s joined #perl6
09:34 wamba joined #perl6
09:39 agentzh joined #perl6
09:44 xinming left #perl6
09:47 wamba left #perl6
10:11 MayDaniel left #perl6
10:18 amkrankruleuen left #perl6
10:22 amkrankruleuen joined #perl6
10:29 snearch joined #perl6
10:30 am0c left #perl6
10:35 amkrankruleuen left #perl6
10:44 wamba joined #perl6
10:46 daniel-s left #perl6
10:46 amkrankruleuen joined #perl6
10:49 wamba left #perl6
10:55 koban` joined #perl6
10:57 ab5tract joined #perl6
11:01 xinming joined #perl6
11:06 Patterner left #perl6
11:07 Psyche^ joined #perl6
11:07 Psyche^ is now known as Patterner
11:12 snearch left #perl6
11:28 pernatiy left #perl6
11:31 amkrankruleuen left #perl6
11:32 amkrankruleuen joined #perl6
11:32 satyavvd left #perl6
11:35 MayDaniel joined #perl6
11:38 silug left #perl6
11:38 ab5tract left #perl6
11:39 silug joined #perl6
11:40 amkrankruleuen left #perl6
11:41 MayDaniel left #perl6
11:41 amkrankruleuen joined #perl6
11:42 Mowah_ joined #perl6
11:45 bacek joined #perl6
11:50 s1n joined #perl6
12:01 agentzh left #perl6
12:11 * moritz wonders if MARC (MAchine-Readable Cataloguing) is so general that it's impossible to get useful information out of it
12:18 kanishka joined #perl6
12:22 takadonet morning all
12:22 jnthn o/ takadonet
12:26 takadonet jnthn: how are you sir?
12:27 jnthn takadonet: A little behind on sleep, but otherwise fine, thanks. :)
12:27 jnthn And you?
12:30 yinyin left #perl6
12:32 bacek left #perl6
12:34 x3nU joined #perl6
12:34 x3nU left #perl6
12:36 takadonet busy as hell but great
12:38 silug left #perl6
12:39 colomon o/
12:40 silug joined #perl6
12:40 JimmyZ joined #perl6
12:42 colomon re Belgium and Hitchhikers -- I really think that's an example where censorship actually made the book better.   Most Gratuitous Use of the Word 'Belgium' in a Serious Screenplay is just plain funnier than the original, IMO.
12:45 bacek joined #perl6
12:52 Holy_Cow joined #perl6
12:52 Holy_Cow left #perl6
12:58 wknight8111 joined #perl6
13:10 c1sung joined #perl6
13:19 pernatiy joined #perl6
13:25 daniel-s joined #perl6
13:49 xinming left #perl6
13:50 colomon jnthn: tried fixing the directory / executable mixup last night.  failed miserably.  looks like it should be trivial, but it isn't, somehow
13:52 Zapelius left #perl6
13:52 moritz just call the executable .exe on macos too :-)
13:53 Zapelius joined #perl6
13:54 MayDaniel joined #perl6
13:55 colomon moritz: I tried renaming the executable to nom, and that didn't work.  :(
13:55 moritz colomon: what failed?
13:56 colomon it still tried to build an executable named perl6
13:56 colomon I set PERL6_EXE     = nom$(EXE)
13:56 colomon but it still did c++ -o perl6 "perl6.o" ...
13:57 moritz colomon: because PBC_TO_EXE is called with perl6.pbc
13:57 colomon hmmm... so try to make PERL6_PBC nom.pbc?
13:58 colomon oooo, different error!
13:58 moritz or maybe pbc_to_exe has some option for the output file name
13:58 colomon looks like "nom" built, but now it's failing when it tries to do something
13:58 moritz compiling the setting?
13:59 colomon Method 'compose' not found for invocant of class 'SixModelObject'
13:59 colomon I believe so
13:59 moritz that's what I get too
14:00 colomon yay!
14:00 colomon consistent failures!
14:00 mtk left #perl6
14:00 colomon of course, probably renaming PBC and exe to "nom" is not a good general purpose solution...
14:01 moritz right
14:02 colomon I tried renaming the Perl6 directory, but apparently it is actually being used internal to the code, maybe as a module lookup path?
14:03 moritz it is
14:05 amkrankruleuen left #perl6
14:07 amkrankruleuen joined #perl6
14:07 koban` left #perl6
14:08 mtk joined #perl6
14:13 amkrankruleuen left #perl6
14:13 jnthn colomon: Yes, it's used in use statements. :)
14:14 colomon don't suppose it could be lib/Perl6 ?
14:14 jnthn Maybe.
14:14 amkrankruleuen joined #perl6
14:15 jnthn Can even hack it as use lib::Perl6::Grammar. ;)
14:15 wtw left #perl6
14:15 jnthn colomon, moritz: Where does the "can't compose" occur? In ClassHOW.compose?
14:16 colomon https://gist.github.com/991058
14:16 kanishka left #perl6
14:16 jnthn hm
14:16 jnthn ok, the failure makes sense apart from it doesn't make sense that I don't get it also :/
14:17 jnthn Will take a look this evening when I get home.
14:17 jnthn I should toss the PIR dumping too now things work a bit better :)
14:19 moritz jnthn: I cleaned out everything before rebuilding... maybe you'd get the same error if you did too :-)
14:20 jnthn moritz: That may well be the case.
14:21 jnthn moritz: Anyway, you're getting most of the way through the build, which is something. :)
14:25 * moritz wants MOAR
14:34 * colomon wants it all, and he wants it now.  ;)
14:34 JimmyZ left #perl6
14:34 mathw yeah yeah
14:35 * mathw hears the screaming guitar solo
14:35 jnthn So do the first line of the first task in nommap. It's mostly just a use of "can" on the current $*PACKAGE.HOW, like we do for add_attribute. :)
14:37 xinming joined #perl6
14:38 moritz nommap still reads like an awful lot to do
14:40 jnthn moritz: It *is* an awful lot to do. :P
14:43 hercynium joined #perl6
14:48 * TimToady wondered briefly what you guys have against mmap  :)
14:50 PerlJam TimToady: heh, I thought that too at first glance :)
14:51 alester joined #perl6
14:51 Sarten-X left #perl6
14:51 colomon mathw: Was listening to Brian May on my walk this morning.
14:51 mathw :)
14:52 alester left #perl6
14:53 alester joined #perl6
14:54 mtk left #perl6
14:55 daniel-s left #perl6
14:56 kaare_ joined #perl6
14:58 nymacro left #perl6
14:59 mtk joined #perl6
15:00 jnthn home &
15:02 Sarten-X joined #perl6
15:02 baest left #perl6
15:02 baest joined #perl6
15:02 SHODAN left #perl6
15:12 mberends indeed, train &
15:15 am0c joined #perl6
15:17 jfried left #perl6
15:17 MayDaniel left #perl6
15:21 ymasory joined #perl6
15:22 mberends left #perl6
15:26 JimmyZ joined #perl6
15:32 * TimToady wonders if the types for codepoint strings should be NFC, NFD, etc...
15:33 _jaldhar left #perl6
15:33 JimmyZ NFG?
15:38 GinoMan joined #perl6
15:41 TimToady NFG is called "Str"
15:45 ymasory left #perl6
15:50 TimToady or maybe they're "native" enough to be called nfc and nfd
15:50 TimToady but should they share the buf nature as the utf8 buf does?  hmm...
15:52 TimToady rakudo: say utf8("foo").WHAT
15:52 p6eval rakudo 369665: OUTPUT«Could not find sub &utf8␤  in main program body at line 22:/tmp/J8ESx2Dm9L␤»
15:52 TimToady std: utf8 utf8
15:52 p6eval std 4b1b100: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/pE_HZb75A4 line 1:␤------> [32mutf8 [33m⏏[31mutf8[0m␤    expecting any of:␤   bracketed infix␤        infix or meta-infix␤    statement modifier loop␤Parse failed␤FAILED 00:01 113m␤»
15:52 * jnthn home :)
15:54 TimToady std: say utf8("foo").WHAT
15:54 p6eval std 4b1b100: OUTPUT«ok 00:01 113m␤»
15:54 JimmyZ std: utf8 utf16
15:55 p6eval std 4b1b100: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/Ezmv2Vezh2 line 1:␤------> [32mutf8 [33m⏏[31mutf16[0m␤    expecting any of:␤  bracketed infix␤        infix or meta-infix␤    statement modifier loop␤Parse failed␤FAILED 00:01 113m␤»
15:55 TimToady perl6: say utf8("foo").WHAT
15:55 p6eval rakudo 369665: OUTPUT«Could not find sub &utf8␤  in main program body at line 22:/tmp/pZnO4C3QNP␤»
15:55 p6eval ..niecza v5-75-g90e4727: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Undeclared routine:␤      'utf8' used at line 1␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 413 (CORE die @ 2)␤  at /home/p6eval/niecza/src/STD.pm6 line 1143 (STD P6.comp_unit @ 77)␤  at
15:55 p6eval ../home/p6eval/niecza/src/…
15:55 p6eval ..pugs: OUTPUT«*** No such subroutine: "&utf8"␤    at /tmp/eul55G1XWr line 1, column 5 - line 2, column 1␤»
15:55 TimToady tsk tsk
15:56 TimToady it's hard to advertise the advantages of Perl 6's string type system when everyone is still faking it...  :)
15:58 TimToady we're just not faking it as hard as Perl 5 is faking it...
15:59 jnthn Maybe us implementors just like to fake it easy. :)
16:00 REPLeffect left #perl6
16:00 * TimToady has an appropriate amount of pun
16:08 kaare_ left #perl6
16:09 kaare_ joined #perl6
16:10 * jnthn tries to reproduce the issue moritz and colomon are seeing
16:14 REPLeffect joined #perl6
16:18 ymasory joined #perl6
16:18 thou joined #perl6
16:20 kjeldahl joined #perl6
16:23 jnthn ah, a make realclean did it.
16:23 tadzik yeah, same hier
16:25 jnthn I wonder how it ever coulda worked...
16:26 pmichaud good morning, #perl6
16:26 JimmyZ morning pmichaud
16:26 tadzik good morning pmichaud
16:27 tadzik pmichaud: is there a chance you could rpbench master vs. gsoc-podparser?
16:28 tadzik nothing important, just my curiosity
16:28 MayDaniel joined #perl6
16:28 gbacon joined #perl6
16:30 molaf joined #perl6
16:32 pmichaud tadzik: yes, I can
16:34 kaare_ left #perl6
16:34 pmichaud (faking string types)   we don't yet have the level of control over the vm that perl 5 does.  Sad, that.
16:35 jnthn pmichaud: Potential for our own representations. We has it. :)
16:36 jnthn (e.g. we probably do have change to do such things in a decent way once 6model is in...given resources to make it happen, of course)
16:38 MayDaniel left #perl6
16:39 ymasory left #perl6
16:41 sorear good * #perl6
16:41 birdwindupbird left #perl6
16:41 sorear jdhore1: size is an exactly measurable proxy for loadtime (I measure that too, but only to 1.5 sig figures)
16:43 pmichaud tadzik: how does gsoc-podparser differ from master at this point?  i.e., what features should I be comparing?
16:44 pmichaud oh, I can just do everything, I guess.
16:44 tadzik pmichaud: it passes more spectests than master (some todos), I'm curious whether an additional parser nodes slowed down anything
16:44 pmichaud yes, spectests seem like the most likely items
16:45 pmichaud none of the other tests evaluate comments or the like
16:45 pmichaud (most of the other tests don't contain pod or comments)
16:46 sorear bah, looks like I broke something... full testing run last night failed
16:46 sorear TimToady: it would help if the spec weren't so handwavey :P
16:48 pmichaud in lots of cases, "handwavey" just means "left as an exercise to the reader"  (where "reader" == "implementors and users")
16:49 jedai_ joined #perl6
16:50 TimToady overspecified is often more dangerous than underspecified
16:50 pmichaud that's fer shure
16:50 dalek rakudo/nom: 29b8987 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
16:50 dalek rakudo/nom: Add missing attribute compose method, to fix build breakage noticed by colomon++ and moritz++.
16:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/29b898758b
16:51 tadzik hi hi
16:51 colomon mostly by moritz++
16:52 jedai left #perl6
16:54 wamba joined #perl6
16:56 silug left #perl6
16:56 colomon jnthn: git pull & make got me the exact same error.  I'm supposing a make clean & make will probably work, but presumably the makefile is supposed to make that unnecessary here?
16:57 jnthn colomon: hmm, yes
16:57 jnthn colomon: I'm curious what in the makefile is causing that issue. :/
16:57 tadzik colomon: try realclean
16:57 awoodland joined #perl6
16:57 jnthn I realclean'd.
16:57 tadzik oh, nvm, misread
17:00 colomon nom
17:00 colomon > say 4+5
17:00 colomon Can only use get_who on a SixModelObject
17:00 colomon Still, seems like build worked!
17:00 cdarroch joined #perl6
17:00 cdarroch left #perl6
17:00 cdarroch joined #perl6
17:00 ymasory joined #perl6
17:00 colomon (after make clean)
17:01 colomon > 4+5
17:01 colomon Class 'Int' not found
17:01 colomon that sounds like a job for....
17:01 jnthn heh
17:01 jnthn It doesn't have say or operators or literals yet. :)
17:02 saaki left #perl6
17:03 saaki joined #perl6
17:05 jnthn And literals need doing very differently than now anyway. :)
17:06 tadzik so this will end up being "say 9"? :)
17:07 jnthn Not yet :P
17:08 jnthn I just mean that in while $i < 10000 { $i := $i + 1 } then that 1 shouldn't be created 10000 times.
17:08 tadzik :O
17:08 tadzik that's sir yous
17:09 pmichaud yes, I still want to update PAST with a way to say "cache the object created here"
17:09 dakkar left #perl6
17:10 sorear suprisingly, this, appears to be my first time using git bisec
17:10 tadzik oh, the PASTknowers
17:11 sorear pmichaud: if you think you understand stuff like 'use graphs' versus 'use codes'... you're welcome to enlighten me.
17:11 tadzik I'm looking for a way to produce a global constant which I could append stuff to (an array), it's supposed to be per-file, but for now, whatever works. Where do I start looking at?
17:11 pmichaud sorear: no, I don't understand it yet.  (Haven't looked yet, since it's not been high on the "need to solve this" list.)
17:12 benabik Adding things to the constants table via PAST is on my possible TODO list for GSoC.
17:13 pmichaud benabik: for rakudo, they definitely need to be created lazily I think
17:14 benabik pmichaud: Well, shoot.
17:15 spinclad left #perl6
17:15 pmichaud I could be wrong about that.  But we definitely don't want to increase our startup time with a bunch of constant generation whenever a program begins
17:15 spinclad joined #perl6
17:15 pmichaud and it's possible that some constants will be affected by the scope in which they're created (not sure about this part)
17:18 molaf left #perl6
17:20 jevin joined #perl6
17:20 benabik pmichaud: That kind of constant doesn't sound very constant.
17:20 JimmyZ left #perl6
17:21 pmichaud it's constant once the full details of the scope are known at runtime, I think.
17:21 benabik I will continue to lurk here.  How NQP and Rakudo use PAST will very much influence where I focus my work towards the end of summer.
17:21 pmichaud the challenge is that at compile time it takes a *lot* of analysis to determine the full scope of things that could be affecting an expression or constant
17:22 pmichaud so it's likely easier to simply say "cache the (constant) value after it's created the first time"
17:23 pmichaud the hurdle I've run into thus far is figuring out how to store/name the constants
17:23 mj41 left #perl6
17:24 benabik I'm trying to get PAST->POST->PBC to be as expressive as possible, but adding a caching layer seems a little out of scope.
17:24 pmichaud oh, I don't think it's a layer
17:24 pmichaud I think it's a decoration on a PAST node
17:24 benabik (For GSoC anyway.  I imaging I'll be puttering around in PCT for a while afterwards.)
17:25 pmichaud i.e., marking a PAST node with a 'cached' flag means that the code for the node is executed once and the results stored (cached) somewhere and re-used if the node is executed again
17:26 ymasory left #perl6
17:26 JimmyZ joined #perl6
17:26 ymasory joined #perl6
17:26 Chillance joined #perl6
17:26 JimmyZ left #perl6
17:26 benabik pmichaud: I'm not quite sure how that would be implemented, but I'd be tempted to do it as a tree-transformation that lifts the cached
17:26 bacek left #perl6
17:27 benabik Trigger-happy enter key...
17:28 pmichaud so that way a Perl 6 constant like   3.45    turns into a runtime call to Rat.new(345,100)  where the resulting Rat object gets stored in the cache.  If we later execute the statement containing the 3.45 constant, then we simply look up the Rat we cached earlier instead of making another call to Rat.new
17:28 benabik pmichaud: ...nodes up to (say) the top of the sub and stores them in a register, converting the other usages to a register reference.
17:28 pmichaud benabik: you're thinking of something entirely different, then.
17:28 pmichaud benabik: for rakudo, that will only help where the same constant is used multiple times in a sub
17:28 pmichaud which I suspect isn't often.
17:29 benabik pmichaud: I was thinking of jnthn's example with the 1 in a loop...
17:29 pmichaud benabik: in that example, the 1 is local to the body of the while
17:29 pmichaud and the body is a separate execution each time anyway
17:29 wallberg joined #perl6
17:29 pmichaud (the body is a separate Parrot sub)
17:30 benabik pmichaud: Ah.  Well, then, you'd need to add a new runtime storage area which is why I was calling it a layer.
17:30 jnthn pmichaud: I think we can quite safely create Num/Int/Rat literals at compile time.
17:31 jnthn pmichaud: Then stick them in the serialization context.
17:31 pmichaud jnthn: only if we have a way to seria.... okay.
17:31 jnthn And accesses to them will just go through that.
17:31 jnthn pmichaud: Then they'll get cheap deserialization when I finish implemented that chunk of stuff.
17:31 jnthn *implementing
17:31 pmichaud I'm not familiar with serialization contexts yet, or how they're implemented
17:31 jnthn pmichaud: Mostly it's ground work. :)
17:32 pmichaud but I'm also thinking of expressions with constant operands
17:32 jnthn pmichaud: What we *do* have now is a _lot_ more stuff to hand at compile time.
17:32 pmichaud the "cached" flag can help a lot with expressions with constant operands, too.
17:33 jnthn I suspect the constant folding can be done in the compiler also. Of course, it has to use the operators as they're defined in the correct scope.
17:33 pmichaud jnthn: right, which is why I figure it's easier to do it as runtime.  I think TimToady++ speculated the same last week.
17:34 pmichaud http://irclog.perlgeek.de/parrot/2011-05-09#i_3698464
17:34 jnthn Well, we already have to invoke the trait mods as they're defined in the scope of the thing that consumes them.
17:35 jnthn And the optimzer's gonna have to know about the scope stuff is in, otherwise it's going to have a hard time inlining.
17:35 pmichaud I again point to TimToady's comments.  I'm hesitant to go far beyond that, just yet.
17:36 jnthn pmichaud: "I tend to disapprove of constant collapsing done by an interpreter other than the one that would be used if the constants weren't collapsed" ==> yes but I'm suggesting using the exact same interpreter with the exact same operator body that we'd run at runtime. :)
17:36 pmichaud I'm not so sure how "exact same" it will actually be.
17:36 pmichaud It's two separate invocations of the interpreter.
17:37 pmichaud (one at compile time, one at run time)
17:38 jnthn Can't argue that it ain't, but I may be able to argue that the two separate invocations had better produce the same result when running the same code with the same inputs. ;)
17:38 jnthn Though it all depends on the environment being the same and so forth.
17:38 pmichaud sure... I'm not sure you always know that the inputs are the same.
17:38 pmichaud exactly.
17:38 benabik jnthn: All the cool interpreters are non-deterministic.
17:38 pmichaud environment could be different, a module could've changed, etc.
17:39 pmichaud "the more polymorphic your dispatch is, the less you can rely on anyone else to figure out which operator they should really be folded"
17:39 pmichaud anyway, the code to "compute once and cache" is really trivial to implement
17:40 pmichaud if I can just come up with a good way to associate a unique identifier with the cached value
17:40 pmichaud I'm wondering if it's even worth an opcode :-)
17:40 pmichaud something like a "find cached value and branch" that is based on the current program counter
17:41 jnthn pmichaud: Mebbe something like that. SCs have some opcodes
17:41 slavik1 left #perl6
17:41 jnthn Anyway, I've no plans on doing constant folding any time soon. Just building the constants once will be a big win.
17:41 pmichaud indeed.
17:42 jnthn Also, I've unified the compile time and runtime representation of signatures and parameters.
17:42 mberends joined #perl6
17:42 jnthn We have one now. Not three. :)
17:43 pmichaud the way it always should've been :-)
17:44 MayDaniel joined #perl6
17:44 jnthn Yeah but now I have an object system that lays stuff out as efficiently as a C struct.
17:44 jnthn So it can be done without OMG SLOW :)
17:45 jnthn At one point I thought I may end up using representations to hold internal data structures but expose them as objects. But when P6opaque can give me the memory layout that a C struct would anyway, no need. :)
17:47 pmurias joined #perl6
17:48 pmurias sorear: i see you have been working on .net level stuff in niecza what's the direction of those optimalisations? (better startup time?)
17:50 molaf joined #perl6
17:52 sorear pmurias: largely yes
17:55 pmichaud latest rpbench results for 2011.05:   http://github.com/pmichaud/rpbench-results
17:55 pmichaud still running a few more
17:55 TimToady well, of course, if your constants are not constant, you're just hosed, but we're trying to define immutability such that most constant folding can be done (by the run-time) in the compile phase.  P5 constants are defined not to depend on anything that will change at run time.
17:56 TimToady otherwise they're not constant, they're just some kind of temporarily readonly at best
17:57 TimToady and that's why we try to define our operators as lexically scoped functions, not as late-bound methods
17:57 jnthn TimToady: Well, the bigger concern with folding 5 + 4 is not so much about the 5 and the 4, but about what the + does
17:57 TimToady is always infix:<+>, and the candidate list is static
17:57 jnthn TimToady: We can know what definition of + is in effect of course, but we can't be sure it won't do anything insane :)
17:58 jnthn TimToady: Unless we tell people "your + override had better be sane" ;)
17:58 benabik infix:<+>($a, $b) { $a + rand($b) }
17:58 TimToady don't claim to be purer than you are
17:58 TimToady that's all
17:58 jnthn TimToady: How can something claim purity?
17:59 jnthn Is there a trait for that?
17:59 jnthn :)
17:59 donri joined #perl6
17:59 TimToady perl6: sub foo ($a,$b) is pure { say $a + $b }; foo(40, 2);
17:59 p6eval pugs: OUTPUT«42␤»
17:59 p6eval ..niecza v5-75-g90e4727: OUTPUT«[31m===[0mSORRY![31m===[0m␤␤Sub trait pure not available at /tmp/hj1xpAibL9 line 1:␤------> [32msub foo ($a,$b) is pure { say $a + $b }[33m⏏[31m; foo(40, 2);[0m␤␤Unhandled exception: Check failed␤␤  at /home/p6eval/niecza/boot/lib/CORE.setting line 413 (CORE
17:59 p6eval ..die @ 2)␤  at /…
17:59 p6eval ..rakudo 369665: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Routine $r, Any :default($default)!)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤:(Mu $type where ({ ... }), Any
17:59 p6eval ..:rw($rw)…
18:00 TimToady pugs gets it right :)
18:00 jnthn :P
18:00 jnthn .oO( is impure )
18:00 pmichaud pugs:  sub foo ($a,$b) is puer { say $a + $b };  foo(40, 2);  # checking
18:00 p6eval pugs: OUTPUT«42␤»
18:00 pmichaud I can get rakudo to do the same.  :-P
18:00 jnthn oh noes :P
18:01 pmichaud it's easy if you're allowed to ignore the traits that you don't know about yet :)
18:01 TimToady except I think pugs actually does something with "is pure"
18:01 jnthn nom break, then some hacking :)
18:01 pernatiy left #perl6
18:01 TimToady something to do with making Haskell happy...
18:01 pmichaud .oO( "nom" is already broken, so get to hacking! )
18:01 jnthn :P :P
18:02 TimToady you speak with forked tongue :)
18:02 TimToady I guess that would be :K though
18:02 slavik1 joined #perl6
18:03 pmichaud maybe  :«  or  :<
18:04 TimToady errands &
18:05 bluescreen10 joined #perl6
18:05 bluescreen10 left #perl6
18:06 fhelmberger_ left #perl6
18:19 pmichaud tadzik: benchmark comparison of gsoc-podparser vs rakudo-master:  http://gist.github.com/991539
18:19 pmichaud looks like no significant difference
18:21 araujo left #perl6
18:21 gbacon left #perl6
18:30 donri left #perl6
18:38 perigrin pmichaud: :< is just you with a mustache
18:39 perigrin TimToady: :K would really just be fork-emulation wouldn't it? It's not really a seperate process like ':P :P' is
18:40 araujo joined #perl6
18:43 yegor joined #perl6
18:46 yegor left #perl6
18:47 MayDaniel left #perl6
18:48 drbean left #perl6
18:48 drbean joined #perl6
18:49 drbean left #perl6
18:51 tadzik pmichaud: it's funny that it's faster. It's quite irrational
18:51 sorear 187ee75b is the first bad commit \o/
18:55 Mowah left #perl6
19:05 silug joined #perl6
19:08 starcoder is now known as Starcoder|Testin
19:08 Starcoder|Testin is now known as starcoder
19:08 [Coke] left #perl6
19:09 mberends left #perl6
19:10 [Coke] joined #perl6
19:11 jnthn tadzik: 0.6% difference is probably noise.
19:11 tadzik yeah
19:11 PerlJam s/probably //
19:17 mberends joined #perl6
19:18 drbean joined #perl6
19:20 awoodland left #perl6
19:20 pmichaud tadzik: the differences in timing aren't significant here
19:20 pmichaud so yes, noise.
19:20 tadzik yeah
19:20 tadzik still, fun :)
19:21 pmichaud I think we can safely say that whatever changes you've made thus far don't make things significantly worse
19:21 tadzik that's the good news, yes
19:21 pmichaud but that's also probably because the test files don't contain a lot of pod in them
19:21 pmichaud if you want to contribute some files containing a good amount of pod, that would be a good test
19:22 pmichaud or we can start adding pod to the core/*.pm files
19:22 pmichaud (although I'd hate for that to get much slower :-)
19:22 pmichaud s/contribute some files/contribute some bench mark scripts/
19:26 pernatiy joined #perl6
19:27 IllvilJa left #perl6
19:28 pmichaud so, for the past couple of weeks I've been musing that we should go ahead and make a 2011.05 star release, because of the poor performance characteristics of 2011.04 .  I haven't seen anyone give a +1 or -1 to the notion, though.  Comments?
19:29 pmichaud to see the difference in performance, look at the files in http://github.com/pmichaud/rpbench-results .  Compare the results of 2011.04/3.3.0 versus 2011.05/3.4.0.
19:30 pmichaud generally a 20% difference.
19:31 sorear -1 it would come out very close to and distract people from niecza v6 :D
19:31 pmichaud when does niecza v6 come out?
19:31 sorear last monday in may
19:31 pmichaud .oO( besides, we might as well throw in the towel now... DNF was released )
19:31 sorear 30th
19:32 sorear I'm almost entirely joking.
19:32 sorear I know this isn't really a zero-sum game
19:32 pmichaud sure... I'm just trying to decide if I can do something to make it even more annoying :)
19:32 pmichaud like, releasing it *on* the 30th.  :-P
19:32 awoodland joined #perl6
19:32 pmichaud (no, I wouldn't do that intentionally, unless we agreed it was beneficial :-)
19:33 sorear hmm, Jun 22 will mark 1y since the first commit to the niecza repo
19:33 sorear I should do something for that day
19:35 PerlJam pmichaud: +1, but only if you do it quick  :)
19:35 pmichaud afk, kid pickup
19:35 pmichaud PerlJam: I'm thinking (a) fix up zavolaj and (b) release
19:35 pmichaud so, probably release tomorrow or fri
19:36 pmichaud that way sorear can still have the memorial release :)
19:40 GinoMan left #perl6
19:44 wamba left #perl6
19:45 jnthn http://blogs.perl.org/users/jlloyd/2011/05/perl6----irl-in-real-life.html # nice :)
19:47 colomon rakudo: say ~("A0A" .. "A9A)
19:47 p6eval rakudo 369665: OUTPUT«===SORRY!===␤Confused at line 22, near "say ~(\"A0A"␤»
19:47 colomon rakudo: say ~("A0A" .. "A0R")
19:47 p6eval rakudo 369665: OUTPUT«A0A A0B A0C A0D A0E A0F A0G A0H A0I A0J A0K A0L A0M A0N A0O A0P A0Q A0R␤»
19:47 PerlJam (that guy)++
19:54 moritz \o/ built nom, I can haz it!
19:54 moritz jnthn++
19:56 jnthn \o/
19:57 * PerlJam installs a panda
19:57 moritz ... and the empty program already compiles
19:57 pmichaud is the goal still to have nom running in time for june release?
19:58 jnthn pmichaud: It's an ambitious goal. :)
19:58 pmichaud okay, that answers my second question :)
19:58 pmichaud (and my first :)
19:58 jnthn pmichaud: Depends what "running" means :)
19:58 pmichaud seems reasonable, at any rate
19:59 PerlJam jnthn: when will nom be the default?  :)
19:59 pmichaud probably with approximately the same criteria we used for alpha->ng
19:59 jnthn PerlJam: When there's reasonable consensus that it's ready to be.
19:59 pmichaud maybe a little higher bar so we have less regression
20:00 jnthn pmichaud: Yeah. We ain't starting afresh with the grammar this time. :)
20:00 jnthn Which helps.
20:00 pmichaud well, we also have a more stable language spec.  Well, we did until the S06 changes.  :-P
20:01 jnthn That also.
20:01 pmichaud I'm also wondering when TimToady++ will change the spec to require nfg/nfd/whatever implementation in order to even be able to compile a p6 program.  :-P
20:01 soapyj joined #perl6
20:05 sorear pmichaud: the spec already requires true LTM in order to be able to parse a p6 program :P
20:06 * moritz thinks rakudo does pretty well with faked LTM for now
20:06 starcoder is now known as StarCoder
20:06 StarCoder is now known as starcoder
20:08 GinoMan joined #perl6
20:08 sorear S02-lexical-conventions/unicode.t:61 requires (faked?) NFG in the parser itself
20:08 wamba joined #perl6
20:09 sorear or we can modify <identifier> to allow 0 or more combining chars after each \w
20:09 starcoder2 is now known as FooBar
20:09 FooBar is now known as starcoder2
20:10 moritz like \X in Perl 5
20:11 silug left #perl6
20:11 silug joined #perl6
20:13 sorear \C looks eeevil
20:14 moritz it is.
20:14 moritz very much so.
20:14 moritz I think dmq called it the craziest feature of the re engine
20:16 Mowah_ left #perl6
20:20 sorear I should make a detaled study of the Perl5 regex engine sometime
20:21 moritz only if you have a good health insurance that covers psychological problems :-)
20:25 sorear "how bad could it be?"
20:25 moritz like, very
20:26 moritz polymorphic opcodes for the Unicode/non-Unicode cases
20:26 kjeldahl left #perl6
20:28 wknight8111 left #perl6
20:31 kjeldahl joined #perl6
20:31 sorear moritz: how familiar are you with it?
20:36 snearch joined #perl6
20:40 noganex joined #perl6
20:41 mj41 joined #perl6
20:42 wamba left #perl6
20:43 wamba joined #perl6
20:43 noganex_ left #perl6
20:44 snearch left #perl6
20:45 moritz sorear: not really much
20:45 dalek rakudo/nom: 3294338 | jnthn++ | src/Perl6/ (3 files):
20:45 dalek rakudo/nom: Little refactor to parameter handling to make implementation easier. Default invocant parameter for method, recognize the : as an invocant separator.
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3294338b14
20:45 dalek rakudo/nom: bfe8be2 | jnthn++ | src/Perl6/Actions.pm:
20:45 dalek rakudo/nom: Complain if we're not in a package type that supports methods.
20:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bfe8be2b0d
20:51 * sorear has been spending most of this morning trying to track down a bug in the regex engine which manifests as miscompiling the stage2 parser and thus failing to compile stage3
20:56 sorear moritz: where to start?
20:57 moritz sorear: whatching a few -Mre=debug traces gives a bit of a feeling for the regex engine
20:57 ymasory left #perl6
21:02 sorear mm
21:06 silug left #perl6
21:06 sorear wtf? pluggable regex engines?
21:06 silug joined #perl6
21:07 bacek joined #perl6
21:07 drbean left #perl6
21:09 moritz since 5.10
21:09 Pathin joined #perl6
21:11 Pathin left #perl6
21:11 molaf left #perl6
21:11 drbean joined #perl6
21:11 jlaire left #perl6
21:13 Pathin joined #perl6
21:13 jlaire joined #perl6
21:14 Pathin left #perl6
21:15 Pathin joined #perl6
21:17 wamba left #perl6
21:17 Pathin left #perl6
21:17 dalek niecza: 3fd815c | sorear++ | / (3 files):
21:17 dalek niecza: Partial revert of low-ranking optimization that broke build
21:17 dalek niecza: review: https://github.com/sorear/niecza/commit/3fd815c2d3
21:18 Pathin joined #perl6
21:18 Pathin left #perl6
21:18 Pathin joined #perl6
21:19 sorear I am rather baffled.  that last commit should have had no effect whatsoever.
21:20 silug left #perl6
21:20 silug joined #perl6
21:31 sorear aha, one of my invariants was being violated and I didn't notice until now
21:33 silug left #perl6
21:34 donri joined #perl6
21:44 thou left #perl6
21:46 mtk left #perl6
21:48 dalek rakudo/nom: 39fa18e | jnthn++ | / (7 files):
21:48 dalek rakudo/nom: Get the Stash type stubbed in. Make sure packages get a Stash.
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/39fa18e604
21:53 moritz jnthn: did you forget to git add Stashing.pm ?
21:53 dalek niecza: 5773d70 | sorear++ | / (3 files):
21:53 dalek niecza: Fix the real problem - <?foo> should never have been marked as backtrack-into-able
21:53 dalek niecza: review: https://github.com/sorear/niecza/commit/5773d70149
21:53 sorear \o/
21:54 dalek rakudo/nom: 1abf123 | jnthn++ | src/Perl6/Metamodel/Stashing.pm:
21:54 dalek rakudo/nom: Oops, forgot to add new file; moritz++ for noticing.
21:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1abf123521
21:55 mtk joined #perl6
21:56 colomon doh!
21:56 colomon nom changes coming too fast!  ;)
21:58 thou joined #perl6
21:59 jnthn :)
21:59 lichtkind joined #perl6
21:59 jnthn Not *that* fast. :)
22:05 sorear o/ lichtkind
22:06 lichtkind hai sorear
22:06 hercynium left #perl6
22:06 lichtkind howsitgoingmaäan?
22:07 sorear fīne?
22:08 tadzik oh, nice way to say that
22:09 dalek niecza: 5abbd5f | moritz++ | t/spectest.data:
22:09 dalek niecza: one more passing smartmatch test file
22:09 dalek niecza: review: https://github.com/sorear/niecza/commit/5abbd5fa18
22:09 * moritz -> sleep
22:11 GinoMan left #perl6
22:13 mj41 left #perl6
22:17 am0c left #perl6
22:18 GinoMan joined #perl6
22:20 awoodland left #perl6
22:24 lichtkind moritz: good night
22:24 lichtkind sorear: glad to hear
22:25 sorear I've been improving the niecza codegen lately
22:25 sorear also now studying the p5 regex engine
22:26 daniel-s joined #perl6
22:26 dalek nqp: 05bf809 | jonathan++ | src/pmc/sixmodelobject.pmc:
22:26 dalek nqp: Make get_iter overridable.
22:26 dalek nqp: review: https://github.com/perl6/nqp/commit/05bf809aaa
22:33 donri left #perl6
22:45 GinoMan left #perl6
22:47 GinoMan joined #perl6
22:53 sorear there are a few cases where niecza's regex engine acts very stupid
22:53 sorear e.g. ("x" x 1_000_000) ~~ /^a/
22:54 sorear tests all 10^6+1 possible locations to find the ^a combination
22:54 quietfanatic joined #perl6
22:55 sorear hi quietfanatic
22:56 dalek rakudo/nom: 61b9be5 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.pm:
22:56 dalek rakudo/nom: Make get_iter available on Stash.
22:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/61b9be568e
22:56 dalek rakudo/nom: dc580c1 | jnthn++ | src/Perl6/Actions.pm:
22:56 dalek rakudo/nom: Packages (roles aside) should have immediate blocks.
22:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dc580c1ee3
22:56 dalek rakudo/nom: 92b8dc9 | jnthn++ | src/Perl6/ (2 files):
22:56 dalek rakudo/nom: Support package-scoped classes (didn't do multi-part names yet, though).
22:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/92b8dc9da4
22:56 dalek rakudo/nom: b3871fb | jnthn++ | / (2 files):
22:56 dalek rakudo/nom: A cheaty EXPORTHOW for the setting, so we can actually write classes with methods in programs and compile them now.
22:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b3871fb4ce
22:57 quietfanatic hi sorear
22:57 sorear welcome
22:58 quietfanatic I notice niecza supports make() and .ast in regexes
22:58 quietfanatic while rakudo doesn't
22:58 sorear that's weird, I'm pretty sure rakudo *uses* make() and .ast
22:58 quietfanatic perl6: "abc" ~~ /abc {make 3}/; say $/.ast
22:58 p6eval niecza v5-78-g5abbd5f: OUTPUT«3␤»
22:58 p6eval ..rakudo 369665: OUTPUT«Any()␤»
22:58 p6eval ..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤    unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.16/blib6/pugs/perl5/lib';␤    eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
22:58 quietfanatic I know, that's what I thought
22:58 quietfanatic but this is what happens.
22:59 jnthn It uses it in action methods.
22:59 jnthn pmichaud may know if it not working in regexes is bug or intention.
22:59 quietfanatic I also couldn't seem to get ast from Grammar.parse();
23:00 cdarroch left #perl6
23:00 sorear quietfanatic: the issue is probably with make, not .ast
23:01 sorear calling make before the regex finishes matching is a bit of an odd case, and one that had to be specially supported in niecza
23:01 sorear alpha: "abc" ~~ /abc {make 3}/; say $/.ast
23:01 p6eval alpha : OUTPUT«Confused at line 10, near "make 3}/; "␤in Main (file <unknown>, line <unknown>)␤»
23:02 quietfanatic hm.
23:02 sorear oh right alpha didn't have perl 6 regexes
23:02 quietfanatic I thought it was supposed to be called before the regex finished
23:02 alester left #perl6
23:02 sorear make is normally called from action methods
23:02 quietfanatic how else would I call it?
23:02 sorear which are called immediately after the regex finishes
23:03 quietfanatic Okay, I'll look into action methods
23:03 quietfanatic Can you direct me to some documentation?
23:04 quietfanatic I can't find it in S05
23:06 sorear .... neither can I
23:06 sorear that's weird
23:07 quietfanatic Well, maybe I can figure it out from the Rakudo source
23:08 sorear S05-grammar/action-stubs.t maybe
23:08 jnthn quietfanatic: Or look at a module like JSON::Tiny which uses grammar and action methods.
23:08 sorear although it's a little out of date
23:08 quietfanatic mkay
23:08 quietfanatic thanks guys
23:09 sorear ah, you were here last year, I thought I remembered you
23:09 quietfanatic yep
23:09 quietfanatic I've been away from the p6 scene for a while
23:10 quietfanatic but occasionally I really want p6 grammers for something or other
23:12 dalek rakudo/nom: c9335fc | jnthn++ | src/Perl6/SymbolTable.pm:
23:12 dalek rakudo/nom: Remove some development/debugging output.
23:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c9335fc65d
23:12 dalek rakudo/nom: 70fac05 | jnthn++ | NOMMAP.markdown:
23:12 dalek rakudo/nom: Update nommap.
23:12 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/70fac05a8a
23:15 pmurias left #perl6
23:21 whiteknight joined #perl6
23:22 sorear quietfanatic: well then, welcome back
23:23 sorear quietfanatic: what do you think of the last few months of changes here?
23:25 quietfanatic I haven't looked into the changes really yet
23:25 quietfanatic I'm still using Rakudo Star 2010-07
23:26 sorear you seem to have at least discovered the new compiler
23:26 quietfanatic niecza?
23:26 quietfanatic yeah, I've played around with it a few months back
23:26 quietfanatic back when it was new
23:26 quietfanatic How is it coming along?
23:26 sorear very well
23:27 quietfanatic ooh, good to hear
23:27 quietfanatic is it beating Rakudo in performance?
23:27 sorear the perl 5 components have all been rewritten in perl 6, it passes 1000+ spectests
23:27 quietfanatic neat
23:27 sorear yes
23:27 sorear it's still lagging on startup time though
23:27 quietfanatic I'll have to fiddle around with it some more
23:28 jnthn sleep &
23:29 Chillance left #perl6
23:30 sorear the current dev version has probably regressed on math quite a bit due to arithmetic overloading
23:36 wisemansword joined #perl6
23:36 quietfanatic Any hope of moving that overloading from runtime to compile-time?
23:38 daniel-s left #perl6
23:38 quietfanatic Oh, I have one more rakudo bug to report
23:38 quietfanatic though it's probably been noticed already
23:39 quietfanatic rakudo: grammar A { rule x-y { abc }; rule z { <x-y> }; }
23:39 p6eval rakudo 369665: OUTPUT«===SORRY!===␤regex assertion not terminated by angle bracket at line 22, near "-y> }; }"␤»
23:39 quietfanatic It can't parse hyphens in rule names.
23:42 sorear std: /<x-y>/
23:42 p6eval std 4b1b100: OUTPUT«ok 00:01 113m␤»
23:42 wisemansword left #perl6
23:43 sorear quietfanatic: (moving to compile-time) not without a lot of type annotations, and my personal opinion is that it wouldn't help much
23:43 sorear optimizing the existing code would get me much more bang/buck
23:43 sorear just haven't done it yet
23:44 quietfanatic ah
23:44 silug joined #perl6
23:46 sorear rakudo: my $i = 0; $i++ until $i == 50_000;
23:47 p6eval rakudo 369665:  ( no output )
23:47 sorear rakudo: my $i = 0; $i++ until $i == 100_000; say "alive"
23:47 p6eval rakudo 369665: OUTPUT«(timeout)»
23:47 sorear rakudo: my $i = 0; $i++ until $i == 75_000; say "alive"
23:47 p6eval rakudo 369665: OUTPUT«alive␤»
23:47 sorear niecza: my $i = 0; $i++ until $i == 1_000_000; say "alive"
23:47 p6eval niecza v5-78-g5abbd5f: OUTPUT«alive␤»
23:48 sorear niecza: my $i = 0; $i++ until $i == 10_000_000; say "alive"
23:48 p6eval niecza v5-78-g5abbd5f: OUTPUT«(timeout)»
23:48 sorear niecza: my $i = 0; $i++ until $i == 5_000_000; say "alive"
23:48 p6eval niecza v5-78-g5abbd5f: OUTPUT«alive␤»
23:48 sorear niecza: my $i = 0; $i++ until $i == 7_500_000; say "alive"
23:48 p6eval niecza v5-78-g5abbd5f: OUTPUT«(timeout)»
23:49 sorear rakudo: say 5_000_000 / 75_000
23:49 p6eval rakudo 369665: OUTPUT«66.6666666666667␤»
23:49 sorear there you go, quietfanatic
23:49 sorear perlesque: my $i = 0; until $i == 10_000_000 { $i++ }; say("alive")
23:49 p6eval perlesque: OUTPUT«alive␤»
23:49 sorear perlesque: my $i = 0; until $i == 1_000_000_000 { $i++ }; say("alive")
23:49 p6eval perlesque: OUTPUT«alive␤»
23:50 * sorear finishes perlreguts
23:54 lichtkind left #perl6
23:58 quietfanatic impressive.

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

Perl 6 | Reference Documentation | Rakudo