Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-09-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:12 Psyche^ joined #perl6
00:14 fridim__ joined #perl6
00:15 EvanTeitelman joined #perl6
00:26 [Coke] so many versions of trunk not building in this bisect. :( :(
00:37 flussence I made a thing today that takes almost as long to parse as the setting \o/
00:37 flussence if anyone's looking for a pathological test case for optimisation work, have at it: https://github.com/flussence/HTML5-Entities/blob/master/lib/HTML5/Entities/LookupTable.pm
00:40 diakopter aw jeez http://pghpw.org/ppw2013/talk/5126
00:53 diakopter flussence: what makes it pathological?
00:54 jonathanmarvens joined #perl6
00:55 flussence it's just two hashes, but it takes 3 minutes to load on my desktop machine
00:55 flussence and I imagine that it'd take 3 seconds in perl5...
00:55 diakopter wat..
00:56 * diakopter tries moarvm
00:56 flussence I haven't tried in jvm yet (won't build recently :/)
00:57 diakopter well I'll make an nqp version of it
00:57 * TimToady just built it
00:57 flussence TimToady: it's giving me Java OOM errors, even though I've got 6GB RAM free :(
00:58 TimToady building it?
00:58 flussence I'll try again, just to get the exact error...
00:58 jnap joined #perl6
00:58 flussence but IIRC, something about "not enough heap space"
00:59 TimToady 32 or 64-bit?
00:59 diakopter nqp: https://gist.github.com/diakopter/6693648
01:00 camelia nqp: OUTPUT«(timeout)»
01:00 diakopter consarn it
01:00 flussence 64-bit
01:01 TimToady why don't you just invert the first table to get the second?
01:01 diakopter cannot stringify this
01:01 diakopter at nqp-src\NQPHLL.nqp:803  (./NQPHLLMoar.moarvm:quote_atom:43)
01:01 diakopter from nqp-src\QRegex.nqp:669  (./QRegexMoar.moarvm:!reduce:40)
01:01 diakopter from nqp-src\QRegex.nqp:633  (./QRegexMoar.moarvm:!cursor_pass:64)
01:01 diakopter from <unknown>:1  (./NQPHLLMoar.moarvm:quote_atom:506)
01:01 diakopter from <unknown>:1  (./NQPHLLMoar.moarvm:quote_delimited:104)
01:01 diakopter from nqp-src\NQPHLL.nqp:345  (./NQPHLLMoar.moarvm:quote_EXPR:151)
01:01 diakopter from <unknown>:1  (nqp.moarvm:quote:sym<apos>:66)
01:01 diakopter from nqp-src\QRegex.nqp:702  (./QRegexMoar.moarvm:!protoregex:125)
01:01 diakopter from <unknown>:1  (nqp.moarvm:quote:8)
01:01 diakopter from <unknown>:1  (nqp.moarvm:value:90)
01:02 diakopter from <unknown>:1  (nqp.moarvm:term:sym<value>:63)
01:02 diakopter from nqp-src\QRegex.nqp:702  (./QRegexMoar.moarvm:!protoregex:125)
01:02 diakopter oops
01:03 diakopter WOW
01:03 diakopter 25 seconds to parse and compile it to pir from nqp-parrot
01:04 flussence TimToady: my original intent was to avoid doing extra work at runtime, but that's probably a lost cause right now
01:04 TimToady you can use BEGIN to run things at compile time too
01:05 flussence and now that I've seen the actual speed of it, maybe an invert would work out faster...
01:05 TimToady esp since rakudo is currently somewhat allergic to non-ASCII
01:05 TimToady performance-wise
01:06 TimToady parsing-wise
01:06 TimToady it would also probably parse a lot faster (under current rakudo) if you use \x instead of actual chars
01:06 diakopter maybe
01:08 diakopter .8s for parrot to run the generated .pir
01:08 diakopter :S
01:09 flussence hm, rakudo-jvm seems to be building okay today...
01:09 diakopter I wonder what moarvm can't stringify
01:09 diakopter and why it's stringifying something...?
01:09 [Coke] flussence: if you're having memory issues, did you try modifying the startup script?
01:10 flussence [Coke]: this is just from following the build instructions in the readme. Either way, it seems to have fixed itself now
01:12 diakopter flussence: flussence one problem is the .pir is using 5000 parrot local registers *doh*
01:14 stevan_ joined #perl6
01:23 [Coke] .to lizmat you were right, 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
01:23 yoleaux [Coke]: I'll pass your message to lizmat.
01:23 [Coke] .to jnthn 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
01:23 yoleaux [Coke]: I'll pass your message to jnthn.
01:24 [Coke] (that took way too long)
01:29 kst` joined #perl6
01:34 [Coke] can you .to more than one person at a time?
01:34 [Coke] .to diakopter,flussence "jsut checking"
01:34 yoleaux [Coke]: What kind of a name is "diakopter,flussence"?!
01:35 diakopter .to [Coke] [Coke]
01:35 yoleaux diakopter: I'll pass your message to [Coke].
01:36 [Coke] ~
01:36 yoleaux 01:35Z <diakopter> [Coke]: [Coke]
01:43 jnap joined #perl6
01:47 Mouq joined #perl6
01:48 Mouq rn: say so "aaa" ~~ / a ** { 2 + 1} /
01:48 camelia niecza v24-95-ga6d4c5f: OUTPUT«True␤»
01:48 camelia ..rakudo 7e2d8b: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ke7OSVRFXcâ�¤Quantifier quantifies nothingâ�¤at /tmp/Ke7OSVRFXc:1â�¤------> [32msay so "aaa" ~~ / a ** [33mâ��[31m{ 2 + 1} /[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or me…»
01:49 slavik joined #perl6
01:51 * Mouq finds RT #73172
01:51 * synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=73172
01:54 [Coke] r: my %h;%h<a>:exists;
01:54 camelia rakudo 7e2d8b: ( no output )
01:54 [Coke] rakudo-jvm: my %h;%h<a>:exists;
01:54 [Coke] camelia: help
01:54 camelia [Coke]: Usage: <(nqp-jvm|star|pugs|nqp|std|niecza|rakudo|b|nom|npr|n|r|perl6|prn|rn|p|rnp|nrp|pnr|rpn|p6|nr)(?^::\s) $perl6_program>
01:55 [Coke] ah.
01:55 [Coke] .to lizmat "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
01:55 yoleaux [Coke]: I'll pass your message to lizmat.
01:55 [Coke] .to jnthn "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
01:55 yoleaux [Coke]: I'll pass your message to jnthn.
01:56 jonathanmarvens joined #perl6
01:59 Mouq What does a bare pair of curly braces, “{}”, do in a regex?
02:00 Mouq .oO( Perl 6, the Movie, starring Curly Braces' Bear pair )
02:05 flussence I'd guess that's an empty code closure which forces proceduralness instead of declarativeness
02:07 Mouq Could you clarify the *ness'es for me? Like, STD uses `token comment:sym<#> { '#' {} \N* }`
02:10 colomon joined #perl6
02:19 flussence I'm not much of an expert on that bit of the language, sorry. It's something to do with backtracking IIUC
02:20 Mouq Okay, thank you very much flussence
02:23 dayangkun_ joined #perl6
02:31 xinming joined #perl6
03:13 preflex_ joined #perl6
03:14 raiph joined #perl6
03:18 Mouq So, if an action method does make QAST::Stmts(), and you take the .ast of that, do you get QAST::Stmts or the result of the evaluation?
03:19 Mouq I'm guessing the former
03:19 Mouq *the result of the evaluated statement list
03:20 cognominal joined #perl6
03:21 labster joined #perl6
03:26 [Coke] .to jnthn current version complains: getextype needs an object with VMException representation
03:26 yoleaux [Coke]: I'll pass your message to jnthn.
03:41 raiph nqp: sub foo { 'boo' }; grammar A { rule TOP { 'a' } }; class B { method TOP ($/) { make foo } }; say A.parse("a", :actions(B)); say $<TOP>
03:41 camelia nqp: OUTPUT«Routine declaration requires a signature at line 2, near "{ 'boo' };"␤current instr.: 'panic' pc 14693 (src/stage2/gen/NQPHLL.pir:5223) (src/stage2/gen/NQPHLL.nqp:279)␤»
03:41 raiph ww
04:27 broquaint joined #perl6
04:27 wtw joined #perl6
04:28 gfldex joined #perl6
04:29 nyuszika7h joined #perl6
04:31 rafl joined #perl6
04:40 Mouq ( I've realized that my previous question about QAST::Stmts pretty much *has* to be the former, btw )
04:41 TimToady the {} in a regex terminates the longest token match there
04:41 TimToady so \N* is not considered part of the token to match with a DFA
04:42 Mouq Oh, cool, I understand. Thank you TimToady
04:54 ponbiki joined #perl6
05:07 [Coke] r: &&::{}[];;
05:07 camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
05:07 [Coke] masak: ^^
05:10 [Coke] r: ~~::??{}~~[];;
05:10 camelia rakudo 7e2d8b: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Found ?? but no !!â�¤at /tmp/_QtlfDw2eh:1â�¤------> [32m~~::??{}~~[][33mâ��[31m;;[0mâ�¤Confusedâ�¤at /tmp/_QtlfDw2eh:1â�¤------> [32m~~::??{}~~[][33mâ��[31m;;[0mâ�¤    expecting any of:â�¤        postfixâ�¤â�¤Â»
05:11 [Coke] in the REPL, that dies with: Null PMC access in get_string()
05:12 JimmyZ n: &&::{}[];;
05:12 yoleaux 24 Sep 2013 16:56Z <jnthn> JimmyZ: 3c49a76a claims to to make things more consistent, but makes function names inconsistent with the op names that delegate to them. D'oh.
05:12 yoleaux 24 Sep 2013 16:59Z <jnthn> JimmyZ: though, there's no strong convention there anyway, looking at a bunch of the others...
05:12 camelia niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤  at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <…»
05:12 yoleaux 24 Sep 2013 17:02Z <jnthn> JimmyZ: 6c8aa5c replaces a MVM_string_ascii_decode_nt with a MVM_string_ascii_decode and an explicit count, which is a silly idea in general as it makes it easy to change the string and forget to update the count. Please don't do/undo such changes.
05:12 yoleaux 24 Sep 2013 22:48Z <jnthn> JimmyZ: in 208ee87d, body->states[i][j].arg.s = reader->read_str(tc, reader); needs doing with MVM_ASSIGN_REF so it gets the wb
05:21 SamuraiJack joined #perl6
05:37 TimToady std: &&::{}[];;
05:37 camelia std 7c17586: OUTPUT«ok 00:00 46m␤»
05:37 TimToady std: ~~::??{}~~[];;
05:37 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Expecting a term, but found either infix ~~ or redundant prefix ~â�¤  (to suppress this message, please use space between ~ ~) at /tmp/A36qY27NP9 line 1:â�¤------> [32m~~[33mâ��[31m::??{}~~[];;[0mâ�¤Parse failedâ�¤FAILED 00:00 41mâ�¤â€¦Â»
05:38 moritz good morning
05:38 TimToady o/
06:21 darutoko joined #perl6
06:22 sjn joined #perl6
06:24 sqirrel joined #perl6
06:25 kaleem joined #perl6
06:29 timotimo good mroing
06:36 darutoko- joined #perl6
06:39 darutoko joined #perl6
06:39 pernatiy joined #perl6
06:54 FROGGS joined #perl6
07:08 denis_boyun joined #perl6
07:39 colomon joined #perl6
07:48 * masak submits [Coke]'s rakudobug
07:49 masak mornin', #perl6
07:49 masak r: &&::{}[];
07:49 camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
07:50 masak r: &&::{}[]
07:50 hoelzro morning all
07:50 camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
07:50 masak r: &&::{}
07:50 camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
07:50 masak r: &::{}
07:50 camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
07:50 masak could be golfed some :)
07:51 moritz current instr.: 'variable_components' pc 26971 (src/gen/perl6-symboltable.pir:10438) (src/Perl6/World.nqp:1858)
07:51 moritz if you run it with --ll-exception
07:51 * masak adds that to the ticket
07:51 masak moritz++
07:52 moritz @result[+@result - 1] := $sigil ~ $twigil ~ @result[+@result - 1];
07:52 moritz this line looks like it might fail if @result is empty
07:53 moritz std: &::{}
07:53 camelia std 7c17586: OUTPUT«ok 00:00 42m␤»
07:53 moritz so, what does it mean?
07:53 moritz an access to the anonymous variable & ?
07:56 * timotimo struggles to understand the purpose or function or sense of urbit
07:56 hoelzro you too?
07:57 moritz wtf is urbit?
07:57 timotimo i mean, i kind of sort of get what it can do
07:57 timotimo urbit.org
07:58 moritz Hoon can be classified as a pure, strict higher-order static type-inferred functional language, with co/contra/bivariance and genericity. However, Hoon does not use lambda calculus, unification, or other constructs from “PL theory.”
07:59 moritz wait, what? a "pure, strict higher-order static type-inferred functional language" without any programming language theory?
08:00 timotimo tee hee
08:00 timotimo reading the docs feels a bit like playing an alternate reality game
08:00 hoelzro I think part of it is that the docs are kinda dry
08:00 hoelzro "X is ... Y is ..."
08:01 timotimo i don't think i've reached that point yet
08:01 timotimo i'm only in the chapter on avro
08:04 arnsholt moritz: Sounds like it's either a joke or written by people who don't know what they're talking about =)
08:05 arnsholt "Its self-compiling kernel, 7000 lines of code, specifies Hoon unambiguously; there is no Hoon spec." HA HA HA HA!
08:06 moritz also, the VM (Nock) spec is 200 words
08:06 arnsholt The language is defined by its implementation. What could possibly go wrong!
08:06 moritz so all of the IO sub system can be described precisely in 200 words?
08:06 timotimo arnsholt: nobody is going to use this in production!
08:06 timotimo moritz: there is no IO.
08:07 timotimo (well, that's not true of course)
08:09 arnsholt "The only arithmetic operator is increment" that sounds like a terrible, terrible idea
08:12 moritz arnsholt: sounds like somebody has been reading lots of FP theory
08:12 moritz :-)
08:13 hoelzro so...it's a BF VM?
08:13 hoelzro how do you implement minus? counter wrap?
08:13 timotimo We should note that in Nock and Hoon, 0 (pronounced “yes”) is true, and 1 (“no”) is false. Why? It’s fresh, it’s different, it’s new. And it’s annoying. And it keeps you on your toes. And it’s also just intuitively right.
08:14 hoelzro is that a direct quote?
08:14 timotimo yes
08:14 hoelzro what is this guy smoking?
08:14 jnthn morning, #perl6
08:14 yoleaux 01:24Z <[Coke]> jnthn: 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
08:14 yoleaux 01:55Z <[Coke]> jnthn: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
08:14 yoleaux 03:26Z <[Coke]> jnthn: current version complains: getextype needs an object with VMException representation
08:14 * moritz congratulates the makers on the most elaborate joke he has seen in quite some time
08:15 * timotimo imagines being the creator of urbit and seeing it show up on a publically logged irc channel of a similarly insane language design community via a google alert
08:16 stevan__ joined #perl6
08:18 dmol joined #perl6
08:19 timotimo In particular, please remember that you are not too stupid to program in Hoon. Hoon is FP made stupid - for the stupid, by the stupid. (This is the real reason it’s only 3400 lines.)
08:24 masak True and False are dual in some sense.
08:25 masak so of course you could flip their numifying values.
08:25 masak a good idea? no. but you can.
08:29 diakopter "deterministic functional operating system"
08:29 diakopter hee
08:30 masak well, that *is* innovative.
08:30 masak all the OSes I know are non-deterministic and dysfunctional :P
08:30 moritz but useful.
08:32 diakopter "Nock’s only arithmetic operator is increment"
08:32 diakopter hee
08:33 masak "The goal of any programming language is to become a standard. Universal standardization equals world domination." -- there is some truth to this.
08:33 masak well, it's the kind of vastly oversimplified statement that's still not entirely wrong.
08:34 masak I'm thinking of JavaScript, for example.
08:37 diakopter Haskell has higher-order type inference; Hoon has “higher-order” “type” “inference.”
08:37 timotimo .o( ich möchte haskell werden anstelle des haskellen! )
08:39 hoelzro hehe
08:40 timotimo .o( je veux devenir hazkél à la place du hazkél )
08:40 diakopter Learning Hoon involves learning nearly 100 ASCII digraph “runes.”
08:40 timotimo is that even a catchphrase that rings any bells to people?
08:42 moritz it does for me
08:42 moritz http://en.wikipedia.org/wiki/Iznogoud
08:43 tadzik \o/
08:43 tadzik Iznogoud!
08:43 sqirrel joined #perl6
08:44 timotimo \o/
08:50 diakopter curtis.yarvin@gmail.com
08:50 dakkar joined #perl6
08:55 moritz diakopter: wrong window?
08:56 diakopter no, just reporting the author of urbit
08:56 diakopter "reporting" used losely
09:03 diakopter moritz: it's actually not a joke
09:03 diakopter just described farcicly
09:04 timotimo diakopter: will it be done by christmas? :)
09:04 nwc10 good *, jnthn
09:05 moritz diakopter: how do you know?
09:06 daxim joined #perl6
09:06 jnthn o/ nwc10
09:07 diakopter moritz: b/c it feels unlikely to me that the documented inputs/outputs are made-up
09:07 diakopter (I mean, I could download and build/run the code...)
09:09 moritz diakopter: that doesn't mean the whole thing, including the code, isn't a huge, elaborate joke
09:09 JimmyZ good morning, jnthn
09:09 diakopter in that the writing is meant to be funny, I agree
09:10 diakopter but I suspect he's wanting to get points across and teach (and mock) with the farce (why would someone actually make a system as cutesy as this?)
09:11 diakopter so I doubt it's entirely whimsical
09:13 fhelmberger joined #perl6
09:16 diakopter heh, a prior iteration: http://urbit.sourceforge.net/u.txt
09:17 moritz diakopter: I just don't see why it would be made so *useless* if it's not meant as a joke
09:17 moritz I mean, increment as the only arithmetic operation. Come on.
09:18 moritz (I can understand not doing much IO, because it's hard and annoying. But every platform already offers arithmetics which you'd just have to wire up)
09:18 diakopter that's the only operation at that level.. but as he explains, the implementation can recognize higher level patterns and replace with calls to C functions
09:19 diakopter but I think the purpose of that minimalistic level was to see how small it could get
09:19 arnsholt It's a bit optimistic that an optimizer can magically optimize all the things based on a single operation though
09:20 arnsholt "Sufficiently smart compiler" and all that
09:20 arnsholt Especially since a very small instruction isn't a magical bullet against large search spaces
09:21 diakopter yeah. he doesn't say whether those optimizations are implemented
09:21 diakopter (maybe they are though)
09:21 diakopter (some, at least)
09:23 iSlug joined #perl6
09:24 masak I took a look at the Hoon syntax, and then closed the tab pretty soon after that.
09:24 hoelzro it's edgy!
09:24 masak though I did like the one-syllable names of <> {} () [] -- very aesthetic!
09:24 masak only problem is that the listener needs to be in on it :)
09:25 timotimo i'm not sure i get it
09:26 jnthn .oO( Is the point of the project to distract Perl 6 devs? :P )
09:27 timotimo i apologize for mentioning it ;)
09:28 * diakopter would have been distracted by something else anyway
09:28 jnthn r: say Hash.^attributes[0]
09:28 camelia rakudo 7e2d8b: OUTPUT«No such method 'gist' for invocant of type 'BOOTSTRAPATTR'␤  in sub say at src/gen/CORE.setting:12659␤  in block  at /tmp/BBgfMFPJjA:1␤␤»
09:28 jnthn r: say Hash.^attributes[0].type
09:28 camelia rakudo 7e2d8b: OUTPUT«(Mu)␤»
09:29 jnthn r: say Hash.^attributes[0].package
09:29 camelia rakudo 7e2d8b: OUTPUT«(Hash)␤»
09:29 diakopter boots trap a ttr?
09:30 jnthn poor ttr
09:42 pmurias joined #perl6
09:42 dalek nqp: 6b4b034 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
09:42 dalek nqp: nqp::iscont should not blow up over a null value.
09:42 dalek nqp:
09:42 dalek nqp: This fixes a broken case of .clone that the subscripting changes in
09:42 dalek nqp: Rakudo hit. Thus, this fixes a more general issue.
09:42 dalek nqp: review: https://github.com/perl6/nqp/commit/6b4b03434f
09:43 FROGGS jnthn++ # more general karma
09:44 * jnthn is doing another Rakudo JVM spectest run at the moment
09:45 jnthn But think this will clean up many fails
09:45 FROGGS awesome, I like these kind of fixes :o)
09:58 rindolf joined #perl6
10:02 jnthn r: my Int @a=<foo bar>; say @a
10:02 camelia rakudo 7e2d8b: OUTPUT«Type check failed in assignment to '@a'; expected 'Int' but got 'Str'␤  in method REIFY at src/gen/CORE.setting:8073␤  in method reify at src/gen/CORE.setting:7006␤  in method reify at src/gen/CORE.setting:6993␤  in method reify at src/gen/CORE.setting:6993␤  i…»
10:05 jnthn Yeah, JVM tests look better now
10:05 * jnthn looks what else fails
10:05 jnthn I've got various passing todo tests...
10:17 stevan_ joined #perl6
10:49 krokite joined #perl6
10:52 * moritz gets failing tests in S06-other/main-usage.t on rakudo/parrot
10:52 moritz ... at least as part of the spectest; seems tow work fine when run separately
10:52 moritz werid
10:52 moritz *weird
10:55 dalek star: a8fdc35 | moritz++ | docs/announce/2013.09.md:
10:55 dalek star: Update release announcement a bit
10:55 dalek star: review: https://github.com/rakudo/star/commit/a8fdc35a35
10:57 FROGGS moritz: I get the same, since weeks
10:57 moritz :(
10:58 FROGGS moritz: and it passes the spectest run sometimes when I decrease TEST_JOBS and when I shut down my virtualbox VMs
10:58 moritz so, a race condition?
10:59 diakopter cross process??
10:59 FROGGS there is another test file that behaves like that, something with args in the filename I think
10:59 FROGGS I believe donaldh said something about run() or shell()
10:59 odoacre joined #perl6
10:59 moritz diakopter: maybe the temp files used by that test module aren't very good
11:00 moritz http://moritz.faui2k3.org/tmp/rakudo-star-2013.09-RC0.tar.gz # Rakudo Star release candidate
11:00 diakopter or wrongly sharing file descriptors, I gues...?
11:00 dalek roast: c3da895 | jnthn++ | S16-filehandles/io.t:
11:00 dalek roast: Be sure to close before trying to unlink.
11:00 dalek roast:
11:00 dalek roast: On Windows, this is required, otherwise the unlink fails.
11:00 dalek roast: review: https://github.com/perl6/roast/commit/c3da895bb2
11:01 moritz my $fnbase = 'getout-';
11:01 moritz $fnbase ~= $*PID // 1_000_000.rand.Int;
11:01 moritz doesn't look too bad
11:03 FROGGS btw, this test file kills my virtualbox VM when I run the test suite with TEST_JOBS=4
11:09 lizmat goo *, #perl6!
11:09 yoleaux 01:23Z <[Coke]> lizmat: you were right, 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
11:09 yoleaux 01:55Z <[Coke]> lizmat: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
11:11 lizmat jnthn: re http://irclog.perlgeek.de/perl6/2013-09-24#i_7624879 : the logic for handling [] and {}'s adverbs is the same, apart for the naming of the methods at_key/at_pos and in the future exists_key/exists_pos and delete_key/delete_pos
11:11 lizmat hence my reasoning to use .can, to create a single code that can handle both, depending on a single switch passed
11:13 lizmat an alternate method would be to pass all three methods as parameters, but that didn't feel very elegant to me, nor very efficient, as e.g. the "delete" case is only needed if ":delete" is specified
11:13 lizmat or spit off the delete case to a seperate set of support subs
11:14 jnthn lizmat: I'm not (yet) objecting to the approach, just saying that .can is fairly high-level and we could use the things it's implemented in terms of directly to be a bit faster.
11:14 lizmat or write a script that would generate both support subs
11:14 lizmat suggestions welcome  :-)
11:15 jnthn (And no, it's not pressing...)
11:15 lizmat ok, I'll leave that for the future then
11:15 * jnthn has a bunch of Win32 fixes for Rakudo JVM spectest coming up :)
11:15 lizmat I guess more pressing would be to actually optimize the sub calls now ?
11:16 * lizmat continues with backlogging
11:21 FROGGS moritz: IIRC it dies telling it can't open or find the file, even when the file exists
11:22 jnthn Well, even more pressing for me is to try and make sure we can have a JVM-based Rakudo * release in October... :)
11:23 dalek roast: 590fb96 | moritz++ | integration/error-reporting.t:
11:23 dalek roast: unfudge error reporting tests for rakudo.jvm
11:23 dalek roast: review: https://github.com/perl6/roast/commit/590fb96b8c
11:28 sqirrel joined #perl6
11:33 dalek roast: f3ec9a8 | moritz++ | S06-other/main-usage.t:
11:33 dalek roast: more rakudo.jvm unfudges
11:33 dalek roast: review: https://github.com/perl6/roast/commit/f3ec9a859d
11:37 dalek nqp: 3898d17 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
11:37 dalek nqp: Normalize $*OS on Windows to be MSWin32.
11:37 dalek nqp:
11:37 dalek nqp: Many things identify Windows in this way at present.
11:37 dalek nqp: review: https://github.com/perl6/nqp/commit/3898d17f0d
11:38 dalek rakudo/nom: 7cede9d | jnthn++ | src/core/IO/Spec.pm:
11:38 dalek rakudo/nom: Pick correct IO::Spec when running on JVM.
11:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7cede9dc32
11:38 dalek rakudo/nom: 74bb712 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
11:38 dalek rakudo/nom: Fix double-container bug with 'as'.
11:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/74bb712530
11:40 lizmat jnthn: re: https://github.com/perl6/nqp/commit/6b4b03434f  , could you point out how an attempt at cloning a null value was made ?
11:41 dalek nqp: a47a76b | jnthn++ | src/QRegex/P6Regex/ (2 files):
11:41 dalek nqp: Parse _ in ** quantifier values.
11:41 dalek nqp:
11:41 dalek nqp: Also sneak in a decent NYI error for the ** {...} case.
11:41 dalek nqp: review: https://github.com/perl6/nqp/commit/a47a76b275
11:41 lizmat I'm wrecking my brains on how that could be the case, and the only way I see currently is a problem in MMD \
11:41 jnthn lizmat: $!descriptor was null
11:41 jnthn lizmat: It wasn't cloning a null value
11:41 jnthn lizmat: It was cloning an object within which an attribute had a null value
11:42 lizmat ah, ok … hmmm
11:42 jnthn lizmat: Which (independent of all else) should not exlode
11:42 jnthn *explode
11:42 lizmat okidoki, you're welcome  :-)
11:42 tadzik jnthn: re 3898d17, I encountered a similar thing when working on socket-inet tests, "linux" vs "Linux"
11:43 tadzik istr donaldh++ fixed it somehow
11:45 jnthn lizmat: The slicing and adverb tests run very nicely on the JVM backend now, anyways. :)
11:45 lizmat cool
11:45 lizmat is there a way to test for warnings being emitted ?
11:45 lizmat r: "abc".ucfirst
11:45 camelia rakudo 7e2d8b: OUTPUT«please change to tc  in block  at /tmp/xTr7G7L3I1:1␤␤»
11:45 FROGGS throws_like?
11:46 lizmat isn't that for fail/die ?
11:46 lizmat r: say "abc".ucfirst
11:46 camelia rakudo 7e2d8b: OUTPUT«please change to tc  in block  at /tmp/NMWiNLhVOW:1␤␤Abc␤»
11:46 FROGGS hmmm
11:46 jnthn r: CONTROL { say $_ }; say "abc".ucfirst
11:46 camelia rakudo 7e2d8b: OUTPUT«please change to tc  in block  at /tmp/pEXofXx602:1␤␤Abc␤»
11:47 jnthn r: CONTROL { say "here" }; say "abc".ucfirst
11:47 camelia rakudo 7e2d8b: OUTPUT«please change to tc  in block  at /tmp/DzxEL247mN:1␤␤Abc␤»
11:47 lizmat NYI ?
11:47 jnthn hm, not like this...
11:47 tadzik r: { CONTROL { say "here" }; say "abc".ucfirst }
11:47 camelia rakudo 7e2d8b: OUTPUT«here␤please change to tc  in block  at /tmp/g2ceyMDF8D:1␤␤Abc␤»
11:47 jnthn ah :)
11:47 jnthn So, that works.
11:47 tadzik here, let me be your blocker
11:48 tadzik r: { CONTROL { default { say "here" } }; say "abc".ucfirst }
11:48 camelia rakudo 7e2d8b: OUTPUT«here␤»
11:48 tadzik now it doesn't even say Abc
11:49 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc')} }; say "abc".ucfirst }
11:49 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤»
11:50 jnthn Doesn't say it 'cus you didn't resume :)
11:50 iSlug joined #perl6
11:51 * lizmat has learned a lot just now
11:53 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); nqp::resume($_) } }; say "abc".ucfirst }
11:53 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤This type does not support associative operations␤  in block  at /tmp/X02DitIpsN:1␤  in block  at /tmp/X02DitIpsN:1␤␤»
11:53 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); nqp::resume($!) } }; say "abc".ucfirst }
11:54 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤This type does not support associative operations␤  in block  at /tmp/8pjaYXKQdC:1␤  in block  at /tmp/8pjaYXKQdC:1␤␤»
11:54 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc') }; nqp::resume($!) }; say "abc".ucfirst }
11:54 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤»
11:54 FROGGS hmmm
11:55 dalek nqp: b591400 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/ProcessHandle.java:
11:55 dalek nqp: nqp::openpipe handling for Windows.
11:55 dalek nqp: review: https://github.com/perl6/nqp/commit/b591400abb
11:55 dalek nqp: 9591fa8 | jnthn++ | t/jvm/02-pipes.t:
11:55 dalek nqp: Make 02-pipes.t Windows-friendly.
11:55 dalek nqp: review: https://github.com/perl6/nqp/commit/9591fa8ad2
11:56 jnthn FROGGS: Call .resume iirc
11:56 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $!.resume } }; say "abc".ucfirst }
11:56 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤No such method 'resume' for invocant of type 'Nil'␤  in block  at /tmp/YEXdWuzcOS:1␤  in block  at /tmp/YEXdWuzcOS:1␤␤»
11:56 tadzik $_?
11:56 FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $_.resume } }; say "abc".ucfirst }
11:56 camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤Abc␤»
11:56 tadzik yay
11:56 FROGGS \o/
11:56 pmurias FROGGS: did you manage to deal with run on parrot?
11:57 FROGGS pmurias: no
11:58 FROGGS pmurias: because I don't see how I can create a linux/windows process where I can pass the args as a list
12:01 dalek nqp: bd3d68a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
12:01 dalek nqp: Fix mkdir on JVM on Windows.
12:01 dalek nqp: review: https://github.com/perl6/nqp/commit/bd3d68ae2b
12:05 census joined #perl6
12:07 dalek roast: cb4fc4e | jnthn++ | S26-documentation/0 (2 files):
12:07 dalek roast: Make a couple of tests cope better with \r's.
12:07 dalek roast: review: https://github.com/perl6/roast/commit/cb4fc4e1c7
12:08 lizmat fwiw, t/spec/S29-os/system.t is still failing for me on OS X
12:08 lizmat ok((run("dir", "t") != BEGIN { run("dir", "t") } ), 'run() is affected by chdir()'); # specifically
12:09 jnthn That one fails for me on Windows too, at least on JVM...
12:09 moritz comparison with != seems a bit fragile
12:10 moritz that just counts files
12:10 dalek rakudo/nom: f87ed39 | jnthn++ | tools/build/NQP_REVISION:
12:10 dalek rakudo/nom: Bump NQP_REVISION for ** parse fix, Win/JVM fixes.
12:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f87ed3987b
12:11 * lizmat runs spectest again
12:14 pernatiy joined #perl6
12:14 lizmat .oO( jnthn is going to love his new i7, SSD and 16G RAM  :-)
12:15 jnthn lizmat: Well, apart from my desktop machine already has that, expect a more-core'd i7 :)
12:15 * lizmat doesn't have a separate desktop machine
12:15 Fatalnix If I had the ultimate choice
12:16 Fatalnix I'd get a 128 thread SPARC
12:16 Fatalnix and build an OS out of Erlang that all it does is complain about the user using it.
12:16 Fatalnix in parallel.
12:16 lizmat I'll guess I'll hold out for a macbook with an 64core A10
12:17 tadzik woot
12:17 arnsholt A friend on Facebook asked if an SSD is worth it yesterday. And everyone went "OMG LIEK SO WORTH IT!" =D
12:17 tadzik yeah, a not-really-techy friend of mine got one recently too. He's amazed
12:18 nwc10 jnthn: your "laptop died" sufficiently badly that it can't be ressurected?
12:18 tadzik my old laptop is living his retirement as a server at home :)
12:19 jnthn nwc10: It's nearly 4 years old. It had a hard disk failure that was non-fatal for the disk, but destroyed enough of its contents that it couldn't boot.
12:20 jnthn nwc10: It appears not to have destroyed *everything* that was on the disk. But...it's hardly something you want to depend on. :)
12:21 nwc10 yeah. So the low budget solution is just to buy the SSD. But you're going to wrap the SSD in a new laptop too?
12:21 jnthn Yeah. There's no need to take the low budget option. :)
12:21 FROGGS joined #perl6
12:22 jnthn I travel plenty to do $dayjob tasks as well as Perl ones. So something lighter and faster is easily justifiable :)
12:22 tadzik but you're polluting mother earth with unnecessary laptops! /o\ :)
12:22 jnthn I think 4 years is longer than many people stick with a laptop :P
12:23 nwc10 mine is 5
12:23 jnthn hm, so why on earth does substr-rw stack overflow on JVM...
12:23 nwc10 but it's rarely used to actually *build* anything
12:23 JimmyZ mine is 6 ,and going to 7
12:24 nwc10 the SSD it now has is probably the most valuable part
12:24 * JimmyZ doesn't have a SSD
12:25 nwc10 actually maxing out the RAM turned out to be a better win
12:25 nwc10 start with that one
12:26 JimmyZ I have a SSHD with 4GB SSD though
12:32 [Coke] jnthn++ java fixes.
12:35 jercos Fatalnix: slap a T1 card in? 23 phone calls at the same time to the user's house, mechanically stating that the incorrect compoile flags were set on the driver.
12:36 jercos ('cause Erlang does nothing so well as telephony, amirite?)
12:36 jercos I do love my 128G SSD for my OS. Shame I can't keep all my games on it though. The ones that do fit run blazingly fast.
12:38 Fatalnix jercos: 24.
12:38 Fatalnix :D
12:38 Fatalnix well, 23 if you have one for data
12:39 Fatalnix jercos: erlang is designed for actor model parallel development
12:39 jercos yeah PRI signalling is best
12:39 Fatalnix so if you have a problem with 500 processes all doing simular or slightly different things Erlang will probably be a good fit.
12:40 Fatalnix if you want to recursively rename all your dirs with regular expressions however in one script, Erlang probably isn't for you :P
12:41 FROGGS hopefully we an do this in lazily in parallel with perl 6 in future
12:41 ajr joined #perl6
12:41 jercos that of course, is best suited for a bash script utilizing sed and awk :p
12:41 FROGGS (lazy because it will rename the you currently want to open)
12:41 Fatalnix well heres the thing FROGGS, with the JVM I think theres a port of the jvm that runs on baremetal x86 hardware isnt there?
12:41 Fatalnix some weird port
12:42 Fatalnix it probably requires some sort of layer between it somehow
12:42 jercos like the thing that was used for JNODE?
12:42 jercos or JNode
12:42 Fatalnix possibly
12:42 jercos or however you're supposed to capitalize it
12:43 Fatalnix oh whatever, them java guys can have all their damn camel case
12:43 Fatalnix I'm not surprised they capitalize their projects weird.
12:43 jercos But Perl is best camel :o
12:43 Fatalnix :P:
12:53 dalek nqp: f97e725 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
12:53 dalek nqp: Provide a non-decont'ing version of istype.
12:53 dalek nqp: review: https://github.com/perl6/nqp/commit/f97e725333
12:54 iSlug joined #perl6
12:56 jnthn [Coke]: Don't suppose you have that list of "tests we pass on Rakudo Parrot but not Rakudo JVM" handy somewhere?
12:57 [Coke] ack -A3 "rakudo.jvm" $(ack -fa t/spec | ack '\.t$')
12:57 pmurias FROGGS: for windows we could steal code from Perl5: https://github.com/mirrors/perl/blob/blead/win32/win32.c#L3739
12:57 jnthn LHF: write a test for https://rt.perl.org/rt3/Ticket/Display.html?id=119513 then we can resolve it :)
12:57 masak a latecomer comment in the "Who moved my cheese?" discussion: http://abstrusegoose.com/507
12:58 FROGGS pmurias++ # good idea
12:58 jnthn [Coke]: I...thought there was a gist :)
12:58 [Coke] jnthn: one sec.
12:58 jnthn [Coke]: Think I finally fixed the substr-rw on JVM at least :)
12:58 FROGGS pmurias: do you have time for it or shall I try?
12:59 [Coke] https://gist.github.com/coke/5879701
12:59 [Coke] jnthn: oooh.
13:00 jnthn r: sub infix:<add> (@a, $n) is equiv(&infix:<X>) { @a <<+>> $n }; say 1 .. 3 add 5;
13:00 camelia rakudo 74bb71: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8OW1RIM_QH�Routine given to equiv does not appear to be an operator�at /tmp/8OW1RIM_QH:1�------> �»
13:00 [Coke] jnthn: I had stopped catalogging the failures since we skipped everything, but the latest copy of that is here:
13:01 [Coke] https://github.com/coke/perl6-roast-data/blob/master/rakudo.jvm_summary.out#L2041
13:02 jnthn [Coke]: Hm, but that has the weird "everything past a certain point fails" issue?
13:02 pmurias FROGGS: I don't have a working windows dev env :/
13:02 * jnthn will be curious to see if that is still the case today
13:02 FROGGS pmurias: k
13:02 [Coke] jnthn: if we were having trouble with :exists, I'm not surprised a ton of stuff failed.
13:02 pmurias FROGGS: and I am working on my nqpjs REPL now ;)
13:03 jnthn [Coke]: All non-trivial slicing/adverbs, in fact.
13:03 jnthn [Coke]: Should be better in the next run.
13:03 [Coke] jnthn: I can kick off another run right now to get a more up to date view, but it may take me a few hours to post it.
13:03 FROGGS pmurias: yeah, I dont want to make you fall behind in the rakudo/js <=> rakudo/moarvm race :P
13:03 [Coke] gotta ->; jnthn++ again.
13:03 jnthn 5879701 is helpful, thanks...
13:04 [Coke] jnthn: ah, good.
13:05 jnthn [Coke]: Another run is great whenever you can.
13:10 dalek roast: 6432283 | jnthn++ | S02-literals/quoting.t:
13:10 dalek roast: Unfudges; q:x and qq:x work on JVM now.
13:10 dalek roast: review: https://github.com/perl6/roast/commit/6432283bb3
13:10 * colomon is trying another smoke run, because nothing (not even a failure message) came from last night's.  :(
13:11 dalek roast: dc06e88 | jnthn++ | S02-literals/quoting.t:
13:11 dalek roast: qx and qqx are fixed too.
13:11 dalek roast: review: https://github.com/perl6/roast/commit/dc06e88edc
13:13 lizmat Q: given sub a { once DEPRECATED( 'alternative', $r ) }, how can I make $r be the code object of 'sub a' ?
13:13 lichtkind joined #perl6
13:14 lizmat jnthn: any idea?
13:14 FROGGS $?ROUTINE ?
13:14 masak &a ?
13:14 FROGGS r: $?ROUTINE
13:14 camelia rakudo 74bb71: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/u9cnctotRPâ�¤Variable '$?ROUTINE' is not declaredâ�¤at /tmp/u9cnctotRP:1â�¤------> [32m$?ROUTINE[33mâ��[31m<EOL>[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
13:15 FROGGS r: sub a { $?ROUTINE }; a()
13:15 camelia rakudo 74bb71: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_n5wiGzIh6â�¤Variable '$?ROUTINE' is not declaredâ�¤at /tmp/_n5wiGzIh6:1â�¤------> [32msub a { $?ROUTINE[33mâ��[31m }; a()[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
13:15 FROGGS r: sub a { &?ROUTINE }; a()
13:15 PacoAir joined #perl6
13:15 camelia rakudo 74bb71: ( no output )
13:15 jnthn &?ROUTINE
13:15 ajr_ joined #perl6
13:15 lizmat cool, thanks!
13:15 lizmat I was trying &?BLOCK, but that is NYI apparently
13:15 masak r: sub a { &?ROUTINE }; say a()
13:15 camelia rakudo 74bb71: OUTPUT«sub a() { ... }␤»
13:15 masak \o/
13:15 FROGGS perl6++
13:18 JimmyZ r: say &?ROUTINE
13:18 camelia rakudo 74bb71: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/WHYbzZ6xzFâ�¤Undeclared name:â�¤    &?ROUTINE used at line 1â�¤â�¤Â»
13:19 masak that's not a routine, silly :)
13:19 tadzik well, MAIN is :)
13:19 masak do you *see* any MAIN there? no? thought so.
13:19 lizmat seems &?ROUTINE is affected by "is hidden_from_backtrace ?
13:19 tadzik read between the lines :)
13:19 tadzik lines() read() lines()
13:20 * masak .oO( ladies and gentlemen, this lack of any routine is perfectly normal and no cause for alarm, panic, or absolute and utter terror )
13:20 jnthn lizmat: Affected in what sense?
13:20 moritz r: say &?ROUTINE
13:20 camelia rakudo 74bb71: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/X7bEo4k0aJâ�¤Undeclared name:â�¤    &?ROUTINE used at line 1â�¤â�¤Â»
13:20 lichtkind lizmat: ping
13:20 masak moritz: two minutes later, still doesn't work :P
13:20 lizmat lichtkind: pong
13:21 dalek nqp: 82ea40f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
13:21 dalek nqp: More OS name canonicalization.
13:21 dalek nqp: review: https://github.com/perl6/nqp/commit/82ea40fe36
13:21 lichtkind lizmat: your a great ping pong player, i currently sontemplating what to submit to erl dev foom at fosdem
13:21 lichtkind lizmat: any wished?
13:21 lichtkind wishes
13:22 dalek rakudo/nom: f390e41 | jnthn++ | / (2 files):
13:22 dalek rakudo/nom: Fix Proxy and thus substr-rw on JVM.
13:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f390e4177e
13:22 dalek rakudo/nom: cc5e06f | jnthn++ | tools/build/NQP_REVISION:
13:22 dalek rakudo/nom: Get OS canon fix.
13:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cc5e06f149
13:22 dalek roast: 8e1c86c | jnthn++ | S02-magicals/config.t:
13:22 dalek roast: Unskip a config.t test for JVM.
13:22 dalek roast: review: https://github.com/perl6/roast/commit/8e1c86cc38
13:23 lizmat jnthn: wrt is hidden_from_backtrace affecting &?ROUTINE: it doesn't
13:23 lizmat but it does affect the underlying object, see: https://gist.github.com/lizmat/6699511
13:23 jnthn lizmat: OK, that's what I'd expect...
13:23 iSlug joined #perl6
13:24 lizmat Ah, it mixed in the role
13:24 lizmat ok, fixable
13:24 jnthn lizmat: The +{anon} is almost certainly from "is DEPRECATED"...
13:24 lizmat is hidden_from_backtrace, there is no is DEPRECATED in this picture yet
13:24 jnthn lizmat: I think there's a mixin_base method you can use to get back to an unmixedinto type
13:24 lizmat indeed
13:24 jnthn oh, yeah, I see it now
13:24 lizmat :-)
13:24 jnthn misread
13:25 lizmat now to have warn skip one more level of the stack
13:26 lizmat hmm…. maybe that's the once block
13:26 jnthn oh yay, my fix for substr-rw seems to have fixed more general .VAR issues on JVM
13:26 lizmat yup, it's the once block
13:27 lizmat I guess we want once blocks to appear in stack traces generally, right ?
13:28 jnthn I'd say so
13:29 lizmat but we currently have no way to hide it
13:29 jnthn Oh?
13:29 lizmat do we?
13:29 moritz hidden_from_backtrace is a Routine trait
13:29 jnthn r: sub foo() { once { die "here"; } }; foo()
13:30 camelia rakudo f87ed3: OUTPUT«here␤  in sub foo at /tmp/0CmsXGhmyy:1␤  in block  at /tmp/0CmsXGhmyy:1␤␤»
13:30 moritz so you can't hide blocks with it
13:30 jnthn ah
13:30 jnthn If we made it handle block then you maybe can do
13:30 jnthn once { also is hidden_from_backtrace; ... }
13:30 moritz does 'also' work?
13:30 lizmat r: once { also is hidden_from_backtrace; ... }
13:31 camelia rakudo f87ed3: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/zQuAli2MTt�Cannot call 'trait_mod:<is>'; none of these signatures match:�:(Mu:U $child, Mu:U $parent)�:(Mu:U $type, :rw(:$rw)!)�:(Mu:U $type, :nativesize(:$nativesize)!)�:(Mu:U $type, :unsigned(:$unsigne…»
13:31 jnthn r: sub foo() { also is hidden_from_backtrace; die "omg" }; foo()
13:31 camelia rakudo f87ed3: OUTPUT«omg␤  in block  at /tmp/7g4cDMjoCc:1␤␤»
13:31 jnthn Looks like :)
13:31 jnthn Was pretty sure it was implemented... :)
13:31 moritz then it might be as simple as changing the signature of the trait
13:32 * lizmat will try that when she's back from some cycling
13:32 moritz (fwiw the backtrace filter filters out blocks more readily than subroutines, so that's why jnthn++'s first example didn't include the once block)
13:32 moritz or maybe it's the static/dynamic chain intersection thingy
13:33 moritz no idea how once-blocks are dynamically scoped
13:35 lowpro30 joined #perl6
13:36 xenoterracide joined #perl6
13:39 dalek roast: f0d78db | jnthn++ | S02-names/ (4 files):
13:39 dalek roast: Lots of unskip for Rakudo JVM thanks to VAR fix.
13:39 dalek roast: review: https://github.com/perl6/roast/commit/f0d78db459
13:42 lowpro30_ joined #perl6
13:42 lizmat cycling&
13:55 lowpro30 joined #perl6
13:57 masak there should be a single word for "this is not another framework".
13:59 dalek nqp: 4280732 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
13:59 dalek nqp: Include class in method not found errors.
13:59 dalek nqp: review: https://github.com/perl6/nqp/commit/4280732480
13:59 dalek rakudo/nom: 3d25fb3 | jnthn++ | / (2 files):
13:59 dalek rakudo/nom: Throw X::Method::NotFound on JVM.
13:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3d25fb33d1
14:05 iSlug joined #perl6
14:05 dalek roast: bf4c89e | jnthn++ | / (2 files):
14:05 dalek roast: X::Method::NotFound unfudges for JVM.
14:05 dalek roast: review: https://github.com/perl6/roast/commit/bf4c89ecde
14:06 lichtkind lizmat: so no preferences?
14:07 btyler joined #perl6
14:07 moritz masak: "this is not another framework" = tinaf :-)
14:07 tadzik then you can say that's someone's initials :)
14:08 tadzik Tina Fey: This is not another framework, ey
14:08 thou joined #perl6
14:08 tadzik I wonder if there's such person
14:08 tadzik "an American actress, comedian, writer and producer"
14:10 colomon she's quite famous here
14:11 jnthn Wasn't she the one who played Sarah Palin on some show?
14:11 colomon yes
14:12 colomon Saturday Night LIght (incredibly famous here)
14:12 lichtkind jnthn: she is
14:12 masak "Light"? "Live"?
14:13 colomon Live, sorry
14:13 moritz in Sovjet Russia, Sarah Palin plays YOU!
14:13 tadzik in Soviet Russia, Violin plays you
14:14 colomon "Fey won the Primetime Emmy Award for Outstanding Guest Actress in a Comedy Series for her impersonation of Palin."
14:14 colomon wait, there's an award for Outstanding Guest Actress in a Comedy Series?!
14:14 daxim Emmys are strange
14:14 moritz if you make the awards specific enough, you can hand out more of them :-)
14:15 moritz colomon: or maye there's a "Primetime Emmy Award", and the rest is the reason she won it?
14:15 colomon moritz: no, the Emmys are like the Academy Awards, but for TV
14:16 colomon there are dozens of Primetime Emmy Awards
14:16 colomon best actor, comedy
14:16 colomon best actor, drama
14:16 colomon best actress, comedy
14:16 colomon etc.
14:16 tadzik best drama, actor
14:16 colomon http://en.wikipedia.org/wiki/Emmy_Award
14:17 moritz tadzik++
14:18 kaare_ joined #perl6
14:18 berekuk joined #perl6
14:21 moritz did anybody test the R* release candidate I posted earlier?
14:23 masak no -- url?
14:23 masak nvm, found it.
14:23 moritz http://moritz.faui2k3.org/tmp/rakudo-star-2013.09-RC0.tar.gz ftr
14:24 masak (btw, when you re-post a reminder, please also re-provide the link. it makes the on-ramp for volunteering/participation that much easier.)
14:24 dalek rakudo/nom: 153daeb | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
14:24 dalek rakudo/nom: Correct Nil handling on JVM.
14:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/153daeb2ec
14:25 dalek roast: 5f763f9 | jnthn++ | S0 (7 files):
14:25 dalek roast: Lots of JVM un-skips/un-todos from today's fixes.
14:25 dalek roast: review: https://github.com/perl6/roast/commit/5f763f9d9b
14:27 [Coke] jnthn++ # on a roll.
14:27 [Coke] at this rate, I will just leave the daily run to kick off, I'm not going to keep up with you. ;)
14:28 [Coke] ->
14:29 * masak builds the R* RC
14:31 * PerlJam too
14:35 ssutch joined #perl6
14:37 dalek roast: 0e6ed92 | jnthn++ | S32- (5 files):
14:37 dalek roast: Another bunch of JVM un-skip/un-todo from today.
14:37 dalek roast: review: https://github.com/perl6/roast/commit/0e6ed92a33
14:38 * TimToady wonders what the percentage is now...
14:39 jnthn Dunno :)
14:39 TimToady jnthn++ # surpassed the roll, now on a tear...
14:40 ajr joined #perl6
14:40 jnthn r: say'ö'.encode('UTF-8')[0]
14:40 camelia rakudo 3d25fb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/v_SrigjQNbâ�¤Two terms in a rowâ�¤at /tmp/v_SrigjQNb:1â�¤------> [32msay'ö[33mâ��[31m'.encode('UTF-8')[0][0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤        infix or…»
14:40 jnthn r: say 'ö'.encode('UTF-8')[0]
14:41 camelia rakudo 3d25fb: OUTPUT«195␤»
14:41 jnthn hm, gets the uint8 right there...
14:41 denis_boyun joined #perl6
14:42 jnthn Oh...
14:42 odoacre joined #perl6
14:42 jnthn I didn't implement the unsigned int arrays at all on JVM yet. No wonder.
14:42 GlitchMr Preceding context expects a term, but found infix , instead
14:42 GlitchMr , is not an infix?
14:42 masak yes.
14:42 masak that's why it's not a term.
14:42 GlitchMr rn: 1,,2
14:43 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Preceding context expects a term, but found infix , instead at /tmp/b0Rl43xlg0 line 1:�------> [32m1,[33m�[31m,2[0m��Parse failed��»
14:43 camelia ..rakudo 3d25fb: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/8P4tGt7ozB�Preceding context expects a term, but found infix , instead�at /tmp/8P4tGt7ozB:1�------> [32m1,,[33m�[31m2[0m�»
14:43 GlitchMr oh, ok
14:43 TimToady you may omit the final argument, not the middle ones
14:43 GlitchMr I just misread error message.
14:43 masak yes.
14:47 TimToady .u 2062
14:47 yoleaux U+2062 INVISIBLE TIMES [Cf] (<control>)
14:47 TimToady yow
14:48 jnthn I never saw that codepoint before... :P
14:50 nwc10 strangely, LOLCODE doesn't allow it yet
14:52 TimToady nr: sub infix:<⁢> ($x,$y) { $x * $y }; say 2⁢pi;
14:52 camelia niecza v24-95-ga6d4c5f: OUTPUT«6.2831853071795862␤»
14:52 camelia ..rakudo 3d25fb: OUTPUT«6.28318530717959␤»
14:52 TimToady yowsers
14:52 jnthn std: sub infix:<⁢> ($x,$y) { $x * $y }; say 2⁢pi;
14:52 camelia std 7c17586: OUTPUT«ok 00:00 46m␤»
14:53 GlitchMr INVISIBLE TIMES? Seriously?
14:53 jnthn I...thought we complained about a null operator not being allowed for those... :)
14:53 jnthn oh wait...
14:53 jnthn .u <⁢>
14:53 yoleaux U+003C LESS-THAN SIGN [Sm] (<)
14:53 yoleaux U+003E GREATER-THAN SIGN [Sm] (>)
14:53 yoleaux U+2062 INVISIBLE TIMES [Cf] (<control>)
14:53 jnthn hah!
14:53 jnthn (it quite literally *is* invisible in my client :))
14:54 TimToady and in the ir clogs
14:54 GlitchMr But I guess it will be bad idea to use it. I mean, it's invisible.
14:54 TimToady who would ever know?
14:54 GlitchMr Esoteric language made entirely of Unicode invisible characters would be interesting.
14:55 GlitchMr And I mean, really invisible, not spaces (like in Whitespace).
14:56 TimToady well, U+2061 is also apparently invisible
14:56 TimToady .u 2061
14:56 yoleaux U+2061 FUNCTION APPLICATION [Cf] (<control>)
14:57 GlitchMr .u 2063
14:57 yoleaux U+2063 INVISIBLE SEPARATOR [Cf] (<control>)
14:57 GlitchMr .u 2064
14:57 yoleaux U+2064 INVISIBLE PLUS [Cf] (<control>)
14:57 GlitchMr .u 2065
14:57 yoleaux No characters found
14:58 GlitchMr I was hoping for more.
14:58 GlitchMr But seriously, invisible plus. Hm, actually that makes sense, if you use AWK.
14:58 TimToady what we need is a COMBINING MAKE INVISBLE character :)
14:58 nwc10 you have enough. map INVISIBLE TIMES, PLUS and SEPARATOR to Ook!
14:58 nwc10 someone should implement that atop NQP :-)
14:59 ajr_ joined #perl6
14:59 dalek nqp: 645b0c3 | jnthn++ | src/vm/parrot/6model/storage_spec.h:
14:59 dalek nqp: Fix typo.
14:59 dalek nqp: review: https://github.com/perl6/nqp/commit/645b0c3ea8
14:59 dalek nqp: 37c6d7f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/StorageSpec.java:
14:59 dalek nqp: Add is_unsigned slot to JVM StorageSpec.
14:59 dalek nqp: review: https://github.com/perl6/nqp/commit/37c6d7f24f
15:00 TimToady .u 󠁯󠁟󠁫
15:00 yoleaux U+E005F TAG LOW LINE [Cf] (<control>)
15:00 yoleaux U+E006B TAG LATIN SMALL LETTER K [Cf] (<control>)
15:00 yoleaux U+E006F TAG LATIN SMALL LETTER O [Cf] (<control>)
15:00 TimToady oops, typo
15:00 GlitchMr Why so many esoteric programming languages limit themselves to ASCII.
15:01 GlitchMr World would be better with Unicode.
15:01 TimToady or should I say ooks?
15:01 GlitchMr I could find just one esoteric language which uses Unicode - http://esolangs.org/wiki/Sclipting
15:02 GlitchMr Also, one which supports Unicode in identifiers.
15:02 GlitchMr that supports*
15:03 GlitchMr 丟낆녬닆묬긅덯댦롤긐
15:04 gtodd1 :)
15:05 masak one hanzi and 9 hangul chars? how random. :)
15:05 gtodd1 a totally iconic programming language would be neat :)
15:06 masak also, it's probably never been done, ever.
15:06 masak I bet we totally won't realize the flexibility and freedom of text along the way.
15:06 TimToady nr: say "Yikes, invisible ASCII!".ords.map(* - 64 + 0xE0000).chrs
15:06 gtodd1 maybe with little animated gifs of human hands  for doing hard stuff :-)
15:06 camelia rakudo 3d25fb, niecza v24-95-ga6d4c5f: OUTPUT«󠀙󠀩󠀫󠀥󠀳󟿬󟿠󠀩󠀮󠀶󠀩󠀳󠀩󠀢󠀬󠀥󟿠󠀁󠀓󠀃󠀉󠀉󟿡␤»
15:07 GlitchMr Actually, 丟 is instruction, and 낆녬닆묬긅덯댦롤긐 is data.
15:07 GlitchMr .u 󟿬
15:07 yoleaux No characters found
15:07 GlitchMr Invisible?
15:07 GlitchMr I see it as a placeholder.
15:07 TimToady nr: say "�����������������������".ords.map(* - 0xE0000 + 64).chrs
15:07 camelia niecza v24-95-ga6d4c5f: OUTPUT«=======================␤»
15:07 camelia ..rakudo 3d25fb: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method chr at src/gen/CORE.setting:4145␤  in method dispatch:<hyper> at src/gen/CORE.setting:1159␤  in method chrs at src/gen/CORE.setting:6723␤  in block  at /tmp/gRiR2V9Eji:1␤␤»
15:07 TimToady hah
15:08 TimToady .u tag
15:08 yoleaux U+1700 TAGALOG LETTER A [Lo] (ᜀ)
15:08 yoleaux U+1701 TAGALOG LETTER I [Lo] (ᜁ)
15:08 yoleaux U+1702 TAGALOG LETTER U [Lo] (ᜂ)
15:08 TimToady .u E0001
15:08 yoleaux U+E0001 LANGUAGE TAG [Cf] (<control>)
15:08 GlitchMr I'm suspicious about these letters.
15:08 GlitchMr I bet they can be used for IDN spoofing.
15:08 TimToady oh, wrong offset
15:09 TimToady nr: say "�����������������������".ords.map(* + 0xE0000).chrs
15:09 camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽␤»
15:09 TimToady nr: say "Yike, invisible ASCII!".ords.map(* + 0xE0000).chrs
15:09 camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«󠁙󠁩󠁫󠁥󠀬󠀠󠁩󠁮󠁶󠁩󠁳󠁩󠁢󠁬󠁥󠀠󠁁󠁓󠁃󠁉󠁉󠀡␤»
15:10 TimToady nr: say "����������������������".ords.map(* - 0xE0000).chrs
15:10 camelia rakudo 153dae: OUTPUT«Invalid character for UTF-8 encoding␤␤  in method chr at src/gen/CORE.setting:4145␤  in method dispatch:<hyper> at src/gen/CORE.setting:1159␤  in method chrs at src/gen/CORE.setting:6723␤  in block  at /tmp/nsEaUcINye:1␤␤»
15:10 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«����������������������␤»
15:10 TimToady well, I guess it's pasting the replacement character
15:11 TimToady yes
15:11 GlitchMr nr: þ³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæęœśæðśŋ≤³¢µ’€µþc6t³¢ęð≥³≠²ęðwfc
15:11 camelia rakudo 153dae: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Ix2O8WoGMeâ�¤Two terms in a rowâ�¤at /tmp/Ix2O8WoGMe:1â�¤------> [32mþ[33mâ��[31m³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæâ€�óæąę→ęœ–³→œæę[0mâ�¤    expecting any of:â�¤        argument listâ�¤        postfixâ�¤        infix stopperâ�¤â€¦Â»
15:11 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Confused at /tmp/sKQBrmabTZ line 1:â�¤------> [32mþ[33mâ��[31m³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæâ€�óæąę→ęœ–³→œæę[0mâ�¤â�¤Undeclared routine:â�¤  'þ' used at line 1â�¤â�¤Parse failedâ�¤â�¤â€¦Â»
15:11 ajr_ joined #perl6
15:11 GlitchMr Two terms in row? Where?
15:11 TimToady right where it points to
15:12 GlitchMr I see one term, and the character that isn't defined.
15:12 TimToady nr: say '³' ~~ /\w/
15:12 GlitchMr (because I assume ³ means nothing in Perl 6)
15:12 camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«Nil␤»
15:13 GlitchMr Nothing, as in, syntax error, not whitespace.
15:13 TimToady it's not clear why rakudo thinks ³ is the start of another term; niecza++ is being more honest here
15:14 TimToady nr: ³
15:14 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Bogus statement at /tmp/VlBqdWXG8i line 1:�------> [32m<BOL>[33m�[31m³[0m��Parse failed��»
15:14 camelia ..rakudo 153dae: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ILMKEZ2KONâ�¤Bogus statementâ�¤at /tmp/ILMKEZ2KON:1â�¤------> [32m<BOL>[33mâ��[31m³[0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or termâ�¤        prefix or meta-prefixâ�¤Â»
15:14 PerlJam Maybe the LTM is slightly broken.
15:14 TimToady I think it's just a spot where it never converged on STD quite
15:15 TimToady there's no LT to LTM there
15:16 * TimToady is a little surprised niecza doesn't say: WTF at line 1  :)
15:16 TimToady but I guess we want Perl 6 to be 7-year-old safe
15:17 TimToady not that there's many 7-year-old English speakers on the planet that don't already know what WTF means...
15:17 PerlJam where's  the fudge?
15:19 PerlJam I have two 7-year-olds at home.  I wonder what they would say if I asked them what WTF meant?
15:19 colomon why the face?
15:19 jercos WTF does that mean?
15:20 TimToady so it's actually making Perl 6 safe for the *parents* of 7-year-olds :)
15:24 alester joined #perl6
15:29 masak r: say $!
15:29 camelia rakudo 153dae: OUTPUT«Nil␤»
15:29 skids joined #perl6
15:29 masak r: run 'echo "OH HAI"'; say $!
15:29 camelia rakudo 153dae: OUTPUT«run is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:2␤  in sub run at src/RESTRICTED.setting:8␤  in block  at /tmp/BIW0K5MmL_:1␤␤»
15:29 masak $ perl6 -e 'run "echo OH HAI"; say $!'
15:29 masak Nil
15:30 masak I'd expect either some output or an error/exception in $!
15:30 masak what did I miss?
15:31 masak (I know &run expects its arguments as single words, to be quoted by the shell)
15:32 jnthn What does the call to run evaluate to?
15:32 FROGGS maybe try $@ :P
15:33 masak $ perl6 -e 'say run "echo OH HAI"'
15:33 masak 255
15:34 TimToady you'll note it's 255 but False
15:34 * TimToady doesn't think returning 'but False' is very unsmelly
15:35 * masak doesn't disagree
15:36 TimToady the original apocalyptic notion was that it return only a boolean, and you had to visit $! for the result if false
15:36 TimToady not sure when it mutated to the 'but False' notion, or why that prevented $! from getting set
15:39 masak oh, I thought 'but False' was apocalyptic. maybe I misremember.
15:39 * TimToady could also be misremembering
15:39 TimToady certainly the unification of $! was apocalyptic
15:42 masak aye.
15:43 TimToady 'but' is old, but not the application of it to run/shell, iirc
15:47 masak hm, does &run still ignore $*CWD in Rakudo HEAD? it does in my built version.
15:47 * masak uses &shell for the time being
15:48 bluescreen10 joined #perl6
15:54 [particle] joined #perl6
15:55 masak TimToady: A12 mentions '0 but true'. but it doesn't do so in a &shell or &run setting.
15:55 vk joined #perl6
15:55 masak (or &system, as we probably thought of it back then)
15:55 masak besides that, I can't find any references to 'but False' or 'but True' in the apocalypses.
15:56 masak Damian has 5 'but true' in his E04.
15:56 masak but also unrelated to shell games.
15:58 timotimo masak: it HEAD, rakudo shouldn't ignore $*CWD on parrot
15:59 timotimo it does an explicit nqp::chdir right before doing the run; i'm pretty sure the cwd emulation is only in rakudo, so that chdir should work
16:01 TimToady A06 thinks system() exists as &*system, since we hadn't invented the setting yet
16:03 masak timotimo: ok, I might update and rebuild, then. thanks.
16:04 masak moritz: all tests and spectests passed in Rakudo R* RC0.
16:04 masak moritz: any other tests to run -- something module-related, perhaps?
16:04 pmichaud good morning, #perl6
16:06 timotimo greetings pm!
16:06 * TimToady wonders when we'll get Rakudo Jar
16:06 TimToady pmichaud: o/
16:06 timotimo rakudo czar?
16:07 jnthn o/ pmichaud
16:07 dalek nqp: 9561e47 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (3 files):
16:07 dalek nqp: Have P6int on JVM handle unsigned in compose.
16:07 dalek nqp: review: https://github.com/perl6/nqp/commit/9561e47e33
16:07 dalek nqp: f3ce73e | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files):
16:07 dalek nqp: Unsigned native int array support for JVM.
16:07 dalek nqp:
16:07 dalek nqp: Means we can get buf8, utf8, buf16, utf16 types behaving on JVM.
16:07 dalek nqp: review: https://github.com/perl6/nqp/commit/f3ce73e3db
16:08 PerlJam pmichaud: hey!  o/
16:09 arnsholt Ooooh, unsigneds!
16:09 moritz masak: make modules-test
16:10 TimToady timotimo: rakudo czar would have to be a port to МК-61/52 or so
16:11 dalek rakudo/nom: d50a0fc | jnthn++ | tools/build/NQP_REVISION:
16:11 dalek rakudo/nom: Bump NQP_REVISION for unsinged int bufs on JVM.
16:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d50a0fca57
16:11 dalek roast: 55dc1ad | jnthn++ | S32-str/encode.t:
16:11 dalek roast: .encode unfudges for JVM.
16:11 dalek roast: review: https://github.com/perl6/roast/commit/55dc1ad13f
16:11 jnthn arnsholt: Just the bits I needed for Buf for now :)
16:12 TimToady Rakudo JarJar
16:12 TimToady a port of Rakudo Starwars
16:12 * pmichaud binks TimToady++ on the head.
16:12 * TimToady shakes his head floppily
16:13 timotimo rakudo jarjar is the one nobody wants
16:13 timotimo so probably runs on cobol or something
16:13 TimToady it's the one everyone *wishes* was pining for the fjords
16:14 TimToady and of course, Rakudo Tar is the port to run on Bourne Shell plus standard Unix commands
16:14 timotimo that would be amazing
16:15 masak moritz: well, first off, that fails without doing 'make install' first :)
16:15 moritz masak: that's known, and I won't change it for this release :-)
16:16 masak *nod*
16:17 moritz if rakudo doesn't speed up, it'll be know as Rakudo TarPit :-)
16:17 TimToady it already speeds up on the JVM :P
16:18 TimToady I saw it on a graph, so it must be true!
16:19 moritz was the graph on the internet? :-)
16:19 TimToady Rakudo Car is the port to Lisp, obviously...
16:19 moritz and Rakudo Cdr its evil twin
16:19 TimToady the port to JS should maybe be Rakudo Var
16:20 * masak .oO( put your cdrma in your carma )
16:20 timotimo car is lisp, cdr is scheme? perhaps?
16:20 dalek nqp: 76820d4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
16:20 dalek nqp: Fix readfh for Buf[uint8].
16:20 dalek nqp: review: https://github.com/perl6/nqp/commit/76820d4a0e
16:20 * masak runs modules-test
16:21 TimToady what language is WoW programmed in?
16:21 arnsholt Mostly C++, I assume, with Lua for scripting
16:21 TimToady Rakudo War for them, I guess
16:22 TimToady Rakudo Par for the golfers...
16:23 * TimToady stops perseverating, for the moment
16:23 ajr joined #perl6
16:25 ajr_ joined #perl6
16:25 timotimo i'm personally excited for rakudotnet
16:27 masak the jsonrpc module gives the Mu.bless warning.
16:27 masak overall, all tests are successful in the modules-test so far, but quite a lot of warnings, not just that one.
16:28 TimToady .oO(Rakudo Sharp)
16:28 masak yep, all tests successful.
16:28 timotimo Raku.js
16:28 masak that concludes my RC0 testing, I believe.
16:28 TimToady .u sharp
16:28 yoleaux U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
16:28 yoleaux U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ)
16:28 yoleaux U+266F MUSIC SHARP SIGN [Sm] (♯)
16:28 moritz masak: bbkr_ has promised to update jsonrpc today-ish
16:29 ajr_ joined #perl6
16:29 moritz masak: so I'll wait until that's done, update the submodule, and release away
16:29 moritz masak: thanks for testing
16:30 timotimo also, RakuDOS
16:30 bbkr_ hi. 2013.09 is building right now, JSON::RPC fix and tests will follow
16:30 * TimToady notes that googling for C♯ is largly a feyl
16:30 TimToady *gely
16:31 TimToady so we should make them call C# "C octothorpe" or some such
16:33 GlitchMr https://duckduckgo.com/?q=C%E2%99%AF
16:33 GlitchMr It's not just Google.
16:34 GlitchMr At least it linked to C♯ (musical note).
16:35 GlitchMr Still, the language is called C#, not C♯, even when it's pronounced see sharp.
16:36 mtk joined #perl6
16:37 Rix joined #perl6
16:38 mtk joined #perl6
16:39 kaleem joined #perl6
16:41 timotimo i pronounce it "clattenzaun"
16:41 mtk joined #perl6
16:42 ajr_ joined #perl6
16:42 ajr_ C# should be pronounced "C hash"
16:43 jnthn bah, now I want to start a .net open source project called Smoke# :P
16:45 mtk joined #perl6
16:49 mtk joined #perl6
16:53 dalek nqp: ced8450 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
16:53 dalek nqp: Fix writefh on JVM to not emit trailing nullbytes.
16:53 dalek nqp: review: https://github.com/perl6/nqp/commit/ced845027f
16:55 FROGGS I always wanted to name something FOAM (something SOAPy)
16:57 mtk joined #perl6
16:57 TimToady .u #井⌗⧣#𐄹♯
16:57 yoleaux U+0023 NUMBER SIGN [Po] (#)
16:57 yoleaux U+2317 VIEWDATA SQUARE [So] (⌗)
16:57 yoleaux U+266F MUSIC SHARP SIGN [Sm] (♯)
16:58 TimToady wow, my firefox knows aegean
17:04 TimToady tell you what, if you can get the Unicode Consortium to add a $*OS symbol, we can leave it in Perl 6...
17:04 FROGGS *g*
17:05 jnthn std: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) }
17:05 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0m�Unable to parse argument list at /tmp/aSmZ0W8nv6 line 1:�------> [32mmulti method a( %t, *@l ) { foo[33m�[31m( -> $v { %t{$v} }, *@l ) }[0m�Couldn't find final ')'; gave up at /tmp/aSmZ0W8nv6 line 1:�------> [32m a( %t, *@l ) {…»
17:05 jnthn r: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) }
17:05 camelia rakudo 153dae: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/b1vYdREClPâ�¤Unable to parse expression in argument list; couldn't find final ')'â�¤at /tmp/b1vYdREClP:1â�¤------> [32m a( %t, *@l ) { foo( -> $v { %t{$v} }, *[33mâ��[31m@l ) }[0mâ�¤    expecting any of:â�¤     …»
17:05 jnthn Rakudo seems to place the highwater mark better than STD here, somehow :)
17:06 TimToady huh
17:06 TimToady std: *@_
17:06 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a row at /tmp/d7j_zlx6Kb line 1:â�¤------> [32m*[33mâ��[31m@_[0mâ�¤    expecting any of:â�¤ POSTâ�¤   feed_separatorâ�¤ infix or meta-infixâ�¤    infixed functionâ�¤       postcircumfixâ�¤  postfixâ�¤        postfix_prefix_meta_operatorâ�¤   postopâ�¤
17:06 camelia ..statemen…»
17:06 jnthn (the problem being the *, when a | was most likely meant)
17:07 TimToady std: (*@_)
17:07 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Two terms in a row at /tmp/zoiQBHqgLp line 1:â�¤------> [32m(*[33mâ��[31m@_)[0mâ�¤    expecting any of:â�¤       POSTâ�¤   infix or meta-infixâ�¤    infixed functionâ�¤       postcircumfixâ�¤  postfixâ�¤        postfix_prefix_meta_operatorâ�¤   postopâ�¤ statement
17:07 camelia ..modifier loo…»
17:07 TimToady std: sin(*@_)
17:07 camelia std 7c17586: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Unable to parse argument list at /tmp/M2cmibmwEW line 1:â�¤------> [32msin[33mâ��[31m(*@_)[0mâ�¤Couldn't find final ')'; gave up at /tmp/M2cmibmwEW line 1:â�¤------> [32msin(*[33mâ��[31m@_)[0mâ�¤    expecting any of:â�¤        POSTâ�¤   infix or met…»
17:07 * jnthn is looking at 119133 and thinking Rakudo did a decent job of pointing out where the problem was... :)
17:08 jnthn RT#119133 that is
17:08 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=119133
17:10 TimToady n: sin(*@_)
17:10 camelia niecza v24-95-ga6d4c5f: OUTPUT«[31m===[0mSORRY![31m===[0m��Unable to parse argument list at /tmp/ErmiFAZ0XD line 1:�------> [32msin([33m�[31m*@_)[0m�Couldn't find final ')'; gave up at /tmp/ErmiFAZ0XD line 1:�------> [32msin(*[33m�[31m@_)[0m��Parse failed��…»
17:13 bbkr_ moritz: JSON::RPC is now fixed and passes all tests
17:13 masak jnthn: agree.
17:14 dalek rakudo/nom: 6336d4d | jnthn++ | src/core/IO.pm:
17:14 dalek rakudo/nom: Fix double-open/close issues.
17:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6336d4d2d5
17:14 dalek rakudo/nom: ded7250 | jnthn++ | tools/build/NQP_REVISION:
17:14 dalek rakudo/nom: Bump to get various binary IO fixes.
17:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ded7250a77
17:14 masak jnthn: in fact, the RT ticket is a bit unclear about what's wrong. the biggest clue is in the ticket title.
17:14 dalek roast: e9256d1 | jnthn++ | S32-io/s (2 files):
17:14 dalek roast: Some binary IO unfudges for JVM.
17:14 dalek roast: review: https://github.com/perl6/roast/commit/e9256d1f6e
17:15 masak jnthn: but even that is misleading, as the parse error happens in the argument list, not in the method signature.
17:15 SamuraiJack joined #perl6
17:17 jnthn masak: The error clearly says argument list, I think it's a case of being tired and not reading the error carefully.
17:17 jnthn Which is all fine and stuff, but not worthy of an RT ticket. :)
17:18 jnthn Anyway, ticket rejected.
17:19 jnthn Down to 60 #?rakudo.jvm markers in the test suite
17:19 jnthn r: 42.fmt('%+d')
17:19 camelia rakudo 153dae: ( no output )
17:19 jnthn r: say 42.fmt('%+d')
17:19 camelia rakudo 153dae: OUTPUT«+42␤»
17:20 jnthn hm, that seems to work on JVM too...why da fudge...
17:22 zakharyas joined #perl6
17:23 FROGGS maybe forgot to unfudge after fixing it...
17:23 jnthn yeah
17:23 FROGGS should work this way for a while now
17:23 jnthn There is a genuine sprintf issue though
17:23 FROGGS ohh
17:23 jnthn advent2009-day16.t's fudges
17:24 jnthn If anybody who knows the sprintf stuff well wants to look
17:24 FROGGS is that about Hash.fmt?
17:24 * FROGGS looks
17:24 dalek roast: 2f243cc | jnthn++ | integration/advent2009-day02.t:
17:24 dalek roast: Unskip a sprintf test JVM now passes.
17:24 dalek roast: review: https://github.com/perl6/roast/commit/2f243cc9ae
17:24 jnthn FROGGS++
17:26 hoelzro is R* going out today?
17:27 dalek roast: 2511217 | jnthn++ | S02-magicals/env.t:
17:27 dalek roast: Unfudge a now-passing %*ENV test.
17:27 dalek roast: review: https://github.com/perl6/roast/commit/2511217e39
17:27 TimToady .oO(R⽸)
17:30 jnthn r: constant grtz = 42; grtz = 23
17:30 camelia rakudo d50a0f: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/SW8hQyGbSi:1␤␤»
17:30 TimToady r: constant grtz = 42; my \grtz = 23;
17:30 camelia rakudo d50a0f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/O0Uc8u15C7â�¤Redeclaration of symbol grtzâ�¤at /tmp/O0Uc8u15C7:1â�¤------> [32mconstant grtz = 42; my \grtz = 23[33mâ��[31m;[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
17:31 jnthn r: 42 = 23
17:31 camelia rakudo d50a0f: OUTPUT«Cannot modify an immutable value␤  in block  at /tmp/2j5S0JmzIG:1␤␤»
17:31 * jnthn wonders why that comes out with null pointer exception on JVM...
17:32 jnthn oh, duh...
17:35 dalek rakudo/nom: 1e238c8 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
17:35 dalek rakudo/nom: Fix thinko in error reporting.
17:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1e238c89f4
17:37 sqirrel joined #perl6
17:38 dalek roast: edbad65 | jnthn++ | S (2 files):
17:38 dalek roast: Unfudge ro-assignment error tests for JVM.
17:38 dalek roast: review: https://github.com/perl6/roast/commit/edbad65805
17:40 [Coke] chrome
17:40 [Coke] ww.
17:40 jnthn fail
17:41 jnthn [Coke]: Down to 52 JVM-specific skip/todo spread over 36 files.
17:41 [Coke] jnthn++ jnthn++
17:42 timotimo from how much?
17:42 [Coke] timotimo: that many: https://gist.github.com/coke/5879701
17:42 TimToady building Moose and nqp/jvm at the same time will peg a 2-core machine...
17:42 timotimo that's really not bad!
17:43 [Coke] 141 earlier today.
17:43 [Coke] timotimo: plus the several thousand test failures.
17:43 timotimo jnthn always does amazing things
17:44 [Coke] I've been glancing at some of these for weeks and wasn't sure where to dig in. :)
17:44 TimToady even when he's doing nothing, he does it amazingly well...
17:44 dalek roast: d7042ed | jnthn++ | S32-exceptions/misc.t:
17:44 dalek roast: Another un-skip from an earlier fix.
17:44 dalek roast: review: https://github.com/perl6/roast/commit/d7042ede5e
17:44 jnthn There's -1 off both of thsoe numbers :)
17:45 jnthn A handful of these, I don't think we're going to really fix until we move from Java strings to NFG.
17:46 TimToady yeah, jvm is gonna thing 𐄹 is two characters
17:46 * diakopter .oO( surely there's something to parse to nfc already ... )
17:46 diakopter oh good, Normalizer
17:46 [Coke] java run just started, with an hour old roast.
17:47 jnthn ooh, I should probably eat something...
17:47 timotimo breakfast? :)
17:47 * diakopter too
17:47 * [Coke] vanishes in a puff of logic.
17:47 FROGGS rakudo-jvm$ ./perl6 -e 'sprintf "%3.6371897073027277s", "A"'
17:47 FROGGS java.lang.StringIndexOutOfBoundsException: String index out of range: -443201331
17:48 timotimo [Coke]: it's cool to begin the run before everything new is in there
17:48 timotimo because the day after that you get another bump "for free" ;)
17:48 FROGGS rakudo-jvm$ ./perl6 -e 'say sprintf "%3.6371897073s", "A"'
17:48 FROGGS A
17:52 jnthn shop &
17:53 TimToady $ ./perl6 -e 'say "𐄹".chars'
17:53 TimToady 2
17:54 TimToady nr: say "𐄹".chars
17:54 FROGGS it should output: "2"
17:54 camelia rakudo d50a0f: OUTPUT«1␤»
17:54 camelia ..niecza v24-95-ga6d4c5f: OUTPUT«2␤»
17:54 TimToady 1 is correct :)
17:54 FROGGS I know :o)
17:54 TimToady lovely word, "should"
17:55 TimToady nr: say "2" but 1;
17:55 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤»
17:56 TimToady nr: say +("2" but 1);
17:56 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤»
17:56 TimToady eh?
17:56 TimToady nr: say +("2" but True);
17:56 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤»
17:57 TimToady nr: say + ?("2" but True);
17:57 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
17:57 TimToady nr: say +?("2" but True);
17:57 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
17:59 odoacre joined #perl6
18:04 dalek star: 99d66b0 | moritz++ | modules/jsonrpc:
18:04 dalek star: Update module jsonrpc, bbkr++
18:04 dalek star: review: https://github.com/rakudo/star/commit/99d66b0626
18:06 arnsholt So, um, I decided to start writing a Python compiler in NQP (it seemed like a good idea at the time)
18:06 arnsholt But I've run into some weirdness in the grammar. Anyone feel like contributing a pair of eyes?
18:06 diakopter ok.. :)
18:06 jnthn nr: say ("2" but 1).Int
18:07 camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
18:07 jnthn TimToady: .Numeric is defiend directly on Str, I guess.
18:08 geekosaur .oO { Numeric is de fiend }
18:12 lizmat lichtkind: anything Perl related, with Perl 6 for bonus points ?
18:12 raiph joined #perl6
18:14 diakopter r: say ("2" but Positional).list.WHAT
18:14 camelia rakudo d50a0f: OUTPUT«(List)␤»
18:15 diakopter r: say ("2" but Positional).WHAT
18:15 camelia rakudo d50a0f: OUTPUT«(Str+{})␤»
18:15 perigrin Playful but Professional
18:20 _ilbot joined #perl6
18:20 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:20 lichtkind lizmat: i submitted perl 6 roles (with moose part) for main track, because i think its interesting enough for all
18:21 lichtkind lizmat: but i can repeat it in dev room as well
18:21 raiph arnsholt: link?
18:21 lizmat that would be cool, especially should your talk for the main room not be accepted
18:21 arnsholt raiph: https://github.com/arnsholt/nqpy
18:23 pmurias a python-on-QAST seems great
18:23 pmurias the python libraries should be more vm independent then the p5 ones as python seems to have more implementations
18:24 _ilbot joined #perl6
18:24 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:25 dalek nqp: 61f2f50 | (Tobias Leich)++ | src/HLL/sprintf.nqp:
18:25 dalek nqp: only substr to precision when needed
18:25 dalek nqp: review: https://github.com/perl6/nqp/commit/61f2f50e3f
18:25 pmurias arnsholt: so much for my uninformed optimism :/
18:27 pmurias arnsholt: re weirdness in the grammar? anything I should look at?
18:27 dalek rakudo/nom: f0b3edb | (Tobias Leich)++ | tools/build/NQP_REVISION:
18:27 dalek rakudo/nom: bump nqp revision
18:27 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f0b3edb438
18:27 arnsholt pmurias: try "if 1:\n\tnqp::say(1)" in a file
18:27 arnsholt For some reason it doesn't parse the if correctly
18:28 arnsholt With --rxtrace it seems like it insists on the <EXPR> for the conditional to read a term:sym<identifier>, which is weird
18:28 dalek roast: 0b22d96 | (Tobias Leich)++ | integration/advent2009-day16.t:
18:28 dalek roast: unfudge for rakudo.jvm
18:28 dalek roast: review: https://github.com/perl6/roast/commit/0b22d967b5
18:29 arnsholt Which is odd, since something like "nqp::say(1)" works fine
18:31 pmurias arnsholt: the Makefile is broken
18:32 TimToady how many of them count on a GIL?
18:32 TimToady (pylibs)
18:35 pmurias arnsholt: as I get a dependencies error after changing the grammar file
18:36 arnsholt pmurias: Oh, right. You need to make clean nqpy
18:37 nwc10 TimToady: I wonder if that question is going to be answered soon by other people, if PyPy's STM works out
18:37 _ilbot joined #perl6
18:37 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:38 _ilbot joined #perl6
18:38 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:,  niecza:, std:, or /msg camelia perl6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
18:39 arnsholt TimToady: No idea. Would be fun to know =)
18:39 Rotwang joined #perl6
18:43 pmurias arnsholt: I managed to fix the Makefile ;)
18:44 pmurias arnsholt: could I please have a commit bit to commit my fix?
18:51 arnsholt Sure. You're pmurias on GitHub too, right?
18:52 pmurias yes
18:53 arnsholt Commitbitted.
18:56 dmol joined #perl6
19:10 raiph arnsholt: http://irclog.perlgeek.de/perl6/2013-01-07#i_6306701 # might be easier ;)
19:13 arnsholt Hip hip Array?
19:13 * arnsholt doesn't get it
19:13 FROGGS make an nqp::debugger and step through your problems :o)
19:14 * pmurias found the first problem in the grammar
19:15 arnsholt Super!
19:15 arnsholt Was it something silly? =)
19:15 perigrin improper noun declension at line 63
19:15 pmurias "Whitespace is ignored within square brackets"
19:16 pmurias in the synopsis spec for <[...]>
19:17 arnsholt Oh.
19:17 arnsholt That might count as silly, yeah
19:18 lue hello world o/
19:24 dmol joined #perl6
19:30 zwut00 joined #perl6
19:31 pmurias arnsholt: you might want to add dalek hooks to nqpy
19:34 hoelzro nqpy?
19:34 arnsholt I read the RaNIW course notes =)
19:34 arnsholt And started writing a Python compiler
19:34 zwut00 left #perl6
19:35 diakopter arnsholt: did you look at pynie?
19:35 diakopter it has a .pg grammar
19:36 arnsholt Haven't yet, but that sounds like a good idea
19:36 jnthn .pg is pre-protoregex and the OPP worked different, but if it got far along I'd guess various bits are stealable.
19:37 moritz yes, I think pmichaud gave the whole indention-based parsing a deep thought
19:38 jnthn Yeah, I remember him saying he found a good way to encode that.
19:38 arnsholt Yeah, my current version of it is relatively simple, actually
19:38 arnsholt MARKER/MARKED was useful
19:39 arnsholt Victory!
19:39 arnsholt The if statement now parses
19:39 arnsholt pmurias++ # Reading the specs
19:43 arnsholt Wow, reading Grammar.pg from Pynie brings back memories
19:47 kay__ joined #perl6
19:47 dalek rakudo/nom: 7e981ca | jnthn++ | src/core/List.pm:
19:47 dalek rakudo/nom: Fix squish with :as to work on JVM.
19:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7e981ca47d
19:49 lizmat jnthn: would that have been needed on parakudo as well?
19:49 jnthn lizmat: Native types are meant to be constrainty rather than coercy.
19:49 jnthn lizmat: The JVM backend gets that right; Moar should as well.
19:49 jnthn lizmat: On Parrot they have coercier than they really should.
19:50 lizmat gotcha
19:50 jnthn lizmat: 6model made a very clean split between coerce and unbox; Parrot's v-tables didn't...and we still see some legacy of that...
19:51 lizmat btw, doing Routine->add_phaser at compile time is not enough to get the routine to execute that phaser
19:51 jnthn It has to be before the closing } of that routine.
19:51 jnthn Routines have a kinda "compose time" a bit like classes.
19:52 jnthn Less formalized, but basically "when the routine_def action method runs"
19:52 lizmat $r.add_phaser( 'ENTER', -> { once DEPRECATED($DEPRECATED) } ); is the only inside the trait_mod: is DEPRECATED
19:52 dalek roast: 103d5ad | jnthn++ | S32-list/squish.t:
19:52 dalek roast: Unfudge some squish tests for JVM.
19:52 dalek roast: review: https://github.com/perl6/roast/commit/103d5ad298
19:52 lizmat *thing
19:52 jnthn Oh, it's inside the trait_mod...
19:53 jnthn That should be early enough...
19:53 lizmat but it isn't
19:53 jnthn Hmmm.
19:53 lizmat I verified this by adding an extra ENTER in the sub with the trait, and then it works
19:53 jnthn If you write "also is DEPRECATED;" inside the routine instead of applying it as an "is DEPRECATED" at the top, are the semantics any different, ooc
19:53 jnthn ?
19:54 jnthn It may just be an ordering problem.
19:54 * lizmat tests that
19:58 lizmat Null PMC access in get_string()  :-(
19:59 lizmat $ perl6 -e 'sub a { also is DEPRECATED("bar"); say "a" }; a'
19:59 lizmat $ perl6 -e 'sub a is DEPRECATED("bar") { say "a" }; a'
19:59 lizmat a
19:59 lizmat $ perl6 -e 'sub a is DEPRECATED("bar") { ENTER {}; say "a" }; a'
19:59 lizmat Sub 'a' has been deprecated, please use bar instead  in any  at -e:1
19:59 lizmat a
20:00 timotimo :|
20:01 arnsholt Maybe there's something wrong in the routine_def action?
20:02 arnsholt Like it only does the phaser thing if there's an actual phaser in the code?
20:02 moritz lizmat: can't you just .wrap the code inside the DEPRECATED trait?
20:02 diakopter try END instead of ENTER
20:03 jnthn arnsholt: yeah, routine_def is suspect...moment...
20:03 lizmat not sure, $r at that moment is still incomplete
20:03 diakopter .wrap would be a runtime thing, not on the ast
20:04 jnthn yeah
20:04 jnthn finish_code_object happens before trait application.
20:04 lizmat in the end, I would like to see this as a phaser block that removes itself from the list of phasers after having been executed
20:04 jnthn And finish_code_object is what looks at what phasers we have and emits code to run them.
20:05 jnthn lizmat: That's probably overkill...
20:05 arnsholt Yeah, I was going to suggest moving the trait application. It's pretty late in the action
20:05 lizmat ok, let me try that
20:05 diakopter lizmat: maybe better to inject a state var so it runs only once?
20:06 lizmat that's what the once block is for
20:06 diakopter ah, I missed that
20:08 jnthn I only worry what the effect may be on traits that wrap...
20:08 jnthn Hopefully, nothing.
20:08 lizmat we'll see, it appears to compile so far  :-)
20:09 jnthn r: Duration.new(1)
20:09 camelia rakudo f0b3ed: ( no output )
20:09 jnthn r: say Duration.new(1).WHAT
20:09 camelia rakudo f0b3ed: OUTPUT«(Duration)␤»
20:09 jnthn r: say Duration.new(1).Num.WHAT
20:09 camelia rakudo f0b3ed: OUTPUT«(Rat)␤»
20:09 jnthn wtf...
20:09 jnthn has Rat $.x = 0;
20:10 jnthn method Num(Duration:D:)    { $!x     }
20:10 jnthn d'oh!
20:10 raiph joined #perl6
20:10 jnthn And that's why sleep.t has JVM fudges.. :)
20:13 masak hah :)
20:14 dalek rakudo/nom: ddf3222 | jnthn++ | src/core/Duration.pm:
20:14 dalek rakudo/nom: Make Duration.Num actually Num.
20:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ddf3222f03
20:14 lizmat ./perl6 --target=pir --output=lib/Test.pir lib/Test.pm
20:14 lizmat ===SORRY!=== Error while compiling lib/Test.pm
20:14 lizmat Null PMC access in get_string()
20:14 dalek roast: afaa30d | jnthn++ | S29-context/sleep.t:
20:14 dalek roast: Unskip sleep-till test on JVM.
20:14 dalek roast: review: https://github.com/perl6/roast/commit/afaa30dcc3
20:15 jnthn lizmat: I think we may need to move the finish_code_object call down more than the traits up...
20:15 lizmat yes, was figuring that too  :-)
20:16 jnthn lizmat: At a guess, I think it may matter that they apply after the multi stuff.
20:17 jnthn 47 #?rakudo.jvm in 32 files now
20:18 jnthn FROGGS: If you're up for another sprintf one, there's a single rakudo.jvm specific fudge in sprintf.t
20:19 jnthn r: my $num = 123.456789; say $num.round(1e-5)
20:19 kivutar joined #perl6
20:19 camelia rakudo 7e981c: OUTPUT«123.45679␤»
20:20 jnthn grr, comes out as 123.45678999999998 on JVM...
20:20 diakopter r: my $num = 123.456789; say $num.round(-0)
20:20 camelia rakudo 7e981c: OUTPUT«Divide by zero␤  in method sink at src/gen/CORE.setting:11765␤  in method BUILDALL at src/gen/CORE.setting:861␤  in method bless at src/gen/CORE.setting:802␤  in method new at src/gen/CORE.setting:787␤  in method new at src/gen/CORE.setting:785␤  in method floo…»
20:21 masak r: my $num = 123.456789; say $num.round(0)
20:21 camelia rakudo 7e981c: OUTPUT«Divide by zero␤  in method sink at src/gen/CORE.setting:11765␤  in method BUILDALL at src/gen/CORE.setting:861␤  in method bless at src/gen/CORE.setting:802␤  in method new at src/gen/CORE.setting:787␤  in method new at src/gen/CORE.setting:785␤  in method floo…»
20:22 jnthn r: (123.456789 / 1e-5 + 1/2).floor * 1e-5
20:22 camelia rakudo 7e981c: ( no output )
20:22 jnthn r: say (123.456789 / 1e-5 + 1/2).floor * 1e-5
20:22 camelia rakudo 7e981c: OUTPUT«123.45679␤»
20:22 ksh joined #perl6
20:23 jnthn r: say (1e-5 + 1/2).WHAT
20:23 camelia rakudo 7e981c: OUTPUT«(Num)␤»
20:23 jnthn oh, wait...
20:23 jnthn r: say (123.456789 / 1e-5).WHAT
20:23 camelia rakudo 7e981c: OUTPUT«(Num)␤»
20:23 jnthn r: say (123.456789 / 1e-5)
20:23 camelia rakudo 7e981c: OUTPUT«12345678.9␤»
20:24 jnthn r: say (123.456789 / 1e-5 + 1/2).floor
20:24 camelia rakudo 7e981c: OUTPUT«12345679␤»
20:25 jnthn It's consistent up to there; it's the final multiplication that gets it off on JVM. Hmmm.
20:26 jnthn .tell colomon If you're interested in a mathy one on JVM, see the rakudo.jvm fudge in rounders.t :)
20:26 yoleaux jnthn: I'll pass your message to colomon.
20:28 jnthn hmm... is_run tests seem less reliable under the evalserver...
20:29 jnthn oh, no wonder...
20:29 jnthn my $fnbase = 'getout-';
20:29 jnthn $fnbase ~= $*PID // 1_000_000.rand.Int;
20:29 jnthn I guess $*PID is always the same under the eval server...
20:31 [Coke] jnthn: yes, it is.
20:31 jnthn Trying a spectest run with that fixed
20:32 diakopter moritz: so I was right... using the same file descriptor, ish :)
20:33 jnthn I guess any time we ran multiple tests at once that did is_run they clobbered each other
20:33 moritz diakopter: right, ish
20:33 jnthn diakopter: Just file names, not even descriptors
20:33 dalek rakudo/nom: 6ff75a5 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
20:33 dalek rakudo/nom: Simplify DEPRECATED / is DEPRECATED for now
20:33 dalek rakudo/nom:
20:33 dalek rakudo/nom: Before, I was thinking of having sub DEPRECATED figure out what is was warning
20:33 dalek rakudo/nom: for, with using callframe().  But this proved to be very fragile.  So instead,
20:33 dalek rakudo/nom: sub DEPRECATED now just gets the old and new name, and the "is DEPRECATED"
20:33 dalek rakudo/nom: trait adds a closure in the form of once block in an ENTER phaser for the
20:33 dalek rakudo/nom: routine.  For this to work inside routines without explicit ENTER blocks,
20:33 dalek rakudo/nom: the time that "finish_code_object" in Actions.nqp is called, must be changed.
20:33 dalek rakudo/nom: But I'll leave that for tomorrow.
20:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6ff75a551e
20:33 [Coke] jnthn: https://github.com/perl6/roast/blob/9f962639fa242b1b405ee0ad324363786a53a873/S02-magicals/pid.t#L16
20:33 diakopter I know; hence the ish
20:34 jnthn [Coke]: That one always passes for me, though
20:34 [Coke] windows freak. :)
20:34 jnthn [Coke]: I think because is_run tests spawn a clean run, not an evalserver call.
20:34 [Coke] always fails for me.
20:34 jnthn Oh...
20:34 * lizmat gets an early night for a change
20:34 lizmat gnight, #perl6!
20:34 [Coke] lizmat: ~~
20:35 jnthn 'night, lizmat++
20:35 jnthn [Coke]: I wonder if that's 'cus another is_run using test happens around the same time...
20:35 [Coke] plausible, though I think I'm single threading when I run the tests.
20:35 [Coke] (not sure. whatever test_summary.pl does by default)
20:37 [Coke] crap. seeing a lot of aborts again.
20:37 [Coke] I wonder if I should stop running with the eval server and just take the hit on time. :|
20:38 [Coke] I may manually mixin a rakudo.jvm run against a later roast this evening and forget this run happened.
20:39 [Coke] ->
20:40 jnthn [Coke]: Odd. I've been running the spectests all day against evalserver without issue...
20:40 jnthn It is eating a fair bit of memory, though
20:40 jnthn How do the aborts look?
20:40 iSlug joined #perl6
20:43 jnthn The really weird thing is that we got a good run on the 19th, and a bad one on the 20th
20:43 jnthn And bad since then
20:44 jnthn But all the commits on 19th/20th are just release engineering
20:44 jnthn Aside from the NQP_REVISION bump, I guess
20:47 jnthn But nothing looks too likely in the range of NQP commits either. Hm.
20:49 btyler joined #perl6
20:56 iSlug joined #perl6
21:11 genehack joined #perl6
21:14 dalek roast: c84521b | jnthn++ | packages/Test/Util.pm:
21:14 dalek roast: Make is_run evalserver safer.
21:14 dalek roast:
21:14 dalek roast: Before, two test files run in parallel could trample each other's
21:14 dalek roast: files. This makes it highly unlikely they will.
21:14 dalek roast: review: https://github.com/perl6/roast/commit/c84521b5c2
21:20 SmokeMac_ joined #perl6
21:29 donaldh joined #perl6
21:35 mtk joined #perl6
21:37 dalek roast: f7f2b55 | jnthn++ | S (4 files):
21:37 dalek roast: Untodo tests reliably passing after is_run fix.
21:37 dalek roast:
21:37 dalek roast: Hopefully, these hold up on other platforms also.
21:37 dalek roast: review: https://github.com/perl6/roast/commit/f7f2b55bc4
21:39 jnthn 36 tests over 27 files now. Not bad.
21:43 [Sno] joined #perl6
21:44 masak jnthn++
21:52 zakharyas joined #perl6
21:58 donaldh Hopefully got a little bit of speedup and a bit of memory saving on JVM
21:59 bruges_ joined #perl6
21:59 mtk joined #perl6
22:00 timotimo from what?
22:02 jnthn donaldh: yay :)
22:02 jnthn donaldh: Am feeling optimistic we'll land the Rakudo Star on JVM for October :)
22:03 donaldh Eliminated the string join in JAST dump. Pass list of lines straight through to JASTToJVMBytecode
22:04 donaldh Which also eliminates the BufferedReader.readline() in JASTToJVMBytecode
22:04 diakopter donaldh: what's what I did for the MAST dump in moarvm (list of lines) :)
22:04 donaldh and the HUGE string
22:04 diakopter *that's
22:04 jnthn In the end, we probably should walk the JAST tree and make bytecode from that... But this is a good step :)
22:05 donaldh agreed. Direct invocation of ASM via a native JVM binding would be nice to achieve :-)
22:05 donaldh Or, I guess pass JAST into Java code.
22:06 jnthn The latter is what I had in mind
22:06 jnthn It's what we do with MAST
22:07 diakopter O_O Java code in MoarVM   *faints*
22:07 jnthn lol
22:07 jnthn I meant we give the data strcuture straight to the bytecode emitter. :)
22:08 donaldh makes sense :)
22:08 jnthn No intermediate string.
22:08 jnthn Or text
22:08 jnthn I want to at some point look into why QAST -> JAST is as time consuming as it is also.
22:09 donaldh Crude timings but overall rakudo build time is down to 7:17 from 7:48
22:09 donaldh which is a 6% gain or so
22:09 * diakopter wonders if moarvm will take less than 1 min to build rakudo
22:10 diakopter (and nqp)
22:11 jnthn diakopter: In the begining? Or once we've got JIT and other opts in? :)
22:11 donaldh jnthn: my performance profiling results are _very_  variable. Random GC impact is the main culprit I think.
22:13 donaldh so it's taking patience and repeated measurements to home in on possible optimizations.
22:14 mtk joined #perl6
22:16 masak jnthn: JIT will improve build time?
22:17 * donaldh needs to rebase to get all of jnthn++s nqp commits
22:17 jnthn masak: I'd expect so given most of the build is done by programs written in NQP code :)
22:17 * donaldh only has 21% battery left.
22:18 jnthn masak: Imagine it hones in on common code in Cursor, common grammar rules, etc.
22:18 masak hmmm, yes.
22:19 * TimToady wonders how much better we could do by taking the info a JIT would use and sending it all the way back to the actual compiler...
22:20 diakopter well, opportunities can be much better identified at runtime sometimes
22:20 jnthn That feels...weird. :)
22:20 diakopter so you need the information then
22:20 diakopter especially when ... specializing
22:21 TimToady specialization is for insects...
22:21 TimToady --RAH
22:21 pmurias joined #perl6
22:21 masak TimToady: actually, the quote is more like "...specialization is for insects." :)
22:22 perigrin special insects.
22:22 TimToady it just seems like an obvious thing to factor out when you're doing the same dumb optimization 1000 times for process intensive code
22:23 TimToady probably 90% of the hotcode paths are going to be consistent from one run to the next
22:24 jnap joined #perl6
22:24 TimToady give or take 50%
22:24 diakopter I fully intend to make sure a very smart inter-run compilation cache is created
22:24 timotimo that's like the gcc feature where it can profile branches at run time once and then use that on a second compile to optimize the code
22:24 BenGoldberg joined #perl6
22:26 diakopter (it does a diff of the current source against a cache of the source from the last N times compiled, and is smart about cross-source-file dependencies and someday inter-routine dependencies
22:26 diakopter )
22:26 TimToady JVM's slow start is not something we want to emulate in MoarVM :)
22:27 diakopter yeah but JIT is in a side thread
22:27 TimToady unless forced to...
22:27 pmurias diakopter: is there a JIT prototype for MoarVM?
22:27 jnthn MoarVM gets off to a fairly fast start interpreting, at least compared to anything else NQP runs on :)
22:28 diakopter .oO( The JIT: "oh my, I keep getting killed before I can JIT anything" )
22:28 jnthn pmurias: Not yet
22:28 * TimToady wants Perl 6 programs to spook those neurons that say: "That *seemed* like it finished running even before I hit the return key." :)
22:29 diakopter pmurias: so far it's mostly in the minds and shared conversation histories (in person and online) of gerd, jnthn, me... and also gerd has some extremely experimental branches of things..
22:30 diakopter pmurias: but those branches are extremely unsanctioned, as it were
22:30 timotimo TimToady: that would be pleasant
22:30 TimToady ah, "sanction", one of those lovely words that means opposite things
22:31 jnthn Here it probably means, "jnthn doesn't know about them yet" :)
22:31 diakopter yeah, that
22:32 pmurias why keep stuff in secret?
22:32 pmurias joined #perl6
22:32 TimToady so jnthn++ doesn't get a thundering apoplexy
22:32 pmurias heh
22:33 diakopter TimToady: well, here I used it to mean blessed/sanctified as opposed to encumbering with hardships
22:33 diakopter (great, now you'll tell me encumber is also backwards) ;)
22:35 diakopter pmurias: but yes, that's exactly the reason - so jnthn doesn't have to worry about it while we work through all the hundreds of lessons jnthn already worked out in his head...
22:36 diakopter "we must try really hard to imagine how jnthn would critique this.."
22:37 pmurias TimToady: re bringing back info from compile time to runtime, the dart2js people were considering that (at least claiming to in some how dart is compiled to javascript talk)
22:38 pmurias TimToady: dart2js emits code with checks like "if this argument is not a native javascript array go to slow version"
22:39 masak 'night, #perl6
22:39 TimToady well, hopefully that's hidden behind reprs for p6
22:40 TimToady \o
22:40 BenGoldberg rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; last }; }
22:40 camelia niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
22:40 camelia ..rakudo 6ff75a: OUTPUT«1␤»
22:41 jnthn Does that work without the last?
22:41 BenGoldberg rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; }; }
22:41 jnthn r: my @a = 1; say @a[^Inf]
22:41 jnthn I'm guessing it truncates the range...
22:41 camelia niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
22:41 camelia ..rakudo 6ff75a: OUTPUT«1␤»
22:41 camelia rakudo 6ff75a: OUTPUT«1␤»
22:41 jnthn yay
22:42 raiph joined #perl6
22:42 TimToady r: my @a = 1; say @a[^1_000_000_000]
22:42 camelia rakudo 6ff75a: OUTPUT«(timeout)»
22:42 TimToady not-so-yay
22:43 BenGoldberg r: say ((^1_000_000_000).infinite)
22:43 camelia rakudo 6ff75a: OUTPUT«False␤»
22:43 BenGoldberg r: say ((^Inf).infinite)
22:43 camelia rakudo 6ff75a: OUTPUT«True␤»
22:45 colomon joined #perl6
22:45 TimToady you'll note that S09:218 does not mention .infinite
22:45 synopsebot Link: http://perlcabal.org/syn/S09.html#line_218
22:45 BenGoldberg My guess is when we say @a[stuff], rakudo tests if stuff is .infinite, and if it's False, reifies all of stuff
22:46 BenGoldberg Instead of reifiting the first @a.elems elments of stuff
22:46 dalek nqp: 7b02322 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java:
22:46 dalek nqp: Let JASTToJVMBytecode work with a list of lines instead of a huge string.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/7b02322533
22:46 dalek nqp: 130c815 | (Donald Hunter)++ | src/vm/jvm/ (2 files):
22:46 dalek nqp: Add variants of compilejast and compilejasttofile that accept array of strings.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/130c815870
22:46 dalek nqp: f674b87 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files):
22:46 perigrin WWJNTHNS
22:46 dalek nqp: Update bootstrap with compilejast list ops.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/f674b87d2c
22:46 dalek nqp: 6758068 | (Donald Hunter)++ | src/vm/jvm/ (2 files):
22:46 dalek nqp: Use the new compilejast list ops.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/675806869b
22:46 dalek nqp: c8351fe | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
22:46 dalek nqp: Use pre-sized ArrayList instead of LinkedList in compilejastlist
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/c8351fe073
22:46 dalek nqp: 14028a1 | (Donald Hunter)++ | src/vm/jvm/ (3 files):
22:46 dalek nqp: Remove old string compilejast opcodes.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/14028a147b
22:46 dalek nqp: 02570f3 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files):
22:46 dalek nqp: New bootstrap for JAST to JVM optimization.
22:46 dalek nqp: review: https://github.com/perl6/nqp/commit/02570f3897
22:47 BenGoldberg Err, s/reifiting/reifying/
22:50 jnthn Time for some rest... 'night, #perl6
22:50 BenGoldberg r: my @a = ^1_000_000_000; print @a
22:50 camelia rakudo 6ff75a: OUTPUT«(timeout)»
22:50 BenGoldberg r: my @a = ^Inf; say @a
22:51 camelia rakudo 6ff75a: OUTPUT«(timeout)»
22:52 BenGoldberg r: my @a := ^Inf; say @a
22:52 camelia rakudo 6ff75a: OUTPUT«0..^Inf␤»
22:53 zwut00 joined #perl6
22:55 BenGoldberg TimToady: testing whether something is .infinite and behaving differently depending on the answer is an "optimization" rakudo does in a couple of places.  IMHO, *every* array should be treated as being infinite, until we reach the end.
22:57 BenGoldberg r: my @a = ^Inf; say @a.gist
22:57 camelia rakudo 6ff75a: OUTPUT«(timeout)»
22:58 BenGoldberg r: my @a = 1..10; say @a.gist
22:58 camelia rakudo 6ff75a: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
22:58 BenGoldberg r: say 1..10;
22:58 camelia rakudo 6ff75a: OUTPUT«1..10␤»
22:59 BenGoldberg r: my @a = 1..10; shift @a; say @a
22:59 camelia rakudo 6ff75a: OUTPUT«2 3 4 5 6 7 8 9 10␤»
22:59 BenGoldberg r: my @a := 1..10; my @b = @a; shift @b; say @a; say @b;
22:59 camelia rakudo 6ff75a: OUTPUT«1..10␤2 3 4 5 6 7 8 9 10␤»
23:04 diakopter perigrin: yes :)
23:06 xinming joined #perl6
23:12 leontopod joined #perl6
23:13 [Sno]_ joined #perl6
23:30 jnap joined #perl6
23:56 stevan_ joined #perl6
23:57 stevan_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo