»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:09 Guest32443 left 00:12 Psyche^ joined, jnap left 00:14 fridim__ joined 00:15 Psyche^_ left, EvanTeitelman joined
[Coke] so many versions of trunk not building in this bisect. :( :( 00:26
00:31 Mouq left
flussence I made a thing today that takes almost as long to parse as the setting \o/ 00:37
if anyone's looking for a pathological test case for optimisation work, have at it: github.com/flussence/HTML5-Entitie...upTable.pm
diakopter aw jeez pghpw.org/ppw2013/talk/5126 00:40
00:51 jonathanmarvens left
diakopter flussence: what makes it pathological? 00:53
00:54 jonathanmarvens joined
flussence it's just two hashes, but it takes 3 minutes to load on my desktop machine 00:55
and I imagine that it'd take 3 seconds in perl5...
diakopter wat..
diakopter tries moarvm 00:56
flussence I haven't tried in jvm yet (won't build recently :/)
diakopter well I'll make an nqp version of it 00:57
TimToady just built it
flussence TimToady: it's giving me Java OOM errors, even though I've got 6GB RAM free :(
TimToady building it? 00:58
flussence I'll try again, just to get the exact error...
00:58 jnap joined
flussence but IIRC, something about "not enough heap space" 00:58
TimToady 32 or 64-bit? 00:59
diakopter nqp: gist.github.com/diakopter/6693648
camelia nqp: OUTPUT«(timeout)» 01:00
diakopter consarn it
flussence 64-bit
TimToady why don't you just invert the first table to get the second? 01:01
diakopter cannot stringify this
at nqp-src\NQPHLL.nqp:803 (./NQPHLLMoar.moarvm:quote_atom:43)
from nqp-src\QRegex.nqp:669 (./QRegexMoar.moarvm:!reduce:40)
from nqp-src\QRegex.nqp:633 (./QRegexMoar.moarvm:!cursor_pass:64)
from <unknown>:1 (./NQPHLLMoar.moarvm:quote_atom:506)
from <unknown>:1 (./NQPHLLMoar.moarvm:quote_delimited:104)
from nqp-src\NQPHLL.nqp:345 (./NQPHLLMoar.moarvm:quote_EXPR:151)
from <unknown>:1 (nqp.moarvm:quote:sym<apos>:66)
from nqp-src\QRegex.nqp:702 (./QRegexMoar.moarvm:!protoregex:125)
01:01 EvanTeitelman left
diakopter from <unknown>:1 (nqp.moarvm:quote:8) 01:01
from <unknown>:1 (nqp.moarvm:value:90) 01:02
from <unknown>:1 (nqp.moarvm:term:sym<value>:63)
from nqp-src\QRegex.nqp:702 (./QRegexMoar.moarvm:!protoregex:125)
oops
WOW 01:03
25 seconds to parse and compile it to pir from nqp-parrot
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
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
performance-wise
parsing-wise 01:06
it would also probably parse a lot faster (under current rakudo) if you use \x instead of actual chars
diakopter maybe
.8s for parrot to run the generated .pir 01:08
:S
flussence hm, rakudo-jvm seems to be building okay today... 01:09
diakopter I wonder what moarvm can't stringify
and why it's stringifying something...?
[Coke] flussence: if you're having memory issues, did you try modifying the startup script?
flussence [Coke]: this is just from following the build instructions in the readme. Either way, it seems to have fixed itself now 01:10
diakopter flussence: flussence one problem is the .pir is using 5000 parrot local registers *doh* 01:12
01:14 stevan_ left, stevan_ joined 01:17 Guest37284 is now known as ponbiki
[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.
[Coke] .to jnthn 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
yoleaux [Coke]: I'll pass your message to jnthn.
[Coke] (that took way too long) 01:24
01:29 kst` joined 01:31 kst left 01:34 jnap left
[Coke] can you .to more than one person at a time? 01:34
.to diakopter,flussence "jsut checking"
yoleaux [Coke]: What kind of a name is "diakopter,flussence"?!
diakopter .to [Coke] [Coke] 01:35
yoleaux diakopter: I'll pass your message to [Coke].
[Coke] ~ 01:36
yoleaux 01:35Z <diakopter> [Coke]: [Coke]
01:43 jnap joined 01:47 Mouq joined
Mouq rn: say so "aaa" ~~ / a ** { 2 + 1} / 01:48
camelia niecza v24-95-ga6d4c5f: OUTPUT«True␤»
..rakudo 7e2d8b: OUTPUT«===SORRY!=== Error while compiling /tmp/Ke7OSVRFXc␤Quantifier quantifies nothing␤at /tmp/Ke7OSVRFXc:1␤------> say so "aaa" ~~ / a ** ⏏{ 2 + 1} /␤ expecting any of:␤ postfix␤ infix stopper␤ infix or me…»
01:49 slavik joined 01:50 jnap left
Mouq finds RT #73172 01:51
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=73172
[Coke] r: my %h;%h<a>:exists; 01:54
camelia ( no output )
[Coke] rakudo-jvm: my %h;%h<a>:exists;
camelia: help
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>
[Coke] ah. 01:55
.to lizmat "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
yoleaux [Coke]: I'll pass your message to lizmat.
[Coke] .to jnthn "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
yoleaux [Coke]: I'll pass your message to jnthn.
01:56 jonathanmarvens left, jonathanmarvens joined
Mouq What does a bare pair of curly braces, “{}”, do in a regex? 01:59
.oO( Perl 6, the Movie, starring Curly Braces' Bear pair )
02:00
02:04 kst` is now known as kst
flussence I'd guess that's an empty code closure which forces proceduralness instead of declarativeness 02:05
02:06 slavik left 02:07 jonathanmarvens left
Mouq Could you clarify the *ness'es for me? Like, STD uses `token comment:sym<#> { '#' {} \N* }` 02:07
02:10 colomon left, colomon joined
flussence I'm not much of an expert on that bit of the language, sorry. It's something to do with backtracking IIUC 02:19
Mouq Okay, thank you very much flussence 02:20
02:23 dayangkun_ joined 02:24 dayangkun_ left 02:27 dayangkun left 02:29 xinming left 02:31 xinming joined 03:13 preflex left, preflex_ joined, ChanServ sets mode: +v preflex_ 03:14 preflex_ is now known as preflex, raiph joined
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:18
I'm guessing the former 03:19
*the result of the evaluated statement list
03:20 cognominal joined 03:21 labster joined
[Coke] .to jnthn current version complains: getextype needs an object with VMException representation 03:26
yoleaux [Coke]: I'll pass your message to jnthn.
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)␤»
raiph ww
04:11 colomon left 04:25 wtw left 04:26 BenGoldberg left, rafl left, nyuszika7h left 04:27 broquaint joined, wtw joined 04:28 gfldex left, gfldex joined 04:29 nyuszika7h joined 04:31 rafl joined
Mouq ( I've realized that my previous question about QAST::Stmts pretty much *has* to be the former, btw ) 04:40
TimToady the {} in a regex terminates the longest token match there 04:41
so \N* is not considered part of the token to match with a DFA
04:42 raiph left
Mouq Oh, cool, I understand. Thank you TimToady 04:42
04:44 ponbiki left 04:49 fridim__ left 04:54 ponbiki joined 05:00 PacoAir left 05:02 xenoterracide left
[Coke] r: &&::{}[];; 05:07
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
[Coke] masak: ^^
r: ~~::??{}~~[];; 05:10
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤Found ?? but no !!␤at /tmp/_QtlfDw2eh:1␤------> ~~::??{}~~[]⏏;;␤Confused␤at /tmp/_QtlfDw2eh:1␤------> ~~::??{}~~[]⏏;;␤ expecting any of:␤ postfix␤␤»
[Coke] in the REPL, that dies with: Null PMC access in get_string() 05:11
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.
24 Sep 2013 16:59Z <jnthn> JimmyZ: though, there's no strong convention there anyway, looking at a bunch of the others...
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 <…»
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.
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
TimToady std: &&::{}[];; 05:37
camelia std 7c17586: OUTPUT«ok 00:00 46m␤»
TimToady std: ~~::??{}~~[];;
camelia std 7c17586: OUTPUT«===SORRY!===␤Expecting a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use space between ~ ~) at /tmp/A36qY27NP9 line 1:␤------> ~~⏏::??{}~~[];;␤Parse failed␤FAILED 00:00 41m␤…»
moritz good morning 05:38
TimToady o/
06:21 darutoko joined 06:22 sjn joined 06:24 sqirrel joined 06:25 kaleem joined
timotimo good mroing 06:29
06:36 darutoko- joined 06:38 darutoko left 06:39 darutoko joined, pernatiy joined 06:41 darutoko- left 06:51 thou left 06:54 FROGGS joined 07:04 ssutch left 07:08 denis_boyun joined 07:39 colomon joined
masak submits [Coke]'s rakudobug 07:48
mornin', #perl6 07:49
r: &&::{}[];
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
masak r: &&::{}[] 07:50
hoelzro morning all
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
masak r: &&::{}
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
masak r: &::{}
camelia rakudo 7e2d8b: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
masak could be golfed some :)
moritz current instr.: 'variable_components' pc 26971 (src/gen/perl6-symboltable.pir:10438) (src/Perl6/World.nqp:1858) 07:51
if you run it with --ll-exception
masak adds that to the ticket
moritz++
moritz @result[+@result - 1] := $sigil ~ $twigil ~ @result[+@result - 1]; 07:52
this line looks like it might fail if @result is empty
std: &::{} 07:53
camelia std 7c17586: OUTPUT«ok 00:00 42m␤»
moritz so, what does it mean?
an access to the anonymous variable & ?
timotimo struggles to understand the purpose or function or sense of urbit 07:56
hoelzro you too?
moritz wtf is urbit? 07:57
timotimo i mean, i kind of sort of get what it can do
urbit.org
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:58
wait, what? a "pure, strict higher-order static type-inferred functional language" without any programming language theory? 07:59
timotimo tee hee 08:00
reading the docs feels a bit like playing an alternate reality game
hoelzro I think part of it is that the docs are kinda dry
"X is ... Y is ..."
timotimo i don't think i've reached that point yet 08:01
i'm only in the chapter on avro
arnsholt moritz: Sounds like it's either a joke or written by people who don't know what they're talking about =) 08:04
"Its self-compiling kernel, 7000 lines of code, specifies Hoon unambiguously; there is no Hoon spec." HA HA HA HA! 08:05
moritz also, the VM (Nock) spec is 200 words 08:06
arnsholt The language is defined by its implementation. What could possibly go wrong!
moritz so all of the IO sub system can be described precisely in 200 words?
timotimo arnsholt: nobody is going to use this in production!
moritz: there is no IO.
(well, that's not true of course) 08:07
arnsholt "The only arithmetic operator is increment" that sounds like a terrible, terrible idea 08:09
moritz arnsholt: sounds like somebody has been reading lots of FP theory 08:12
:-)
hoelzro so...it's a BF VM? 08:13
how do you implement minus? counter wrap?
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.
hoelzro is that a direct quote? 08:14
timotimo yes
hoelzro what is this guy smoking?
jnthn morning, #perl6
yoleaux 01:24Z <[Coke]> jnthn: 42a5487b92347d4f8b64ad838c118a7b12127616 broke rakudo.jvm's test suite. (tested against S02-types/autovivification.t)
01:55Z <[Coke]> jnthn: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
03:26Z <[Coke]> jnthn: current version complains: getextype needs an object with VMException representation
moritz congratulates the makers on the most elaborate joke he has seen in quite some time
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:15
08:16 stevan__ joined 08:17 stevan_ left 08:18 dmol joined
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:19
08:20 sqirrel left
masak True and False are dual in some sense. 08:24
so of course you could flip their numifying values. 08:25
a good idea? no. but you can.
diakopter "deterministic functional operating system" 08:29
hee
masak well, that *is* innovative. 08:30
all the OSes I know are non-deterministic and dysfunctional :P
moritz but useful.
diakopter "Nock’s only arithmetic operator is increment" 08:32
hee
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
well, it's the kind of vastly oversimplified statement that's still not entirely wrong.
I'm thinking of JavaScript, for example. 08:34
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! )
hoelzro hehe 08:39
timotimo .o( je veux devenir hazkél à la place du hazkél ) 08:40
diakopter Learning Hoon involves learning nearly 100 ASCII digraph “runes.”
timotimo is that even a catchphrase that rings any bells to people?
moritz it does for me 08:42
en.wikipedia.org/wiki/Iznogoud
tadzik \o/ 08:43
Iznogoud!
08:43 sqirrel joined
timotimo \o/ 08:44
diakopter [email@hidden.address] 08:50
08:50 dakkar joined
moritz diakopter: wrong window? 08:55
diakopter no, just reporting the author of urbit 08:56
"reporting" used losely
moritz: it's actually not a joke 09:03
just described farcicly
timotimo diakopter: will it be done by christmas? :) 09:04
nwc10 good *, jnthn
moritz diakopter: how do you know? 09:06
09:06 daxim joined
jnthn o/ nwc10 09:06
diakopter moritz: b/c it feels unlikely to me that the documented inputs/outputs are made-up 09:07
(I mean, I could download and build/run the code...)
moritz diakopter: that doesn't mean the whole thing, including the code, isn't a huge, elaborate joke 09:09
JimmyZ good morning, jnthn
diakopter in that the writing is meant to be funny, I agree
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:10
so I doubt it's entirely whimsical 09:11
09:11 pernatiy left 09:13 fhelmberger joined
diakopter heh, a prior iteration: urbit.sourceforge.net/u.txt 09:16
moritz diakopter: I just don't see why it would be made so *useless* if it's not meant as a joke 09:17
I mean, increment as the only arithmetic operation. Come on.
(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
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
"Sufficiently smart compiler" and all that 09:20
Especially since a very small instruction isn't a magical bullet against large search spaces
diakopter yeah. he doesn't say whether those optimizations are implemented 09:21
(maybe they are though)
(some, at least)
09:23 iSlug joined
masak I took a look at the Hoon syntax, and then closed the tab pretty soon after that. 09:24
hoelzro it's edgy!
masak though I did like the one-syllable names of <> {} () [] -- very aesthetic!
only problem is that the listener needs to be in on it :)
timotimo i'm not sure i get it 09:25
jnthn
.oO( Is the point of the project to distract Perl 6 devs? :P )
09:26
timotimo i apologize for mentioning it ;) 09:27
diakopter would have been distracted by something else anyway 09:28
jnthn r: say Hash.^attributes[0]
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␤␤»
jnthn r: say Hash.^attributes[0].type
camelia rakudo 7e2d8b: OUTPUT«(Mu)␤»
jnthn r: say Hash.^attributes[0].package 09:29
camelia rakudo 7e2d8b: OUTPUT«(Hash)␤»
diakopter boots trap a ttr?
jnthn poor ttr 09:30
09:42 pmurias joined
dalek p: 6b4b034 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
nqp::iscont should not blow up over a null value.

This fixes a broken case of .clone that the subscripting changes in Rakudo hit. Thus, this fixes a more general issue.
09:42
FROGGS jnthn++ # more general karma 09:43
jnthn is doing another Rakudo JVM spectest run at the moment 09:44
But think this will clean up many fails 09:45
FROGGS awesome, I like these kind of fixes :o)
09:58 rindolf joined
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…»
jnthn Yeah, JVM tests look better now 10:05
jnthn looks what else fails
I've got various passing todo tests...
10:17 stevan_ joined 10:19 stevan__ left 10:47 odoacre left 10:49 krokite joined
moritz gets failing tests in S06-other/main-usage.t on rakudo/parrot 10:52
... at least as part of the spectest; seems tow work fine when run separately
werid
*weird
dalek ar: a8fdc35 | moritz++ | docs/announce/2013.09.md:
Update release announcement a bit
10:55
FROGGS moritz: I get the same, since weeks 10:57
moritz :(
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??
FROGGS there is another test file that behaves like that, something with args in the filename I think
I believe donaldh said something about run() or shell()
10:59 odoacre joined
moritz diakopter: maybe the temp files used by that test module aren't very good 10:59
moritz.faui2k3.org/tmp/rakudo-star-...RC0.tar.gz # Rakudo Star release candidate 11:00
diakopter or wrongly sharing file descriptors, I gues...?
dalek ast: c3da895 | jnthn++ | S16-filehandles/io.t:
Be sure to close before trying to unlink.

On Windows, this is required, otherwise the unlink fails.
moritz my $fnbase = 'getout-'; 11:01
$fnbase ~= $*PID // 1_000_000.rand.Int;
doesn't look too bad
FROGGS btw, this test file kills my virtualbox VM when I run the test suite with TEST_JOBS=4 11:03
11:05 sqirrel left
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)
01:55Z <[Coke]> lizmat: "my %h;%h<a>:exists;" throws an NPE in rakudo.jvm, but works fine in rakudo.parrot
lizmat jnthn: re 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
hence my reasoning to use .can, to create a single code that can handle both, depending on a single switch passed
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
or spit off the delete case to a seperate set of support subs
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
suggestions welcome :-)
11:14 iSlug left
jnthn (And no, it's not pressing...) 11:15
lizmat ok, I'll leave that for the future then
jnthn has a bunch of Win32 fixes for Rakudo JVM spectest coming up :)
lizmat I guess more pressing would be to actually optimize the sub calls now ?
11:16 krokite left
lizmat continues with backlogging 11:16
FROGGS moritz: IIRC it dies telling it can't open or find the file, even when the file exists 11:21
jnthn Well, even more pressing for me is to try and make sure we can have a JVM-based Rakudo * release in October... :) 11:22
dalek ast: 590fb96 | moritz++ | integration/error-reporting.t:
unfudge error reporting tests for rakudo.jvm
11:23
11:28 sqirrel joined
dalek ast: f3ec9a8 | moritz++ | S06-other/main-usage.t:
more rakudo.jvm unfudges
11:33
p: 3898d17 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Normalize $*OS on Windows to be MSWin32.

Many things identify Windows in this way at present.
11:37
kudo/nom: 7cede9d | jnthn++ | src/core/IO/Spec.pm:
Pick correct IO::Spec when running on JVM.
11:38
kudo/nom: 74bb712 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
Fix double-container bug with 'as'.
lizmat jnthn: re: github.com/perl6/nqp/commit/6b4b03434f , could you point out how an attempt at cloning a null value was made ? 11:40
dalek p: a47a76b | jnthn++ | src/QRegex/P6Regex/ (2 files):
Parse _ in ** quantifier values.

Also sneak in a decent NYI error for the ** {...} case.
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 \
jnthn lizmat: $!descriptor was null
lizmat: It wasn't cloning a null value
lizmat: It was cloning an object within which an attribute had a null value
lizmat ah, ok … hmmm 11:42
jnthn lizmat: Which (independent of all else) should not exlode
*explode
lizmat okidoki, you're welcome :-)
tadzik jnthn: re 3898d17, I encountered a similar thing when working on socket-inet tests, "linux" vs "Linux"
istr donaldh++ fixed it somehow 11:43
jnthn lizmat: The slicing and adverb tests run very nicely on the JVM backend now, anyways. :) 11:45
lizmat cool
is there a way to test for warnings being emitted ?
r: "abc".ucfirst
camelia rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/xTr7G7L3I1:1␤␤»
FROGGS throws_like?
lizmat isn't that for fail/die ? 11:46
r: say "abc".ucfirst
camelia rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/NMWiNLhVOW:1␤␤Abc␤»
FROGGS hmmm
jnthn r: CONTROL { say $_ }; say "abc".ucfirst
camelia rakudo 7e2d8b: OUTPUT«please change to tc in block at /tmp/pEXofXx602:1␤␤Abc␤»
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␤»
lizmat NYI ?
jnthn hm, not like this...
tadzik r: { CONTROL { say "here" }; say "abc".ucfirst }
camelia rakudo 7e2d8b: OUTPUT«here␤please change to tc in block at /tmp/g2ceyMDF8D:1␤␤Abc␤»
jnthn ah :)
So, that works.
tadzik here, let me be your blocker
r: { CONTROL { default { say "here" } }; say "abc".ucfirst } 11:48
camelia rakudo 7e2d8b: OUTPUT«here␤»
tadzik now it doesn't even say Abc
FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc')} }; say "abc".ucfirst } 11:49
camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤»
jnthn Doesn't say it 'cus you didn't resume :) 11:50
11:50 iSlug joined
lizmat has learned a lot just now 11:51
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␤␤»
FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); nqp::resume($!) } }; say "abc".ucfirst }
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 }
camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤»
FROGGS hmmm
dalek p: b591400 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/io/ProcessHandle.java:
nqp::openpipe handling for Windows.
11:55
p: 9591fa8 | jnthn++ | t/jvm/02-pipes.t:
Make 02-pipes.t Windows-friendly.
jnthn FROGGS: Call .resume iirc 11:56
FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $!.resume } }; say "abc".ucfirst }
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␤␤»
tadzik $_?
FROGGS r: use Test; { CONTROL { default { ok($_ eq 'please change to tc'); $_.resume } }; say "abc".ucfirst }
camelia rakudo 7e2d8b: OUTPUT«ok 1 - ␤Abc␤»
tadzik yay
FROGGS \o/
pmurias FROGGS: did you manage to deal with run on parrot?
FROGGS pmurias: no 11:57
pmurias: because I don't see how I can create a linux/windows process where I can pass the args as a list 11:58
12:00 FROGGS left
dalek p: bd3d68a | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix mkdir on JVM on Windows.
12:01
12:05 census joined
dalek ast: cb4fc4e | jnthn++ | S26-documentation/0 (2 files):
Make a couple of tests cope better with \r's.
12:07
lizmat fwiw, t/spec/S29-os/system.t is still failing for me on OS X 12:08
ok((run("dir", "t") != BEGIN { run("dir", "t") } ), 'run() is affected by chdir()'); # specifically
jnthn That one fails for me on Windows too, at least on JVM... 12:09
moritz comparison with != seems a bit fragile
12:09 sqirrel left
moritz that just counts files 12:10
dalek kudo/nom: f87ed39 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for ** parse fix, Win/JVM fixes.
lizmat runs spectest again 12:11
12:14 pernatiy joined
lizmat
.oO( jnthn is going to love his new i7, SSD and 16G RAM :-)
12:14
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
Fatalnix If I had the ultimate choice
I'd get a 128 thread SPARC 12:16
and build an OS out of Erlang that all it does is complain about the user using it.
in parallel.
lizmat I'll guess I'll hold out for a macbook with an 64core A10
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
tadzik yeah, a not-really-techy friend of mine got one recently too. He's amazed
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 :)
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:19
nwc10: It appears not to have destroyed *everything* that was on the disk. But...it's hardly something you want to depend on. :) 12:20
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
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\ :)
jnthn I think 4 years is longer than many people stick with a laptop :P
nwc10 mine is 5 12:23
jnthn hm, so why on earth does substr-rw stack overflow on JVM...
nwc10 but it's rarely used to actually *build* anything
JimmyZ mine is 6 ,and going to 7
nwc10 the SSD it now has is probably the most valuable part 12:24
JimmyZ doesn't have a SSD
nwc10 actually maxing out the RAM turned out to be a better win 12:25
start with that one
JimmyZ I have a SSHD with 4GB SSD though 12:26
[Coke] jnthn++ java fixes. 12:32
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
('cause Erlang does nothing so well as telephony, amirite?)
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.
Fatalnix jercos: 24. 12:38
:D
well, 23 if you have one for data
jercos: erlang is designed for actor model parallel development 12:39
jercos yeah PRI signalling is best
Fatalnix so if you have a problem with 500 processes all doing simular or slightly different things Erlang will probably be a good fit.
if you want to recursively rename all your dirs with regular expressions however in one script, Erlang probably isn't for you :P 12:40
FROGGS hopefully we an do this in lazily in parallel with perl 6 in future 12:41
12:41 ajr joined
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 ajr is now known as Guest29323
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
12:41 Guest29323 is now known as ajr_
Fatalnix some weird port 12:41
it probably requires some sort of layer between it somehow 12:42
jercos like the thing that was used for JNODE?
or JNode
Fatalnix possibly
jercos or however you're supposed to capitalize it
Fatalnix oh whatever, them java guys can have all their damn camel case 12:43
I'm not surprised they capitalize their projects weird.
jercos But Perl is best camel :o
Fatalnix :P:
12:46 iSlug left
dalek p: f97e725 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Provide a non-decont'ing version of istype.
12:53
12:54 iSlug joined
jnthn [Coke]: Don't suppose you have that list of "tests we pass on Rakudo Parrot but not Rakudo JVM" handy somewhere? 12:56
[Coke] ack -A3 "rakudo.jvm" $(ack -fa t/spec | ack '\.t$') 12:57
pmurias FROGGS: for windows we could steal code from Perl5: github.com/mirrors/perl/blob/blead...32.c#L3739
jnthn LHF: write a test for rt.perl.org/rt3/Ticket/Display.html?id=119513 then we can resolve it :)
masak a latecomer comment in the "Who moved my cheese?" discussion: abstrusegoose.com/507
FROGGS pmurias++ # good idea 12:58
jnthn [Coke]: I...thought there was a gist :)
[Coke] jnthn: one sec.
jnthn [Coke]: Think I finally fixed the substr-rw on JVM at least :)
FROGGS pmurias: do you have time for it or shall I try?
[Coke] gist.github.com/coke/5879701 12:59
jnthn: oooh.
jnthn r: sub infix:<add> (@a, $n) is equiv(&infix:<X>) { @a <<+>> $n }; say 1 .. 3 add 5; 13:00
camelia rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/8OW1RIM_QH␤Routine given to equiv does not appear to be an operator␤at /tmp/8OW1RIM_QH:1␤------> ␤»
[Coke] jnthn: I had stopped catalogging the failures since we skipped everything, but the latest copy of that is here:
github.com/coke/perl6-roast-data/b....out#L2041 13:01
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 :/
jnthn will be curious to see if that is still the case today
FROGGS pmurias: k
[Coke] jnthn: if we were having trouble with :exists, I'm not surprised a ton of stuff failed.
pmurias FROGGS: and I am working on my nqpjs REPL now ;)
jnthn [Coke]: All non-trivial slicing/adverbs, in fact. 13:03
[Coke]: Should be better in the next run.
[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.
FROGGS pmurias: yeah, I dont want to make you fall behind in the rakudo/js <=> rakudo/moarvm race :P
[Coke] gotta ->; jnthn++ again.
jnthn 5879701 is helpful, thanks... 13:04
[Coke] jnthn: ah, good.
jnthn [Coke]: Another run is great whenever you can. 13:05
dalek ast: 6432283 | jnthn++ | S02-literals/quoting.t:
Unfudges; q:x and qq:x work on JVM now.
13:10
colomon is trying another smoke run, because nothing (not even a failure message) came from last night's. :(
13:10 iSlug left
dalek ast: dc06e88 | jnthn++ | S02-literals/quoting.t:
qx and qqx are fixed too.
13:11
lizmat Q: given sub a { once DEPRECATED( 'alternative', $r ) }, how can I make $r be the code object of 'sub a' ? 13:13
13:13 lichtkind joined, ajr_ left
lizmat jnthn: any idea? 13:14
FROGGS $?ROUTINE ?
masak &a ?
FROGGS r: $?ROUTINE
camelia rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/u9cnctotRP␤Variable '$?ROUTINE' is not declared␤at /tmp/u9cnctotRP:1␤------> $?ROUTINE⏏<EOL>␤ expecting any of:␤ postfix␤»
FROGGS r: sub a { $?ROUTINE }; a() 13:15
camelia rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/_n5wiGzIh6␤Variable '$?ROUTINE' is not declared␤at /tmp/_n5wiGzIh6:1␤------> sub a { $?ROUTINE⏏ }; a()␤ expecting any of:␤ postfix␤»
FROGGS r: sub a { &?ROUTINE }; a()
13:15 PacoAir joined
camelia ( no output ) 13:15
jnthn &?ROUTINE
13:15 ajr_ joined
lizmat cool, thanks! 13:15
13:15 SamuraiJack left
lizmat I was trying &?BLOCK, but that is NYI apparently 13:15
masak r: sub a { &?ROUTINE }; say a()
camelia rakudo 74bb71: OUTPUT«sub a() { ... }␤»
masak \o/
FROGGS perl6++
JimmyZ r: say &?ROUTINE 13:18
camelia rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/WHYbzZ6xzF␤Undeclared name:␤ &?ROUTINE used at line 1␤␤»
masak that's not a routine, silly :) 13:19
tadzik well, MAIN is :)
masak do you *see* any MAIN there? no? thought so.
lizmat seems &?ROUTINE is affected by "is hidden_from_backtrace ?
tadzik read between the lines :)
lines() read() lines()
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?
moritz r: say &?ROUTINE
camelia rakudo 74bb71: OUTPUT«===SORRY!=== Error while compiling /tmp/X7bEo4k0aJ␤Undeclared name:␤ &?ROUTINE used at line 1␤␤»
lichtkind lizmat: ping
masak moritz: two minutes later, still doesn't work :P
lizmat lichtkind: pong
dalek p: 82ea40f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
More OS name canonicalization.
13:21
lichtkind lizmat: your a great ping pong player, i currently sontemplating what to submit to erl dev foom at fosdem
lizmat: any wished?
wishes
dalek kudo/nom: f390e41 | jnthn++ | / (2 files):
Fix Proxy and thus substr-rw on JVM.
13:22
kudo/nom: cc5e06f | jnthn++ | tools/build/NQP_REVISION:
Get OS canon fix.
ast: 8e1c86c | jnthn++ | S02-magicals/config.t:
Unskip a config.t test for JVM.
lizmat jnthn: wrt is hidden_from_backtrace affecting &?ROUTINE: it doesn't 13:23
but it does affect the underlying object, see: gist.github.com/lizmat/6699511
jnthn lizmat: OK, that's what I'd expect...
13:24 iSlug joined
lizmat Ah, it mixed in the role 13:24
ok, fixable
jnthn lizmat: The +{anon} is almost certainly from "is DEPRECATED"...
lizmat is hidden_from_backtrace, there is no is DEPRECATED in this picture yet
jnthn lizmat: I think there's a mixin_base method you can use to get back to an unmixedinto type
lizmat indeed
jnthn oh, yeah, I see it now
lizmat :-)
jnthn misread
lizmat now to have warn skip one more level of the stack 13:25
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
lizmat yup, it's the once block
I guess we want once blocks to appear in stack traces generally, right ? 13:27
jnthn I'd say so 13:28
lizmat but we currently have no way to hide it 13:29
jnthn Oh?
lizmat do we?
moritz hidden_from_backtrace is a Routine trait
jnthn r: sub foo() { once { die "here"; } }; foo()
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
jnthn ah
If we made it handle block then you maybe can do
once { also is hidden_from_backtrace; ... }
moritz does 'also' work?
lizmat r: once { also is hidden_from_backtrace; ... }
camelia rakudo f87ed3: OUTPUT«===SORRY!=== 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()
camelia rakudo f87ed3: OUTPUT«omg␤ in block at /tmp/7g4cDMjoCc:1␤␤»
jnthn Looks like :)
Was pretty sure it was implemented... :)
moritz then it might be as simple as changing the signature of the trait
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)
or maybe it's the static/dynamic chain intersection thingy
no idea how once-blocks are dynamically scoped 13:33
13:35 lowpro30 joined 13:36 xenoterracide joined
dalek ast: f0d78db | jnthn++ | S02-names/ (4 files):
Lots of unskip for Rakudo JVM thanks to VAR fix.
13:39
13:40 iSlug left 13:42 lowpro30_ joined, census left
lizmat cycling& 13:42
13:44 denis_boyun left 13:45 lowpro30 left 13:55 lowpro30 joined
masak there should be a single word for "this is not another framework". 13:57
13:58 lowpro30_ left
dalek p: 4280732 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (2 files):
Include class in method not found errors.
13:59
kudo/nom: 3d25fb3 | jnthn++ | / (2 files):
Throw X::Method::NotFound on JVM.
13:59 kaleem left 14:03 skids left, rindolf left 14:05 iSlug joined
dalek ast: bf4c89e | jnthn++ | / (2 files):
X::Method::NotFound unfudges for JVM.
14:05
lichtkind lizmat: so no preferences? 14:06
14:07 btyler joined
moritz masak: "this is not another framework" = tinaf :-) 14:07
tadzik then you can say that's someone's initials :)
Tina Fey: This is not another framework, ey 14:08
14:08 thou joined
tadzik I wonder if there's such person 14:08
"an American actress, comedian, writer and producer"
colomon she's quite famous here 14:10
jnthn Wasn't she the one who played Sarah Palin on some show? 14:11
colomon yes 14:12
Saturday Night LIght (incredibly famous here)
lichtkind jnthn: she is
masak "Light"? "Live"?
colomon Live, sorry 14:13
moritz in Sovjet Russia, Sarah Palin plays YOU!
tadzik in Soviet Russia, Violin plays you
colomon "Fey won the Primetime Emmy Award for Outstanding Guest Actress in a Comedy Series for her impersonation of Palin." 14:14
wait, there's an award for Outstanding Guest Actress in a Comedy Series?!
daxim Emmys are strange
moritz if you make the awards specific enough, you can hand out more of them :-) 14:15
colomon: or maye there's a "Primetime Emmy Award", and the rest is the reason she won it?
colomon moritz: no, the Emmys are like the Academy Awards, but for TV
14:16 berekuk left
colomon there are dozens of Primetime Emmy Awards 14:16
best actor, comedy
best actor, drama
best actress, comedy
etc.
tadzik best drama, actor
colomon en.wikipedia.org/wiki/Emmy_Award
moritz tadzik++ 14:17
14:18 kaare_ joined, berekuk joined
moritz did anybody test the R* release candidate I posted earlier? 14:21
masak no -- url? 14:23
nvm, found it.
moritz moritz.faui2k3.org/tmp/rakudo-star-...RC0.tar.gz ftr
14:24 odoacre left
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 kudo/nom: 153daeb | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
Correct Nil handling on JVM.
ast: 5f763f9 | jnthn++ | S0 (7 files):
Lots of JVM un-skips/un-todos from today's fixes.
14:25
[Coke] jnthn++ # on a roll. 14:27
at this rate, I will just leave the daily run to kick off, I'm not going to keep up with you. ;)
-> 14:28
masak builds the R* RC 14:29
PerlJam too 14:31
14:35 ssutch joined
dalek ast: 0e6ed92 | jnthn++ | S32- (5 files):
Another bunch of JVM un-skip/un-todo from today.
14:37
TimToady wonders what the percentage is now... 14:38
jnthn Dunno :) 14:39
TimToady jnthn++ # surpassed the roll, now on a tear... 14:40
14:40 ajr_ left, ajr joined
jnthn r: say'ö'.encode('UTF-8')[0] 14:40
camelia rakudo 3d25fb: OUTPUT«===SORRY!=== Error while compiling /tmp/v_SrigjQNb␤Two terms in a row␤at /tmp/v_SrigjQNb:1␤------> say'ö⏏'.encode('UTF-8')[0]␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or…»
jnthn r: say 'ö'.encode('UTF-8')[0]
camelia rakudo 3d25fb: OUTPUT«195␤» 14:41
jnthn hm, gets the uint8 right there...
14:41 denis_boyun joined, ajr is now known as Guest21756, Guest21756 is now known as ajr_
jnthn Oh... 14:42
14:42 odoacre joined
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
, is not an infix?
masak yes.
that's why it's not a term.
GlitchMr rn: 1,,2
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Preceding context expects a term, but found infix , instead at /tmp/b0Rl43xlg0 line 1:␤------> 1,⏏,2␤␤Parse failed␤␤» 14:43
..rakudo 3d25fb: OUTPUT«===SORRY!=== Error while compiling /tmp/8P4tGt7ozB␤Preceding context expects a term, but found infix , instead␤at /tmp/8P4tGt7ozB:1␤------> 1,,⏏2␤»
GlitchMr oh, ok
TimToady you may omit the final argument, not the middle ones
GlitchMr I just misread error message.
masak yes.
TimToady .u 2062 14:47
yoleaux U+2062 INVISIBLE TIMES [Cf] (<control>)
TimToady yow
jnthn I never saw that codepoint before... :P 14:48
nwc10 strangely, LOLCODE doesn't allow it yet 14:50
TimToady nr: sub infix:<⁢> ($x,$y) { $x * $y }; say 2⁢pi; 14:52
camelia niecza v24-95-ga6d4c5f: OUTPUT«6.2831853071795862␤»
..rakudo 3d25fb: OUTPUT«6.28318530717959␤»
TimToady yowsers
jnthn std: sub infix:<⁢> ($x,$y) { $x * $y }; say 2⁢pi;
camelia std 7c17586: OUTPUT«ok 00:00 46m␤»
GlitchMr INVISIBLE TIMES? Seriously? 14:53
jnthn I...thought we complained about a null operator not being allowed for those... :)
oh wait...
.u <⁢>
yoleaux U+003C LESS-THAN SIGN [Sm] (<)
U+003E GREATER-THAN SIGN [Sm] (>)
U+2062 INVISIBLE TIMES [Cf] (<control>)
jnthn hah!
(it quite literally *is* invisible in my client :))
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.
TimToady who would ever know?
GlitchMr Esoteric language made entirely of Unicode invisible characters would be interesting.
And I mean, really invisible, not spaces (like in Whitespace). 14:55
TimToady well, U+2061 is also apparently invisible 14:56
.u 2061
yoleaux U+2061 FUNCTION APPLICATION [Cf] (<control>)
14:56 odoacre left
GlitchMr .u 2063 14:57
yoleaux U+2063 INVISIBLE SEPARATOR [Cf] (<control>)
GlitchMr .u 2064
yoleaux U+2064 INVISIBLE PLUS [Cf] (<control>)
GlitchMr .u 2065
yoleaux No characters found
GlitchMr I was hoping for more. 14:58
But seriously, invisible plus. Hm, actually that makes sense, if you use AWK.
14:58 ajr_ left
TimToady what we need is a COMBINING MAKE INVISBLE character :) 14:58
nwc10 you have enough. map INVISIBLE TIMES, PLUS and SEPARATOR to Ook!
someone should implement that atop NQP :-)
14:59 ajr_ joined
dalek p: 645b0c3 | jnthn++ | src/vm/parrot/6model/storage_spec.h:
Fix typo.
14:59
p: 37c6d7f | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/StorageSpec.java:
Add is_unsigned slot to JVM StorageSpec.
TimToady .u 󠁯󠁟󠁫 15:00
yoleaux U+E005F TAG LOW LINE [Cf] (<control>)
U+E006B TAG LATIN SMALL LETTER K [Cf] (<control>)
U+E006F TAG LATIN SMALL LETTER O [Cf] (<control>)
TimToady oops, typo
GlitchMr Why so many esoteric programming languages limit themselves to ASCII.
World would be better with Unicode. 15:01
TimToady or should I say ooks?
GlitchMr I could find just one esoteric language which uses Unicode - esolangs.org/wiki/Sclipting
15:01 mtk left
GlitchMr Also, one which supports Unicode in identifiers. 15:02
that supports*
丟낆녬닆묬긅덯댦롤긐 15:03
gtodd1 :) 15:04
masak one hanzi and 9 hangul chars? how random. :) 15:05
gtodd1 a totally iconic programming language would be neat :)
masak also, it's probably never been done, ever. 15:06
I bet we totally won't realize the flexibility and freedom of text along the way.
TimToady nr: say "Yikes, invisible ASCII!".ords.map(* - 64 + 0xE0000).chrs
gtodd1 maybe with little animated gifs of human hands for doing hard stuff :-)
camelia rakudo 3d25fb, niecza v24-95-ga6d4c5f: OUTPUT«󠀙󠀩󠀫󠀥󠀳󟿬󟿠󠀩󠀮󠀶󠀩󠀳󠀩󠀢󠀬󠀥󟿠󠀁󠀓󠀃󠀉󠀉󟿡␤» 15:07
GlitchMr Actually, 丟 is instruction, and 낆녬닆묬긅덯댦롤긐 is data.
15:07 gtodd1 is now known as gtodd
GlitchMr .u 󟿬 15:07
yoleaux No characters found
GlitchMr Invisible?
I see it as a placeholder.
TimToady nr: say "�����������������������".ords.map(* - 0xE0000 + 64).chrs
camelia niecza v24-95-ga6d4c5f: OUTPUT«=======================␤»
..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␤␤»
TimToady hah
.u tag 15:08
15:08 ajr_ left
yoleaux U+1700 TAGALOG LETTER A [Lo] (ᜀ) 15:08
U+1701 TAGALOG LETTER I [Lo] (ᜁ)
U+1702 TAGALOG LETTER U [Lo] (ᜂ)
TimToady .u E0001
yoleaux U+E0001 LANGUAGE TAG [Cf] (<control>)
GlitchMr I'm suspicious about these letters.
I bet they can be used for IDN spoofing.
TimToady oh, wrong offset
nr: say "�����������������������".ords.map(* + 0xE0000).chrs 15:09
camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽󯿽␤»
TimToady nr: say "Yike, invisible ASCII!".ords.map(* + 0xE0000).chrs
camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«󠁙󠁩󠁫󠁥󠀬󠀠󠁩󠁮󠁶󠁩󠁳󠁩󠁢󠁬󠁥󠀠󠁁󠁓󠁃󠁉󠁉󠀡␤»
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␤␤»
..niecza v24-95-ga6d4c5f: OUTPUT«����������������������␤»
TimToady well, I guess it's pasting the replacement character
yes 15:11
GlitchMr nr: þ³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæęœśæðśŋ≤³¢µ’€µþc6t³¢ęð≥³≠²ęðwfc
camelia rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/Ix2O8WoGMe␤Two terms in a row␤at /tmp/Ix2O8WoGMe:1␤------> þ⏏³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæę␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤…»
..niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Confused at /tmp/sKQBrmabTZ line 1:␤------> þ⏏³²€²ź¢ż³²ą©ł¢ł©≥ąææ…œ¢³œðæ”óæąę→ęœ–³→œæę␤␤Undeclared routine:␤ 'þ' used at line 1␤␤Parse failed␤␤…»
15:11 ajr_ joined
GlitchMr Two terms in row? Where? 15:11
TimToady right where it points to
GlitchMr I see one term, and the character that isn't defined. 15:12
TimToady nr: say '³' ~~ /\w/
GlitchMr (because I assume 􏿽xB3 means nothing in Perl 6)
camelia rakudo 153dae, niecza v24-95-ga6d4c5f: OUTPUT«Nil␤»
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
nr: ³ 15:14
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Bogus statement at /tmp/VlBqdWXG8i line 1:␤------> <BOL>⏏³␤␤Parse failed␤␤»
..rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/ILMKEZ2KON␤Bogus statement␤at /tmp/ILMKEZ2KON:1␤------> <BOL>⏏³␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤»
PerlJam Maybe the LTM is slightly broken.
TimToady I think it's just a spot where it never converged on STD quite
there's no LT to LTM there 15:15
TimToady is a little surprised niecza doesn't say: WTF at line 1 :) 15:16
but I guess we want Perl 6 to be 7-year-old safe
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?
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?
jercos WTF does that mean?
TimToady so it's actually making Perl 6 safe for the *parents* of 7-year-olds :) 15:20
15:24 alester joined
masak r: say $! 15:29
camelia rakudo 153dae: OUTPUT«Nil␤»
15:29 skids joined
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␤␤»
masak $ perl6 -e 'run "echo OH HAI"; say $!'
Nil
I'd expect either some output or an error/exception in $! 15:30
what did I miss?
(I know &run expects its arguments as single words, to be quoted by the shell) 15:31
jnthn What does the call to run evaluate to? 15:32
FROGGS maybe try $@ :P
masak $ perl6 -e 'say run "echo OH HAI"' 15:33
255
15:34 daxim left
TimToady you'll note it's 255 but False 15:34
TimToady doesn't think returning 'but False' is very unsmelly
masak doesn't disagree 15:35
TimToady the original apocalyptic notion was that it return only a boolean, and you had to visit $! for the result if false 15:36
not sure when it mutated to the 'but False' notion, or why that prevented $! from getting set
15:37 iSlug left
masak oh, I thought 'but False' was apocalyptic. maybe I misremember. 15:39
TimToady could also be misremembering
certainly the unification of $! was apocalyptic
masak aye. 15:42
TimToady 'but' is old, but not the application of it to run/shell, iirc 15:43
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 15:54 [particle] joined
masak TimToady: A12 mentions '0 but true'. but it doesn't do so in a &shell or &run setting. 15:55
15:55 vk joined
masak (or &system, as we probably thought of it back then) 15:55
besides that, I can't find any references to 'but False' or 'but True' in the apocalypses.
Damian has 5 'but true' in his E04. 15:56
but also unrelated to shell games.
15:57 dmol left
timotimo masak: it HEAD, rakudo shouldn't ignore $*CWD on parrot 15:58
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 15:59
TimToady A06 thinks system() exists as &*system, since we hadn't invented the setting yet 16:01
masak timotimo: ok, I might update and rebuild, then. thanks. 16:03
moritz: all tests and spectests passed in Rakudo R* RC0. 16:04
moritz: any other tests to run -- something module-related, perhaps?
pmichaud good morning, #perl6
timotimo greetings pm! 16:06
TimToady wonders when we'll get Rakudo Jar
pmichaud: o/
timotimo rakudo czar?
jnthn o/ pmichaud 16:07
dalek p: 9561e47 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (3 files):
Have P6int on JVM handle unsigned in compose.
p: f3ce73e | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (5 files):
Unsigned native int array support for JVM.

Means we can get buf8, utf8, buf16, utf16 types behaving on JVM.
PerlJam pmichaud: hey! o/
arnsholt Ooooh, unsigneds! 16:09
moritz masak: make modules-test
TimToady timotimo: rakudo czar would have to be a port to МК-61/52 or so 16:10
dalek kudo/nom: d50a0fc | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for unsinged int bufs on JVM.
16:11
ast: 55dc1ad | jnthn++ | S32-str/encode.t:
.encode unfudges for JVM.
jnthn arnsholt: Just the bits I needed for Buf for now :)
TimToady Rakudo JarJar 16:12
a port of Rakudo Starwars
pmichaud binks TimToady++ on the head.
TimToady shakes his head floppily
timotimo rakudo jarjar is the one nobody wants 16:13
so probably runs on cobol or something
TimToady it's the one everyone *wishes* was pining for the fjords
and of course, Rakudo Tar is the port to run on Bourne Shell plus standard Unix commands 16:14
timotimo that would be amazing
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 :-)
masak *nod* 16:16
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
I saw it on a graph, so it must be true! 16:18
moritz was the graph on the internet? :-) 16:19
TimToady Rakudo Car is the port to Lisp, obviously...
moritz and Rakudo Cdr its evil twin
TimToady the port to JS should maybe be Rakudo Var
masak .oO( put your cdrma in your carma ) 16:20
timotimo car is lisp, cdr is scheme? perhaps?
dalek p: 76820d4 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix readfh for Buf[uint8].
masak runs modules-test
TimToady what language is WoW programmed in? 16:21
arnsholt Mostly C++, I assume, with Lua for scripting
TimToady Rakudo War for them, I guess
16:22 ajr_ left
TimToady Rakudo Par for the golfers... 16:22
TimToady stops perseverating, for the moment 16:23
16:23 ajr joined, ajr is now known as Guest21513, Guest21513 left 16:25 Rix left, ajr_ joined
timotimo i'm personally excited for rakudotnet 16:25
16:25 ajr_ left
masak the jsonrpc module gives the Mu.bless warning. 16:27
overall, all tests are successful in the modules-test so far, but quite a lot of warnings, not just that one.
TimToady
.oO(Rakudo Sharp)
16:28
masak yep, all tests successful.
timotimo Raku.js
masak that concludes my RC0 testing, I believe.
TimToady .u sharp
yoleaux U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
U+1E9E LATIN CAPITAL LETTER SHARP S [Lu] (ẞ)
U+266F MUSIC SHARP SIGN [Sm] (♯)
moritz masak: bbkr_ has promised to update jsonrpc today-ish
16:29 ajr_ joined
moritz masak: so I'll wait until that's done, update the submodule, and release away 16:29
masak: thanks for testing
timotimo also, RakuDOS 16:30
bbkr_ hi. 2013.09 is building right now, JSON::RPC fix and tests will follow
TimToady notes that googling for C♯ is largly a feyl
*gely
so we should make them call C# "C octothorpe" or some such 16:31
GlitchMr duckduckgo.com/?q=C%E2%99%AF 16:33
It's not just Google.
At least it linked to C♯ (musical note). 16:34
Still, the language is called C#, not C♯, even when it's pronounced see sharp. 16:36
16:36 mtk joined 16:37 mtk left, Rix joined 16:38 mtk joined, ajr_ left 16:39 kaleem joined 16:40 mtk left
timotimo i pronounce it "clattenzaun" 16:41
16:41 mtk joined 16:42 ajr_ joined
ajr_ C# should be pronounced "C hash" 16:42
jnthn bah, now I want to start a .net open source project called Smoke# :P 16:43
16:44 mtk left 16:45 mtk joined 16:48 mtk left 16:49 mtk joined 16:51 mtk left
dalek p: ced8450 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Fix writefh on JVM to not emit trailing nullbytes.
16:53
16:53 dakkar left
FROGGS I always wanted to name something FOAM (something SOAPy) 16:55
16:57 mtk joined
TimToady .u #井⌗⧣#𐄹♯ 16:57
yoleaux U+0023 NUMBER SIGN [Po] (#)
U+2317 VIEWDATA SQUARE [So] (⌗)
U+266F MUSIC SHARP SIGN [Sm] (♯)
16:58 kaleem left
TimToady wow, my firefox knows aegean 16:58
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*
jnthn std: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) } 17:05
camelia std 7c17586: OUTPUT«===SORRY!===␤Unable to parse argument list at /tmp/aSmZ0W8nv6 line 1:␤------> multi method a( %t, *@l ) { foo⏏( -> $v { %t{$v} }, *@l ) }␤Couldn't find final ')'; gave up at /tmp/aSmZ0W8nv6 line 1:␤------> a( %t, *@l ) {…»
jnthn r: multi method a( %t, *@l ) { foo( -> $v { %t{$v} }, *@l ) }
camelia rakudo 153dae: OUTPUT«===SORRY!=== Error while compiling /tmp/b1vYdREClP␤Unable to parse expression in argument list; couldn't find final ')'␤at /tmp/b1vYdREClP:1␤------> a( %t, *@l ) { foo( -> $v { %t{$v} }, *⏏@l ) }␤ expecting any of:␤ …»
jnthn Rakudo seems to place the highwater mark better than STD here, somehow :)
TimToady huh 17:06
std: *@_
camelia std 7c17586: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/d7j_zlx6Kb line 1:␤------> *⏏@_␤ expecting any of:␤ POST␤ feed_separator␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤ postfix_prefix_meta_operator␤ postop␤
..statemen…»
jnthn (the problem being the *, when a | was most likely meant)
TimToady std: (*@_) 17:07
camelia std 7c17586: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/zoiQBHqgLp line 1:␤------> (*⏏@_)␤ expecting any of:␤ POST␤ infix or meta-infix␤ infixed function␤ postcircumfix␤ postfix␤ postfix_prefix_meta_operator␤ postop␤ statement
..modifier loo…»
TimToady std: sin(*@_)
camelia std 7c17586: OUTPUT«===SORRY!===␤Unable to parse argument list at /tmp/M2cmibmwEW line 1:␤------> sin⏏(*@_)␤Couldn't find final ')'; gave up at /tmp/M2cmibmwEW line 1:␤------> sin(*⏏@_)␤ expecting any of:␤ POST␤ infix or met…»
jnthn is looking at 119133 and thinking Rakudo did a decent job of pointing out where the problem was... :)
RT#119133 that is 17:08
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119133
TimToady n: sin(*@_) 17:10
camelia niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===␤␤Unable to parse argument list at /tmp/ErmiFAZ0XD line 1:␤------> sin(⏏*@_)␤Couldn't find final ')'; gave up at /tmp/ErmiFAZ0XD line 1:␤------> sin(*⏏@_)␤␤Parse failed␤␤…»
17:12 ajr_ left
bbkr_ moritz: JSON::RPC is now fixed and passes all tests 17:13
masak jnthn: agree.
dalek kudo/nom: 6336d4d | jnthn++ | src/core/IO.pm:
Fix double-open/close issues.
17:14
kudo/nom: ded7250 | jnthn++ | tools/build/NQP_REVISION:
Bump to get various binary IO fixes.
masak jnthn: in fact, the RT ticket is a bit unclear about what's wrong. the biggest clue is in the ticket title.
dalek ast: e9256d1 | jnthn++ | S32-io/s (2 files):
Some binary IO unfudges for JVM.
masak jnthn: but even that is misleading, as the parse error happens in the argument list, not in the method signature. 17:15
17:15 SamuraiJack joined
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
Which is all fine and stuff, but not worthy of an RT ticket. :)
Anyway, ticket rejected. 17:18
Down to 60 #?rakudo.jvm markers in the test suite 17:19
r: 42.fmt('%+d')
camelia ( no output )
jnthn r: say 42.fmt('%+d')
camelia rakudo 153dae: OUTPUT«+42␤»
jnthn hm, that seems to work on JVM too...why da fudge... 17:20
17:20 pernatiy left 17:22 zakharyas joined
FROGGS maybe forgot to unfudge after fixing it... 17:23
jnthn yeah
FROGGS should work this way for a while now
jnthn There is a genuine sprintf issue though
FROGGS ohh
jnthn advent2009-day16.t's fudges
If anybody who knows the sprintf stuff well wants to look 17:24
FROGGS is that about Hash.fmt?
FROGGS looks
dalek ast: 2f243cc | jnthn++ | integration/advent2009-day02.t:
Unskip a sprintf test JVM now passes.
jnthn FROGGS++
hoelzro is R* going out today? 17:26
dalek ast: 2511217 | jnthn++ | S02-magicals/env.t:
Unfudge a now-passing %*ENV test.
17:27
TimToady
.oO(R⽸)
jnthn r: constant grtz = 42; grtz = 23 17:30
camelia rakudo d50a0f: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/SW8hQyGbSi:1␤␤»
TimToady r: constant grtz = 42; my \grtz = 23;
camelia rakudo d50a0f: OUTPUT«===SORRY!=== Error while compiling /tmp/O0Uc8u15C7␤Redeclaration of symbol grtz␤at /tmp/O0Uc8u15C7:1␤------> constant grtz = 42; my \grtz = 23⏏;␤ expecting any of:␤ postfix␤»
jnthn r: 42 = 23 17:31
camelia rakudo d50a0f: OUTPUT«Cannot modify an immutable value␤ in block at /tmp/2j5S0JmzIG:1␤␤»
jnthn wonders why that comes out with null pointer exception on JVM...
oh, duh... 17:32
dalek kudo/nom: 1e238c8 | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
Fix thinko in error reporting.
17:35
17:37 sqirrel joined
dalek ast: edbad65 | jnthn++ | S (2 files):
Unfudge ro-assignment error tests for JVM.
17:38
[Coke] chrome 17:40
ww.
jnthn fail
[Coke]: Down to 52 JVM-specific skip/todo spread over 36 files. 17:41
[Coke] jnthn++ jnthn++
timotimo from how much? 17:42
[Coke] timotimo: that many: gist.github.com/coke/5879701
TimToady building Moose and nqp/jvm at the same time will peg a 2-core machine...
timotimo that's really not bad!
[Coke] 141 earlier today. 17:43
timotimo: plus the several thousand test failures.
timotimo jnthn always does amazing things
[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...
dalek ast: d7042ed | jnthn++ | S32-exceptions/misc.t:
Another un-skip from an earlier fix.
jnthn There's -1 off both of thsoe numbers :)
A handful of these, I don't think we're going to really fix until we move from Java strings to NFG. 17:45
TimToady yeah, jvm is gonna thing 𐄹 is two characters 17:46
diakopter .oO( surely there's something to parse to nfc already ... )
oh good, Normalizer
[Coke] java run just started, with an hour old roast.
jnthn ooh, I should probably eat something... 17:47
timotimo breakfast? :)
diakopter too
[Coke] vanishes in a puff of logic.
FROGGS rakudo-jvm$ ./perl6 -e 'sprintf "%3.6371897073027277s", "A"'
java.lang.StringIndexOutOfBoundsException: String index out of range: -443201331
timotimo [Coke]: it's cool to begin the run before everything new is in there 17:48
because the day after that you get another bump "for free" ;)
FROGGS rakudo-jvm$ ./perl6 -e 'say sprintf "%3.6371897073s", "A"'
A
jnthn shop & 17:52
TimToady $ ./perl6 -e 'say "𐄹".chars' 17:53
2
nr: say "𐄹".chars 17:54
FROGGS it should output: "2"
camelia rakudo d50a0f: OUTPUT«1␤»
..niecza v24-95-ga6d4c5f: OUTPUT«2␤»
TimToady 1 is correct :)
FROGGS I know :o)
TimToady lovely word, "should"
nr: say "2" but 1; 17:55
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤» 17:56
TimToady nr: say +("2" but 1);
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤»
TimToady eh?
nr: say +("2" but True);
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«2␤»
TimToady nr: say + ?("2" but True); 17:57
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
TimToady nr: say +?("2" but True);
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤»
17:59 odoacre joined 18:03 fhelmberger left
dalek ar: 99d66b0 | moritz++ | modules/jsonrpc:
Update module jsonrpc, bbkr++
18:04
arnsholt So, um, I decided to start writing a Python compiler in NQP (it seemed like a good idea at the time) 18:06
But I've run into some weirdness in the grammar. Anyone feel like contributing a pair of eyes?
diakopter ok.. :)
jnthn nr: say ("2" but 1).Int
camelia rakudo d50a0f, niecza v24-95-ga6d4c5f: OUTPUT«1␤» 18:07
jnthn TimToady: .Numeric is defiend directly on Str, I guess.
geekosaur .oO { Numeric is de fiend } 18:08
lizmat lichtkind: anything Perl related, with Perl 6 for bonus points ? 18:12
18:12 raiph joined
diakopter r: say ("2" but Positional).list.WHAT 18:14
camelia rakudo d50a0f: OUTPUT«(List)␤»
diakopter r: say ("2" but Positional).WHAT 18:15
camelia rakudo d50a0f: OUTPUT«(Str+{})␤»
perigrin Playful but Professional
18:19 _ilbot left 18:20 _ilbot joined
lichtkind lizmat: i submitted perl 6 roles (with moose part) for main track, because i think its interesting enough for all 18:20
lizmat: but i can repeat it in dev room as well 18:21
raiph arnsholt: link?
lizmat that would be cool, especially should your talk for the main room not be accepted
arnsholt raiph: github.com/arnsholt/nqpy
pmurias a python-on-QAST seems great 18:23
the python libraries should be more vm independent then the p5 ones as python seems to have more implementations
18:23 _ilbot left
arnsholt Well, a fair number of them rely on C extensions I think 18:24
18:24 _ilbot joined
dalek p: 61f2f50 | (Tobias Leich)++ | src/HLL/sprintf.nqp:
only substr to precision when needed
18:25
pmurias arnsholt: so much for my uninformed optimism :/
arnsholt: re weirdness in the grammar? anything I should look at? 18:27
dalek kudo/nom: f0b3edb | (Tobias Leich)++ | tools/build/NQP_REVISION:
bump nqp revision
arnsholt pmurias: try "if 1:\n\tnqp::say(1)" in a file
For some reason it doesn't parse the if correctly
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 ast: 0b22d96 | (Tobias Leich)++ | integration/advent2009-day16.t:
unfudge for rakudo.jvm
arnsholt Which is odd, since something like "nqp::say(1)" works fine 18:29
18:30 darutoko left
pmurias arnsholt: the Makefile is broken 18:32
TimToady how many of them count on a GIL?
(pylibs)
pmurias arnsholt: as I get a dependencies error after changing the grammar file 18:35
arnsholt pmurias: Oh, right. You need to make clean nqpy 18:36
nwc10 TimToady: I wonder if that question is going to be answered soon by other people, if PyPy's STM works out 18:37
18:37 _ilbot left, _ilbot joined 18:38 _ilbot left, _ilbot joined
arnsholt TimToady: No idea. Would be fun to know =) 18:39
18:39 Rotwang joined
pmurias arnsholt: I managed to fix the Makefile ;) 18:43
arnsholt: could I please have a commit bit to commit my fix? 18:44
arnsholt Sure. You're pmurias on GitHub too, right? 18:51
pmurias yes 18:52
arnsholt Commitbitted. 18:53
18:56 dmol joined
raiph arnsholt: irclog.perlgeek.de/perl6/2013-01-07#i_6306701 # might be easier ;) 19:10
arnsholt Hip hip Array? 19:13
arnsholt doesn't get it
FROGGS make an nqp::debugger and step through your problems :o)
pmurias found the first problem in the grammar 19:14
arnsholt Super! 19:15
Was it something silly? =)
perigrin improper noun declension at line 63
pmurias "Whitespace is ignored within square brackets"
in the synopsis spec for <[...]> 19:16
arnsholt Oh. 19:17
That might count as silly, yeah
lue hello world o/ 19:18
19:19 sqirrel left 19:22 dmol left 19:24 dmol joined 19:30 zwut00 joined
pmurias arnsholt: you might want to add dalek hooks to nqpy 19:31
hoelzro nqpy? 19:34
arnsholt I read the RaNIW course notes =)
And started writing a Python compiler
19:34 zwut00 left
diakopter arnsholt: did you look at pynie? 19:35
it has a .pg grammar
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.
moritz yes, I think pmichaud gave the whole indention-based parsing a deep thought 19:37
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
MARKER/MARKED was useful
Victory! 19:39
The if statement now parses
pmurias++ # Reading the specs
Wow, reading Grammar.pg from Pynie brings back memories 19:43
19:47 kay__ joined, kay_ left
dalek kudo/nom: 7e981ca | jnthn++ | src/core/List.pm:
Fix squish with :as to work on JVM.
19:47
19:48 zakharyas left
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.
lizmat: The JVM backend gets that right; Moar should as well.
lizmat: On Parrot they have coercier than they really should.
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...
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.
Routines have a kinda "compose time" a bit like classes.
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
dalek ast: 103d5ad | jnthn++ | S32-list/squish.t:
Unfudge some squish tests for JVM.
lizmat *thing
jnthn Oh, it's inside the trait_mod...
That should be early enough... 19:53
lizmat but it isn't
jnthn Hmmm.
lizmat I verified this by adding an extra ENTER in the sub with the trait, and then it works
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
?
It may just be an ordering problem. 19:54
lizmat tests that
19:55 raiph left 19:58 dmol left
lizmat Null PMC access in get_string() :-( 19:58
$ perl6 -e 'sub a { also is DEPRECATED("bar"); say "a" }; a' 19:59
$ perl6 -e 'sub a is DEPRECATED("bar") { say "a" }; a' 20:00
a
$ perl6 -e 'sub a is DEPRECATED("bar") { ENTER {}; say "a" }; a'
Sub 'a' has been deprecated, please use bar instead in any at -e:1
a
timotimo :|
arnsholt Maybe there's something wrong in the routine_def action? 20:01
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?
diakopter try END instead of ENTER
jnthn arnsholt: yeah, routine_def is suspect...moment... 20:03
lizmat not sure, $r at that moment is still incomplete
diakopter .wrap would be a runtime thing, not on the ast
jnthn yeah 20:04
finish_code_object happens before trait application.
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
jnthn And finish_code_object is what looks at what phasers we have and emits code to run them.
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
lizmat ok, let me try that
diakopter lizmat: maybe better to inject a state var so it runs only once?
lizmat that's what the once block is for 20:06
diakopter ah, I missed that
20:06 SamuraiJack left
jnthn I only worry what the effect may be on traits that wrap... 20:08
Hopefully, nothing.
lizmat we'll see, it appears to compile so far :-)
jnthn r: Duration.new(1) 20:09
camelia ( no output )
jnthn r: say Duration.new(1).WHAT
camelia rakudo f0b3ed: OUTPUT«(Duration)␤»
jnthn r: say Duration.new(1).Num.WHAT
camelia rakudo f0b3ed: OUTPUT«(Rat)␤»
jnthn wtf...
has Rat $.x = 0;
method Num(Duration:D:) { $!x } 20:10
d'oh!
20:10 raiph joined
jnthn And that's why sleep.t has JVM fudges.. :) 20:10
masak hah :) 20:13
dalek kudo/nom: ddf3222 | jnthn++ | src/core/Duration.pm:
Make Duration.Num actually Num.
20:14
lizmat ./perl6 --target=pir --output=lib/Test.pir lib/Test.pm
===SORRY!=== Error while compiling lib/Test.pm
Null PMC access in get_string()
dalek ast: afaa30d | jnthn++ | S29-context/sleep.t:
Unskip sleep-till test on JVM.
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 :-)
jnthn lizmat: At a guess, I think it may matter that they apply after the multi stuff. 20:16
47 #?rakudo.jvm in 32 files now 20:17
FROGGS: If you're up for another sprintf one, there's a single rakudo.jvm specific fudge in sprintf.t 20:18
r: my $num = 123.456789; say $num.round(1e-5) 20:19
20:19 kivutar joined
camelia rakudo 7e981c: OUTPUT«123.45679␤» 20:19
20:19 ksh left
jnthn grr, comes out as 123.45678999999998 on JVM... 20:20
diakopter r: my $num = 123.456789; say $num.round(-0)
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…»
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…»
jnthn r: (123.456789 / 1e-5 + 1/2).floor * 1e-5 20:22
camelia ( no output )
jnthn r: say (123.456789 / 1e-5 + 1/2).floor * 1e-5
camelia rakudo 7e981c: OUTPUT«123.45679␤»
20:22 ksh joined
jnthn r: say (1e-5 + 1/2).WHAT 20:23
camelia rakudo 7e981c: OUTPUT«(Num)␤»
jnthn oh, wait...
r: say (123.456789 / 1e-5).WHAT
camelia rakudo 7e981c: OUTPUT«(Num)␤»
jnthn r: say (123.456789 / 1e-5)
camelia rakudo 7e981c: OUTPUT«12345678.9␤»
jnthn r: say (123.456789 / 1e-5 + 1/2).floor 20:24
camelia rakudo 7e981c: OUTPUT«12345679␤»
jnthn It's consistent up to there; it's the final multiplication that gets it off on JVM. Hmmm. 20:25
.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 stevan_ left
jnthn hmm... is_run tests seem less reliable under the evalserver... 20:28
oh, no wonder... 20:29
my $fnbase = 'getout-';
$fnbase ~= $*PID // 1_000_000.rand.Int;
I guess $*PID is always the same under the eval server...
[Coke] jnthn: yes, it is. 20:31
jnthn Trying a spectest run with that fixed
diakopter moritz: so I was right... using the same file descriptor, ish :) 20:32
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
jnthn diakopter: Just file names, not even descriptors
dalek kudo/nom: 6ff75a5 | (Elizabeth Mattijsen)++ | src/core/ (4 files):
Simplify DEPRECATED / is DEPRECATED for now

Before, I was thinking of having sub DEPRECATED figure out what is was warning for, with using callframe(). But this proved to be very fragile. So instead, sub DEPRECATED now just gets the old and new name, and the "is DEPRECATED" trait adds a closure in the form of once block in an ENTER phaser for the routine. For this to work inside routines without explicit ENTER blocks, the time that "finish_code_object" in Actions.nqp is called, must be changed. But I'll leave that for tomorrow.
[Coke] jnthn: github.com/perl6/roast/blob/9f9626.../pid.t#L16
diakopter I know; hence the ish
jnthn [Coke]: That one always passes for me, though 20:34
[Coke] windows freak. :)
jnthn [Coke]: I think because is_run tests spawn a clean run, not an evalserver call.
[Coke] always fails for me.
jnthn Oh...
lizmat gets an early night for a change
gnight, #perl6!
[Coke] lizmat: ~~
jnthn 'night, lizmat++ 20:35
[Coke]: I wonder if that's 'cus another is_run using test happens around the same time...
[Coke] plausible, though I think I'm single threading when I run the tests.
(not sure. whatever test_summary.pl does by default)
crap. seeing a lot of aborts again. 20:37
I wonder if I should stop running with the eval server and just take the hit on time. :|
I may manually mixin a rakudo.jvm run against a later roast this evening and forget this run happened. 20:38
-> 20:39
jnthn [Coke]: Odd. I've been running the spectests all day against evalserver without issue... 20:40
It is eating a fair bit of memory, though
How do the aborts look?
20:40 iSlug joined
jnthn The really weird thing is that we got a good run on the 19th, and a bad one on the 20th 20:43
And bad since then
But all the commits on 19th/20th are just release engineering 20:44
Aside from the NQP_REVISION bump, I guess
20:45 iSlug left, btyler left
jnthn But nothing looks too likely in the range of NQP commits either. Hm. 20:47
20:49 btyler joined 20:56 iSlug joined 20:58 kaare_ left 20:59 genehack left 21:01 skids left 21:11 genehack joined, vk left
dalek ast: c84521b | jnthn++ | packages/Test/Util.pm:
Make is_run evalserver safer.

Before, two test files run in parallel could trample each other's files. This makes it highly unlikely they will.
21:14
21:20 SmokeMachine left, SmokeMac_ joined 21:24 alester left 21:26 raiph left 21:28 Rotwang left 21:29 donaldh joined, denis_boyun left 21:34 mtk left 21:35 PacoAir left, mtk joined 21:36 Mouq left
dalek ast: f7f2b55 | jnthn++ | S (4 files):
Untodo tests reliably passing after is_run fix.

Hopefully, these hold up on other platforms also.
21:37
jnthn 36 tests over 27 files now. Not bad. 21:39
21:43 [Sno] left, [Sno] joined, lowpro30 left
masak jnthn++ 21:44
21:52 zakharyas joined 21:55 kivutar left 21:56 pmurias left 21:58 mtk left
donaldh Hopefully got a little bit of speedup and a bit of memory saving on JVM 21:58
21:59 bruges_ joined, mtk joined
timotimo from what? 22:00
22:01 bruges left
jnthn donaldh: yay :) 22:02
donaldh: Am feeling optimistic we'll land the Rakudo Star on JVM for October :)
donaldh Eliminated the string join in JAST dump. Pass list of lines straight through to JASTToJVMBytecode 22:03
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) :)
donaldh and the HUGE string
diakopter *that's
jnthn In the end, we probably should walk the JAST tree and make bytecode from that... But this is a good step :)
donaldh agreed. Direct invocation of ASM via a native JVM binding would be nice to achieve :-) 22:05
Or, I guess pass JAST into Java code.
jnthn The latter is what I had in mind 22:06
It's what we do with MAST
diakopter O_O Java code in MoarVM *faints* 22:07
jnthn lol
I meant we give the data strcuture straight to the bytecode emitter. :)
donaldh makes sense :) 22:08
jnthn No intermediate string.
Or text
I want to at some point look into why QAST -> JAST is as time consuming as it is also.
donaldh Crude timings but overall rakudo build time is down to 7:17 from 7:48 22:09
which is a 6% gain or so
diakopter wonders if moarvm will take less than 1 min to build rakudo
22:10 mtk left
diakopter (and nqp) 22:10
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:11 zakharyas left
donaldh so it's taking patience and repeated measurements to home in on possible optimizations. 22:13
22:13 lichtkind left 22:14 mtk joined
masak jnthn: JIT will improve build time? 22:16
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 :)
donaldh only has 21% battery left.
jnthn masak: Imagine it hones in on common code in Cursor, common grammar rules, etc. 22:18
masak hmmm, yes.
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:19
diakopter well, opportunities can be much better identified at runtime sometimes 22:20
jnthn That feels...weird. :)
diakopter so you need the information then
especially when ... specializing
TimToady specialization is for insects... 22:21
--RAH
22:21 pmurias joined
masak TimToady: actually, the quote is more like "...specialization is for insects." :) 22:21
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
probably 90% of the hotcode paths are going to be consistent from one run to the next 22:23
22:24 jnap joined
TimToady give or take 50% 22:24
diakopter I fully intend to make sure a very smart inter-run compilation cache is created
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
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
)
TimToady JVM's slow start is not something we want to emulate in MoarVM :)
diakopter yeah but JIT is in a side thread 22:27
TimToady unless forced to...
pmurias diakopter: is there a JIT prototype for MoarVM?
jnthn MoarVM gets off to a fairly fast start interpreting, at least compared to anything else NQP runs on :)
diakopter
.oO( The JIT: "oh my, I keep getting killed before I can JIT anything" )
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." :)
jnthn pmurias: Not yet
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:29
pmurias: but those branches are extremely unsanctioned, as it were 22:30
timotimo TimToady: that would be pleasant
TimToady ah, "sanction", one of those lovely words that means opposite things
jnthn Here it probably means, "jnthn doesn't know about them yet" :) 22:31
diakopter yeah, that
pmurias why keep stuff in secret? 22:32
22:32 pmurias left, pmurias joined
TimToady so jnthn++ doesn't get a thundering apoplexy 22:32
pmurias heh
diakopter TimToady: well, here I used it to mean blessed/sanctified as opposed to encumbering with hardships 22:33
(great, now you'll tell me encumber is also backwards) ;)
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:35
"we must try really hard to imagine how jnthn would critique this.." 22:36
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:37
TimToady: dart2js emits code with checks like "if this argument is not a native javascript array go to slow version" 22:38
masak 'night, #perl6 22:39
TimToady well, hopefully that's hidden behind reprs for p6
\o 22:40
BenGoldberg rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; last }; }
camelia niecza v24-95-ga6d4c5f: OUTPUT«(timeout)» 22:41
..rakudo 6ff75a: OUTPUT«1␤»
jnthn Does that work without the last?
BenGoldberg rn: my @a = 1; for ( 2 ) { @a[^Inf] ==> map { .say; }; }
jnthn r: my @a = 1; say @a[^Inf]
I'm guessing it truncates the range...
camelia niecza v24-95-ga6d4c5f: OUTPUT«(timeout)»
..rakudo 6ff75a: OUTPUT«1␤»
rakudo 6ff75a: OUTPUT«1␤»
jnthn yay
22:42 raiph joined
TimToady r: my @a = 1; say @a[^1_000_000_000] 22:42
camelia rakudo 6ff75a: OUTPUT«(timeout)»
TimToady not-so-yay
BenGoldberg r: say ((^1_000_000_000).infinite) 22:43
camelia rakudo 6ff75a: OUTPUT«False␤»
BenGoldberg r: say ((^Inf).infinite)
camelia rakudo 6ff75a: OUTPUT«True␤»
22:44 colomon left 22:45 colomon joined
TimToady you'll note that S09:218 does not mention .infinite 22:45
synopsebot Link: perlcabal.org/syn/S09.html#line_218
BenGoldberg My guess is when we say @a[stuff], rakudo tests if stuff is .infinite, and if it's False, reifies all of stuff
Instead of reifiting the first @a.elems elments of stuff 22:46
dalek p: 7b02322 | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/JASTToJVMBytecode.java:
Let JASTToJVMBytecode work with a list of lines instead of a huge string.
p: 130c815 | (Donald Hunter)++ | src/vm/jvm/ (2 files):
Add variants of compilejast and compilejasttofile that accept array of strings.
p: f674b87 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files):
Update bootstrap with compilejast list ops.
perigrin WWJNTHNS
p: 6758068 | (Donald Hunter)++ | src/vm/jvm/ (2 files):
Use the new compilejast list ops.
p: c8351fe | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Use pre-sized ArrayList instead of LinkedList in compilejastlist
p: 14028a1 | (Donald Hunter)++ | src/vm/jvm/ (3 files):
Remove old string compilejast opcodes.
p: 02570f3 | (Donald Hunter)++ | src/vm/jvm/stage0/ (10 files):
New bootstrap for JAST to JVM optimization.
BenGoldberg Err, s/reifiting/reifying/ 22:47
jnthn Time for some rest... 'night, #perl6 22:50
BenGoldberg r: my @a = ^1_000_000_000; print @a
camelia rakudo 6ff75a: OUTPUT«(timeout)»
BenGoldberg r: my @a = ^Inf; say @a
camelia rakudo 6ff75a: OUTPUT«(timeout)» 22:51
22:52 donaldh left
BenGoldberg r: my @a := ^Inf; say @a 22:52
camelia rakudo 6ff75a: OUTPUT«0..^Inf␤»
22:53 zwut00 joined
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:55
r: my @a = ^Inf; say @a.gist 22:57
camelia rakudo 6ff75a: OUTPUT«(timeout)»
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␤»
BenGoldberg r: say 1..10;
camelia rakudo 6ff75a: OUTPUT«1..10␤»
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␤»
BenGoldberg r: my @a := 1..10; my @b = @a; shift @b; say @a; say @b;
camelia rakudo 6ff75a: OUTPUT«1..10␤2 3 4 5 6 7 8 9 10␤»
23:04 xinming left
diakopter perigrin: yes :) 23:04
23:06 xinming joined 23:07 iSlug left 23:12 leontopod joined 23:13 [Sno]_ joined 23:14 [Sno] left, [Sno]_ is now known as [Sno] 23:19 pmurias left 23:20 bluescreen10 left 23:29 jnap left 23:30 jnap joined 23:56 stevan_ joined, stevan_ left 23:57 stevan_ joined