»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
skids m: use nqp; sub a ( \a ) { 42.say }; a(Failure.new); 00:07
GLRelia rakudo-moar abf079: OUTPUT«42␤»
camelia rakudo-moar 93418e: OUTPUT«42␤»
skids m: use nqp; sub a ( \a ) { nqp::push(IterationBuffer.CREATE, a) }; a(Failure.new);
GLRelia rakudo-moar abf079: OUTPUT«Failed␤␤Actually thrown at:␤ in block <unit> at /tmp/ld6fgKt2jZ:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0NUwHX642A␤Undeclared name:␤ IterationBuffer used at line 1␤␤»
skids m: use nqp; my \a ::= Failure.new; nqp::push(IterationBuffer.CREATE, a);
GLRelia ( no output )
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0qXoexjqKO␤Undeclared name:␤ IterationBuffer used at line 1␤␤»
skids o.O I'm actually... stumped. 00:08
00:10 aborazmeh left 00:15 aborazmeh joined, aborazmeh left, aborazmeh joined 00:17 laouji joined, AlexDaniel joined 00:18 raiph joined, KCL_ joined
skids m: use nqp; sub a ( $a ) { nqp::push(IterationBuffer.CREATE, $a) }; a(Failure.new); # \o/ 00:18
GLRelia ( no output )
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tOB65fZEyi␤Undeclared name:␤ IterationBuffer used at line 1␤␤»
skids Failure + sigilless param + nqp:: op makes bad mojo. 00:19
raiph Mu does Numeric; # Cannot use 'does' operator with a type object. 00:20
The correct way to applies roles to type objects is at declaration time class GrassmannNumber does Numeric { ... }
Sorry, that's scrambled
"The correct way..." is from doc.perl6.org/type/X::Does::TypeObject 00:24
00:27 LordVorp left 00:29 aborazmeh left 00:31 aborazmeh joined, aborazmeh left, aborazmeh joined 00:39 laouji left, laouji joined 00:43 laouji left 00:44 laouji joined 00:46 bjz joined
TimToady .tell jnthn lists should just match literally, and we should have an explicit list pattern type, or extend regex to cover Positional matching 00:46
yoleaux TimToady: I'll pass your message to jnthn.
00:48 bjz left
timotimo oh, huh. i was going to do the weekly some time today, but suddenly it turned 3am 00:53
00:57 bjz joined 00:58 bjz left
dalek c: d494fbd | skids++ | lib/Type/X/Does/TypeObject.pod:
Fix and flesh out X::Does::TypeObject, raiph++
00:58
00:58 BenGoldberg joined
ugexe is there a way to show the normal failure message if --ll-exception is set? 01:00
01:02 AlexDaniel left, AlexDani` joined
ugexe i want to use --ll-exception so if a module is not found it exits non-zero, but i dont want to show the entire dump of --ll-exception 01:03
module not found while using Test.pm^ rather
skids ugexe: maybe a "use fatal" may catch a failure early? 01:25
01:40 cognominal left
skids Aha. It's just: 01:42
m: use nqp; sub a ( $a ) { return $a }; a(Failure.new);
GLRelia ( no output )
camelia ( no output )
skids m: use nqp; sub a ( a ) { return a }; a(Failure.new); 01:43
GLRelia rakudo-moar abf079: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xWmwPrWhkz␤Invalid typename 'a' in parameter declaration.␤at /tmp/xWmwPrWhkz:1␤------> 3use nqp; sub a ( a7⏏5 ) { return a }; a(Failure.new);␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MdqEarOBDs␤Invalid typename 'a' in parameter declaration.␤at /tmp/MdqEarOBDs:1␤------> 3use nqp; sub a ( a7⏏5 ) { return a }; a(Failure.new);␤»
skids oh
m: use nqp; sub a ( \a ) { return a }; a(Failure.new);
GLRelia rakudo-moar abf079: OUTPUT«Failed␤␤Actually thrown at:␤ in block <unit> at /tmp/H_mFUXaV37:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Failed␤␤Actually thrown at:␤ in block <unit> at /tmp/WZPf21pu3M:1␤␤»
01:44 llfourn joined, ilbot3 left 01:46 ilbot3 joined 01:49 llfourn left 01:58 dayangkun joined 02:16 cognominal joined, blackcat_ joined 02:20 KCL_ left
jnthn made it to Tokyo 02:22
yoleaux 00:46Z <TimToady> jnthn: lists should just match literally, and we should have an explicit list pattern type, or extend regex to cover Positional matching
skids o/ from the other side of the world 02:24
lizmat jnthn o/
jnthn is crazy tired because he was sleep deprived before the trip and can't sleep on planes 02:25
skids I won't bother you with my probably-nqp-or-optimizer problem now then :-)
jnthn No, don't :P 02:26
I did get upgraded to economy plus, which mean I had a power socket
So I wrote a little code...
TEttinger jnthn: maybe you'll dream about the GLR. Godzilla List Refactoring 02:27
02:28 noganex_ joined
dalek p: 87d8a61 | jnthn++ | src/vm/jvm/ (2 files):
Add new control exception types for JVM.

To support new async features in Perl 6.
02:30
p: d85cdc4 | jnthn++ | / (2 files):
Bump MOAR_REVISION; add new control exceptions.
02:31 noganex left
dalek kudo/nom: ec640d5 | jnthn++ | src/core/Proc/Async.pm:
Tweaks to avoid conflict with new supply syntax.
02:31
kudo/nom: f996bbf | jnthn++ | src/Perl6/ (2 files):
Stub in supply { ... } syntax.
kudo/nom: 5400fce | jnthn++ | src/Perl6/ (2 files):
Stub in whenever syntax.
kudo/nom: e838194 | jnthn++ | src/Perl6/ (2 files):
Stub in QUIT phaser.
kudo/nom: 207399e | jnthn++ | tools/build/NQP_REVISION:
Get NQP_REVISION with new control exceptions.
kudo/nom: fb20929 | jnthn++ | src/core/ (3 files):
Initial implementation of supply/whenever.

Already covers a good amount of the design laid out in my S17 gist, including LAST and QUIT phasers inside of whenever blocks, multiple whenever blocks, concurrency control, etc. Note that the emit and done control exception subs ended up as supply-emit and supply-done for now, since rather unfortunately the name 'done' is used in Test.pm. I guess S17 might win the keyword away from testing stuff, but for now this avoids any confusion.
kudo/nom: 7bf7457 | jnthn++ | t/spectest.data:
Run S17-supply/syntax.t.
02:32
kudo/nom: 1f15ace | jnthn++ | src/core/Promise.pm:
Implement Promise.Supply.
kudo/nom: 0e8fbd5 | jnthn++ | src/core/Supply.pm:
Coerce whenever expression to a Supply.

This means whenever $promise -> $result { } works.
kudo/nom: 7cda449 | jnthn++ | src/ (3 files):
Add tentative `react` block.

The supply block is great for processing stages, but you'll often have some kind of "top level" in an asynchronous application - or those new to the Perl 6 asynchronous features will want an easy way to play with things. Creating a Supply to immediately wait on it would thus be a really common pattern. `react { ... }` does that, warns on bogus emit usages, and throws any unhandled async exception in the react.
jnthn And that's all I managed on the plane ride :P
lizmat :-)
ShimmerFairy jnthn++ a "little" code
lizmat no wonder you didn't sleep
:-) 02:33
jnthn Oh, I basically never can on planes... :(
ShimmerFairy jnthn: my initial thought is that Test.pm should be doing its sub done {...} stuff in a phaser anyway :)
lizmat pulls and builds new goodies
skids Now there's an airdrop for ya. Or Air Supply. Ta dum dum. 02:34
jnthn gist.github.com/anonymous/6607717a5d201a9acf82 is a little run-my-tests-when-I-change-anything tool to show off the new features :)
ShimmerFairy jnthn: I like how $running-tests is basically a mutex (based on my limited concurrency knowledge), but you don't have to use a special mutex type or anything :) 02:38
02:42 skids left
jnthn Yeah, well, it's kinda time do drag async programming kicking and screaming into the structured programming era. :) 02:42
*to
ok, bed :)
o/
ShimmerFairy jnthn: I would agree. ♞ o/
lizmat hmmm... IO::Socket::Async now also hangs on nom? 02:45
ShimmerFairy The Async test has been failing for me for a while, at least 02:46
lizmat ShimmerFairy: failing, yes, but hanging ?
ShimmerFairy Not unless make spectest has a timeout for tests. 02:47
lizmat ah, there were two processes still running after I killed the spectest
2 version of the IO::Socket::Async test
killing them made the test pass 02:48
so it's a matter of a test not cleaning up after itself / not setting up a clean environment beforehand
ShimmerFairy Could that be the issue with the S17 lock test? I notice it has a tendency to fail on use of TEST_JOBS 02:49
lizmat no, that's a race / load condition, afaik
ShimmerFairy m: say :a{1=>2} 02:51
camelia rakudo-moar 93418e: OUTPUT«Unexpected named parameter 'a' passed␤ in block <unit> at /tmp/PNDnWAD1Q6:1␤␤»
GLRelia rakudo-moar abf079: OUTPUT«Unexpected named parameter 'a' passed␤ in block <unit> at /tmp/V5EQTspFCV:1␤␤»
ShimmerFairy S26 claims that's valid pair notation, but I don't think I've ever see anyone use it
m: say (:a{1=>2}) 02:52
camelia rakudo-moar 93418e: OUTPUT«a => 1 => 2␤»
GLRelia rakudo-moar abf079: OUTPUT«a => 1 => 2␤»
ShimmerFairy Nevermind, it was just pair/named conflation again e_e
02:52 llfourn joined 03:02 kaare_ joined 03:03 travis-ci joined
travis-ci Rakudo build errored. Jonathan Worthington 'Add tentative `react` block. 03:03
travis-ci.org/rakudo/rakudo/builds/76217175 github.com/rakudo/rakudo/compare/1...da449465b7
03:03 travis-ci left
lizmat something hanging 03:05
"No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself." 03:06
after the make test
and one make test fail
same as I see locally
03:10 aborazmeh left 03:15 mr-foobar left, grondilu joined 03:17 ingy left
dalek ast: 5787447 | lizmat++ | S (4 files):
Remove unneeded "done" to easy migration
03:18
03:19 xxx joined, ingy joined 03:24 mr-foobar joined 03:29 Brock is now known as awwaiid
awwaiid fancy feature demo thingie you got there jnthn! 03:31
03:36 jordman joined 03:40 laouji left 03:42 aborazmeh joined, aborazmeh left, aborazmeh joined 03:43 BenGoldberg left 03:54 khw left 03:56 Woodi left 03:57 Woodi joined 04:31 laouji joined
moritz good morning 04:44
lizmat moritz o/ 04:55
dalek kudo/nom: ad0f6f3 | lizmat++ | lib/Test.pm:
Deprecate done() for done-testing()

Since done() should only be called when you don't have a plan, and you should most definitely always have a plan, it feels right to de-huffmanize done() to make room for the new supply related done().
05:02
ast: f4f4af1 | lizmat++ | S32-trig/generate-tests.pl:
Use done-testing instead of done
05:05
ast: 04520b2 | lizmat++ | S32-trig/ (13 files):
Re-generated files with done-testing
ast: 5b4f138 | lizmat++ | S24-testing/6-done_testing.t:
Replace last 'done' with 'done-testing'

Roast should now be free of 'done' to indicate end of testing
05:07
05:07 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Deprecate done() for done-testing() 05:07
travis-ci.org/rakudo/rakudo/builds/76227430 github.com/rakudo/rakudo/compare/7...0f6f332ae3
05:07 travis-ci left
dalek kudo/nom: 83daf83 | lizmat++ | docs/ChangeLog:
Mention deprecation of Test's done()
05:09
ugexe github.com/rakudo/rakudo/blob/nom/...st.pm#L645 05:12
lizmat ugexe: good catch 05:14
05:16 xxx left 05:17 mr-foobar left
dalek kudo/nom: 5ad8122 | lizmat++ | lib/Test.pm:
Fix two 'done's missed, ugexe++
05:21
05:25 xxx joined 05:30 mr-foobar joined 05:32 mr-foobar left
ShimmerFairy lizmat: wait, done() was supposed to a plan-less done-testing() ? (and done-testing already existed?) 05:34
oh, I see now. I thought done() was something you're supposed to call at the end of the test, not an alternative to a plan. 05:36
lizmat you're supposed to call it if you don't have a plan 05:40
indeed
somehow it got cargo-culted that you needed a done() always
ShimmerFairy I just thought it was necessary for finishing up the test (clearing variables or something, I dunno) 05:41
05:42 Timbus joined
lizmat it gets done for you automatically if you have a plan 05:47
05:47 simcop2387 joined
ShimmerFairy At first I thought it'd be nice to expose role STD for the fact that it has a nice setup for error reporting in grammars, but I think it's too integrated with the src/Perl6 grammars. I still think it'd be nice if there were built-in features to have more useful parse errors, though. 05:47
moritz ShimmerFairy: agreed. The way forward is to develop those error reporting facilities in a module, and if it proves useful, integrate it into core 05:53
05:53 jack_rabbit joined
ShimmerFairy moritz: I'm on my way to making some as part of developing a part of the grammar out-of-core, so I feel like the module stage will be forming already :) 05:53
05:54 AlexDani` is now known as AlexDaniel
ShimmerFairy moritz: also, I notice that Rakudo's grammar errors (their backtraces, specifically) only go so far as the token/regex/rule declarator; they don't go inside the rule to point at the specific problem. I'm guessing that level of detail is hidden in NQP-land? 05:55
06:00 diana_olhovik_ joined
moritz ShimmerFairy: what do you mean by "they don't go inside the rule to point at the specific problem."? 06:01
ShimmerFairy moritz: here's part of one error I got earlier: 06:02
P6opaque: no such attribute '$!pos'
in regex block at Grammar.pm6:78
where line 78 had token block { 06:03
moritz ah
I thought you were talking about parse errors that a grammar generated
ShimmerFairy no, the {die "..."} statements I put in as a stopgap solution and so on work fine
moritz: I think I'll be running into more NQP/Perl6 boundary issues, since I have to do the unusual task of coding a parser as NQP-like as possible, but in Perl 6 because in NQP I wouldn't be able to get things like $*W 06:05
(unless I 'use'd the appropriate things from Perl6 and nqp-m knew where to find them, I suppose, but that feels like it would require some tricky maneuvering as well) 06:06
06:19 aborazmeh left 06:20 laouji left
lizmat m: BEGIN say $*W # ShimmerFairy: may be helpful to know that $*W is exposed at compile time 06:20
GLRelia rakudo-moar abf079: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DZJKTgSz8p␤An exception occurred while evaluating a BEGIN␤at /tmp/DZJKTgSz8p:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Method 'gist' not found for invocant of class 'Perl6::Wo…»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VNgC8M_zt0␤An exception occurred while evaluating a BEGIN␤at /tmp/VNgC8M_zt0:1␤Exception details:␤ 5===SORRY!5=== Error while compiling ␤ Method 'gist' not found for invocant of class 'Perl6::Wo…»
lizmat it's an NQP Perl6::World object without .gist :-) 06:21
ShimmerFairy lizmat: cool, that should make integration a bit nicer to plan for. :) (Though I still had that weird inability to do @foobar := nqp::list() , so I had to go for a P6-y solution to the method) 06:22
lizmat my $list := $nqp::list() # works fine afaik
ShimmerFairy lizmat: Also, I noticed that the components in a Slang.new() don't have .gists or anything. Granted, I _did_ have to pull some .^meth trickery to access those objects on their own, but still. 06:23
06:23 RabidGravy joined
moritz ShimmerFairy: NQP objects generally don't have .gist methods 06:23
ShimmerFairy moritz: I know, I'm just thinking that NQP objects that can be exposed in Perl 6 would ideally behave a bit nicer. The .^ trickery qualifier was because it's not exactly easy to find yourself with the Grammar object, so it's perhaps not that important anyway 06:24
06:25 laouji joined
ShimmerFairy m: use nqp; my @a := nqp::split(nqp::unbox_s(","), nqp::unbox_s("A,B")); # lizmat: I think this is what prevented me from going on with an NQP-like solution, that nqp::split() doesn't seem to want to play nice for some reason 06:26
GLRelia rakudo-moar abf079: OUTPUT«Type check failed in binding; expected 'Positional' but got 'List'␤ in block <unit> at /tmp/F4cubBkzSQ:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Parcel'␤ in block <unit> at /tmp/TKavRec0oV:1␤␤»
06:28 dayangkun left
moritz GLR question: I see the patttern "my \iterator = nqp::istype(thing, Iterable) ?? thing.iterator !! thing.list.iterator;" everywhere; maybe we want an op or a sub or so for that? 06:29
06:29 jkva joined
ShimmerFairy nqp::asiter if an op, perhaps? 06:30
lizmat perhaps an Any.iterator ? 06:31
moritz p6iter or p6iterator
masak morning, #perl6
ShimmerFairy yeah, as an op it should probably have p6 prefixed to it :)
o/
moritz lizmat: maybe, though that's a level of indirection that's harder to optimize
\o masak
masak welcome back, moritz
moritz takk :-) 06:32
06:32 laouji left
masak .oO( oh no, the Norwegians got to his speech center! ) 06:32
ShimmerFairy I'm able to bind the result of nqp::split to an array just fine in nqp. Does nqp::split do something different in Perl 6 that makes it difficult to use in a NQP-y way? 06:33
06:34 xinming left
moritz m: my @a := nqp::split('foo', 'o') 06:34
GLRelia rakudo-moar abf079: OUTPUT«===============================================================================␤The use of nqp::operations has been deprecated for non-CORE code. Please␤change your code to not use these non-portable functions. If you really want␤to keep using nqp:…»
camelia rakudo-moar 93418e: OUTPUT«===============================================================================␤The use of nqp::operations has been deprecated for non-CORE code. Please␤change your code to not use these non-portable functions. If you really want␤to keep using nqp:…»
moritz m: use NQP; my @a := nqp::split('foo', 'o')
GLRelia rakudo-moar abf079: OUTPUT«===SORRY!===␤Could not find NQP in any of:␤ file#/home/steve/.perl6/2015.07.1-329-g88e439c/lib␤ inst#/home/steve/.perl6/2015.07.1-329-g88e439c␤ file#/home/steve/sandbox/perl6/rakudo/install/share/perl6/lib␤ file#/home/steve/sandbox/perl6/raku…»
camelia rakudo-moar 93418e: OUTPUT«===SORRY!===␤Could not find NQP in any of:␤ file#/home/camelia/.perl6/2015.07.1-138-g93418e9/lib␤ inst#/home/camelia/.perl6/2015.07.1-138-g93418e9␤ file#/home/camelia/rakudo-inst-2/share/perl6/lib␤ file#/home/camelia/rakudo-inst-2/share/perl6…»
moritz m: use nqp; my @a := nqp::split('foo', 'o')
GLRelia rakudo-moar abf079: OUTPUT«Type check failed in binding; expected 'Positional' but got 'List'␤ in block <unit> at /tmp/Nh_1DESDLJ:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Parcel'␤ in block <unit> at /tmp/IFgA4I0DMF:1␤␤»
moritz m: say List ~~ Positional
GLRelia rakudo-moar abf079: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
moritz m: say Parcel ~~ Positional 06:35
camelia rakudo-moar 93418e: OUTPUT«True␤»
GLRelia rakudo-moar abf079: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TjK1ZjjMfZ␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at /tmp/TjK1ZjjMfZ:1␤------> 3say Parcel ~~7⏏5 Positional␤»
lizmat ShimmerFairy: github.com/perl6/nqp/blob/master/d...s.markdown may be of help?
06:36 xinming joined
lizmat sightseeing& 06:36
ShimmerFairy and once I managed to put the split result somewhere, I croaked on nqp::elems not working, so I had to give in and code a P6-based version of the method in question 06:37
06:38 laouji joined 06:39 domidumont joined
moritz m: my \list = nqp::split('foo', 'o'); say(nqp::elems(list)) 06:41
GLRelia rakudo-moar abf079: OUTPUT«===============================================================================␤The use of nqp::operations has been deprecated for non-CORE code. Please␤change your code to not use these non-portable functions. If you really want␤to keep using nqp:…»
camelia rakudo-moar 93418e: OUTPUT«===============================================================================␤The use of nqp::operations has been deprecated for non-CORE code. Please␤change your code to not use these non-portable functions. If you really want␤to keep using nqp:…»
moritz m: use nqp; my \list = nqp::split('foo', 'o'); say(nqp::elems(list))
camelia rakudo-moar 93418e: OUTPUT«1␤»
GLRelia rakudo-moar abf079: OUTPUT«1␤»
moritz m: use nqp; my \list = nqp::split('o', 'foo'); say(nqp::elems(list))
camelia rakudo-moar 93418e: OUTPUT«3␤»
GLRelia rakudo-moar abf079: OUTPUT«3␤»
ShimmerFairy ok, I'll try using \sigilless and see how that goes 06:43
06:43 domidumont left 06:44 domidumont joined
ShimmerFairy thanks moritz :) I guess the Scalar container on $var variables was getting in the way, when doing $a = nqp::split. And apparently $a := works too, so it was probably just too late last night for me to make much sense of stuff :) 06:46
06:47 xfix joined
ShimmerFairy (I also wasn't returning a cursor like I needed to, so before I figured that out I think the error related to that made me think $a := failed) 06:47
06:47 laouji left 06:50 laouji joined 06:51 dayangkun joined 06:52 laouji left 06:53 simcop2387 left, laouji joined
nine m: ((1,2,3),(1,2),(1,2)).unique(:with({warn $^a.perl; warn $^b.perl; True})) 06:55
camelia rakudo-moar 93418e: OUTPUT«$(1, 2) in block at /tmp/fwIkJ33h0a:1␤1 in block at /tmp/fwIkJ33h0a:1␤$(1, 2) in block at /tmp/fwIkJ33h0a:1␤1 in block at /tmp/fwIkJ33h0a:1␤»
GLRelia rakudo-moar abf079: OUTPUT«$(1, 2) in block at /tmp/l9Ki3MUvOQ:1␤1 in block at /tmp/l9Ki3MUvOQ:1␤$(1, 2) in block at /tmp/l9Ki3MUvOQ:1␤1 in block at /tmp/l9Ki3MUvOQ:1␤»
06:55 simcop2387 joined
nine m: say ((1,2,3),(1,2),(1,2)).unique) 06:56
GLRelia rakudo-moar abf079: OUTPUT«5===SORRY!5=== Error while compiling /tmp/asna45Gmj0␤Unexpected closing bracket␤at /tmp/asna45Gmj0:1␤------> 3say ((1,2,3),(1,2),(1,2)).unique7⏏5)␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1t1IqlBhGy␤Unexpected closing bracket␤at /tmp/1t1IqlBhGy:1␤------> 3say ((1,2,3),(1,2),(1,2)).unique7⏏5)␤»
nine m: say ((1,2,3),(1,2),(1,2)).unique
GLRelia rakudo-moar abf079: OUTPUT«1 2 3 1 2 1 2␤»
camelia rakudo-moar 93418e: OUTPUT«1 2 3 1 2␤»
06:56 rurban joined, laouji left 06:57 laouji joined
moritz m: say ((1,2,3),(1,2),(1,2)).unique.perl 06:58
GLRelia rakudo-moar abf079: OUTPUT«((1, 2, 3), (1, 2), (1, 2)).iterator␤»
camelia rakudo-moar 93418e: OUTPUT«((1, 2, 3), (1, 2))␤»
nine The warn output doesn't make sense even on nom, but the result at least is correct. I just have no idea how it can be.
moritz m: say (1, 2) === (1, 2)
GLRelia rakudo-moar abf079: OUTPUT«False␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
nine m: ((1,2,3),(1,2),(1,2)).unique(:with({warn $^a.perl; warn $^b.perl; $^a eqv $^b})) 06:59
GLRelia rakudo-moar abf079: OUTPUT«$(1, 2) in block at /tmp/I574I6Wxyh:1␤1 in block at /tmp/I574I6Wxyh:1␤$(1, 2) in block at /tmp/I574I6Wxyh:1␤2 in block at /tmp/I574I6Wxyh:1␤$(1, 2) in block at /tmp/I574I6Wxyh:1␤3 in block at /tmp/I574I6Wxyh:1␤$(1, 2) in block at …»
camelia rakudo-moar 93418e: OUTPUT«$(1, 2) in block at /tmp/URwNQO3jeB:1␤1 in block at /tmp/URwNQO3jeB:1␤$(1, 2) in block at /tmp/URwNQO3jeB:1␤2 in block at /tmp/URwNQO3jeB:1␤$(1, 2) in block at /tmp/URwNQO3jeB:1␤3 in block at /tmp/URwNQO3jeB:1␤$(1, 2) in block at …»
moritz m: say (1, 2).^name
GLRelia rakudo-moar abf079: OUTPUT«List␤»
camelia rakudo-moar 93418e: OUTPUT«Parcel␤»
moritz m: say (1, 2) eqv (1, 2)
GLRelia rakudo-moar abf079: OUTPUT«True␤»
camelia rakudo-moar 93418e: OUTPUT«True␤»
nine m: ((1,2,3),(1,2),(1,2)).unique(:with({note $^a.perl; note $^b.perl; $^a eqv $^b}))
GLRelia rakudo-moar abf079: OUTPUT«$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤»
camelia rakudo-moar 93418e: OUTPUT«$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤»
nine m: say ((1,2,3),(1,2),(1,2)).unique(:with({note $^a.perl; note $^b.perl; $^a eqv $^b})) 07:00
camelia rakudo-moar 93418e: OUTPUT«$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤1 2 3 1 2 1 2␤»
GLRelia rakudo-moar abf079: OUTPUT«$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤$(1, 2)␤3␤$(1, 2)␤1␤$(1, 2)␤2␤1 2 3 1 2 1 2␤»
07:00 abraxxa joined
nine m: say <a b b c b d>.unique(:with({note $^a.perl; note $^b.perl; $^a eqv $^b})) 07:00
GLRelia rakudo-moar abf079: OUTPUT«"b"␤"a"␤"b"␤"a"␤"b"␤"b"␤"c"␤"a"␤"c"␤"b"␤"b"␤"a"␤"b"␤"b"␤"d"␤"a"␤"d"␤"b"␤"d"␤"c"␤a b c d␤»
camelia rakudo-moar 93418e: OUTPUT«"b"␤"a"␤"b"␤"a"␤"b"␤"b"␤"c"␤"a"␤"c"␤"b"␤"b"␤"a"␤"b"␤"b"␤"d"␤"a"␤"d"␤"b"␤"d"␤"c"␤a b c d␤»
nine So $^b should indeed be set to an element of the list. It just doesn't work for Lists neither in glr nor in nom. 07:01
m: my @seen; my $target := (1, 2); @seen.push($target); say @seen.perl; 07:07
GLRelia rakudo-moar abf079: OUTPUT«[1, 2]␤»
camelia rakudo-moar 93418e: OUTPUT«[1, 2]<>␤»
nine That's the underlying issue
07:14 luiz_lha left
moritz the GLR output seems saner to me 07:16
dalek kudo/glr: 4bcdf98 | (Stefan Seifert)++ | src/core/Any-iterable-methods.pm:
Fix unique(:with({})) on lists of Lists

In "((1, 2), (1, 2)).unique(:with($^a eqv $^b))" $^b was set to the numbers contained in the lists instead of the lists themselves due to missing itemization when pushing into the @seen array.
nine As usual, a rather trivial fix, but quite time consuming to find it. 07:17
ShimmerFairy m: my $*X = BEGIN $*W; say $*X.defined
GLRelia rakudo-moar abf079: OUTPUT«1␤»
camelia rakudo-moar 93418e: OUTPUT«1␤»
ShimmerFairy m: my $*W = BEGIN $*W; say $*W.defined
GLRelia rakudo-moar abf079: OUTPUT«1␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TZRTCoR0QF␤Cannot use variable $*W in declaration to initialize itself␤at /tmp/TZRTCoR0QF:1␤------> 3my $*W = BEGIN $*7⏏5W; say $*W.defined␤ expecting any of:␤ term␤»
ShimmerFairy ^ I feel like that paranoid error is a bug here
nine Well this time, on the way I unbusted SEQUENCE some more just to be able to run first.t (which passes) just to find out that first is not the source of the problem ;)
07:18 zakharyas joined
ShimmerFairy (and as GLRelia shows, it's fine in this instance, since no list structures are involved ☺) 07:19
dalek ast/glr: 5bb3591 | (Stefan Seifert)++ | S32-list/unique.t:
Adapt new GLR semantics in unique.t

As unique now returns a Seq instead of a List, we have to Listify it, before we can directly compare it to a List with is-deeply.
Need to use :with and eqv for the flattening test because (1, 2) === (1, 2) is no longer True.
07:20 darutoko joined
nine And another test file passing. 07:20
ShimmerFairy m: my $a = 1; { my $a = $a + 1; say $a; }; say $a;
GLRelia rakudo-moar abf079: OUTPUT«Use of uninitialized value of type Any in numeric context in block at /tmp/jk3Tp_owyd:1␤1␤1␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hUIjA_WT7f␤Cannot use variable $a in declaration to initialize itself␤at /tmp/hUIjA_WT7f:1␤------> 3my $a = 1; { my $a = $7⏏5a + 1; say $a; }; say $a;␤ expecting any of:␤ term␤»
07:20 telex left
ShimmerFairy m: our $a = 1; { my $a = $a + 1; say $a; }; say $a; 07:21
GLRelia rakudo-moar abf079: OUTPUT«Use of uninitialized value of type Any in numeric context in block at /tmp/q0yeI1fWmL:1␤1␤1␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wAen9aRZhf␤Cannot use variable $a in declaration to initialize itself␤at /tmp/wAen9aRZhf:1␤------> 3our $a = 1; { my $a = $7⏏5a + 1; say $a; }; say $a;␤ expecting any of:␤ term␤»
07:22 telex joined 07:35 espadrine joined 07:40 laouji left 07:42 laouji joined
nine m: ((1,2,3), (1,2), (1,2)).unique(:with(&[eqv])).perl.say 07:49
GLRelia rakudo-moar 4bcdf9: OUTPUT«((1, 2, 3), (1, 2)).iterator␤»
camelia rakudo-moar 93418e: OUTPUT«((1, 2, 3), (1, 2), (1, 2))␤»
nine m: ((1,2,3), (1,2), (1,2)).unique.perl.say 07:50
camelia rakudo-moar 93418e: OUTPUT«((1, 2, 3), (1, 2))␤»
GLRelia rakudo-moar 4bcdf9: OUTPUT«((1, 2, 3), (1, 2), (1, 2)).iterator␤»
nine One works on nom, one on glr. I think that's a fair exchange ;)
DrForr Parsing stage much faster on my build today, nice. 07:54
ShimmerFairy m: "abc" ~~ /abc/; say $/.WHAT; say $/.^attributes; 07:58
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Match)␤Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/qciGKbrEki:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«(Match)␤Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/Pqd0PPahvi:1␤␤»
07:59 diana_olhovik_ left
ShimmerFairy AFAIK, that BOOTSTRAPATTR should be an Attribute post-bootstrap 07:59
07:59 diana_olhovik joined
RabidGravy yeah, I was wondering about that the other day, then put it aside as I couldn't fix it right then 08:01
ShimmerFairy m: "abc" ~~ /abc/; say $/.WHAT; for $/.^attributes { say $_ }
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Match)␤Mu $!orig␤int $!from␤int $!to␤Mu $!CURSOR␤Mu $!made␤Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/YpDkMZVwpn:1␤␤»
camelia rakudo-moar 93418e: OUTPUT«(Match)␤Mu $!orig␤int $!from␤int $!to␤Mu $!CURSOR␤Mu $!made␤Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤ in block <unit> at /tmp/opHhQLJxTB:1␤␤»
ShimmerFairy looks like there's one attribute specifically that's not getting converted
m: "abc" ~~ /abc/; say $/.WHAT; for $/.^attributes { say $_.^name } 08:02
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Match)␤Attribute␤Attribute␤Attribute␤Attribute␤Attribute␤BOOTSTRAPATTR␤BOOTSTRAPATTR␤»
camelia rakudo-moar 93418e: OUTPUT«(Match)␤Attribute␤Attribute␤Attribute␤Attribute␤Attribute␤BOOTSTRAPATTR␤BOOTSTRAPATTR␤»
ShimmerFairy two attributes, specifically :)
RabidGravy (it wasn't Match that I noticed it with though) 08:03
ShimmerFairy m: my $a = \(1,2); say $a.WHAT; say $a.^attributes.map: *.^name 08:05
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Capture)␤BOOTSTRAPATTR BOOTSTRAPATTR␤»
camelia rakudo-moar 93418e: OUTPUT«(Capture)␤BOOTSTRAPATTR BOOTSTRAPATTR␤»
ShimmerFairy RabidGravy: in my case, it seems the problem lies with Capture
RabidGravy it might have been Capture or something in that vicinity
ShimmerFairy m: my $attr = Complex.^attributes[0]; say $attr.WHAT; say $attr.^attributes.map: *.^name 08:07
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Attribute)␤BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR␤»
camelia rakudo-moar 93418e: OUTPUT«(Attribute)␤BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR BOOTSTRAPATTR␤»
ShimmerFairy RabidGravy: I think the issue may be that private attributes that are in BOOTSTRAP but not defined in the class itself in src/core
RabidGravy anyhow off to get the car serviced. Have fun and play nicely. 08:09
ShimmerFairy m: say Cursor.^attributes[0].WHAT 08:10
GLRelia rakudo-moar 4bcdf9: OUTPUT«(Attribute)␤»
camelia rakudo-moar 93418e: OUTPUT«(Attribute)␤»
ShimmerFairy the other attributes in Cursor are from an NQP class, and thus NQPAttributes.
So I think the issue is bootstrapped private attributes. I don't know if you can redeclare them in src/core (since the 'has' declarations for them are there, but commented out, for documentation purposes I assume) 08:11
08:14 RabidGravy left 08:18 g4 joined
TimToady et al. in Tokyo now 08:19
ShimmerFairy o/ TimToady et al. :) 08:21
moritz \o 08:23
FROGGS o/ 08:26
08:30 laouji left
moritz is there an easy-ish entry point for helping with GLR stuff? 08:34
FROGGS moritz: I understand it as: run the spectest, and fix the fallout 08:35
though, I've not tested it yet
08:36 Ven joined
nine moritz: github.com/perl6/roast/commit/5bb3591b54 is a good example for easy fixes 08:42
moritz nine: thanks 08:44
nine: does perlpunks.de/paste/show/55d441e1.1ac1.1c look vaguely sane to you?
nine moritz: we also often need to explicitly flatten like in: github.com/perl6/roast/commit/1ac5...8759c94287 08:45
moritz nine: does that really need both flat *and* @(...) ? 08:46
nine moritz: oh yes, absolutely! 08:47
moritz: no, I removed the @(...) in the next commit :)
moritz :-) 08:48
dalek kudo/glr: 7b4392b | moritz++ | src/core/List.pm:
Eliminate .gimme usage from infix:<X>
nine moritz: I mean your past looks absolutely sane
\o/
08:50 virtualsue joined
Ven o/, #perl6 08:51
nine Wow, jnthn++ must have been quite exhausted already. Just found the 4th bug in POSITIONS 08:53
m: (0,1,1) >>+<< (0,0,1) 08:55
camelia ( no output )
GLRelia ( no output )
nine m: say ( (0,1,1) >>+<< (0,0,1) ) 08:56
GLRelia rakudo-moar 7b4392: OUTPUT«0 1 2␤»
camelia rakudo-moar 93418e: OUTPUT«0 1 2␤»
nine m: say ( (0,1,1) >>+<< (0,0,1) ).perl
camelia rakudo-moar 93418e: OUTPUT«(0, 1, 2)␤»
GLRelia rakudo-moar 7b4392: OUTPUT«((0, 1, 2).iterator)␤»
JimmyZ m: [1,2] ~~ [1,1]
GLRelia ( no output )
camelia ( no output )
JimmyZ m: say [1,2] ~~ [1,1] 08:57
GLRelia rakudo-moar 7b4392: OUTPUT«False␤»
camelia rakudo-moar 93418e: OUTPUT«False␤»
moritz looks like slice.t is loop in the GLR branch 09:00
nine moritz: that's why I'm working on POSITIONS 09:01
moritz nine: ah, good
I'm trying to remove a few more uses of .gimme
nine Already have a fix for that and a couple other issues. Only is((3,7,9), [@array[(0,1,1) >>+<< (0,0,1)]] is still failing
09:04 jkva left 09:10 rindolf joined, laouji joined 09:11 espadrine left
dalek kudo/glr: 2f5c4ed | (Stefan Seifert)++ | / (3 files):
Fix slice indexing with lazy lists

Fixes the hang in @a[0...*] and makes it return useful results. Fixes all slice.t tests but @array[(0,1,1) >>+<< (0,0,1)]. That one I think is due to a bug in the hyper operator itself, not in POSITIONS.
09:12
09:17 GLRelia left
nine 223/1047 spec test files failing 09:17
09:17 GLRelia joined 09:19 llfourn left
jnthn nine: I was pretty tired when working on POSITIONS, but also the thing my simpler re-impl replaced was incredibly hairy 09:20
nine: So I had a really hard time figuring out what it did/didn't handle in the first place
dalek kudo/glr: e9911c0 | moritz++ | src/core/metaops.pm:
Remove two more uses of .gimme(1)

Compiles, but does not cause more spectest passes
09:21 Ven left
nine jnthn: no worry, that's all past now :) 09:22
dalek ast/glr: 10a78d9 | moritz++ | S32-list/roll.t:
Fix a type error in roll.t
09:24
jnthn nine++ 09:25
jnthn wonders how we're still managing to fail more than 200... :)
moritz m: say (1..5).list.roll(*).infinite.perl
camelia rakudo-moar 93418e: OUTPUT«Bool::True␤»
GLRelia rakudo-moar 2f5c4e: OUTPUT«Nil␤»
moritz m: say (1..5).list.roll(*).^name 09:26
camelia rakudo-moar 93418e: OUTPUT«List␤»
GLRelia rakudo-moar 2f5c4e: OUTPUT«Seq␤»
jnthn .infinite is almost certainly going away
moritz jnthn: yes, I'm trying to figure out how to replace the test
ok <a b c d>.roll(*).infinite, 'roll(*) knows itself to be infinite';
jnthn I think .is-lazy is what lizmat called The New Thing
moritz takk
jnthn But I don't know if .is-lazy is implemented on Seq yet
09:27 TEttinger left
jnthn But if not, it's really easy to do: just asking the $!iterator if it demands lazy evaluation :) 09:27
moritz I'll look into it.
jnthn fwiw, "lazy" is how you mark something as needing lazy evaluation, and is the answer to the "how do we mark something infinite" question we've lon ghad 09:28
*long
09:28 rurban_ joined
jnthn m: my @a = 1, 2, 3; my @b = lazy @a; @a[0] = 42; say @b; 09:28
GLRelia rakudo-moar e9911c: OUTPUT«...␤»
camelia rakudo-moar 93418e: OUTPUT«1 2 3␤»
moritz what should Seq.is-lazy do if $!iterator is undefined? throw a X::Seq::Consumed?
jnthn uh
m: my @a = 1, 2, 3; my @b = lazy @a; @a[0] = 42; say @b.perl 09:29
camelia rakudo-moar 93418e: OUTPUT«[1, 2, 3]<>␤»
GLRelia rakudo-moar e9911c: OUTPUT«[...]␤»
jnthn wtf, I thought that worked before
m: my @a = 1, 2, 3; my @b = lazy @a; @a[0] = 42; say @b[^3]
camelia rakudo-moar 93418e: OUTPUT«1 2 3␤»
GLRelia rakudo-moar e9911c: OUTPUT«42 2 3␤»
jnthn Anyway, that's what I was after
moritz: Yes
moritz: Well, if $!iterator is gone but the memoized list is there, you could ask that I ugess 09:30
*guess
+ my \list = @values.reverse;
+ my $result := list.pull-one;
You can't pull-one a list 09:31
You need my \iter = list.iterator; ... iter.pull-one;
_itz_ nqp-m: say(1+3)
camelia nqp-moarvm: OUTPUT«4␤»
GLRelia nqp-moarvm: OUTPUT«4␤»
moritz jnthn: and I guess I should find a way to test it :-)
jnthn: is this good practise, making iterators out of already reified lists? 09:32
09:32 GLRelia left, GLRelia joined
jnthn moritz: Well, your alternative is to go indexing... 09:32
_itz_ nqp-m: say(1+3)
camelia nqp-moarvm: OUTPUT«4␤»
jnthn moritz: It's not really a bad thing to do, though 09:33
moritz jnthn: ok
jnthn moritz: After all, that's what for @reified-list { } does :)
_itz_ m: say 1+3
camelia rakudo-moar 93418e: OUTPUT«4␤»
GLRelia rakudo-moar e9911c: OUTPUT«4␤»
09:37 llfourn joined, espadrine joined 09:38 AlexDaniel left
dalek albot: f5b8bcf | (Steve Mynott)++ | run.sh:
ulimit options are bash specific. Fix when user shell isn't bash
09:38
albot: 5c45df6 | moritz++ | run.sh:
Merge pull request #7 from stmuk/master

ulimit options are bash specific. Fix when user shell isn't bash.
moritz jnthn: there seem to be methods 'is-lazy' and 'lazy'; is that intentional? 09:39
jnthn moritz: Heh, it's confusing as heck by now I think 09:41
moritz: .lazy on *Iterable* is a contextualizer
moritz .lazy on Iterator seems to be Boolean 09:42
jnthn moritz: But .lazy on *Iterator* is an introspection method that does what .is-lazy does elsewhere :)
moritz jnthn: so, should I rename .lazy on Iterator to .is-lazy?
jnthn I suspect the one on Iterator wants to change to is-lazy
moritz ok 09:43
jnthn Yeah, but you'll need to hunt down the various places that need updating :)
09:44 cognominal left 09:48 leont joined 09:55 rindolf left, laouji left, laouji_ joined 10:07 laouji_ left 10:08 jack_rabbit left 10:09 jack_rabbit joined 10:10 skids joined 10:17 abraxxa left, abraxxa joined 10:21 skids left
dalek kudo/glr: 52bf81a | moritz++ | src/core/ (7 files):
Rename Iterator.lazy to is-lazy

previously, .lazy on Iterator was introspection, while .lazy on Iterable was coercive; now is-lazy is always introspection, and .lazy always coercion
10:28
10:29 magistr joined
magistr perl 6 is too awful as perl 10:30
tadzik where's hugme when we need it? 10:31
moritz hugs magistr
tadzik: probably died during the feather -> hack transition
10:32 rurban left
tadzik good thing you were there to fill in the blanks :) 10:32
magistr scriptshitting 10:33
moritz magistr: is there anything we can do to brighten your day? make some fun puns for you, maybe?
DrForr magistr: Sorry you feel that way, what do you find ugly?
tadzik did you know that according to popular belief polar bears are *not* left handed?
so many of my github descriptions are wrong now 10:34
10:34 breinbaas joined
_itz_ doesn't it depend on *which* pole they live at? 10:36
10:37 magistr left
DrForr "Hug an engineer. They won't like it, but do it anyway." 10:37
10:41 skids joined
dalek kudo/glr: a343c2f | moritz++ | src/core/List.pm:
Produce a known-lazy Seq from List.roll(*)
10:48
ast/glr: 3a2d1df | moritz++ | S32-list/reverse.t:
reverse.t: Do not use isa-ok with a role
10:50
ast/glr: c5d9603 | moritz++ | S32-list/roll.t:
roll.t: s/infinite/is-lazy/; relax return type check to Iterable
moritz two more passing test files; yay! 10:51
m: my %h = a => 42, b => 666; 10:53
camelia ( no output )
GLRelia ( no output )
moritz m: my %h = a => 42, b => 666; say "value = %h{*}"
camelia rakudo-moar 93418e: OUTPUT«value = 42 666␤»
GLRelia rakudo-moar a343c2: OUTPUT«Use of uninitialized value %h of type Any in string context in block <unit> at /tmp/mauMJUNQEa:1␤value = ␤»
dalek ast/glr: 8a3fb80 | moritz++ | integration/advent2014-day13.t:
Simply test case a wee bit
10:59 rurban joined 11:02 skids left 11:05 laouji joined 11:23 xinming left 11:32 laouji left
_itz_ m: my @s = [1,2,3,4]; my $foo = @s[0..1, 2..4].join; warn $foo.perl; 11:33
camelia rakudo-moar 93418e: OUTPUT«Use of uninitialized value @s of type Any in string context in block <unit> at /tmp/xAvKyGHDf9:1␤Use of uninitialized value @s of type Any in string context in block <unit> at /tmp/xAvKyGHDf9:1␤Use of uninitialized value @s of type Any in string cont…»
GLRelia rakudo-moar a343c2: OUTPUT«"1 23 4" in block <unit> at /tmp/LXVa5HhZRo:1␤»
_itz_ the behaviour of that has changed in GLR (breaking a zef test). Output a day or two back was 1234
11:34 virtualsue left 11:38 FROGGS_ joined
_itz_ it returned 1234 in 2015.07.1-350-gabf079b 11:41
or later
moritz m: my @a = 1, 2; my $s = @a; for $s { say "oh hai" } 11:42
camelia rakudo-moar 93418e: OUTPUT«oh hai␤»
GLRelia rakudo-moar a343c2: OUTPUT«oh hai␤oh hai␤»
11:42 FROGGS left
moritz is this intentional? 11:43
nine moritz: I think thats because of the single arg rule 11:44
moritz m: my @a = 1, 2; my $s = @a; for $s, 2 { say "oh hai" }
camelia rakudo-moar 93418e: OUTPUT«oh hai␤oh hai␤»
GLRelia rakudo-moar a343c2: OUTPUT«oh hai␤oh hai␤»
masak should look into this GLR thing 11:51
moritz m: my @a = 1, 2; my $s = @a; for (), $s { say "oh hai" } 11:54
camelia rakudo-moar 93418e: OUTPUT«oh hai␤oh hai␤»
GLRelia rakudo-moar a343c2: OUTPUT«oh hai␤oh hai␤»
moritz m: my @a = 1, 2; my $s = @a; for Empty, $s { say "oh hai" }
camelia rakudo-moar 93418e: OUTPUT«oh hai␤»
GLRelia rakudo-moar a343c2: OUTPUT«oh hai␤»
11:55 skids joined, magistr joined
magistr perdl 11:55
moritz hugs magistr again 11:56
masak magistr: hi! you expressed some dissatisfaction before?
dalek ast/glr: c71b678 | moritz++ | integration/advent2011-day16.t:
Fix advent2011-day16.t

also add a test for the spirit of the original test
11:57
11:57 dayangkun left
nine If you were the >> << operator, where would I find your code? 11:57
masak magistr: have you downloaded Rakudo? it's pretty sweet.
magistr async IO it is overhead to a sriptshitting languages
11:58 xinming joined
jdv79 what is this sinle arg rule thats oft referred to? 11:59
11:59 abraxxa left, abraxxa joined
jdv79 also, what is scriptshitting. sounds dirty. 12:00
moritz jdv79: seems to me that a single argument bound to a positional or slurpy flattens out, even if it's a scalar
tadzik jdv79: sounds like producing scripts on a massive scale
let me look up the english word for that...
"scribbler"
magistr eventmachine, AnyEvent, nodejs, reactphp, twisted - it is awful
tadzik that must be it
_itz_ magistr: are you a markov chain? 12:01
moritz m: say do for 1..20; 12:02
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HlJp1cCNbp␤Missing block␤at /tmp/HlJp1cCNbp:1␤------> 3say do for 1..207⏏5;␤ expecting any of:␤ block or pointy block␤»
GLRelia rakudo-moar a343c2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bT4fYFMxuc␤Missing block␤at /tmp/bT4fYFMxuc:1␤------> 3say do for 1..207⏏5;␤ expecting any of:␤ block or pointy block␤»
moritz m: say do $_ for 1..20;
camelia rakudo-moar 93418e: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20␤»
GLRelia rakudo-moar a343c2: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20␤»
12:02 cognominal joined
magistr _itz_, are you a shit? 12:03
tadzik please be respectful
we may still have a civilized discussion if you only express anger towards software rather than people 12:04
if you're only interested in the latter, then please leave
moritz m: sub f(*@a) { say @a[0] }; f gather { while True { take 5 } } 12:05
camelia rakudo-moar 93418e: OUTPUT«5␤»
GLRelia rakudo-moar a343c2: OUTPUT«5␤»
12:05 magistr left
moritz tadzik++ 12:05
12:06 skids left
tadzik I'm surprised this worked 12:06
12:07 llfourn left 12:09 llfourn joined, skids joined
masak guesses that magistr is a Russian 14yo 12:09
tadzik (s)he was a lot more eloquent than usual 14yo russians I meet on the internet 12:10
much more polite too!
jdv79 who knows the reasoning behind this one arg rule
masak though I find "are you a shit?" is hilariously funny if magistr actually *is* a Markov chain :P
tadzik :D{:D:D:D 12:11
masak: do you know about SubredditSimulator?
masak jdv79: guessing here -- people expect to be able to loop over something like $array or [1, 2, 3]
dalek kudo/glr: c4d1b08 | moritz++ | src/core/asyncops.pm:
Clarify error message from argument-less supply
masak tadzik: yes, I saw something about it on twitter today
jdv79 i want true facrs
facts
masak jdv79: oh, then ignore me :P
jdv79 phone typing:(
masak I only provide false or inconclusive facts today. 12:12
moritz jdv79: it makes dereferencing nested data structures much simpler
masak I'm fresh out of true ones.
jdv79 oh...
moritz only has True Scotsman facts
masak I could offer you a true "fact" :)
tadzik masak: www.reddit.com/r/SubredditSimulato...h_another/
DrForr prefers true lies :) 12:13
moritz m: multi a() { die "oh nooz" }; multi a($a) { say $a }; (gather { take 42 }).map(&a)
tadzik it is so real!
camelia rakudo-moar 93418e: OUTPUT«42␤»
GLRelia rakudo-moar a343c2: OUTPUT«42␤Cannot invoke this object (REPR: Uninstantiable)␤ in block <unit> at /tmp/HnaFyjZsPa:1␤␤»
timotimo o/
masak tadzik: wow, that is painful to read
moritz m: (gather { take 42 }).map(&say) 12:15
camelia rakudo-moar 93418e: OUTPUT«42␤»
GLRelia rakudo-moar a343c2: OUTPUT«42␤Cannot invoke this object (REPR: Uninstantiable)␤ in block <unit> at /tmp/xfMEeZi5kg:1␤␤»
masak moritz++ # whatever it is you're doing 12:18
going through spectests, looks like
moritz fwiw this one dies in pull-exactly from GATHER 12:19
masak: yes 12:20
nqp::continuationreset(PROMPT, &!resumption); is the line that dies
timotimo so $!resumption is perhaps null?
moritz maybe; I just know that I don't know the code well enough to dig deeper into this one 12:21
masak .oO( nqp::continuationresurrect(PROMPT, &!redemption); ) 12:22
timotimo %)
TimToady the "one arg" rule is not that single args are special, but that things that look like multiple args are really a single arg to begin with
and the rationale is that we can use the same constructs to iterate anything, not have two different mechanisms for iterating internal vs external lists 12:23
so asking a comma list for its list of values is no different from asking any other object for its list of values 12:24
masak that sounds... vaguely sane.
I would say "entirely sane", but my head is still spinning. :) 12:25
TimToady so, for instance, the implementation of 'for' no longer has to jump through hoops to make it look a map; it now really is just a map
12:26 Ven joined
TimToady under the old way, we had to keep slapping a (thing,) around the expression internally, which was really bad for performance 12:28
timotimo oh, is that so!
ShimmerFairy TimToady: so at this point we should obviously rename the 'for' keyword to 'map' :P 12:29
timotimo map is for having the arguments of for in reverse order
otherwise you'd have to Rfor
ugexe should CUR install hook files to the same place as bin/ and module files? they would be required for rebuild-recompiliation 12:30
12:31 laben joined
ShimmerFairy ugexe: for some reason I'm reminded of emerge with its @preserved-rebuild (and before that, "revdep-rebuild") :) 12:31
laben hello p6'ers 12:32
timotimo mhhh revdep rebuild
i remember using that quite a bit
ShimmerFairy timotimo: `revdep-rebuild` is now spelled `emerge [your usual flags] @preserved-rebuild`, and has been for a little while :)
timotimo i haven't used gentoo for a long time :)
nine TimToady: many thanks! With your explanation this makes so much sense now :) 12:33
ShimmerFairy timotimo: but for sure, if I ever get into working on Perl 6's module stuff (that is, S11 and S22), I'd probably be taking a lot of inspiration from portage, both intentionally and accidentally :P 12:34
ugexe i've been working on package orphaning but im getting to the reinstall-but-validate dealy
timotimo hehe
being inspired by lots of different sources is definitely a good thing 12:35
maybe we should take inspiration from maven and npm and some more others
ShimmerFairy I was about to say gradle, but that Java-based tool doesn't do the modules bit :)
timotimo mhm 12:36
well, build system related stuff could be interesting to perl6, too ... to get production pipelines for video game development ... assets and such for example
laben today i got the easiest fix ever seen (at least by me) and it's for the TestML module, someone got commit rights?
timotimo ooooh! 12:37
masak I agree, after TimToady's explanations, GLR almost seems like a good thing. :P
timotimo you can fix TestML?
that's excellent!
ShimmerFairy timotimo: 6make would be far superior to gmake for sure :3
laben for nom... didnt check glr
timotimo ugh
how do you feel about qmake and cmake?
ShimmerFairy timotimo: I use cmake for my C++ stuff, including my Qt projects :) (aka the KDE approach) 12:38
JimmyZ doesn't know what is 'one arg rule'
timotimo ah, yes. i saw that when building krita
laben timotimo: lib/TestML/Parser.pm line 66 => change the last char (the comma) to semicolon
timotimo JimmyZ: more or less "if you write for $foo, it'll iterate over the contents of $foo"
laben: when i tried to improve TestML some time ago, i found out that that module doesn't even barely parse official testML syntax 12:39
JimmyZ like my $foo = [2,3], ' for $foo { .. } ' vs 'for $foo, 4 { ... }' ? 12:40
timotimo yes
laben timotimo: oh, i didnt know that, i need to go deeper ò.ò
timotimo "$foo, 4" will do 2 iterations, "for $foo", too
laben: i might have become massively confused, though
ugexe id be surprised if you could just swap out that comma for a ; and it would work correctly. maybe pass tests
JimmyZ yeah, I saw it in the roast 12:41
laben as i said, it's a fix for nom, not glr
ugexe m: my %x; my %y; %x<a> = 1; %y = "\\\\" => "\\", %x; say %y.perl 12:42
camelia rakudo-moar 93418e: OUTPUT«{"\\\\" => "\\", :a(1)}<>␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«{"\\\\" => "\\", :a(1)}␤»
ugexe m: my %x; my %y; %x<a> = 1; %y = "\\\\" => "\\"; %x; say %y.perl
camelia rakudo-moar 93418e: OUTPUT«WARNINGS:␤Useless use of variable %x in sink context (line 1)␤{"\\\\" => "\\"}<>␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«WARNINGS:␤Useless use of variable %x in sink context (line 1)␤{"\\\\" => "\\"}␤»
ugexe plus that method then returns the result of make %h, instead of returning my %h = '\\' => "\\", make %h 12:44
moritz m: my $gorch = "foo bar"; say «FOO $gorch BAR».perl 12:45
camelia rakudo-moar 93418e: OUTPUT«("FOO", ("foo", "bar"), "BAR")␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«("FOO", ("foo", "bar"), "BAR")␤»
laben mh, trying to set up glr right now, is it normal that bootstrapping panda fails at the very beginning?
nine laben: yes
moritz laben: I'm pretty sure that rakudo-glr is not far enough yet to bootstrap panda 12:46
timotimo right, sadly yes
well, rakudo-glr may have to advance a little bit still, but panda needs a few changes, too, no?
nine laben: there's a glr branch of panda that comes a little further
laben "Must specify something as a path: did you mean '.' for the current directory?" which bring us to lib/Panda/Ecosystem.pm line 25
dalek ast/glr: 316336e | moritz++ | S02-literals/quoting.t:
Add a flat() call to quoting.t
moritz timotimo: yes
nine and I've got some trivial local changes that allows it to install, just not yet to work fully 12:47
timotimo oooooh
nine moritz: we're actually pretty close :)
_itz_ laben: zef has worked recently on GLR although maybe not right now
ugexe zef works still. you just have to force install
12:47 leont left
_itz_ I stand corrected :) 12:47
moritz just don't do anything with lists, and you'll be fine :-)
timotimo yeah, all you really need is cons cells 12:48
moritz hashes work too (mostly)
nine moritz: I wonder if this flat you added really is how it's supposed to work now, or if it's just a remaining bug in rakudo?
ShimmerFairy As long as your program does not need a grouped collection of items, it's good to go! :P
moritz nine: I'm not entirely sure; but since the result was the same pre-glr, I decided to add it 12:49
but it does feel odd
laben well then, i'll check out ufo then
nine moritz: the whole point of <<foo $bar>> is AFAIK to build lists. Seems strange if you had to explicitly flatten that to actually assign it to an array. 12:50
m: my $b = "bar"; my @a = <<foo $bar>>; say @a.perl;
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/la7Z_14fSd␤Variable '$bar' is not declared␤at /tmp/la7Z_14fSd:1␤------> 3my $b = "bar"; my @a = <<foo 7⏏5$bar>>; say @a.perl;␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XhZoTraNdx␤Variable '$bar' is not declared␤at /tmp/XhZoTraNdx:1␤------> 3my $b = "bar"; my @a = <<foo 7⏏5$bar>>; say @a.perl;␤»
nine m: my $b = "bar"; my @a = <<foo $b>>; say @a.perl;
camelia rakudo-moar 93418e: OUTPUT«["foo", "bar"]<>␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«["foo", "bar"]␤»
dalek ast/glr: 625fc57 | moritz++ | S02-literals/quoting.t:
Revert "Add a flat() call to quoting.t"

This reverts commit 316336e7a32f300e9e853325bd815bd6d3fffd28.
moritz nine: ok, you convinced me :-)
oh, and nine++ for fixing that spectest hang earlier 12:51
nine moritz: ah, now I saw the $gorch. I left that one alone because I have no idea if <<>> should flatten its contents
Would be nice if someone who actually knew (rather than guessed) something about the new semantics could chime in there. 12:52
timotimo where are we going to find a TimToady at this time of day? 12:53
nine From HYPER: my $type = left.WHAT; nqp::iscont(left) ?? $type(@result.eager).item !! $type(@result.eager)
^^^ this looks kinda oldish to me. Probably the reason for the remaining slice fail
Oh, I just noticed that I have already done some work on HYPER... 12:54
laben m: my @a=1..5; my @b = @a>>.pred Z @a; @b.say 12:55
camelia rakudo-moar 93418e: OUTPUT«0 1 1 2 2 3 3 4 4 5␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«0 1 1 2 2 3 3 4 4 5␤»
TimToady what makes you think I'm not guessing too? :) 12:56
ugexe these new supply constructs are going to make stdmuxing trivial :) 12:57
TimToady only instead of trying to guess what TimToady wants, I'm trying to guess what future generations of programmers will want...
laben m: my @a='a'..'e'; my %b = @a>>.succ Z @a; %b.say
camelia rakudo-moar 93418e: OUTPUT«b => a, c => b, d => c, e => d, f => e␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/fa582_lDKs:1␤␤»
laben m: my @a='a'..'e'; my %b = @a>>.succ Z=> @a; %b.say
camelia rakudo-moar 93418e: OUTPUT«b => a, c => b, d => c, e => d, f => e␤»
GLRelia rakudo-moar c4d1b0: OUTPUT«b => a, c => b, d => c, e => d, f => e␤»
laben eureka!
TimToady we really, really need to make .gist through in parens for clarity 12:58
nine TimToady: I'd just very much like to defer to your experience in guessing what future generations of programmers want
TimToady *throw
ShimmerFairy TimToady: I would very much love if Positional .gists weren't unbracketed space-separated-values 12:59
TimToady they can still be space separated
just make 'em look more like s-exprs
ShimmerFairy sure, so long as you don't choose <> or «» as the general brackets :P
13:00 AlexDaniel joined
moritz as long as the spaces are further delimited by commas, all is good 13:01
TimToady clutter 13:02
ShimmerFairy I don't the spaces are so much an issue, it's just that combined with the lack of brackets it makes it look worse (but I think brackets alone should suffice)
13:06 jack_rabbit left, Ven left
TimToady I think in this case I probably agree with the view that trying to use «» for multi-dimensional stuff comes under the categor of "unnatural act", so it should probably imply .flat itself 13:09
dalek kudo/glr: b445bf1 | (Stefan Seifert)++ | src/core/metaops.pm:
Fix HYPER wrapping results in an extra list

We need to explicitly flatten the array when passing to the coercer now.
13:12 brrt joined 13:13 rmgk_ joined, rmgk is now known as Guest45101, Guest45101 left, rmgk_ is now known as rmgk 13:14 brrt left 13:15 brrt joined
ShimmerFairy I wasn't aware you could, I think you'd have to be quite clever to sneak a list into «» (doubly so for <>) 13:17
TimToady it was more a side effect of how it implements interpolation 13:19
JimmyZ .tell jnthn looks like you forgot to push the new S17-supply/syntax.t
yoleaux JimmyZ: I'll pass your message to jnthn.
ShimmerFairy Yeah, that's what I was thinking. You certainly can't stick another «» in there, and every list construct would just be interpreted as a number of strings. 13:20
13:26 Ven joined 13:27 g4 left 13:37 Possum joined
dalek rl6-roast-data: 20c77e8 | coke++ | / (10 files):
today (automated commit)
13:40
[Coke] glr percentage increasing. 13:41
S09-typed-arrays/native-int.t - 1380 tests aborted ( 13:44
13:44 pierrot joined
[Coke] that's the biggest fail ATM. 13:44
13:46 xfix left 13:47 aborazmeh joined, aborazmeh left, aborazmeh joined
dalek kudo/glr: 3e32f40 | (Stefan Seifert)++ | src/core/metaops.pm:
Fix >> >> and << << hypers

Hyper operators with a single item on one side work now as well.
13:52
Ven nine++
nine [Coke]: natives have a lot of NYI still
Ven
.oO( great work jnthning it all up )
nine It's a great way of learning Perl 6 btw. I didn't even know what >>+<<, <<+<< or >>+>> meant before I started fixing them ;) 13:53
timotimo sadly, now you've fixed them, others won't be able to learn much from that :( 13:54
nine Yeah, we'd need another great refactor for that
timotimo what do we refactor next
integers?
nine Scalars? 13:55
Ven first-class {s,tw}igils!
timotimo sub scalar_mod:<√> ... 13:56
Ven :D.
[Coke] nine: D'oh - that's actually an easy fix. look at the for loop on about line 10... 13:57
I spent 5 minutes reducing that down and realized it's actually the for loop that's dying, not anything else. :P
nine [Coke]: for flat @int,@uint -> $T { allows 14 tests to pass 13:58
[Coke] yup. :)
well, that's 14 more, anywhere. I'll let you push that.
13:58 aborazmeh left
nine [Coke]: well you found it :) 13:58
13:59 cognominal left
[Coke] ok, pushing. 13:59
AlexDaniel timotimo: qx//, shell and run, please 14:00
[Coke] ENODALEK?
AlexDaniel that's what needs some changes before 1.0
timotimo didn't we just have changes made to that? 14:01
AlexDaniel timotimo: oh really!
timotimo froggs changed things
AlexDaniel timotimo: that sounds really, really nice!
timotimo in order to make them work differently with regards to output grabbing
14:01 synbot6 joined
AlexDaniel timotimo: where can I read about that? 14:01
timotimo like, with the :out parameter
14:01 Ven left
AlexDaniel oh yeah!!! 14:01
timotimo sorry, dunno :S
AlexDaniel hm, does anybody knows something about that? 14:02
timotimo froggs is the one who did it 14:03
ugexe what about it
AlexDaniel .tell FROGGS I've been waiting for this! So how does it work now? “<timotimo> froggs changed things in order to make them work differently with regards to output grabbing” 14:04
yoleaux AlexDaniel: I'll pass your message to FROGGS.
laben O.o seems like ufo gets by with 2 simple fixes...
ugexe my $handle = shell("cmd", :out); say $handle.out.lines 14:05
timotimo but ufo doesn't know about registering things with the right CUR, so you have to -Iblib/lib all the time
AlexDaniel .tell FROGGS I mean, qx// and run.
yoleaux AlexDaniel: I'll pass your message to FROGGS.
laben timotimo: but it's much better for (amateur) packaging, at least up to panda and its deps 14:06
14:06 pmurias joined
timotimo fair enough 14:06
dalek p/js: 1de4996 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Fix indentation
p/js: 43b8d66 | (Pawel Murias)++ | src/vm/js/ (2 files):
Implement the quant regex type
p/js: 965c075 | (Pawel Murias)++ | src/vm/js/ (3 files):
Pass test 31-grammars.

Set boolification mode when deserializing STables.
AlexDaniel ugexe: irclog.perlgeek.de/perl6/2015-07-11#i_10881463
14:08 Ven joined
ugexe run can give you a file handle though. so you can read from it lazily 14:08
well a handle
AlexDaniel ugexe: good-good, still everyone is going to use qqx// just because it is shorter… 14:09
I mean, less characters to type 14:10
ugexe run and shell will (in the future) have :merge for capturing both :out and :err to the $out handle. or you can have each separate
ShimmerFairy What's wrong with qx// ? 14:11
14:11 virtualsue joined
AlexDaniel ShimmerFairy: irclog.perlgeek.de/perl6/2015-07-11#i_10881463 14:11
14:11 rurban_ left
ugexe qx also doesn't give you the status/exitcode and whatnot. for fine grained control, you would use run over qx// 14:12
AlexDaniel ugexe: you can have all these nice features but the most common need is to get the output 14:13
ugexe: and whether you need status code or whatever should not even be a question here
the question is whether you want to do it through shell or not
want shell? OK, use qx
or 'shell'
nope? Use 'run' 14:14
And I really think that most people don't. And if they do, this is should be a conscious step 14:15
ShimmerFairy AlexDaniel: I'm sorry, I don't get what the issue is from that link.
AlexDaniel ShimmerFairy: let's say you want to run some program and get its output
pmurias ShimmerFairy: qx uses the shell, and as such can expose you to shell injection attacks 14:16
AlexDaniel ShimmerFairy: what would you use? This: $output = run(«echo $test», :out).out.lines;
ShimmerFairy: or just this: $output = qqx/echo $test/;
ShimmerFairy I've used qx// before because I specifically _didn't_ want to take the output, and instead let the terminal print it, fwiw :) 14:17
14:18 virtualsue left
timotimo if you run without :out, i think the output will just travel outwards to the terminal, too 14:19
ugexe true
ShimmerFairy Wait, I got mixed up, it was qx// for getting the output, shell() (run didn't work when I had to use these last) for not taking it :P 14:20
(It has been a while since I had to call external commands :P)
laben masak: got a patch for ufo, works on both nom and glr with this gist.github.com/c6e198e31a82fff5e0cf
ugexe *makes a supply from .out.lines(:!eager) and .taps it* 14:21
ShimmerFairy I can see the security issue, but I'm not convinced shell/run would avoid those where qx// doesn't. (Or rather, I don't think qx is that much more problematic than the others. You shouldn't be blindly passing unchecked arguments in any case.) 14:22
pmurias run doesn't call the shell so it avoids shell injection 14:23
ShimmerFairy unless run is asked to run a shell, of course :) 14:25
14:28 virtualsue joined
ShimmerFairy I definitely see the security concern, but I think "Know what qx//, shell, and run do" is a perfectly valid solution here. I don't see where the language needs to do something about it, aside from whatever security features S23 would mention that you could enable. 14:29
14:31 colomon joined
ugexe will `whatever` eventually allow to say (using the react/whatever gist as an example) `whenever @runners>>.stdout -> $output { print $output.indent(2); }` ? 14:31
laben .tell FROGGS got a patch for TestML with a fix for latest nom, seems to work already on glr: gist.github.com/986ba2b9e63d1763601d
yoleaux laben: I'll pass your message to FROGGS.
AlexDaniel ShimmerFairy: then we don't have to think about security at all. Just tell the users to “Know what …” and that's it 14:32
can be applied to any common problem, like SQL injection and etc. 14:33
ShimmerFairy If you're accepting arbitrary input for SQL queries and you don't know about SQL injections (regardless of if your systems handles it for you), you deserve whatever happens :P
AlexDaniel “If you want to avoid problems, just type that weird-looking long thing” and if the user does not, he “should have known better” 14:34
Woodi hi #perl6 :) 14:35
ShimmerFairy I think the issue here is that S23 has yet to be even written. I really think the better solution would be to have features to disallow tainted input, for example, instead of paranoid-ly removing language features because they have a higher risk of security issues.
Woodi so how eg. compilers deal with arbitrary input ? :)
ugexe which, for someone that is new, will likely mean extra code to setup the enviroment to do things like run 'git' that also works on windows 14:36
brrt hi Woodi
what do you mean arbitrary input?
what do you mean by compilers? just rakudo, or compilers in general?
Woodi brrt: I don't know :) like in shell and SQL ;)
AlexDaniel usually it is not arbitrary input, it is wisely constructed malicious input 14:37
and “compilers” or whatever do exactly what the hacker tells to do, that's the point :) 14:38
brrt ok, well, some of those are interpreters
ShimmerFairy I meant "arbitrary" as in "could be anything", not "randomly generated" :)
brrt but in the first place, it starts with a parser
actually, that's wrong
typically compilers and interpreters start with lexical analysis (lexing) 14:39
AlexDaniel ShimmerFairy: OK disallow tainted input, how would you taint variables passed to shell?
brrt lexical analysis is the origin of regular expressions
|Tux| test 50000 42.570 42.481
test-t 50000 41.897 41.807
laben ShimmerFairy: why not random? this shiny thing could be used on moarvm lcamtuf.coredump.cx/afl/
ShimmerFairy shell vars or p6 vars?
AlexDaniel ShimmerFairy: p6 vars passed to the shell 14:40
ShimmerFairy laben: "could be anything" includes random, I just wanted to point that I didn't mean _just_ random :)
laben well, yeah
ShimmerFairy AlexDaniel: my understanding of Perl 5's tainting mechanism (which is very limited) is that variables would be tainted if assigned tainted objects. 14:41
brrt to make a very long story short: any interpreter or compiler worth anything converts the input during lexing (matching input to tokens understood by the language)
AlexDaniel ShimmerFairy: yea, sure, but what would you do with the string to make sure that it is safe?
brrt this means that 'input safety' in terms of buffer overflow input safety is *primarily* a lexer issue
AlexDaniel ShimmerFairy: how would you sanitize it? 14:42
brrt actually recognizing the input stream is part of the parser, which takes a stream of input and builds a tree from it (typically)
ShimmerFairy AlexDaniel: make sure it's untainted (sanitizing as needed), and qx// and shell would complain if their string is tainted (at least when security features are enabled)
AlexDaniel ShimmerFairy: yes but that's the question, how would you sanitize it? 14:43
dalek kudo/glr: 3e7cfcb | (Stefan Seifert)++ | src/core/metaops.pm:
Bring back HYPER with one side shorter than the other

  (1,2,3) >>+>> (1,2) and (1,2) <<+<< (1,2,3) work again
ShimmerFairy AlexDaniel: that falls on the user of course. There's no way the language could be responsible for sanitizing data for everything.
brrt perl5 tainting detection is problematic. variables are considered untainted basically after they went through a regular expression
AlexDaniel ShimmerFairy: yes, ok, but what would *you* do?
ShimmerFairy brrt: of course, P6 would be better :)
laben i got a question for GLR'ers: when is a Seq returned/generated instead of a List? 14:44
Woodi so compilers/interpreters have "full" knowledge how to transform things. and with SQL/sh we usually aiming only for "do standard escaping"...
brrt yeah, and that's dumb, Woodi
basically, it's faking knowledge about the input language, and that can be circumvented really often
ShimmerFairy AlexDaniel: whatever input I get externally, I make sure is sanitized, and use it.
Woodi $shString.bind("-e", 1) # ;)
brrt the *good* way to do it would be to make a grammar matching the input and serializing the result to a valid language input 14:45
AlexDaniel ShimmerFairy: how do you make sure that it is sanitized? :)
timotimo yeah, always know what language you're in
Woodi problem is we want to keep run/qx/... handy, close to CORE...
brrt well, you can do that. but you can't do that and make it safe
ShimmerFairy AlexDaniel: the reason I haven't specified is because it depends on what I'm sanitizing for. There's no universal sanitation method, for there are a variety of syntaxes 14:46
AlexDaniel ShimmerFairy: hehe. So the solution is: don't use the shell
and there is no problem
Woodi ShimmerFairy: but exact&perfect eg. for bash ? or perfect for csh ?
ShimmerFairy AlexDaniel: I'm not talking about just the shell atm, all destinations you could send data to.
AlexDaniel ShimmerFairy: my issue is with qqx// in particular and not something general 14:47
ShimmerFairy And I don't presently know how to ensure sanity of input for bash or whatever, but when I need to do that I'll look up what's required, and do it :)
AlexDaniel … you look it up, and some answers will tell you not to use shell because you don't need it… 14:48
brrt Woodi: exact and perfect for bash requires you emulate bash to a pretty far extent
and it likely won't DWYM anyway
Woodi ShimmerFairy: there was a talks: "Do not implement file escaping yourself, use File::..." :) 14:49
ShimmerFairy Woodi: of course I would prefer a module, but this is Perl 6. As of now, I'd probably be the one writing the module :P
Woodi brrt: I hoped for list of chars to \ buuu
AlexDaniel ShimmerFairy: I see people doing it wrong everywhere. And if the language itself can help the user to step on the right path, so much the better 14:50
ShimmerFairy AlexDaniel: sure, and we already have run() for that, as I understand it :) I just don't think removing features because they have the potential to cause problems is a good idea.
brrt i can think of a few tricks that would work. $, (, ) etc, but it's not really safe, and you don't know just what people have linked /bin/sh to 14:51
AlexDaniel uuuuuggghhhh
A great example of someone trying to quote things correctly is here, I think: github.com/notsecure/uTox/issues/265 14:52
It took like 4 commits to get it right
brrt anyway, anyone assuming shelling out on untrusted input .... kind of deserves what they're getting. there are plenty of ways to start a program with arguments without a shell
AlexDaniel and in the end the solution was… not to use the shell
brrt there are plenty of ways to start a pipeline, ffs, without starting a shell
don't. shell. on. input. 14:53
AlexDaniel brrt: Huffman coding 14:54
brrt make a module
AlexDaniel brrt: if you make it easy to do it wrong then people will do it
brrt hmm 14:55
ShimmerFairy I think you're giving Huffman too much weight in this instance, it doesn't convince me there's a problem worth removing qx over.
Woodi maybe just include compile-time switch to disallow shell interaction :)
AlexDaniel ShimmerFairy: ok, you can make easier to use “run” then 14:56
nine ShimmerFairy: without having backlogged yet, I'm quite reminded of mysql_real_escape() ;)
AlexDaniel ShimmerFairy: but keep in mind that it is pretty hard to beat qqx//
brrt then maybe we should be making building a pipeline simpler, which is the only valid reason to use a shell anyway
AlexDaniel simply because it is too short
DrForr mysql_real_escape() of course being a tarball of postgres :)
nine 213/1047 spec test files failing now
14:57 xfix joined
ShimmerFairy AlexDaniel: if I don't believe Huffman to be an issue here, why would I be interested in making something shorter? :P 14:57
AlexDaniel whatever
ugexe i think it might be nice if qx// used run, and then you could do like qx: $cmd, :shell;, but then the problem is for shell $cmd is a string, and run it should be an array 14:59
AlexDaniel ugexe: yeah, that's why it is so hard to fix it 15:00
ShimmerFairy ugexe: also, for qqx// , you'd have to deal with qqx/$prgm-name-might-have-space-tho / , and I'm not sure I want qqx// to end up doing something like handling the first term specially
AlexDaniel ShimmerFairy: you have to quote it if it has spaces 15:01
ShimmerFairy AlexDaniel: I mean in terms of qqx// being passed to run, what would you do there?
I could see a qwx// and qqwx// as a "run" version of qx// and qqx// , however. 15:02
AlexDaniel ShimmerFairy: if I, like, really want to use shell? Like under torture?
ShimmerFairy: you have to quote all single quotes (turn ' into '\'') and put ' ' around 15:03
that will work sometimes
and basically that's what ShellQuote does in perl5
ShimmerFairy AlexDaniel: what if you did qqx/$prgm stuff/ expecting run($prgm, "stuff") , but my $prgm = "cmd; cmd" ? Would that $prgm be a valid first arg to run? 15:04
AlexDaniel sure
well, 'cmd; cmd' is a valid filename
under some conditions, like in unix 15:05
ShimmerFairy I think if you really wanted a quoting construct for run() , then the addition of qwx and qqwx would be best. Those names would highlight the fact that you're using quotewords in an executable fashion :)
AlexDaniel 15:06
but then it gets confusing, just like system() is in perl5 15:07
you change something slighly and the behaviour changes are huge (shell is used or not)
ShimmerFairy AlexDaniel: no, I'm proposing that qx// and qqx// are the quoting construct versions of shell(), and qwx// and qqwx// are the quoting construct version of run() 15:09
AlexDaniel for those who don't know: system('echo', 'hello world') seems to run a command, system('echo hello world') seems to execute that string in shell 15:10
15:10 rindolf joined
ShimmerFairy To me, having the names contain "quote word" in them perfectly illustrates the nature of run(). You used «» (which is qqx) to pass stuff to run() in that backlog link, so I think it really is a natural fit :) 15:11
er, s/qqx/qqw/
AlexDaniel ShimmerFairy: run does not quote anything
ShimmerFairy: so what does it illustrate?
geekosaur yes, that's documented (single parameter acts like C's system(), multiple uses exec) --- but. I thought it also looked for simple single strings and bypassed the shell?
15:11 tadzik joined
geekosaur ...perldoc -f system confirms 15:11
ShimmerFairy You used run(«echo $test», :out).out.get; that «echo $test» is equivalent to qqw[echo $test] 15:12
15:12 leont joined
ugexe the only thing that bugs me is the inconsistency with proc::async... notably this (trying to pass '$program' via -e) 15:12
[$*EXECUTABLE, '-I.', '-e', $.async ?? $cmd !! '"'~$cmd~'"', 'Build.pm']
ShimmerFairy so I'm saying that qqwx/echo $test/ would be equivalent to run(qqw/echo $test/) which is equivalent to run("echo", "$test") 15:13
geekosaur ugexe, isn't that running a subsidiary perl?
-e vs. -c is correct
AlexDaniel ShimmerFairy: yes, that's better. Still, Huffmanly speaking, it is wrong. And it is also confusing because there is not enough visual difference 15:14
ugexe i mean if you run that with run and proc::async without the ??!!, it will not run the same thing
AlexDaniel ShimmerFairy: but I would definitely complain less if that was implemented
.oO(less…)
15:14 diana_olhovik left
ShimmerFairy AlexDaniel: "Huffmanly speaking", qq// is wrongly longer than q// , since qq does more useful stuff for the user, and qq vs. q seems to do fine with the supposed visual difference issue 15:15
laben tadzik: File::Find seems to be fine on GLR given a slight change to the equals function in the tests (use >> instead of .map) 15:16
AlexDaniel ShimmerFairy: I agree that people should prefer single quotes over double quotes, and it is also consistent with English language – single and double quotes
tadzik laben: oh, cool
AlexDaniel although single quotes are not a real thing
tadzik I was trying to figure out recently why this current code isn't working 15:17
AlexDaniel ShimmerFairy: but you also have “” which I use (as you can see)
laben tadzik: i fear you need latest-est glr commit by nine++
ShimmerFairy AlexDaniel: I was pointing out why the huffman argument is especially silly for qx vs. qwx, not making a sincere case there :)
AlexDaniel ShimmerFairy: it did not really work because q{} qq{} are alright 15:18
tadzik laben: well, if File::Find still needs tests then it doesn't solve my problem :P
laben ok, maybe not the last one exactly
tadzik erm, s/tests/changes/
ShimmerFairy AlexDaniel: first of all, I think the 'w' helps imply "array of strings" where qx and qqx don't (and thus would be an issue of confusion). Second, if you genuinely believe one character of difference is enough to be Huffmanly absolutely terrible, then I don't know what to say. 15:19
laben tadzik: i did not change anything in the lib itself, just the test func. anyway i'm going ahead and check Shell::Command
ShimmerFairy (Other than the fact that most people don't code in a constant "code golf" mode ☺)
hoelzro o/ #perl6
laben tadzik: here it is gist.github.com/anonymous/ac86150158062ae482e1 15:20
Ven \o, hoelzro 15:22
hoelzro ahoy Ven 15:23
AlexDaniel ShimmerFairy: Well, currently we are getting the users into a trap by making it hard to do things correctly. You are suggesting to make dangerous and safe things equivalent. But I want to have safe things easy, and dangerous things possible. 15:24
15:24 brrt left
ShimmerFairy AlexDaniel: well, I do think it'd be nice to have a short form for run(). But making qx// and qqx// do that would 1) cause deprecation issues I'm not sure are worth it, and 2) make qx and qqx act in a quotewords-like way with no name-wise indication, which is why I'd go for qwx and qqwx for that 15:26
AlexDaniel afk 15:27
tadzik laben: yeah, I'm aware that it's just tests. Your patch sheds some more light on what I wanted to know though :) 15:28
I'd be curious to know why this change is necessary 15:29
laben tadzik: didnt investigate deeply, but it seems .map or .IO were messing something up
tadzik: the list of 7 items got collapsed to only 1 it seems 15:30
tadzik may be something with flattening or so
yeah, that's what I got from the error message, I didn't know what it means though
laben but .map shouldnt do flattening >> doesnt do
i mean, both flatten or dont 15:31
jnthn wow, a lot of backlog while I went for dinner/drinks :) 15:32
yoleaux 13:19Z <JimmyZ> jnthn: looks like you forgot to push the new S17-supply/syntax.t
15:32 larrywall joined
larrywall help me 15:33
15:33 larrywall left
tadzik what is it with trolls today 15:33
jnthn Heh, the async IO is overhead comment is hilarious. Anyone with the first clue about how IO actually works in a computer knows it's all async at the OS level. It's creating the illusion of synchrony that is the overhead. 15:34
dalek ast: a78b9f2 | jnthn++ | S17-supply/syntax.t:
Add basic S17 supply/whenever syntax tests.
15:35
15:35 breinbaas left
jnthn There's the test file I forgot to push :) 15:36
15:36 RabidGravy joined
JimmyZ jnthn++ :) 15:36
jnthn JimmyZ: Thanks for the reminder. :)
ShimmerFairy jnthn: well, if I don't have the first clue about how IO works, would async IO be... over my head? :P 15:38
15:38 rurban_ joined
flussence jnthn: I read a long article on efficient memory access a long time ago that made the same case for system RAM. You don't get much speedup from a dozen core CPU if you treat RAM accesses as synchronous, cause they're not at all... 15:38
15:38 CQ joined 15:39 khw joined
Ven .tell [Coke] I remember you were a Tcl fan -- have you looked at wiki.tcl.tk/41658 ? 15:39
yoleaux Ven: I'll pass your message to [Coke].
15:40 cognominal joined
jnthn ShimmerFairy: Depends if your language makes it notably harder to deal with the sync I/O. 15:40
_itz_ tadzik: I suspect a certain blog post brought some trolls from under their bridges
jnthn ShimmerFairy: I'm not saying it's wrong to use sync APIs, just that commenting that async IO is overhead is ridiculous. :)
_itz_ I made the mistake of engaging with the author on twitter
ShimmerFairy ooh, which one?
jnthn: yeah, I was just making a terrible overhead/over my head pun :P 15:41
jnthn Oh!
Sorry, I'd have noticed it if I wasn't quite so tired ;)
ShimmerFairy [joke about async sleeping]
jnthn flussence: Yeah, memory locality is much why I'm trying to get supplies as the core focus rather than channels :) 15:42
ShimmerFairy I recall hearing a while back that the biggest blocker to Dwarf Fortress' speed is RAM latency, interestingly. I should perhaps get to know how computer hardware works, specifically, at some point :) 15:43
_itz_: what blog post, if I may ask?
15:44 telex left
_itz_ its in the backlog .. its really very TD;DR .. it looks like the author has never even tried p6 15:44
best ignored
^ TL;DR 15:45
laben Too Dense; Didnt Read, just about right...
but i read it °.° 15:46
15:46 telex joined
jnthn I don't think we need to worry too much over about some Perl 5 folks not wanting to adopt Perl 6. For one becuase it's clear that not only are some Perl 5 users interested, but so are plenty of folks from other backgrounds (which is more important for growth). But for two, those who are happy enough with Perl 5 do, after all, already have a Perl, and Perl 5 has shown a better ability to evolve than most other languages out there. 15:49
laben hugs everyone!
Let's be happy :) 15:50
ShimmerFairy I just took a look at it, and yeah, it reads like "I like what I do, so I'm going to complain about what I don't do" :P
15:53 magistr joined, abraxxa left
[Coke] Ven: thanks, but nope. :) 15:55
yoleaux 15:39Z <Ven> [Coke]: I remember you were a Tcl fan -- have you looked at wiki.tcl.tk/41658 ?
[Coke] I know people that are still using a perl pre 5.8 and are happy and don't see the need for any of this newfangled stuff.
15:55 diana_olhovik_ joined
[Coke] (from an Albany.pm meeting - guy showed up hoping that he could find like minded perlites who would do contracting work for him, I think) 15:56
_itz_ I used Tcl in one job and ended up quite liking it - antirez.com/articoli/tclmisunderstood.html is good
jnthn laben: Well, yes, exactly. I think everyone here who is actually working on Perl 6 is doing it because they like what they're building.
pmurias jnthn: if there are technical reason blocking Perl 6 from being adapted we should try to solve them 15:57
laben jnthn: i would like it better if i were able to successfully hack on rakudo :/ 15:58
ShimmerFairy I don't think there are any real technical issues anymore, it's more an issue of adoption and ecosystem and all that stuff.
[Coke] hurls news.perlfoundation.org/2015/08/per...ion-1.html - I have to recuse myself, but if anyone else thinks this is a good idea...
jnthn pmurias: For sure; I wasn't saying we should ignore input, simply that we shouldn't be disheartened if some folks say "no, I'm happy where I am" - and especially so if the "where they are" is among the better places they could be. :) 16:00
Ven [Coke]: :D 16:01
_itz_ I think there are some easy sells about perl6 .. I gave a begineers perl6 grammars talk to a local perlmongers group and the reaction was positive
laben tadzik: for each map2>> transition done, there's an equal and inverse >>2map transition to do. i found what gave Shell::Command problems at least in the tests 16:03
jnthn [Coke]: I suspect I have to recuse myself on that too ;) 16:04
16:04 pyrimidi_ joined
_itz_ I think some people are a bit scared of new syntax and focusing on how perl6 syntax can be simplier and clearer will win those peopel over 16:04
16:04 pyrimid__ joined
laben tadzik: here it is gist.github.com/anonymous/5481d2e6df95b8fd5e78, fixes the tests. now onto JSON::Tiny 16:04
pmurias jnthn: sure, Perl 6 in it's current state is not ready for moving important things too
16:04 pyrimid__ is now known as pyrimidine_
pmurias s/to/ 16:04
RabidGravy some people were unsettled by the changes from Perl 4 to Perl 5 too 16:05
_itz_ also perl5 people are quite adaptable with things like Moose and MooseX::Declare and the DSL aspects of Dancer
jnthn pmurias: Depends what things they are, and not everything is a case of "moving X to" either. None of the cases where I used Perl 6 in $dayjob situations were migration ones.
_itz_ RabidGravy: it took me several years to write proper perl5 and not perl4 with "my" and "\@args" :) 16:06
mst _itz_: Moops > MooseX::Declare
_itz_: it has the huge advantage of not involving Devel::Declare
magistr moose
RabidGravy moof!
magistr perl6 don't have normal OOP? 16:07
16:07 Ven left
RabidGravy er yes 16:07
[Coke] magistr: yes, Perl 6 has OOP. 16:08
RabidGravy shocking
magistr [Coke], hashes is OOP
16:08 pyrimidi_ left
magistr like javascript or lisp 16:08
[Coke] ok, troll. 16:09
RabidGravy or cobol
jnthn OOP is about exchange of messages between autonomous actors.
16:10 araujo left
RabidGravy said the actress to the bishop 16:10
jnthn The rest doesn't matter much.
cognominal magistr, thx to jnthn, the compiler toolkit, rakudo, supports a metamodel. It allows to define almost any OO model (class based or object based) 16:11
jnthn :)
Time for sleep here
'night
RabidGravy it would actually be quite amusing to attempt a prototype type of model 16:12
cognominal Supporting js would allow rakudo to live in a browser. 16:13
_itz_ there is that llvm to js route 16:14
16:16 Ven joined
magistr actor model is awful in erlang... 16:17
cognominal nice try
magistr only a lightweight processes 16:18
laben well, it's true that erlang is made for telecommunications code, not for fashion shows of actors and models 16:19
16:19 brrt joined
_itz_ magistr is about the "ST doesn't have a blitter" level of convo from back in the day 16:20
RabidGravy there's some really useful and excellent software made in Erlang 16:21
virtualsue rabbitmq
RabidGravy couchdb, ejabberd 16:22
loads
magistr erlang is awful, couse it will be have a normal jobs with lists etc, which is slower than operations in ets 16:24
Ven magistr: seems to be pretty harsh for such a "small" point 16:25
tadzik haha
laben: okay, I really need to understand those before I apply them:) 16:26
pmurias _itz_: re llvm to js route, you mean compiling MoarVM to js?
_itz_ pmurias: yes I wondered if anyone had tried it. I have seen demos of quake etc running 16:27
laben moritz tadzik: dont worry, i got your back. same >>2map for JSON::Tiny 16:28
pmurias _itz_: I'm not aware of any attempts, personally I'm working on getting Perl 6 in the browser by writing a backend that emits javascript 16:29
RabidGravy nobody has mentioned ocaml yet, now I only know one piece of software made with it and that piece of software is almost unique in its domain 16:31
magistr RabidGravy, erl must have a servants to solve a difficult jobs
RabidGravy but there again so must I ;-) 16:32
laben RabidGravy: ooc, what is it? i seem to remember a compiler in ocaml for another language, but at the moment i cannot remember
pmurias RabidGravy: why should we mention ocaml?
magistr ocaml is too ugly as perl 16:33
RabidGravy liquidsoap.fm/ is an almost unique piece of software made in ocaml
pmurias is confused why we should talk about ocaml in #perl6? 16:34
magistr but normal books such as TAPL and Data Structures by Okasaki uses ML
_itz_ pmurias: it has camel in it! sorta 16:35
laben RabidGravy: ooh, shiny! what a nic(h)e thing.
_itz_ hmm there are some mailing list messages about errors with MoarVM and emscripten
RabidGravy pmurias, it's because someone keeps bringing up other languages
magistr perl6 have TCO? 16:36
geekosaur hello, unison
RabidGravy yaw
geekosaur (for widely used software written in ocaml) 16:37
virtualsue TCO?
magistr tale rec optimize 16:38
RabidGravy total cost of ownership?
laben The Chosen One? ofc perl6 it is
pmurias RabidGravy: I don't think that's a good idea
laben wait is TCO perl6 or TimToady?
_itz_ I think we need a perl6 script to parse magistr
laben or maybe it was Totally Cool Operation 16:39
magistr coq written on OCaml and it is a very nice
geekosaur oh dear, did they hit this channel too? 16:40
16:42 colomon left
ugexe is there a way to do atomic compare and swap yet? 16:44
16:44 colomon joined
RabidGravy pmurias, another interest in a JS backend for me is some crack induced idea I have of using P6 to make CouchDB applications 16:45
flussence "atomic" sounds like you're trying to avoid a race condition... sounds like something that may be better handled at a higher level.
magistr perl...only loops 16:46
tadzik so, what's this blog post everyone's talking about?
flussence
.oO( I wonder if this self-unaware character is actually a markov/eliza bot... )
magistr it is imposible to define a types 16:48
ugexe maybe, but i dont want a high level object. i want to write my own register
flussence
.oO( yeah, they definitely seem mind-bogglingly oblivious... )
mst the rage out in ##prolog after he got banned from #perl seemed more coherent than that
flussence heh, figured it'd be someone on a trolling spree :) 16:49
AlexDaniel geekosaur: there are other channels?
16:49 Loren_ joined 16:50 espadrine left
AlexDaniel tadzik: I don't know. Probably this one: varlogrant.blogspot.com/2015/08/i-a...perl6.html 16:50
RabidGravy some people are strange 16:52
pmurias RabidGravy: any good introduction to couchdb?
geekosaur they started out in ##math and have been spreading out from there
16:53 blackcat_ left
AlexDaniel whatever, as long as kids are happy 16:53
magistr people who use a perl are strange 16:54
16:54 zakharyas left
AlexDaniel magistr: yes :) 16:54
pmurias RabidGravy: I could try to see what's currently possible with nqp-js ;)
brrt people are strange
when you're a stranger
faces look ugly, when you're alone :-)
mst AlexDaniel: that really just seems like "I have my issues because of the 'waiting for godot' period, and I'm trying to work through them" 16:55
16:55 diana_olhovik_ left
RabidGravy pmurias, the docs docs.couchdb.org/en/1.6.1/contents.html have most of it, but the bottom line is that the query server is basically a JS thing 16:56
brrt i feel as if that blogpost was written without concern for a coherent story
Ven is surprised people still answer magistr 16:57
Ven still hugs magistr for good measure. After all, coq and ocaml are nice!
brrt has never written ocaml, but heard good things about it 16:58
flussence maybe he's just struggling with the last query he brought to the channel? he just repeated it up above... irclog.perlgeek.de/perl6/2015-08-14#i_11057036
16:59 pmurias left 17:01 spider-mario joined
brrt hmmm... ok, that looks markov-botty to me 17:04
or, poor english, in which case, no offence meant magistr :-) 17:05
DrForr Oh, he's back?
brrt and yes, perl6 allows you to define your own types, and subtypes, in quite a flexible way
DrForr Or it's back?
brrt recent enough to have been in my chat log
DrForr Oh, sure. 17:07
*plonk* 17:08
flussence to me it's kinda fascinating to see these types grow increasingly incoherent and frustrated when they don't get the expected reaction :) 17:11
17:11 magistr left
RabidGravy Siberian 17:12
17:13 rarara left
flussence my guess was way off... 17:13
17:13 domidumont left
RabidGravy could of course be a proxy there 17:14
laben m: dd [{a => 1, b => 2}];
camelia rakudo-moar 93418e: OUTPUT«$ = [{:a(1), :b(2)}]␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«[:a(1), :b(2)]␤»
moritz uhm, that looks wrong on GLR
laben so, i got this thing [{a => 1, b => 2}] but the hash inside gets flattened away. what to do?
DrForr You're spending more time thinking about this than he did clicking on the 'download' button :) 17:15
flussence m: dd [+{a => 1, b => 2}]
camelia rakudo-moar 93418e: OUTPUT«$ = [2]␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«[2]␤»
flussence oh whoops, not p5
m: dd [%(a => 1, b => 2)]
camelia rakudo-moar 93418e: OUTPUT«$ = [:a(1), :b(2)]␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«[:a(1), :b(2)]␤»
flussence m: dd [{;a => 1, b => 2}] 17:16
camelia rakudo-moar 93418e: OUTPUT«$ = [-> ;; $_? is parcel { #`(Block|76312816) ... }]␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«[-> ;; $_? is parcel { #`(Block|49320912) ... }]␤»
laben moritz: it actually causes one of the only two glr-pains on JSON::Tiny, the other i "fixed" already
flussence hm, that's an awkward problem...
m: say [{;a => 1, b => 2}].[0] 17:17
camelia rakudo-moar 93418e: OUTPUT«-> ;; $_? is parcel { #`(Block|74152272) ... }␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«-> ;; $_? is parcel { #`(Block|49155400) ... }␤»
flussence m: say [{;a => 1, b => 2}].[0]()
camelia rakudo-moar 93418e: OUTPUT«a => 1 b => 2␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«a => 1 b => 2␤»
laben m: { a => 1, b => 2 }.WHAT.say 17:18
camelia rakudo-moar 93418e: OUTPUT«(Hash)␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«(Hash)␤»
laben m: [{ a => 1, b => 2 }].WHAT.say
camelia rakudo-moar 93418e: OUTPUT«(Array)␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«(Array)␤»
laben m: [{ a => 1, b => 2 }].perl
camelia ( no output )
GLRelia ( no output )
laben m: [{ a => 1, b => 2 }].perl.say
GLRelia rakudo-moar 3e7cfc: OUTPUT«[:a(1), :b(2)]␤»
camelia rakudo-moar 93418e: OUTPUT«[{:a(1), :b(2)}]␤»
ugexe m: [{a => 1, b => 2},].perl.say
camelia rakudo-moar 93418e: OUTPUT«[{:a(1), :b(2)}]␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«[${:a(1), :b(2)}]␤»
laben ugexe++
flussence ugexe++
laben let's go with that 17:19
and with that, i got JSON::Tiny to pass all tests on glr 17:20
flussence those magic trailing commas kinda feel like Rust's magic trailing semicolons :/ 17:21
17:21 brrt left
laben moritz: this is for JSON::Tiny on GLR gist.github.com/anonymous/f45037d1d61ceb16adbf 17:21
next, onto Panda
ugexe you should note if any of the changes you are submitting also work on nom 17:22
17:22 Loren_ left 17:23 mr-foobar joined
laben ugexe: i'm pretty sure they do, will check later 17:23
moritz nah, you should note if they *don't* work on nom :-)
it seems S02-types/whatever.t has started looping on GLR :( 17:24
laben nine++ already got some work done on panda-glr 17:25
17:26 domidumont joined
moritz laben: what's your github ID? 17:26
laben moritz: same as my nick here 17:27
moritz laben: ok, you have push access to moritz/json; feel free to push your GLR workaround/fix after you verified that it still works on nom 17:29
laben moritz: will do, meanwhile Panda builds on GLR but few if any test passes 17:30
17:30 diana_olhovik_ joined
laben moritz: sorry, thinko of mine, they do pass some 17:30
moritz m: my $a = 42; my $b = 23; ($a, $b) = ($b, $a); say $a; say $b 17:31
camelia rakudo-moar 93418e: OUTPUT«23␤42␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«23␤23␤»
moritz I wonder what magic is necessary to make that work 17:32
I can see exactly how the current behavior falls out of the design 17:34
17:35 skids left 17:36 MadcapJake joined
moritz m: say (1..Inf).elems 17:36
camelia rakudo-moar 93418e: OUTPUT«Inf␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/KkwjlJVDUw:1␤␤Actually thrown at:␤ in block <unit> at /tmp/KkwjlJVDUw:1␤␤»
dalek ast/glr: 2a34cc8 | moritz++ | S02-types/lazy-lists.t:
Fix some laziness tests
17:41
17:41 llfourn left 17:42 Ven left 17:43 llfourn joined
moritz m: my $c = (1,2,(3,4)); say $c.elems 17:43
camelia rakudo-moar 93418e: OUTPUT«3␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«3␤»
laben moritz: confirmed that nom passes all glr-adjusted File::Find Shell::Command and JSON::Tiny, now i'll proceed to push to moritz/json if you're okay with it 17:45
[Coke] just realizes why his roast commit wasn't reported.
laben moritz: do you prefer a commit per fix (there are 2) or all together in a "fix for glr" commit? 17:46
dalek ast/glr: 4492a7f | coke++ | S09-typed-arrays/native-int.t:
for doesn't flatten in glr
moritz laben: together
17:48 llfourn left 17:50 Ven joined
cognominal ruby bait for bot 17:51
dalek on: 4b020ae | (Luca Bennati)++ | / (2 files):
Fix up methods and test object construction for GLR
17:54
17:55 sno joined, [Sno] left 17:58 Ven left
ugexe i have an action with make $/<blah>>>.made that gives the 'gimmie' error. HYPER -> deepmap -> gimmie 18:08
laben ugexe: check out the fix i made for the same problem is JSON::Tiny 18:10
s/ is / in /
DrForr Huh, the ANTLR converter still runs... 18:13
18:24 dha joined
DrForr dha: Some of your work bears fruit this weekend :) 18:25
dha Oh? 18:26
18:26 lucasb joined
DrForr Yeah, I'm going through builtins and a few other things before YAPC. 18:27
dha Cool. Hope it helps. 18:28
18:30 danaj left 18:32 ggoebel joined
dha Some stuff strikes me as hard to fully automate, however. Certainly behaviors of caller map decently to callframe, but in general... not so much. 18:33
DrForr General channel question - The old 'use My::Package foo => 1' has gone away?
dha: Oh, I'm not expecting 100%, not even 80%, but preliminary tests have been encouraging.
dha Indeed. Just a point, not a dealbreaker. 18:34
dalek ast/glr: c28f587 | (Stefan Seifert)++ | S02-types/whatever.t:
Fix hang in S02-types/whatever.t

Flattening an infinit lazy list leads to and endless loop. We use Slip now to indicate that we want the list to be interpolated.
18:35
moritz uhm, but ((1, 2) xx *).flat shouldn't loop, no? 18:37
18:39 cognominal left 18:42 xinming left
nine moritz: indeed, it will create an iterator. List inherits Iterable's flat method and that does not care about lazyness. 18:42
So maybe it's time to give List its own flat implementation 18:43
OTOH what would be .flat's job if it does just the same as .iterator? 18:44
Even stranger: Array has a flat method that does Seq.new(self.iterator) while inheriting .iterator from List while List itself does not use its own iterator for .flat and inherits Iterable's instead. 18:46
DrForr m: $*PERL.version 18:48
camelia ( no output )
GLRelia ( no output )
DrForr m: say $*PERL.version
camelia rakudo-moar 93418e: OUTPUT«v6.Advent␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«v6.Advent␤»
DrForr No numeric versions?
Or will that be v6.1.0 or similar at rollout? 18:50
[Coke] Probably not. 18:51
dha My reasearch so far has not indicated that any way of getting at the "version" gives anything actually useful. 18:52
[Coke] I think the thought was: any purely numeric versions are going to be confusing as hell given 5 vs. 6 anyway.
dha Although "v6.Advent" is new. I may need to compile a new rakudo
DrForr So there won't be an unambiguous way of saying "X is newer than Y". 18:53
[Coke] DrForr: I'm pretty sure we'll be able to figure that out, yes. 18:54
DrForr Okay, I'll leave it alone for the time being.
[Coke] I don't think it's written down anywhere. I'll make a note that we need to write something up about version numbers at the SPW if it's not done already. 18:55
PerlJam [Coke]++ 18:56
DrForr I wasn't expecting a formal spec, I was just looking at 'ok $*PERL.version > 5.006001' and wondering if there was going t be something ordered. 18:57
Wish I could make it, but my flights are already booked for YAPC. Had I know, I would have requested a few more days off.
PerlJam is still not entirely sure what $*PERL.version *means* 18:58
DrForr m say $*PERL.version 18:59
m: say $*PERL.version
GLRelia rakudo-moar 3e7cfc: OUTPUT«v6.Advent␤»
camelia rakudo-moar 93418e: OUTPUT«v6.Advent␤»
dha m: say $*PERL
camelia rakudo-moar 93418e: OUTPUT«Perl 6 (6.Advent)␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«Perl 6 (6.Advent)␤»
[Coke] there's a version of the spec, and a version of the compiler. 19:00
pretty sure .Advent is referring to the spec.
DrForr Makes sense. 19:01
laben m: my @a = 1..3; my @b = 4..6; my @c = @a, @b; dd @c 19:03
camelia rakudo-moar 93418e: OUTPUT«@c = [1, 2, 3, 4, 5, 6]<>␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«@c = [$[1, 2, 3], $[4, 5, 6]]␤»
laben m: my @a = 1..3; my @b = 4..6; my @c = flat @a, @b; dd @c 19:04
camelia rakudo-moar 93418e: OUTPUT«@c = [1, 2, 3, 4, 5, 6]<>␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«@c = [1, 2, 3, 4, 5, 6]␤»
nine .tell jnthn what is .flat actually supposed to mean? Array has a flat method that does Seq.new(self.iterator) while inheriting .iterator from List. List itself on the other hand does not use its own iterator for .flat and inherits Iterable's instead. 19:06
yoleaux nine: I'll pass your message to jnthn.
19:07 zakharyas joined 19:09 araujo joined, araujo left, araujo joined 19:13 domidumont left
dalek kudo/glr: 0f328b2 | (Stefan Seifert)++ | src/core/metaops.pm:
Fix hypers on lazy/infinite lists and iterators
19:21
19:22 yqt joined 19:23 bin_005 joined
masak 'night, #perl6 19:24
moritz \o masak
m: say [**] 2, 3
camelia rakudo-moar 93418e: OUTPUT«8␤»
GLRelia rakudo-moar 3e7cfc: OUTPUT«␤The 'gimme' method was an internal method used by rakudo before the Great␤List Refactor. The fact that you are seeing this message, means that you␤have code that was using that unsupported rakudo internal API.␤␤Please refactor this code using t…»
colomon whoops 19:25
moritz just a NYI
colomon moritz: NYF
moritz a 'git grep gimme' shows some more cases
colomon or NYG :) 19:26
moritz NYGLR'd :-)
[Coke] wonders how many people in #perl6 use git grep instead of ack 19:27
colomon has never gotten used to git grep 19:28
colomon also frequently acks things not in git. :)
moritz colomon: it's very handy for largish projects that also create largish caches that 'ack' searches through by default 19:29
lucasb Is it realistic to expect to ship GLR in august? Seems there's still lots of work to do...
moritz lucasb: uhm, no. 19:30
I mean, release date is tomorrow, right?
[Coke] moritz: the -default- release date is tomorrow.
lucasb people were talking about relaxing the third tuesday/thursday rule, wasn't it?
laben panda is a mess right now
i fixed up the installer, but builder and tester are still KO 19:31
moritz if there's a release tomorrow, it'll be a nom release, not a GLR release 19:33
dalek kudo/glr: 1e870ba | (Stefan Seifert)++ | src/core/metaops.pm:
Move HYPER for Associative to avoid confusion with Iterable

Hashes are Iterable and Associative. Need to move the HYPER multi candidates for Associative before the ones for Iterable to give them a chance to actually run.
moritz nine++ # GLR hacking 19:38
m: 'abc' ~~ /(.)+/; say $/.caps 19:42
camelia rakudo-moar 93418e: OUTPUT«0 => 「a」 0 => 「b」 0 => 「c」␤»
GLRelia rakudo-moar 1e870b: OUTPUT«0 => 「a」 0 => 「b」 0 => 「c」␤»
moritz m: 'abc' ~~ /(.)+/; say $/.caps[1]
camelia rakudo-moar 93418e: OUTPUT«0 => 「b」␤»
GLRelia rakudo-moar 1e870b: OUTPUT«0 => 「b」␤»
moritz m: 'abc' ~~ /(.)+/; say $/.caps.^name 19:43
camelia rakudo-moar 93418e: OUTPUT«Parcel␤»
GLRelia rakudo-moar 1e870b: OUTPUT«Seq␤»
moritz is Seq the right thing to return? Or should it be List?
19:44 llfourn joined
nine So many methods return Seq now 19:44
moritz one would hope for a nice way to test for Positional|PositionalBindFailover 19:45
19:48 llfourn left
laben nine: when i somehow get a Seq (in Perl6), what is the usual line to avoid the seq-already-consumed error? 19:49
dalek ast/glr: 1d0069f | moritz++ | S05-capture/caps.t:
Test that Match.caps and .chunks returns something Iterable
nine laben: you can .List it
moritz laben: assign to an array first, or store it's .list
nine laben: It's been a while since I've seen one however.
moritz m: my \g = gather { take 1; take 2 }; say g; say g 19:50
camelia rakudo-moar 93418e: OUTPUT«1 2␤1 2␤»
GLRelia rakudo-moar 1e870b: OUTPUT«1 2␤1 2␤»
moritz huh.
m: my \g = gather { take 1; take 2 }; say g.^name
camelia rakudo-moar 93418e: OUTPUT«List␤»
GLRelia rakudo-moar 1e870b: OUTPUT«Seq␤»
moritz that's a Seq; why was I able to consume it twice?
PerlJam you didn't use an iterator with say 19:51
moritz m: my \g = gather { take 1; take 2 }; say for g; say for g; 19:52
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wFdqAX6ePC␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/wFdqAX6ePC:1␤------> 3my \g = gather { take 1; take 2 }; say7⏏5 fo…»
GLRelia rakudo-moar 1e870b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PU4412sPpJ␤Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument␤at /tmp/PU4412sPpJ:1␤------> 3my \g = gather { take 1; take 2 }; say7⏏5 fo…»
moritz m: my \g = gather { take 1; take 2 }; .say for g; .say for g;
camelia rakudo-moar 93418e: OUTPUT«1␤2␤1␤2␤»
GLRelia rakudo-moar 1e870b: OUTPUT«1␤2␤This Seq has already been iterated, and its values consumed␤ in block <unit> at /tmp/JrsODPlCPJ:1␤␤»
laben nine: i was retesting File::Find without my changes on your latest commit and it gave me that error. fortunately my change fixes it anyway
DrForr nine: perl6 'use PPI:from<Perl5>; PPI::Document.new()' - PPI::Document isn't loaded in Perl6. It's not bad as I can add 'use PPI::Document:from<Perl5>;', just thought you should know. 19:57
nine DrForr: yes, that's a shortcut I took. I don't even look at which packages are actually loaded. I just create a package for the name in the use line. 20:01
DrForr No worries. I understand that's a bit too dynamic to pull in. 20:03
The tool's making the test suite conversion simple so far. 20:04
20:05 rangerprice joined
rangerprice Hi 20:05
nine DrForr: oh, I think it's actually possible. 20:06
DrForr Cool. I note in passing that the error is a bit obsure, but there's nothing for you to worry about on that. 20:08
dalek ast/glr: c191630 | moritz++ | S02-types/nested_arrays.t:
Fix some element numbers in nested_arrays.t
20:12
moritz enough hacking for tonight
TTFN folks
20:14 darutoko left
dalek kudo/glr: 59be37a | (Stefan Seifert)++ | src/core/metaops.pm:
Fix infix hypers on Hashes

Allows 90 % of the hyper tests to pass now.
20:15
20:16 colomon left 20:20 rurban_ left
nine The day ends at 210/1047 spec test files failing 20:21
Nice improvement from the 270 it was two days ago :) 20:22
DrForr This, however... WARNING unhandled Failure detected in DESTROY: No such symbol 'Scalar::Util' 20:23
20:31 lucasb left
DrForr nine: I think I done gone and broke something deep :) 20:36
nine DrForr: no, I've seen such errors. And fixed them. Can you golf it down? 20:37
20:38 llfourn joined
DrForr Well, it looks like a memory leak, so it's sporadic. 20:38
And I've got to get to bed here. I'll send you the file in a gist. It *does* generate perl6 errors, so it's not necessarily going to compile. 20:39
20:40 colomon joined
nine DrForr: no, no, those errors just appear sporadic but have quite mundane causes 20:41
20:41 rurban left
nine DrForr: if it depends or not just depends on MoarVM's garbage collector 20:41
20:43 llfourn left, rindolf left, zakharyas left, diana_olhovik_ left
nine DrForr: it may happen when a method is called on a package but Inline::Perl5 expects an object. I've had such bugs in ->can 20:45
DrForr Yeah, it feels like a GC bug. I point out that it's got some 'undeclared routines' that will trip, but the DESTROY is the problem. 20:47
20:48 Averna joined, skids joined
DrForr I'm guessing that perl6-valgrind will trip the error reliably, but I'm on a laptop in a VM... 20:49
vendethiel DrForr: github.com/niner/Inline-Perl5/issues/38 could you edit the markdown :)? 20:52
20:54 muraiki joined
DrForr If someone can tell me how to do block formatting... 20:54
vendethiel ```blabla```
DrForr Yeah, just saw that. 20:55
Still broken... 20:56
vendethiel DrForr: I don't see a ``` before your code 20:58
laben m: my @a = (1..3)>>.succ; for @a {.say;}
camelia rakudo-moar 93418e: OUTPUT«2␤3␤4␤»
GLRelia ( no output )
vendethiel DrForr++ 20:59
laben why doesn't this work with >> but does with map?
m: my @a = (1..3).map(*.succ); for @a {.say;}
camelia rakudo-moar 93418e: OUTPUT«2␤3␤4␤»
GLRelia rakudo-moar 59be37: OUTPUT«2␤3␤4␤»
laben just a NYI or intentional?
DrForr github.com/niner/Inline-Perl5/issues/39 21:00
``` has to be on its own line, apparently.
21:02 xfix left
jdv79 amazing wht env can do to mood 21:06
istanbul - heat wave and shity beer = unhappier jdv 21:07
DrForr You're in Istanbul? I'm thinking of going there in October.
jdv79 bamberg - decent beer and its almost too cold to wear shorts and a t-shirt - wow
i was
DrForr Past tense. Nice. What did you think, aside from the beer and heat? 21:08
jdv79 i would like to do it in better weathr 21:09
it was cool
dalek rl6-roast-data: f26d75e | coke++ | / (2 files):
redo today's glr run. progress!
21:10
jdv79 is surpringly upbeat
tadzik heh, klasyk
ww
21:11 kaare_ left
[Coke] m: say 111730-112240 # that many more passing tests in a few hours. 21:11
camelia rakudo-moar 93418e: OUTPUT«-510␤»
GLRelia rakudo-moar 59be37: OUTPUT«-510␤»
[Coke] er, reverse that!
jdv79 [Coke]: spw? ::EU? 21:12
21:14 colomon left 21:17 dha left
[Coke] swiss perl workshop 21:23
act.perl-workshop.ch/spw2015/ 21:24
dalek kudo/glr: 7880bb8 | PerlJam++ | src/core/ (2 files):
Restore suggestions for unknown symbols.

Something is getting passed to .join that is not a Str, nor can we call a .Str method on it, but we can box it as a Str.
21:26 bin_005_r joined 21:27 bin_005 left
laben Panda::Builder fixed, 1 character change that took like 4 hours to do... 21:29
21:29 figitaki joined 21:30 figitaki left 21:33 colomon joined 21:37 muraiki left
RabidGravy :) 21:39
21:40 Averna left 21:53 TEttinger joined
timotimo huh! 22:00
that seems so wrong ... push_s is most probably going to unbox_s the boxed string again 22:01
leont I have a hash of Match, how can I *elegantly* transform that into a hash of Int?
timotimo what part of the match do you want to use as the Int? 22:02
oh, you mean the match was from something like \d ? 22:03
leont Yeah
timotimo right
deepmap ought to DTRT with hashes, like hyper method calls
leont I mean, I can think of plenty of non-elegant ways, but this should be easy
timotimo m: my %foo = "hello", ("123" ~~ / \d+ /), "goodbye" ("hey 444" ~~ / \d+ /); say %foo.perl 22:04
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KI5TQkDemL␤Two terms in a row␤at /tmp/KI5TQkDemL:1␤------> 3= "hello", ("123" ~~ / \d+ /), "goodbye"7⏏5 ("hey 444" ~~ / \d+ /); say %foo.perl␤ expecting any of:␤ infix␤ infix …»
GLRelia rakudo-moar 7880bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/r3vhnzSRWZ␤Two terms in a row␤at /tmp/r3vhnzSRWZ:1␤------> 3= "hello", ("123" ~~ / \d+ /), "goodbye"7⏏5 ("hey 444" ~~ / \d+ /); say %foo.perl␤ expecting any of:␤ infix␤ infix …»
timotimo m: my %foo = "hello", ("123" ~~ / \d+ /), "goodbye", ("hey 444" ~~ / \d+ /); say %foo.perl
camelia rakudo-moar 93418e: OUTPUT«{:goodbye(Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "hey 444", to => 7, from => 4)), :hello(Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "123", to => 3, from => 0))}<>␤»
GLRelia rakudo-moar 7880bb: OUTPUT«{:goodbye(Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "hey 444", to => 7, from => 4)), :hello(Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "123", to => 3, from => 0))}␤»
timotimo m: my %foo = "hello", ("123" ~~ / \d+ /), "goodbye", ("hey 444" ~~ / \d+ /); say %foo>>.Int.perl
camelia rakudo-moar 93418e: OUTPUT«{:goodbye(444), :hello(123)}<>␤»
GLRelia rakudo-moar 7880bb: OUTPUT«{}␤»
timotimo but i think hyperops are a bit b0rken on GLR right now
looks kind of like somewhere there's a "eagerify this list" missing inside hyper or deepmap or something
leont isn't on glr yet 22:05
laben m: sub foo() { my $f = False; :$f}; my (:$f) = foo(); $f.say; if $f { say "Not Falsey" } else { say "Falsey" }
camelia rakudo-moar 93418e: OUTPUT«f => False␤Not Falsey␤»
GLRelia rakudo-moar 7880bb: OUTPUT«f => False␤Not Falsey␤»
leont timotimo++ 22:07
laben i think i... fixed Panda::Tester, but the last thing i changed... i dunno how it ever worked?!
timotimo you're welcome :)
laben has the return-as-named-param always constructed a Pair? 22:08
timotimo star: sub test() { my $f = False; :$f); say test.perl 22:10
22:10 GLRelia left
camelia star-m 2015.03: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hT2YFx9omu␤Unable to parse expression in block; couldn't find final '}' ␤at /tmp/hT2YFx9omu:1␤------> 3sub test() { my $f = False; :$f7⏏5); say test.perl␤ expecting any of:␤ statement end…» 22:10
timotimo yikes! what did i do to glrelia? :(
star: sub test() { my $f = False; :$f }; say test.perl 22:11
camelia star-m 2015.03: OUTPUT«"f" => Bool::False␤»
timotimo star: sub test() { my $f = False; return :$f }; say test.perl
camelia star-m 2015.03: OUTPUT«"f" => Mu␤»
timotimo ... what
laben i dont think glrelia has star dist
vendethiel timotimo: probably didn't like star
timotimo m: sub test() { my $f = False; return :$f }; say test.perl
camelia rakudo-moar 93418e: OUTPUT«:f(Mu)␤»
22:11 GLRelia joined
timotimo ... what? 22:11
GLRelia star-m : OUTPUT«Can't chdir to '/home/steve/star/': No such file or directory at lib/EvalbotExecuter.pm line 171.␤ EvalbotExecuter::_auto_execute(HASH(0x253db90), "sub test() { my \$f = False; :\$f); say test.perl", GLOB(0x2824208), "/tmp/aAnBxthDkm", "star-m") called at lib/Evalb…» 22:12
laben oh, she's back
m: sub foo() { my $f = False; :$f}; foo.perl.say 22:13
GLRelia rakudo-moar 7880bb: OUTPUT«:!f␤»
camelia rakudo-moar 93418e: OUTPUT«:!f␤»
laben m: sub foo() { my $f = False; :$f}; dd foo()
GLRelia rakudo-moar 7880bb: OUTPUT«:!f␤»
camelia rakudo-moar 93418e: OUTPUT«:!f␤»
22:13 TEttinger left
laben m: sub foo() { my $f = False; :$f}; my (:$a) = foo(); $a.perl.say 22:13
GLRelia rakudo-moar 7880bb: OUTPUT«:!f␤»
camelia rakudo-moar 93418e: OUTPUT«:!f␤»
laben m: sub foo() { my $f = False; :$f}; my (:$a) = foo(); $a.say; 22:14
GLRelia rakudo-moar 7880bb: OUTPUT«f => False␤»
camelia rakudo-moar 93418e: OUTPUT«f => False␤»
laben m: sub foo() { my $f = False; return :$f}; my (:$a) = foo(); $a.say;
GLRelia rakudo-moar 7880bb: OUTPUT«f => (Mu)␤»
camelia rakudo-moar 93418e: OUTPUT«f => (Mu)␤»
laben oh my
m: sub foo() { my $f = False; return :$f;}; my (:$a) = foo(); $a.say;
GLRelia rakudo-moar 7880bb: OUTPUT«f => (Mu)␤»
camelia rakudo-moar 93418e: OUTPUT«f => (Mu)␤»
laben m: sub foo() { my $f = False; :$f}; my (:$a) = foo(); $a.value.say 22:15
GLRelia rakudo-moar 7880bb: OUTPUT«False␤»
camelia rakudo-moar 93418e: OUTPUT«False␤»
laben ... anyway i got panda working over glr. this is after having patched File::Find and Shell::Command, while JSON::Tiny has the changes already pushed to git 22:16
timotimo very cool :)
laben the last thing is making (re)bootstrap work i think 22:17
for now, ufo saved my life
22:19 RabidGravy left, Averna joined
laben it's getting late over here, i guess i'll publish the patches on gist. the rest if for tomorrow and later on 22:20
timotimo thank you for your hard work!
laben this is for File::Find gist.github.com/b47ed8bfb11ea001c23a 22:22
22:23 bin_005_r left
laben this is for Shell::Command gist.github.com/71682f09109a5169e5d5 22:24
timotimo ideally, hyper-methodcall would be fixed instead of having to turn >>. into .map(*. ) 22:26
laben the last one is for the branch 'glr' of Panda gist.github.com/0935bf0a54ce50685f93 22:29
timotimo: possible yeah, but the panda ones are different and possibly wont change even after fixing up rakudo/glr 22:30
m: my @a = (1..3)>>.succ; for @a {.say}
GLRelia ( no output )
camelia rakudo-moar 93418e: OUTPUT«2␤3␤4␤»
laben m: my @a = (1..3).map(*.succ); for @a {.say}
GLRelia rakudo-moar 7880bb: OUTPUT«2␤3␤4␤»
camelia rakudo-moar 93418e: OUTPUT«2␤3␤4␤»
laben see what happened? >> did not work there
not sure if intentional or NYI 22:31
truthfully speaking, the strange one is the File::Find one, but im not gonna dig deeper, since i dont know enough about rakudo to check that out 22:32
22:37 leont left
laben better republish the ufo one too, still backwards compatible but better conceptually gist.github.com/bfac93f00649f1609ec2 22:37
with this, good night or good hacking #perl6 22:38
timotimo >> not working there is definitely not intentional
22:39 llfourn joined
timotimo mhhh, this cat is getting cuddled something fierce 22:42
22:43 llfourn left 22:44 yqt left 22:48 virtualsue left
timotimo i wanted to stop cuddling the cat and went to wash my hands, now i'm back and the cat is requesting, nay demanding more cuddles 22:49
22:52 krakan joined 23:01 danaj joined 23:06 telex left 23:08 telex joined
rangerprice I'm happy on my Arch Linux distribution 23:24
23:25 SHODAN joined
rangerprice Everybody that use Windows 10 should read this: i.imgur.com/Gu6bBV1.png 23:25
timotimo i wouldn't expect anybody who uses windows seriously to take this text seriously 23:27
tadzik I don't expect anyone serious to take it seriously either :) 23:29
flussence stale copypasta is stale
tadzik I even have a weechat script for that 23:30
but it's very spammy, obvioustly, so I'll resist now
flussence heh :)
timotimo did anybody try zef yet? with the glr branch? 23:34
ugexe: any words about glr support? 23:35
i see you have a one-line-change commit in zef that is explicitly related to glr
does that mean everything else already works?
23:35 spider-mario left
timotimo m: reat { } 23:44
GLRelia rakudo-moar 7880bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pgPbvBrTTD␤Undeclared routine:␤ reat used at line 1␤␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UelTK9goTN␤Undeclared routine:␤ reat used at line 1␤␤»
timotimo m: react { }
GLRelia rakudo-moar 7880bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8rsQHD9G0b␤Undeclared routine:␤ react used at line 1␤␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yB1nhMv2Kn␤Undeclared routine:␤ react used at line 1␤␤»
timotimo m: supply { }
GLRelia rakudo-moar 7880bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_Vvk22BQdr␤Undeclared routine:␤ supply used at line 1␤␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XjrpeVI4_r␤Undeclared routine:␤ supply used at line 1␤␤»
timotimo didn't that get merged? 23:45
m: say &REACT
GLRelia rakudo-moar 7880bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0Uevs4_7WK␤Undeclared routine:␤ &REACT used at line 1␤␤»
camelia rakudo-moar 93418e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/60vuqyXA6i␤Undeclared routine:␤ &REACT used at line 1␤␤»
timotimo the version of rakudo on camelia is kind of old 23:46
23:56 BenGoldberg joined
timotimo doc.perl6.org/type-basic.html - huh? 23:57
labster We only have advanced types? 23:58
timotimo probably