Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-10

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:08 Juerd Where is .^attributes implemented?
00:11 gfldex Juerd: i think in src/Perl6/Metamodel/AttributeContainer.nqp
00:12 Juerd Ah, another Metamodel folder :)
00:12 Juerd I found src/core/Metamodel but it was almost empty
00:13 Juerd Thanks :)
00:17 lea joined #perl6
00:24 Juerd What's the nice way to do $object.^attributes[0].get_value($object)?
00:24 Juerd (Or, actually, to get a hash of attributes)
00:28 laouji joined #perl6
00:29 sufrostico joined #perl6
00:30 Juerd class Foo { use JSON::Tiny; method json { my %hash; for self.^attributes -> $a { %hash{ $a.Str.substr(2) } = $a.get_value(self).Str }; return to-json %hash; } }
00:30 Juerd It works but it feels icky
00:30 Juerd (Stole from Mu.perl, and something tells me I shouldn't find inspiration in Mu.pm :))
00:39 n0tjack joined #perl6
00:40 laouji joined #perl6
00:40 laouji joined #perl6
01:00 rurban joined #perl6
01:01 colomon Hmmm: Type check failed in binding $s; expected 'Cool' but got 'Enum'
01:01 colomon mind you, there is no $s in my source code.
01:02 kernel joined #perl6
01:06 noganex joined #perl6
01:08 * colomon spent ten minutes before this bug trying to execute the non-existant output file rather than the program to generate it.
01:09 Juerd Chicken-and-egg problems are hard.
01:09 colomon m: say uc(“hello")
01:09 camelia rakudo-moar 079d73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XMNP_e9WDM␤Unable to parse expression in smart double quotes; couldn't find final '”' ␤at /tmp/XMNP_e9WDM:1␤------> 3say uc(“hello")7⏏5<EOL>␤    expecting any of:␤        argument list␤   …»
01:09 colomon m: say uc('hello')
01:09 camelia rakudo-moar 079d73: OUTPUT«HELLO␤»
01:10 Juerd (I'm trying to do recursive data structures)
01:11 Juerd That “ is nasty!
01:11 aeth left #perl6
01:13 colomon Juerd: yeah, my IRC client is hell on typing code out
01:14 Juerd Is there a way to defer object instantiation? I have to serialize objects and store them, get them back later, but depending on the order of reading, things they refer to may not be available yet... :(
01:14 colomon at the SPW hackathon I actually opened up a terminal window back to my Linux box in the States and ran irssi on it so I could try code here
01:15 Juerd I'd suggest using irssi all the time anyway, but you probably have reasons for not doing so, or you'd already do it :)
01:15 colomon m: my $s = set <a b c>: $s.list.map{{ say $_ })
01:15 camelia rakudo-moar 079d73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M29sElm0Xo␤Cannot use variable $s in declaration to initialize itself␤at /tmp/M29sElm0Xo:1␤------> 3my $s = set <a b c>: $7⏏5s.list.map{{ say $_ })␤    expecting any of:␤        term␤»
01:15 colomon m: my $s = set <a b c>; $s.list.map{{ say $_ })
01:15 camelia rakudo-moar 079d73: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tbmFiWY0Gw␤Unable to parse expression in subscript; couldn't find final '}' ␤at /tmp/tbmFiWY0Gw:1␤------> 3$s = set <a b c>; $s.list.map{{ say $_ }7⏏5)␤    expecting any of:␤        statement en…»
01:15 colomon m: my $s = set <a b c>; $s.list.map({ say $_ })
01:16 camelia rakudo-moar 079d73: OUTPUT«a => True␤c => True␤b => True␤»
01:16 Juerd http://pastebin.com/5d0hFtGZ  # My first Perl 6. It's hard :(
01:17 Juerd I may just have to make sure that cyclic constructs don't take place. I don't really need them anyway.
01:24 grondilu joined #perl6
01:26 Juerd Type check failed in binding $foo; expected 'Any' but got 'Mu'
01:26 Juerd Okay... I give up.
01:26 Khisanth joined #perl6
01:31 Juerd I'm not good at giving up; adding "Mu" helped, but it still doesn't do what I want
01:31 Juerd Can't find a way to use 'self' in a has...where
01:32 Juerd So it seems I can't use the type mechanism to avoid recursive/cyclic structures :|
01:33 skids https://gist.github.com/skids/7b099e80ce8d378f0cdd # ShimmerFairy, japhb
01:45 japhb skids: I am confused.  Your numbers appear to show that the unpatched version is strictly faster.
01:45 skids Yes, it is, I think because of the unwind, I dunno.
01:46 ilbot3 joined #perl6
01:46 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: http://irc.perl6.org | UTF-8 is our friend!
01:48 kaare_ joined #perl6
01:48 skids Incidentally it seems even more expensive to make that backtrace than just looping over Backtrace.new, which take 8.7s for the "10000e3".."29999e3" case, so depth of the Backtrace may even matter.
01:52 telex joined #perl6
01:54 thou joined #perl6
01:56 Khisanth joined #perl6
02:16 ShimmerFairy ding!
02:16 yoleaux 9 Sep 2015 16:17Z <jnthn> ShimmerFairy: Did you run "make test" also? I fear your val work maybe busted t\04-nativecall\12-sizeof.t
02:19 ShimmerFairy .tell jnthn no, I neglected to run make test. The good news is that I fixed this error for trait_mod:sym<is> already (just not 'repr', since it's a specially-handled case of 'is' that roast apparently doesn't catch). Unfortunately the same fix I tried before I had to go afk today didn't work, something about the dynamic var.
02:19 yoleaux ShimmerFairy: I'll pass your message to jnthn.
02:26 tokuhiro_ joined #perl6
02:30 dayangkun joined #perl6
02:37 BenGoldberg joined #perl6
02:45 rickbike joined #perl6
02:49 ugexe Juerd: `has Entity $.location is rw where Place = Nowhere;` i dont think this does whatever it is you think it does
02:53 Khisanth joined #perl6
02:53 ugexe your multiple %cache returns can be replaced by a single return ::($_).new(|%hash)
02:54 Juerd ugexe: What do you think I think it does? :)
02:55 ugexe exactly what your error says
02:55 ugexe «Invocant requires an instance of type <anon>, but a type object was passed.
02:55 Juerd ::($_) is a bit scarier; I want a whitelist of sorts
02:56 ugexe as far as what you want i dont know. maybe you want an instance. maybe you are trying to enforce a interface/contract
02:56 Juerd The whole = Nowhere thing works except in method json
02:56 skids == surely
02:57 Juerd Actually, it works even in .json
02:58 Juerd It fails for the Place case, where .location remains unassigned
02:58 Juerd skids: No, assignment :)
02:59 skids OIC.  I should have read the code.
02:59 ugexe does `where Place` allow undefined?
02:59 noganex_ joined #perl6
03:00 Juerd ugexe: Yes. Actually, that one should just be 'has Place $.location is rw;'
03:00 skids 'where Place' should be same as 'where { $_ ~~ Place }'
03:01 Juerd And then it fails with Invocant requires an instance of type Place, but a type object was passed.  Did you forget a .new?
03:01 Juerd I wonder which Invocant it's referring to
03:04 skids try --ll-exception?
03:06 ugexe submethod is private
03:06 ugexe submethod Str
03:06 Juerd src/gen/m-BOOTSTRAP.nqp:2976 which is                 nqp::isinvokable(@error[0]) ?? @error[0]() !! nqp::die(@error[0]);
03:06 n0tjack joined #perl6
03:07 Juerd Oh, wait, that's the error message itself :)
03:07 ugexe i imagine that might have to do with $a.Str inovation error
03:07 ugexe invocation
03:07 ugexe ::(Nowhere).Str
03:08 Juerd It's not $a.Str but $a.get_value(self).Str
03:09 ugexe is there eve a self if you do `class Foo { method bar {self} }; Foo.bar`?
03:10 Juerd No, but do I do that? I'm doing $instance.json, and in there I'm using self.
03:10 Juerd I'm not doing Nowhere.json, or something like that
03:10 ugexe my $t = Entity.load("foo");
03:11 ugexe it would be easier if it was golfed down, but that looks like you might have wanted to create a Entity.new first
03:12 Juerd I'll golf down in a query with camelia. Hold on :)
03:12 ugexe maybe $a.get_value($a).Str
03:13 dalek rakudo/nom: c54773f | ShimmerFairy++ | src/Perl6/Actions.nqp:
03:13 dalek rakudo/nom: Fix the 'is' trait_mod for 'is repr'
03:13 dalek rakudo/nom:
03:13 dalek rakudo/nom: This special case's breakage was only picked up by a sanity test, which
03:13 dalek rakudo/nom: since I neglected to run them went unnoticed when fixing 'is' the first
03:13 dalek rakudo/nom: time.
03:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c54773f90f
03:16 Juerd I'm failing.
03:16 Juerd This works :(
03:16 Juerd m: class Wim { method Str { "wim" } }; class Aap { has $.noot is rw = Wim; method mies { my %hash;  for self.^attributes { %hash{ $_.Str } = $_.get_value(self).Str }; say %hash.perl } }; my $aap = Aap.new; $aap.mies
03:16 camelia rakudo-moar 079d73: OUTPUT«{"\$!noot" => "wim"}␤»
03:17 ugexe you don't use .new in your gist
03:17 ugexe no Entity.new
03:18 skids ahah.
03:20 Juerd Argh, I can't even reproduce it anymore
03:20 Juerd Oh d'oh. Removing try { } helps :D
03:20 ugexe it was all a dream
03:20 Juerd I wish. It's 5:20 am here.
03:20 Juerd s/am/AM/
03:21 Juerd So it works for $t.json, but it fails for $t.location.json
03:21 Juerd Even though $t.json succesfully serialized to { "id" : "foo", "class" : "Person", "location" : "lhq" }
03:23 Juerd So it fails for the case with has Place $.location is rw; in class Place
03:23 Juerd If I add "= Nowhere" to that, it works as expected.
03:24 ugexe method json(Entity:) { } perhaps... im not sure what the default is
03:24 Juerd Ah. The real thing failing is Entity.Str, which uses self, like you suggested.
03:24 Juerd It's just in a place I didn't expect...
03:24 ugexe first do s/submethod/method/
03:24 Juerd Already have it as a method in my current version
03:25 Juerd multi method Str (Entity:D: ) { self.id }
03:25 Juerd Fixed it...
03:25 Juerd Feels wrong because I really don't know what I'm doing. I don't even know the difference between methods and submethods.
03:26 ugexe submethod doesnt get inherited. i dont know if that actually happens or not with your code, but it looks like it might
03:27 tokuhiro_ joined #perl6
03:28 ugexe Entity:D: means that method is called on an 'D'efined Entity (and not an undefined one)
03:28 Juerd http://pastebin.com/Qb5vVMwU  # does what I want
03:28 skids m: class A { my sub ergh($id) is cached { 55.say; $id + 42 }; method ergh2(A: $id) { ergh($id) } }; A.ergh2(1).say; A.ergh2(1).say; # if your caching needs are simple.
03:28 camelia rakudo-moar 079d73: OUTPUT«55␤43␤43␤»
03:28 Juerd The :D part I knew :)
03:28 Juerd "is cached"! Really! Nice.
03:29 Juerd My caching needs are incredibly simple.
03:29 Juerd «'is cached' on methods not yet implemented. Sorry.»
03:29 Juerd Okay, perhaps they're a little less simple than I thought :)
03:31 Juerd Wrapped in a sub, works now. This is pretty nice.
03:32 Juerd Now the only thing I still need is the thing that seems most impossible... make the subtype prevent cyclic structures :)
03:33 Juerd But apparently the "refinement" block in 'has ... where' can't access the instance. Or at least, I haven't found how yet.
03:33 ugexe can you do it in a submethod BUILD() { } initialization?
03:33 Juerd No, .location will probably be changed after initialization
03:34 ugexe shouldnt matter
03:34 Juerd The purpose of this program is tracking whereabouts of people and stuff.
03:34 baest_ joined #perl6
03:34 Juerd And a box can't be put in itself
03:34 ugexe oh the type check to happen again
03:35 Juerd I'm using Perl 6 for this because I have a year and a half to finish this project, and it seemed like a good project for testing the object system :)
03:35 ugexe i wonder if a role could enforce it somehow
03:36 Juerd I think that non-cyclic subtypes are useful in many cases
03:37 Juerd But for now, I'm off to bed. 5:37 AM here, I've already been at it for too long :)
03:37 Juerd Thanks for your help, ugexe and skids!
03:38 skids np
03:39 tokuhiro_ joined #perl6
03:39 ugexe binding a Proxy in BUILD to the attribute might let you do your check too
03:42 thou joined #perl6
03:43 billn joined #perl6
03:44 billn left #perl6
03:46 skids m: class A { has $.a; has $.b = self.foo(); method foo { $.a > 4 ?? $.a !! die } }; A.new(:a(5)).perl.say; A.new(:a(4));
03:46 camelia rakudo-moar c54773: OUTPUT«A.new(a => 5, b => 5)␤Died␤  in method foo at /tmp/GN5GQuz98o:1␤  in method  at /tmp/GN5GQuz98o:1␤  in block <unit> at /tmp/GN5GQuz98o:1␤␤»
04:23 darutoko joined #perl6
04:26 rmgk_ joined #perl6
04:36 perlawhirl joined #perl6
04:50 aborazmeh joined #perl6
04:50 aborazmeh joined #perl6
05:10 TimToady m: sub MAIN { my @p = (start { say "A$_"; sleep rand; say "B$_" } for 1..5); await @p; }
05:10 camelia rakudo-moar c54773: OUTPUT«A1␤A2␤A3␤A4␤A5␤»
05:10 TimToady m: sub MAIN { my @p = (start { say "A$_"; sleep rand; say "B$_" } for 1..5); sink await @p; }
05:10 camelia rakudo-moar c54773: OUTPUT«A1␤A2␤A3␤A4␤A5␤B4␤B3␤B5␤B2␤B1␤»
05:11 TimToady needing to sink that await seems like a problem, since main should probably assume --> Sink
05:12 TimToady (this prevented RC's Dining Philosophers from running correctly)
05:17 Khisanth joined #perl6
05:18 n0tjack joined #perl6
05:22 TimToady m: my Bool %hash{*;*}; %hash{"a"; "b"} = True;
05:22 camelia rakudo-moar c54773: OUTPUT«Type check failed in assignment to '%hash'; expected 'Bool' but got 'Hash'␤  in block <unit> at /tmp/NWldXMtkgi:1␤␤»
05:30 thou joined #perl6
05:46 domidumont joined #perl6
05:48 telex joined #perl6
05:49 CIAvash joined #perl6
05:51 domidumont joined #perl6
05:56 finbarrsaunders joined #perl6
05:56 finbarrsaunders left #perl6
06:07 [Tux] test             50000    40.658    40.575
06:07 [Tux] test-t           50000    43.211    43.127
06:11 laouji joined #perl6
06:27 baest_ joined #perl6
06:27 sizur joined #perl6
06:27 sizur Hi all!
06:28 sizur Is there overhead to flip=flop operators or are they simply stranslating to an opcode when in boolean context?
06:28 Sgeo joined #perl6
06:29 cgfbee joined #perl6
06:53 moritz sizur: are you talking about Perl 5 or Perl 6?
07:00 [Sno] joined #perl6
07:03 Ven joined #perl6
07:06 azawawi joined #perl6
07:06 azawawi hi
07:07 azawawi is 'panda gen-meta .' broken atm?
07:11 rindolf joined #perl6
07:18 xfix joined #perl6
07:18 xfix joined #perl6
07:18 thou joined #perl6
07:26 rurban joined #perl6
07:39 aborazmeh joined #perl6
07:39 aborazmeh joined #perl6
07:44 Ven \o, #perl6
07:45 n0tjack joined #perl6
07:59 Ven joined #perl6
07:59 zakharyas joined #perl6
08:01 ruoso joined #perl6
08:02 bowtie joined #perl6
08:03 dakkar joined #perl6
08:48 FROGGS joined #perl6
08:49 shmibs joined #perl6
08:50 lizmat joined #perl6
08:53 laouji joined #perl6
08:54 _itz azawawi: I just tried it on 'brew .. no joy .. the star version (without the specify ".") works
09:04 andreoss joined #perl6
09:06 thou joined #perl6
09:09 FROGGS joined #perl6
09:14 xinming_ joined #perl6
09:14 pmurias joined #perl6
09:14 dalek nqp/js-merge-wip: 485c280 | (Pawel Murias)++ | src/core/testing.nqp:
09:14 dalek nqp/js-merge-wip: Temporarily workaround a .push bug in the js backend.
09:14 dalek nqp/js-merge-wip:
09:14 dalek nqp/js-merge-wip: Fixing the bug requires a refactoring which I will do once the test suit passes.
09:14 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/485c2803c4
09:14 dalek nqp/js-merge-wip: a9d1b34 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
09:14 dalek nqp/js-merge-wip: Fix coercion of strings to bool.
09:14 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/a9d1b34e7d
09:14 dalek nqp/js-merge-wip: 11eee86 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
09:14 dalek nqp/js-merge-wip: Implement rindex and fix index corner case.
09:14 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/11eee86e2c
09:24 cognominal joined #perl6
09:25 Akagi201 joined #perl6
09:28 timotimo o/
09:28 nits joined #perl6
09:33 lizmat timotimo o/
09:37 andreoss joined #perl6
09:37 timotimo Timo ob a train
09:38 timotimo on
09:39 xinming joined #perl6
09:39 espadrine joined #perl6
09:42 jnthn morning (just), #perl6 :)
09:42 yoleaux 02:19Z <ShimmerFairy> jnthn: no, I neglected to run make test. The good news is that I fixed this error for trait_mod:sym<is> already (just not 'repr', since it's a specially-handled case of 'is' that roast apparently doesn't catch). Unfortunately the same fix I tried before I had to go afk today didn't work, something about the dynamic var.
09:43 andreoss does NativeCall use pkg-config when looking for a library?
09:43 nine no
09:43 andreoss so it just traverses LD_LIBRARY_PATH?
09:44 nine yes
09:44 timotimo pkgconfig is not really for looking for .so files
09:46 pmurias joined #perl6
09:49 espadrine_ joined #perl6
09:54 dalek rakudo/nom: 3f73192 | lizmat++ | src/core/allomorphs.pm:
09:54 dalek rakudo/nom: Simplify allomorphic .gist/.perl representation
09:54 dalek rakudo/nom:
09:54 dalek rakudo/nom: It felt a bit like unnecessarily exposing the inner workings of rakudo before.
09:54 dalek rakudo/nom: KISS applies here, I think, so I applied it  :-)
09:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3f7319223d
09:55 lizmat ShimmerFairy++ # for allomorphic work, BTW  !
09:56 timotimo wouldn't printing out the Str version always work and be less costly?
09:56 telex joined #perl6
09:56 espadrine joined #perl6
09:56 moritz m: say <a 1 b>[1].^name
09:56 camelia rakudo-moar c54773: OUTPUT«IntStr␤»
09:56 moritz m: say <a 1/2 b>[1].^name
09:56 camelia rakudo-moar c54773: OUTPUT«RatStr␤»
09:57 moritz m: say <a 1e5 b>[1].^name
09:57 camelia rakudo-moar c54773: OUTPUT«NumStr␤»
09:57 moritz m: say <a 1e5i b>[1].^name
09:57 camelia rakudo-moar c54773: OUTPUT«ComplexStr␤»
09:58 timotimo do allomorphic types now prefer to turn into the not-str variant for multiple dispatch?
09:59 andreoss m: use Test; is-deeply [1,2,3], $(1,2,3)
09:59 camelia rakudo-moar c54773: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/Hevs8d_nWf line 1␤# expected: $(1, 2, 3)␤#      got: [1, 2, 3]␤»
10:00 andreoss m: use Test; is-deeply [1,2,3], @(1,2,3)
10:00 camelia rakudo-moar c54773: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/Y79NKefHs6 line 1␤# expected: $(1, 2, 3)␤#      got: [1, 2, 3]␤»
10:01 jnthn Both correct
10:02 andreoss m: use Test; is-deeply [1,2,3].list, @(1,2,3).list
10:02 camelia rakudo-moar c54773: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/obqk_khAmS line 1␤# expected: $(1, 2, 3)␤#      got: [1, 2, 3]␤»
10:02 jnthn m: use Test; is-deeply [1,2,3], (1,2,3).Array
10:02 camelia rakudo-moar c54773: OUTPUT«ok 1 - ␤»
10:02 jnthn is-deeply needs identical types
10:02 nine timotimo: they don't as far as I know
10:02 lizmat timotimo: val().Str would not work for .perl
10:02 nine m: use Test; is-deeply [1,2,3].List, @(1,2,3).list
10:02 camelia rakudo-moar c54773: OUTPUT«ok 1 - ␤»
10:03 lizmat timotimo: one could argue that for .gist, one could take the .Str version
10:03 nine .List on Array gives you a downgraded List. .list gives you the Array itself, since Arrays are Lists, too.
10:03 timotimo lizmat, i mean putting them between < >
10:04 lizmat m: <42>.say
10:04 camelia rakudo-moar c54773: OUTPUT«val("42")␤»
10:04 lizmat m: <42>.perl.say
10:04 camelia rakudo-moar c54773: OUTPUT«IntStr.new(42, "42")␤»
10:05 xinming_ joined #perl6
10:05 jnthn I think the .gist should be be .Str on an allomorph
10:05 lizmat $ 6 '<42>.say; <42>.perl.say'
10:05 lizmat 42
10:05 lizmat <42>
10:05 jnthn lizmat: The latest is what you just changed it to?
10:05 lizmat it appears to be now
10:05 lizmat yes
10:05 jnthn Uh, what you just wrote I mean
10:05 jnthn +1
10:05 jnthn Those two make sense to me
10:06 jnthn It turns out putting an eqaddr(a.WHAT, b.WHAT) shortcut into the default === impl actually breaks tests :S
10:06 timotimo i was just suggesting a performance improvement
10:06 jnthn We should deal with that at some point
10:07 jnthn .tell hoelzro many-processes-no-close-stdin.t is explodey again on Windows, along with no-runaway-file-limit.t. I think I already fixed those two once...
10:07 yoleaux jnthn: I'll pass your message to hoelzro.
10:07 timotimo since we have the str that we originally parsed right there, we don't have to go through stringifying complex or rat or nun
10:08 * jnthn would hope that allomoprh's .Str method just does nqp::unbox_s or so...
10:08 timotimo num
10:10 timotimo look at the last commit
10:10 timotimo it explicitly pulls out .Rat and .Complex and .Num
10:13 jnthn Oh, for .perl though, not for .gist
10:13 * lizmat looks at it further  :-)
10:13 timotimo yes
10:14 dalek rakudo/nom: 132a733 | jnthn++ | src/core/Any-iterable-methods.pm:
10:14 dalek rakudo/nom: Minor streamlining in sequential-map.
10:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/132a733f53
10:14 dalek rakudo/nom: 9f8d851 | jnthn++ | src/core/ (2 files):
10:14 dalek rakudo/nom: More dispatch opts, this time to split.
10:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9f8d851d94
10:14 lizmat so, you would like me to remove the .Num etc and replace it by a gettattr
10:14 lizmat ?
10:14 FROGGS o/
10:14 lizmat FROGGS o/
10:14 FROGGS lizmat: you are at home already?
10:14 lizmat no, not for another week or so...
10:15 FROGGS ewww
10:15 lizmat in Bordeaux at the moment
10:15 timotimo i want you to use the .Str there
10:15 jnthn lizmat: I think timotimo's point was more that we could just emit the Str form
10:15 jnthn lizmat: Since that is what was originally parsed and, thanks to us putting it in <...>, will certainly reproduce the allomorph
10:15 Ven joined #perl6
10:15 lizmat gotcha
10:16 timotimo unless someone writes IntStr.new(42, "23")
10:16 jnthn That's their problem :P
10:16 timotimo i agree
10:18 JimmyZ well, IntStr.new(42, "Unicode Num")
10:20 Angus joined #perl6
10:24 ShimmerFairy just to point out, S02 suggested a one-arg .new for allomorphic types, but it seemed easier to go with two arguments like I did, on the assumption that it's your fault for making a bad IntStr by hand :)  (one arg would seem to require splitting val() across a bunch of .new methods)
10:24 FROGGS ShimmerFairy: do not expect that the design docs are always right
10:28 andreoss Array and List have the same data structure and there should be no performance differences between them?
10:30 moritz Array forces a container for each element, so it has to do more than List
10:32 andreoss why i can't have @ sigil with List?
10:32 jnthn I dunno, why can't you?
10:33 jnthn m: my @a := (1, 2, 3); say @a.WHAT
10:33 camelia rakudo-moar 3f7319: OUTPUT«(List)␤»
10:33 andreoss m: my List @a; @a[0] = 1; say @a.perl
10:33 camelia rakudo-moar 3f7319: OUTPUT«Type check failed in assignment to '@a'; expected 'List' but got 'Int'␤  in block <unit> at /tmp/y0lzscPPyy:1␤␤»
10:33 jnthn That means an Array of List
10:34 jnthn You could in theory write `my @a is List` at some point, though it's rather pointless because List is immutable.
10:34 moritz or my @a := List.new; # which works right now
10:35 andreoss m: my @a = List.new ; @a[1] = 1; say @a.perl
10:35 camelia rakudo-moar 3f7319: OUTPUT«[Any, 1]␤»
10:36 andreoss it becames array
10:36 FROGGS andreoss: yes, that is what the assignment does if the left hand side is @-sigilled
10:36 dalek rakudo/nom: 95c85bc | lizmat++ | src/core/allomorphs.pm:
10:36 dalek rakudo/nom: Slightly less KISS, slightly faster .perl
10:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95c85bc3c8
10:36 FROGGS andreoss: to say that you don't want that you use binding instead
10:37 jnthn m: say 4.91 / 11.87
10:37 camelia rakudo-moar 3f7319: OUTPUT«0.413648␤»
10:37 timotimo whoa
10:37 FROGGS jnthn: ?
10:38 jnthn for lines('one-million-lines'.IO) { } # 11.87 before my patch, 4.91 after
10:38 jnthn I think a lot more pre-GLR
10:38 xinming joined #perl6
10:38 jnthn Certainly a LOT more memory pre-GLR
10:38 * FROGGS .oO( sadly these improvements do not make my jvm explode faster... )
10:38 jnthn :(
10:38 FROGGS jnthn: that's impressive :o)
10:38 jnthn FROGGS++ # JVM hacking
10:39 jnthn We can get more out of it, but it's a nice improvement for the time being
10:39 Ulti jnthn++ xx 9000
10:39 FROGGS :D
10:39 * timotimo is online via the laptop now
10:39 ShimmerFairy m: say val("  +42").gist
10:39 camelia rakudo-moar 3f7319: OUTPUT«  +42␤»
10:39 Ulti thats the sort of stuff that suddenly makes dayjob tasks possible in Perl 6 for me
10:40 ShimmerFairy hm, do we want the allomorphic .gists to be just their 'Str' variant, with no indication that they're allomorphs?
10:41 lizmat jnthn: what patch are we talking about making lines faster ?
10:42 cgfbee joined #perl6
10:42 jnthn lizmat: Will push it as soon as my spectest run finishes
10:42 lizmat looking forward to that :-)
10:42 jnthn Unfortunately it doesn't seem to help Text::CSV...I was sure it was using lines in its benchmark.
10:42 lizmat if it doesn't, it maybe should  :-)
10:42 timotimo it surely doesn't have a million files in total to read?
10:43 timotimo lines*
10:43 lizmat CSV spectest has 50K lines, I seem to recall
10:44 timotimo oh, that's not bad
10:44 jnthn I wonder what Text::CSV actually does .lines on
10:44 jnthn lizmat: No, I more mean that I can tell from the profile output it's not hitting my optimized path
10:45 lizmat ah...  :-(
10:45 jnthn Maybe ArghFiles or whatever it's called will need a similar patch :)
10:45 FROGGS Argh!Files
10:45 jnthn lol
10:45 jnthn ArgFiles :)
10:45 FROGGS *g*
10:45 lizmat ArgFiles needs to be generalized, I think
10:45 lizmat but yeah... :-)
10:45 jnthn Well, if you can performancize it at the same time... :)
10:46 lizmat a generalized ArgFiles is a step closer to Cat
10:46 lizmat conceptually / experimentally speaking
10:47 lizmat FWIW, I just tried to make a role for the allomorphic .gist/.perl cases
10:47 lizmat duh, doesn't work, because you need a tie-breaker between is Str and is Int, for instance
10:47 lizmat or should that work ?
10:47 timotimo ArgFiles pops up as being problematic every other month :|
10:49 lizmat lunch&
10:50 timotimo there's always some sort of way in which it's not sufficiently file-like
10:51 dalek rakudo/nom: 7c9911d | jnthn++ | src/core/IO/Handle.pm:
10:51 dalek rakudo/nom: Optimize IO::Handle.lines post-GLR.
10:51 dalek rakudo/nom:
10:51 dalek rakudo/nom: Just implemnet a special iterator directly for it. It ain't much code
10:51 dalek rakudo/nom: and it pulls its weight for the fast path. Toss the :eager variant as
10:51 dalek rakudo/nom: it's likely marginal now, and if it ain't then the better way is to
10:51 dalek rakudo/nom: implement push-exactly in the iterators.
10:51 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7c9911de84
10:52 nine jnthn: a little benchmarking I did on .lines post GLR showed that :eager was actually a little slower
10:52 timotimo haha
10:52 jnthn Wow :)
10:53 nine Which really is as it should be :)
10:54 jnthn for lines('foo'.IO) { } gets really cheap GC runs these days
10:54 pmurias joined #perl6
10:55 jnthn Of course if you build up something meaty inside the loop you'll end up with survivors
10:55 thou joined #perl6
10:57 jnthn Is
10:57 jnthn open my $fh, '<', 'data'; while (my $_ = <$fh>) { chomp; }
10:57 jnthn Acceptable Perl 5?
10:57 jnthn As in, equivalent to
10:57 jnthn for lines('data'.IO) { }
10:57 jnthn ?
10:58 jnthn I guess the "my" maybe can go :)
10:59 nine The my should go. And you can write that as while (<$fh>) { chomp; }
10:59 Ulti this is just the list handling right, will the newio branch have something to offer too?
10:59 jnthn nine: Thanks
11:00 jnthn timecmd perl -e "open my $fh, '<', 'data'; while (<$fh>) { chomp; }"
11:00 jnthn command took 0:0:2.60 (2.60s total)
11:00 jnthn timecmd perl6-m -e "for lines('data'.IO) { }"
11:00 jnthn command took 0:0:4.90 (4.90s total)
11:00 jnthn m: say 2.6 / 4.9
11:00 camelia rakudo-moar 95c85b: OUTPUT«0.530612␤»
11:00 nine That's not bad at all :)
11:00 jnthn Some work to go :P
11:00 FROGGS jnthn: that's not bad, not bad at all :o)
11:01 Ulti jnthn given how much extra you are getting in P6 even just on a string thats cool
11:01 jnthn Yes, you're getting an NFG string in Perl 6 :)
11:01 Ulti like not worrying about encoding etc
11:06 jnthn Anyway, we've a good amount of room for improvement yet :)
11:07 jnthn As timotimo++ just pointed out on #moarvm, our iterator code is getting compiled into something LTA in places
11:11 timotimo whihc branch of panda do i want now? master or glr?
11:11 timotimo looks like master works
11:11 jnthn I think the glr branch got merged already
11:11 jnthn lunch, then $other-work for some hours... :)
11:11 timotimo ah, ok
11:12 timotimo guten appetit! und viel erfolg! :)
11:15 nine Yes, panda master works on all rakudos
11:21 Loren_ joined #perl6
11:23 Loren_ evening, perl6
11:23 xinming_ joined #perl6
11:32 psch hi #perl6 o/
11:35 domidumont joined #perl6
11:35 andreoss left #perl6
11:38 domidumont joined #perl6
11:40 Loren_ joined #perl6
11:41 cdc m: .say for set(1)
11:41 camelia rakudo-moar 7c9911: OUTPUT«1 => True␤»
11:42 cdc it used to return just 1 instead of a Pair, if I understand perl6-bench/perl6/send-more-money-subs
11:42 cdc correctly.  So is this change expected?
11:43 cdc hello #perl6, by the way :)
11:44 jnthn cdc: afaik it was an intentional rather than accidental change, but I wasn't there when it was discussed so don't know any more
11:44 BooK crazy idea: given that unicode has a bunch of "APL FUNCTIONAL SYMBOL ..." and that Perl 6 lets one define most unicode characters as operators, how hard would it be to make an APL interpreter in Perl 6?
11:44 jnthn I think lizmat was...
11:44 dalek nqp/js-merge-wip: 4619c4f | (Pawel Murias)++ | src/vm/js/ (2 files):
11:44 dalek nqp/js-merge-wip: Update the signature of nqp::shell and add a bunch of constants.
11:44 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/4619c4fb1b
11:44 dalek nqp/js-merge-wip: 3e91607 | (Pawel Murias)++ | src/vm/js/nqp-runtime/deserialization.js:
11:44 dalek nqp/js-merge-wip: Reenable setting of codeObj.
11:44 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/3e91607673
11:45 psch BooK: i imagine you mostly have to be intimate with APL and its parsing rulse
11:45 BooK alas, I am not
11:45 psch BooK: and Perl 6 Grammars too, i guess :)
11:46 |Tux| jnthn++
11:46 |Tux| time perl -e'chomp(my @foo = <>)' data
11:46 |Tux| 1.364u 0.547s 0:01.91 99.4%     0+0k 0+0io 0pf+0w
11:46 |Tux| time perl6 -e'my@foo="data".IO.lines'
11:46 |Tux| 50.117u 0.545s 0:51.35 98.6%    0+0k 43760+0io 174pf+0w
11:46 |Tux| time perl6 -e'my@foo="data".IO.lines'
11:46 |Tux| 31.570u 0.471s 0:32.02 100.0%   0+0k 0+0io 0pf+0w
11:46 |Tux| top = perl5.22, middle is perl6 from this morning, bottom is perl6 from git checkout 5 minutes ago
11:48 BooK |Tux|: it's not doing exactly the same thing, though, is it?
11:48 |Tux| isn't it?
11:48 pink_mist cdc: there was some discussion about that stuff on http://irclog.perlgeek.de/perl6/2015-09-07 ... I'd link you exact lines, but the discussion seems to be too disjointed for me to do that reliably; it starts off at first on a related topic, but then goes into why they're associative after a while, and then a bit of discussion about that a bit later
11:48 BooK I never remember how chomp @array works in perl exactly
11:49 pink_mist in perl5 it chomps each element
11:49 BooK yes, so the array is modified
11:50 |Tux| «If you chomp a list, each element is chomped, and the total number of characters removed is returned.»
11:50 BooK yes, sorry, got it wrong
11:50 cdc jnthn, pink_mist: thanks for the information!
11:51 |Tux| test             50000    40.010    39.930
11:51 |Tux| test-t           50000    40.941    40.860
11:51 pink_mist cdc: see especially ShimmerFairy and ab5tract's lines
11:54 timotimo [Tux]: i pointed jnthn at two issues that unnecessarily increase the amount of stuff allocated and - once fixed - will reduce the total number of GC runs noticably across the board
11:55 Ven joined #perl6
11:57 FROGGS hi psch o/
11:57 timotimo but jnthn'll work on $main_job until the evening, so we won't see too much of that at first
11:57 FROGGS timotimo: except when we do it :o)
11:57 jnthn Heh, it's actually a job that gets less time than Perl 6 :)
11:57 psch hey FROGGS o/
11:58 FROGGS jnthn: that's because they don't sell stickers or badges :o)
11:58 psch FROGGS: a clean build of the Unbreak* branch throws the SOE in the last statement in from-slurpy-flat here
11:58 timotimo :D
11:58 timotimo ok, so just #other_job
11:58 timotimo er ... sigil fail
11:59 FROGGS psch: probably because of the misbehaving flat() in EXPORT_SYMBOL
11:59 jnthn Anyways, yeah, I'll need to concentrate on it for a few hours :)
11:59 psch FROGGS: that's the troublesome thing though, i can't reproduce that kind of &flat misbehavior
12:00 psch FROGGS: it seems to exclusively happen with a NQPArray that gets hllized and fed into flat (i.e. into @-context)
12:00 psch FROGGS: and i have no idea how to get an NQPArray in Perl 6 land...
12:00 dalek nqp/js-merge-wip: 2a10357 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
12:00 dalek nqp/js-merge-wip: Fix bug in qastnode.
12:00 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/2a10357263
12:01 psch (that aside, i'm pretty sure the final-statement-as-return shouldn't even &sink...?)
12:01 psch so i guess i must be somewhat off there :)
12:02 laouji joined #perl6
12:04 FROGGS m: use nqp; say nqp::gethllsym("nqp", "nqplist")(1, 2, 3) # psch
12:04 camelia rakudo-moar 7c9911: OUTPUT«(1 2 3)␤»
12:04 Loren_ joined #perl6
12:04 pat_js joined #perl6
12:04 psch FROGGS: aah.  from the NQP hll, not curhll... :)
12:04 FROGGS m: use nqp; say nqp::gethllsym("nqp", "nqplist")().^name
12:04 camelia rakudo-moar 7c9911: OUTPUT«NQPArray␤»
12:05 FROGGS psch: I just remembered that... I needed/added this symbol for v5
12:06 sufrostico joined #perl6
12:06 psch FROGGS: yeah, i found the sub in world, but braino'd with getcurhllsym instead of gethllsym...
12:06 FROGGS psch: me too right now :o)
12:07 psch $ ./perl6-j -e'use nqp; my \a = nqp::gethllsym("nqp", "nqplist")(1,2); say flat nqp::hllize(a)'
12:07 psch (1 2)
12:07 * psch shrugs
12:07 psch ah, but the @ is missing
12:07 psch nope, still works o.o
12:09 FROGGS psch: yes, things are different in the setting somehow...
12:09 FROGGS like, in the setting Attribute.new works, but not outside of it
12:09 psch ooh
12:10 psch hmm
12:10 YouthEnter2 joined #perl6
12:10 psch maybe not, i'm getting a bit unfocused i think
12:12 sno joined #perl6
12:19 itz joined #perl6
12:19 itz afternoon *
12:20 pierrot joined #perl6
12:28 rindolf itz: hi.
12:28 rindolf itz: sup?
12:29 itz trying to understand and fix GLR changes in perl6-examples
12:30 xinming joined #perl6
12:30 colomon HTTP::Server::Threaded is causing massive problems in the smoker.  :\
12:32 jnthn colomon: Maybe it misses GLR updates...
12:32 timotimo could be
12:32 timotimo what does massive failures mean?
12:32 timotimo er
12:32 timotimo problems
12:33 timotimo does it make the snooker crash?
12:33 colomon jnthn: it passed all tests on Tuesday
12:33 hahainternet jnthn: page 51 of http://jnthn.net/papers/2015-spw-perl6-course.pdf .. the ^5 example needs attention .. mentioned a few days ago but as you're around i thought i'd mention again :)
12:33 colomon timotimo: no, it just hangs on multiple tests
12:33 jnthn hahainternet: What kind of attention?
12:34 hahainternet jnthn: it reads "^5 # 0, 1, 1, 2, 4 (short for 0..^5)"
12:34 hahainternet so, just a minor correction as to not confuse people
12:34 jnthn oh
12:34 jnthn haha
12:34 jnthn I didn't even spot that
12:34 hahainternet o/
12:34 colomon hahainternet++
12:34 hahainternet i did't notice any other errors but i didn't have time to read thoroughly
12:35 jnthn Despite looking carefully at that :)
12:35 jnthn Yeah, somebody emailed me another error too, will fix the two later
12:35 hahainternet i read all you put up in that directory when i have time, it's the least i can do to help
12:35 hahainternet i've been trying to read up on unicode to try and help with that bug raiph/i mentioned a week or two ago, but impossible to find time
12:36 jnthn I've read up a little more on that too, and have a rough idea of the way forward
12:36 jnthn I agree it wants fixing before 6.christmas
12:36 ShimmerFairy what bug was that, ooc? The NFG-not-always-G issue?
12:36 jnthn ShimmerFairy: Definition of G, really :)
12:36 hahainternet https://rt.perl.org/Public/Bug/Display.html?id=125927
12:36 hahainternet this bug specifically
12:36 hahainternet happen to have it in my quick list
12:36 jnthn Basically, "no, CCC is not good enough"
12:37 jnthn Or "you can't get away with simply defining NFG as an NFC extension"
12:37 hahainternet indeed, but it wasn't remotely clear why it's not good enough based on my readings
12:37 hahainternet i think the idea of a negative codepoint is still legitimate
12:37 jnthn Oh, it's not a deep flaw
12:37 jnthn The only thing that will change is the bit of code that decides where a grapheme ends
12:38 jnthn So the patch will be very isolated
12:38 hahainternet rgr, i wish i could be more help sorry
12:38 ShimmerFairy jnthn: do you know if CCC definition errors on Unicode's part is to blame, or if it's how we've decided to make NFG happen? (I've not read enough of the right auxiliary docs to guess myself)
12:39 ShimmerFairy In other words, is it Unicode's mistake on that specific bug report? :P (Because I do know that devanagari grapheme is given as an example of a grapheme. I sure didn't come up with it myself when I used it in S15.)
12:39 hahainternet ShimmerFairy: oh so you're the one responsible for my confusion then ;)
12:39 hahainternet i spent forever trying to understand why i got 2 from chars :p
12:40 rurban joined #perl6
12:40 jnthn ShimmerFairy: I don't think the Unicode consortium are to blame as such
12:41 jnthn ShimmerFairy: I read the formal definition on NFC, which *is* defiend in terms of the CCC, and it seemed most natural to use it to define NFG too
12:41 ShimmerFairy jnhtn: like I said, I don't know enough yet to know if CCC is supposed to be sufficient for extended grapheme clusters.
12:41 jnthn It's convenient because normalization is well optimized for
12:42 jnthn ShimmerFairy: I suspect they didn't expect somebody to come along and try to use CCC for that is all
12:42 jnthn ShimmerFairy: But it's one of those things you have to discover the hard way (e.g. by trying :))
12:42 FROGGS and it is also one of those things were we (Perl 6) can shine
12:42 ShimmerFairy jnthn: "Dear Unicode, you're slipping. Sincerely, Perl 6"    :P
12:43 |Tux| is a regex optimized for duplicates? «"foo" ~~ rx{ "a" | "b" | Str | "a" | "b" }» → «"foo" ~~ rx{ "a" | "b" }» and if not, would that help?
12:43 thou joined #perl6
12:43 jnthn |Tux|: Not afaik, but in your case you are interpolating strings
12:44 jnthn |Tux|: And recall that this works *very* differently in Perl 5 vs. Perl 6.
12:44 * |Tux| just had an idea. looking to see if that would help ...
12:44 jnthn :)
12:44 jnthn Did you try removing that .flat I said seemed surplus to requirements? :)
12:44 |Tux| I know, I know. left to right priority and all of that: makes me happy
12:45 |Tux| no, I want to create the regex as simple as possible. in 95% of all cases, $quo and $esc are the same
12:46 ShimmerFairy jnthn: The solution should be obvious, they give you a shiny regex right in UAX#29 ! :P
12:47 JimmyZ left #perl6
12:47 JimmyZ joined #perl6
12:48 jnthn |Tux|: You may well find it's actually faster in your case to use || instead of |
12:50 pmurias hoelzro: have you looked into what adding bit operations on negative numbers to bignum would take?
12:54 |Tux| jnthn, does || have the same precedence rules as | ?
12:55 jnthn |Tux|: As in ordering?
12:55 jnthn || is the same semantics as Perl 5's |
12:55 jnthn A | in Perl 6 makes an NFA and does LTM, but because you are interpolating variables there's no declarative prefix at all
12:56 jnthn So it ends up with an empty NFA
12:56 |Tux| in rx{ $a | $b | $c } $b is guaranteed to match even if $c is part of $b
12:56 jnthn So /$a | $b | $c/ is just a more costly way to write /$a || $b || $c/
12:57 jnthn |Tux|: With || that is guaranteed
12:57 jnthn By left-to-right ordering
12:57 jnthn But what I'm trying to say is that | has left-to-right ordering when you are just interpolating variables too
12:58 * |Tux| is checking …
12:59 ShimmerFairy jnthn: btw, I'll hopefully be able to help out more with strings soon. I've still got my S32::Str rewrite to dust off and finish, on that front :)
12:59 hahainternet speaking of strings, i can't remember if someone gave me an authoritative answer on this
12:59 hahainternet but it seems that doing $str[index] would be viable
12:59 ShimmerFairy "A | in Perl 6 makes an NFA" -- does this mean P6 regexes don't always use an NFA? Or is it just that | starts to put the N in NFA?
13:00 kinslayer joined #perl6
13:00 kinslayer left #perl6
13:00 kinslayer joined #perl6
13:03 ShimmerFairy hahainternet: I personally think that looks a bit too array-ish for a string, but it certainly should be safer than it would be in other languages (unless I'm mistaken), where you could grab the middle of a grapheme, or worse the middle of a codepoint's underlying encoding.
13:04 jnthn ShimmerFairy: I really meant "has LTM semantics"
13:04 ShimmerFairy ah
13:05 hahainternet ShimmerFairy: indeed it is a bit of a conflict, but strings have list representations, although i have found no nice way to read up on post-GLR list stuff in p6, so
13:06 dalek rakudo/nom: 81de8d7 | TimToady++ | src/core/Mu.pm:
13:06 dalek rakudo/nom: eqv should default to snapshot, not identity
13:06 dalek rakudo/nom:
13:06 dalek rakudo/nom: Effectively, with this implementation we do still get identity semantics for
13:06 dalek rakudo/nom: non-serializable objects that happen to include .WHERE inside .perl output.
13:06 dalek rakudo/nom: Other serialization techniques might produce slightly different semantics, but
13:06 dalek rakudo/nom: this one can at least delegate to any type that defines a .perl method, which
13:06 dalek rakudo/nom: seems like a good thing.
13:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/81de8d78a7
13:06 hahainternet i don't want to demand or even request anything, i just want to learn :D
13:06 jnthn hahainternet: Do you want authoritative as in "no" or as in "no, because" :)
13:06 jnthn Ah, then "because"
13:06 hahainternet jnthn: the latter )
13:06 hahainternet i've been told because, but i'd like to know why, there's no rush or pressure or anything
13:06 hahainternet it just seems odd to have so many succinct mechanisms, then .substr is an ugly wart imo, but maybe i'm just ignorant, that's fine too :D
13:08 jnthn If you want it to replace substr the problem is that [...] slicing gives back a List of things.
13:08 jnthn Always, predictably.
13:08 jnthn So you'd end up with a list of 1-char Str
13:08 jnthn *Strs
13:08 hahainternet so $str[0] would be a 1 element list
13:08 hahainternet right
13:08 jnthn Well, no, that'd be a one-char Str
13:09 ShimmerFairy Also, I would imagine that [] would open the door to many more questions about handling strings in an array-ish way
13:09 jnthn m: my @a = 1..10; say @a[0].WHAT; say @a[0,1].WHAT; say @a[2..5].WHAT;
13:09 camelia rakudo-moar 7c9911: OUTPUT«(Int)␤(List)␤(List)␤»
13:09 thou joined #perl6
13:09 jnthn Any form that wants more than a single element hands back a List
13:09 hahainternet ah i see
13:11 dalek rakudo/nom: 9e5e902 | TimToady++ | src/Perl6/Grammar.nqp:
13:11 dalek rakudo/nom: don't use LTM alternation when a cclass will do
13:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9e5e902dae
13:14 dalek nqp/js-merge-wip: f54ee27 | (Pawel Murias)++ | t/nqp/60-bigint.t:
13:14 dalek nqp/js-merge-wip: Skip the bit and on negative integers untill we extend the bignum library to support that.
13:14 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/f54ee27925
13:14 dalek nqp/js-merge-wip: ad67a7d | (Pawel Murias)++ | src/vm/js/nqp-runtime/bignum.js:
13:14 dalek nqp/js-merge-wip: Avoid leading zeros in base_I for negative numbers.
13:14 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/ad67a7d5ca
13:15 |Tux| | → || is within noise 39.984 → 39.387
13:16 jnthn m: say 39.387 / 39.984
13:16 camelia rakudo-moar 81de8d: OUTPUT«0.985069␤»
13:16 jnthn I usually take 1.5% as measurable :)
13:17 jnthn But yeah, you'd probably have to cachegrind it or do many measurements to be confident :)
13:17 pmurias hoelzro: js-merge-wip is now passing it's tests
13:18 virtualsue joined #perl6
13:18 virtualsue left #perl6
13:20 hoelzro o/ #perl6
13:20 yoleaux 10:07Z <jnthn> hoelzro: many-processes-no-close-stdin.t is explodey again on Windows, along with no-runaway-file-limit.t. I think I already fixed those two once...
13:20 hoelzro jnthn: I changed those tests to use 'type NUL' instead of 'ping /tmp/test-file'; [Coke] was a little cocerned about using a network command and a non-existent file
13:21 jnthn hoelzro: I'd rather have them concerning and passing than unconcerning and failing :S
13:21 hoelzro pmurias: I haven't looked into adding negative bitwise ops to node-bignum yet; I've been trying to figure out how to fix this bug that interferes with the MoarVM optimization
13:21 hoelzro pmurias: re: the tests, great!
13:22 hoelzro jnthn: I thought that 'type NUL' would be equivalent to 'cat /dev/null' on Windows; do you have an unconcerning but passing alternative?
13:25 hernanGOA joined #perl6
13:27 mullagainn joined #perl6
13:28 pmurias hoelzro: \o
13:28 jnthn hoelzro: It may be that type isn't a program, but a shell thing?
13:28 hoelzro jnthn: ah, that would make sense
13:29 pmurias hoelzro: re bug isn't it the case that the ast for the moarvm doesn't contain a string heap (as it's stored elsewhere in the bytecode) and the js backend needs that strings?
13:30 hoelzro pmurias: jnthn understands its full nature, but it's something like that
13:31 jnthn hoelzro: I think I picked ping as it was a readily available program :)
13:34 TimToady a bug spotted by http://rosettacode.org/wiki/Equilibrium_index#Perl_6
13:34 TimToady m: say <a b c>.classify: { ~($ ~= $_); }
13:34 camelia rakudo-moar 81de8d: OUTPUT«aa => [a], aab => [b], aabc => [c]␤»
13:34 TimToady seems .classify is assuming no side effects
13:37 Ven joined #perl6
13:39 TimToady (RT'd it)
13:39 pmurias hoelzro: so what we need is a if statement so that we can disable the optimalization while cross compiling
13:40 FROGGS TimToady++
13:40 pmurias I think I got confused
13:41 pmurias at this point how MoarVM compiles the string heap it's just that my "avoid serializing twice hack" got turned off
13:41 pmurias hoelzro: how did you disable jnthn's optimalization?
13:42 hoelzro pmurias: I put the $sh_ast back in in deserialization_code
13:48 sufrostico morning
13:48 sufrostico is there a way to disable rakudo colors on error messages ?
13:49 sufrostico not playing well with vim's makeprg
13:49 jnthn There's an env var for it
13:50 TimToady RAKUDO_ERROR_COLOR
13:51 sufrostico TimToady, thanks
13:51 aborazmeh joined #perl6
13:51 aborazmeh joined #perl6
13:52 * FROGGS .oO( WHY_ARE_YOU_SCREAMING? )
13:52 ShimmerFairy m: https://gist.github.com/ShimmerFairy/392d0c3550a5e7aa4287
13:52 camelia rakudo-moar 9e5e90: OUTPUT«Legacy Grapheme Cluster: 2␤Extended Grapheme Cluster: 1␤»
13:52 ShimmerFairy jnthn: ^^^ that may be of interest to you, though I doubt you could put that in MVM's code :P
13:52 jnthn FROGGS: People are always screaming about the environment :P
13:52 FROGGS hehe
13:53 [Coke] rt slooow
13:53 * [Coke] adds the CCC ticket to the 2015 blockers based on backlog.
13:55 jnthn Darn, you squish two acronyms out of 3 and a third pops up... :)
13:56 * [Coke] almost got in trouble in work for an ALL CAPS chat yesterday. good times.
13:56 ShimmerFairy jnthn: waterbed acronyms, clearly :)
13:57 moritz waterbedronyms
13:57 jnthn WBAs, duh
13:57 jnthn [Coke]: CALM DOWN, MAN!
13:58 * [Coke] backs away from the keyboard... and tries to find some Coke Zero.
13:58 TimToady m: enum FOO (A => 0, BAR => "BAZ");
13:58 camelia rakudo-moar 9e5e90: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LIpuA0I61k␤Type error in enum. Got 'Str' Expected: 'Int'␤at /tmp/LIpuA0I61k:1␤------> 3enum FOO (A => 0, BAR => "BAZ")7⏏5;␤»
13:59 TimToady is that one known?
13:59 [Coke] RT: 1,040; GLR - 14; testneeded - 11
13:59 jnthn TimToady: That one is by design.
13:59 jnthn TimToady: An enum's base type is inferred from the type of the first item, if not specified.
14:00 [Coke] m: enum Str Foo (1,2,3);
14:00 camelia rakudo-moar 9e5e90: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3Egn4q8tXE␤Two terms in a row␤at /tmp/3Egn4q8tXE:1␤------> 3enum Str7⏏5 Foo (1,2,3);␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤     …»
14:01 TimToady m: enum Foo of Any (a => 0, bar => "baz");
14:01 camelia rakudo-moar 9e5e90: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kqxHoQV1qy␤Method 'set_of' not found for invocant of class 'Perl6::Metamodel::EnumHOW'␤at /tmp/kqxHoQV1qy:1␤»
14:02 jnthn m: our Str enum Foo <a b c>;
14:02 camelia rakudo-moar 9e5e90: OUTPUT«===SORRY!===␤Incompatible MROs in P6opaque rebless␤»
14:02 jnthn Hmm
14:02 jnthn m: our enum Foo <a b c>;
14:02 camelia rakudo-moar 9e5e90: ( no output )
14:02 TimToady m: my Any enum Foo (a => 0, bar => "baz");
14:02 camelia rakudo-moar 9e5e90: OUTPUT«===SORRY!===␤Incompatible MROs in P6opaque rebless␤»
14:02 jnthn m: our Int enum Foo <a b c>;
14:02 camelia rakudo-moar 9e5e90: ( no output )
14:03 jnthn Not sure we can easily do much about this.
14:03 [Coke] I sense more bugs coming. :)
14:04 jnthn Well, any that are like "make enums even funkier by allowing mixed types" I'm just going to declare post-6.christmas, so... :)
14:05 TimToady well, there's RC code that has it :P
14:05 jnthn I'm not sure how it ever worked.
14:05 jnthn Unless it was from a time when enums failed to work in plenty of other ways...
14:06 TimToady perhaps it worked in niecza
14:06 jnthn Maybe
14:06 jnthn I can't imagine it having worked in Rakudo since nom
14:07 jnthn And before nom all I remember was people saying enums didn't really work right :)
14:07 TimToady the specs define the list to be evaluated at compile time, so it's not like one couldn't inspect all the values
14:07 jnthn (Early versions of the enum design were more of a wish list than a design...)
14:07 TimToady and nothing in the specs actual mandates 1st arg priority
14:07 jnthn Yeah, but then what is the enum type?
14:07 TimToady (that I saw, offhand)
14:08 jnthn Any enum type works as a subtype of the base type
14:08 jnthn *an
14:08 TimToady well, we should at least allow explicit declaration of the base type
14:08 jnthn *nod*
14:08 jnthn Yeah, that should work
14:09 jnthn Though the values for now need to be strictly of that type
14:09 cognominal joined #perl6
14:09 TimToady but it's not hard to find the common parent
14:09 jnthn Finding the common parent is easy. It's just "what do we do next"
14:09 jnthn m: enum Foo <a b c>; say Foo.^mro
14:09 camelia rakudo-moar 9e5e90: OUTPUT«((Foo) (Int) (Cool) (Any) (Mu))␤»
14:10 TimToady what does "strictly" mean here?
14:10 dalek nqp/js-merge-wip: 9772e45 | (Pawel Murias)++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
14:10 dalek nqp/js-merge-wip: Optimize out the string heap when we are not cross compiling.
14:10 dalek nqp/js-merge-wip: review: https://github.com/perl6/nqp/commit/9772e4587d
14:10 jnthn [===] @values>>.WHAT
14:10 * [Coke] hurls https://gist.github.com/coke/38a589cec239409a4212 - what else is on the list for christmas?
14:10 pmurias hoelzro: I just disabled that optimalization when cross compiling
14:11 jnthn TimToady: Basically enums work by creating a subtype of the base type which carries the enum key and various other bits of the expected semantics, and then we rebless the values to that subtype
14:12 jnthn TimToady: That's why .WHAT on enum values comes out as the type of the enum
14:12 jnthn TimToady: If you want to allow mixed values in there we have to break that, which is a fairly sizable re-work, which is *sigh*.
14:12 TimToady it's not that important
14:13 jnthn Well, yeah, I think there's probably better ways we can spend multiple days of my time than re-doing enums again :)
14:13 [Coke] jnthn: should I (at least to start) put any tickets marked [GLR] as 2015 blockers?
14:13 jnthn [Coke]: I need to look through those yet
14:14 [Coke] yup, just trying to give you one list to look through, if that helps.
14:15 jnthn *nod*
14:15 jnthn HOw many are there?
14:15 [Coke] 14
14:15 Juerd Is there a way to access the instance in the refinement block if you use "has Foo $.foo where { ... }"? I want to make cyclic structures impossible.
14:15 spacebat hi, I recently installed rakudobrew and panda, but panda fails trying to load module metadata
14:15 [Coke] might be more buried in there, those are the ones I found going through rts in .ch
14:16 dakkar grrr. another case of "I want to add to a multi, globally"
14:16 Juerd spacebat: I probably can't help, but how does it fail?
14:16 dakkar multi to-json(My::Type) { ... }
14:16 [Coke] spacebat: can you gist the error?
14:16 spacebat I was able to narrow it down to the point it tries to send a get request, which I can reproduce: https://gist.github.com/spacebat/f57e2572cb0b42ebe6da
14:16 itz Cannot find method 'Range' <=- is this expected with GLR?
14:16 Juerd dakkar: class My::Type { method to-json { ... } }?
14:17 dakkar Juerd: I'm pretty sure it won't be called by JSON::Fast::to-json
14:17 nine itz: with what code?
14:17 * dakkar tries anyway
14:17 [Coke] spacebat: what does perl6 --version say?
14:17 dakkar Juerd: yep, not called
14:17 spacebat This is perl6 version 2015.07.2 built on MoarVM version 2015.07
14:17 itz nine: http://examples.perl6.org/categories/99-problems/P34-rhebus.html
14:18 psch dakkar: you could wrap the CORE sub and redispatch to the non-wrapped when you don't hit your logic
14:18 [Coke] spacebat: I think that predates the glr merge back.
14:18 dakkar psch: eeewww
14:18 dakkar (also, no CORE involved here, that I can see)
14:18 nine itz: do you have an exact line?
14:18 [Coke] you might need a newer perl6
14:18 itz Cannot find method 'Range'
14:18 itz in sub totient_phi at ./categories/99-problems/P34-rhebus.pl:52
14:18 psch dakkar: ...right, JSON:Fast it was
14:18 itz in block <unit> at ./categories/99-problems/P34-rhebus.pl:55
14:19 n0tjack joined #perl6
14:19 spacebat [Coke]: right; I installed rakudobrew and list-available gives a longish list of versions
14:19 nine itz: ok, it's what I suspected. HYPER tries to cast the result into the same type as the input which is no good idea if the input is a Range
14:19 spacebat many are named by date, that one was the latest
14:20 nine itz: I thought, I had changed that already to only cast to subtypes of List, but may have missed a spot
14:20 spacebat many others are named by place, I have no idea which of those are any good
14:20 nine HYPER and META
14:20 spacebat am I using rakudobrew improperly, or is there something better than rakudobrew to get started?
14:22 nine itz: found the spot(s)
14:24 spacebat I must admit to some curiosity as to the "drinkers" version
14:25 FROGGS spacebat: rakudobrew lists all tags/releases
14:25 itz yay!
14:25 jnthn spacebat: I think if you just "rakudobrew build moar" it'll give you latest automatically
14:25 FROGGS spacebat: and for every release, we tag it by month *and* berl mongers city name
14:26 jnthn And "rakudobrew build-panda"
14:27 spacebat right, but the latest month appears to be 2015.07.2
14:27 itz BTW there is a Pull Request to "change glr target to pre-glr" on rakudobrew .. which I've been finding very useful :)
14:27 spacebat I'll try build moar
14:28 khw joined #perl6
14:28 spacebat building now, but its bed time - thanks for the advice
14:28 [Coke] spacebat: yes, there was no 2015.08 release - you want bleeding edge for now.
14:28 [Coke] things will be more stable post-2015.09, apologies.
14:30 perl6_newbee joined #perl6
14:32 xinming_ joined #perl6
14:33 tokuhiro_ joined #perl6
14:34 mullagainn Is there a movement to start porting modules over to perl6?
14:34 itz mullagainn: modules.perl6.org
14:36 FROGGS mullagainn: dunno if there is a 'movement', but it is probably the best way to get into Perl 6
14:37 FROGGS mullagainn: besides the fact that it serves a purpose for others as well
14:38 dalek rakudo/nom: b5d8ced | (Stefan Seifert)++ | src/core/metaops.pm:
14:38 dalek rakudo/nom: Don't try to coerce arrays to Range in HYPER
14:38 dalek rakudo/nom:
14:38 dalek rakudo/nom: Fixes an error in P34-rhebus.pl
14:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b5d8ced3a3
14:38 nine itz: ^^^
14:38 itz great
14:38 itz nine++
14:38 timotimo having strictly the same types for enum values gets a bit tricky for our allomorphic types, as you may have "foo", "bar" and "000" for example, right?
14:38 TimToady something like to-json should really be a method
14:39 TimToady then it doesn't have to be imported
14:43 timotimo so you'd have people monkeypatch .to-json for lists, arrays, strings, stuff like that? :)
14:45 jnthn I'd probably have it as it is for the built-in types but then in the fallback multi candidate look for a .to-json method or something
14:45 * moritz likes that it's a multi sub
14:48 Ven joined #perl6
14:53 [Coke] .perl, .json, .yaml
14:53 moritz .xml
14:53 moritz .sna
14:54 FROGGS .xls -.-
14:54 timotimo .xslt
14:54 timotimo .latex
14:54 hoelzro pmurias: sounds good; I would really like to get the JS cross compiler to work without having to patch the MAST compiler
14:54 timotimo .sna1
14:54 moritz .svg
14:55 hoelzro ideally, I would like the diffstat to only include src/vm/js, documentation, and build tools
14:55 TimToady .slavik
14:55 hoelzro jnthn: do you have any ideas of another command we could use on Windows that would work?
14:55 nine .mkv # because really, who doesn't want his objects to be turned into action movies?
14:55 FROGGS hoelzro: what type of command do you need?
14:56 hoelzro FROGGS: just a command we can run via run/shell that's not something odd like ping
14:56 hoelzro something like Unix cat would be...purrfect.
14:59 rurban joined #perl6
15:00 inokenty joined #perl6
15:01 [Coke] what's wrong with TYPE ?
15:01 FROGGS hoelzro: what about: findstr "text" file
15:01 hoelzro [Coke]: apparently, we can't use shell() to invoke it
15:01 hoelzro FROGGS: that sounds good
15:02 [Coke] hoelzro: "TIME /T" ?
15:02 hoelzro [Coke]: I don't know TIME, but as long as we can invoke it via shell(), sure!
15:03 hoelzro could a Windows user make and test the change? I have a bad habit of breaking things on that OS =S
15:03 FROGGS [Coke]: time is also a shell built-in, not a real program
15:03 [Coke] FROGGS++
15:03 FROGGS hoelzro: what change/test ooc?
15:03 * hoelzro checks
15:04 hoelzro S17-procasync/no-runaway-file-limit.t
15:04 hoelzro S17-procasync/many-processes-no-close-stdin.t
15:04 hoelzro ↑ those two
15:04 JimmyZ shell('tree')
15:04 mprelude joined #perl6
15:04 FROGGS C:\MoarVM>perl6 -e "my $fh = run 'tree', 'src', :out; say $fh.out.slurp-rest; say $fh.out.close"
15:04 FROGGS Malformed UTF-8
15:05 [Coke] it's probably winblahblah graphics chars, aye.
15:06 FROGGS aye, nice lines and such
15:07 FROGGS lol:
15:07 FROGGS C:\MoarVM>perl6 -e "my $fh = run 'tree', 'src', :out; say $fh.out.encoding('ASCII'); say $fh.out.slurp-rest; say $fh.out.close"
15:07 FROGGS ascii
15:07 FROGGS MVM_nfg_get_synthetic_info called with out-of-range synthetic
15:07 FROGGS jnthn: ^^ # what happens here on your beloved os? :P
15:07 ShimmerFairy 'time' is a shell built-in on bash, and only recently did I install the GNU program version :)
15:07 pmurias hoelzro: re without patching the moar compiler, we could do this with monkey patching and copy & pasting chunks of code
15:08 FROGGS hoelzro / pmurias: can't you put a QAST::VM node in there?
15:08 FROGGS ... to not pessimize moar?
15:08 jnthn FROGGS: Bah, same...wtf
15:08 FROGGS .D
15:08 yoleaux Look up a word in the Oxford Dictionary of English (not to be confused with the Oxford English Dictionary)
15:08 FROGGS err, :D
15:08 [Coke] .D monkey
15:08 yoleaux monkey (/ˈmʌŋki/): n. (monkeys) 1. A small to medium-sized primate that typically has a long tail, most kinds of which live in trees in tropical countries; 2. A sum of £500; v. (monkeys, monkeying, monkeyed) 1. Behave in a silly or playful way; 2. Ape; mimic — http://is.gd/ZzC2MX
15:09 [Coke] ... huh.
15:09 FROGGS hehe
15:09 hoelzro FROGGS: I think that would work
15:09 pmurias FROGGS: we avoid pessimizing moar by having an if statement
15:09 FROGGS pmurias: I like if statements *g*
15:09 hoelzro pmurias: true
15:09 [Coke] wait, a monkey is 500 pounds? wtf?
15:10 jnthn .D impignorate
15:10 yoleaux Sorry, I couldn't find a definition for 'impignorate'.
15:10 jnthn bah :)
15:10 itz .D gruntling
15:10 yoleaux Sorry, I couldn't find a definition for 'gruntling'.
15:10 itz my physical OED has that :P
15:11 ShimmerFairy itz: "not to be confused with the Oxford English Dictionary [OED]" :P
15:13 JimmyZ FROGGS: re tree on windows ,the output needs to be changed to unicode,and then utf8,like get  env hash on windwos
15:13 jnthn Anything out of Oxford is overrated... :P
15:13 itz yeah and they have too many commas :P
15:14 JimmyZ so why windows doesn't like using utf8 ;)
15:15 itz probably because its older than utf8
15:15 JimmyZ but it does like unicode
15:16 Loren_ m: grammar URL{ token byte { (\d**1..3) <? { $0 < 256 } >} }
15:16 camelia rakudo-moar b5d8ce: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter < (must be quoted to match literally)␤at /tmp/9a84do2P41:1␤------> 3grammar URL{ token byte { (\d**1..3) <?7⏏5 { $0 < 256 } >} }␤Malformed regex␤at /tmp/9a84do2P41:1␤------> 3grammar UR…»
15:16 perl6_newbee hi all
15:16 Loren_ Where i went wrong ?
15:16 nine Couldn't we just ship a small, maybe useless shell program for Windows so we can rely on it in the tests?
15:17 moritz Loren_: should be <?{ (without space)
15:17 Loren_ m: grammar URL{ token byte { (\d**1..3) <?{$0 < 256}> } }
15:17 camelia rakudo-moar b5d8ce: ( no output )
15:17 moritz JimmyZ: Windows doesn't like UTF-8 because in the early days of Unicode, people thought that UTF-16/UCS-2 would give them a fixed-width encoding, and UTF-8 was needlessly complex
15:18 Loren_ moritz, thks very much..
15:21 lichtkind joined #perl6
15:21 lichtkind all 3 rewfactors are now completed?
15:22 Ven joined #perl6
15:23 JimmyZ the problem is that windows doesn't use unicode directly, like the output. one has to change it to unicode and then utf8, if you want utf8..
15:23 perl6_newbee Probably a silly question, but why does this code causes the moar process to eats up cpu and memory?
15:23 perl6_newbee my $a = "<4"; $a = $a ~~ /\<(\d+)/
15:24 perl6_newbee $a ~~ /\<(\d+)/ does not give $0 back, as I thought.
15:25 dalek roast: c86855e | FROGGS++ | S17-procasync/ (2 files):
15:25 dalek roast: fix Proc::Async tests for Microsoft Windows™
15:25 dalek roast: review: https://github.com/perl6/roast/commit/c86855ed69
15:26 FROGGS hoelzro: ^^
15:26 hoelzro FROGGS++
15:27 ugexe 'my $a = "4"; $a = $a ~~ /\d+/;' alone causes the problem
15:27 FROGGS perl6_newbee: no idea why it does that, but I can reproduce it
15:28 perl6_newbee froggs: :-)
15:28 FROGGS perl6_newbee: can you please rekudobug it?
15:28 mprelude What's moarvm performance like?
15:28 ShimmerFairy doesn't hang for me
15:29 FROGGS ShimmerFairy: append a 'say $a'
15:29 ShimmerFairy oh, now it does, it needs a "say $a" afterward for me
15:29 FROGGS :o)
15:29 perl6_newbee I encountered the problem on Windows 10 first.
15:29 Loren_ yeah , it does, won't end
15:29 perl6_newbee froggs: OK
15:30 ShimmerFairy /.ACCEPTS($str) hangs, but $str.match(//) works, so it seems an issue with ACCEPTS
15:30 ShimmerFairy er, //.ACCEPTS($str) I meant :)
15:31 timotimo um, // is null regex ...
15:31 ShimmerFairy timotimo: using // as a stand-in, of course
15:31 perl6_newbee What would be the expected behaviour? $a == $0 ? or True?
15:32 timotimo ah
15:32 ShimmerFairy m: my $a = "4"; $a = $a.match(/(\d+)/); say $a
15:32 camelia rakudo-moar b5d8ce: OUTPUT«「4」␤ 0 => 「4」␤»
15:33 ShimmerFairy perl6_newbee: that's what's expected. Not $0, but $/ is put in $a
15:33 lichtkind timotimo: saw your squirrel based tut
15:33 perl6_newbee THX ShimmerFair
15:33 perl6_newbee y
15:33 lichtkind FROGGS: do you know if all 3 major refactors are now done?
15:34 timotimo zostay: yo
15:34 timotimo lichtkind: horrible, isn't it? :)
15:34 lichtkind no actually i enjoyed it
15:34 lichtkind unfortunately my perl 6 talk form last week wasnt taped
15:34 timotimo .tell zostay paul evans on twitter was complaining that p6sgi is "as disappointing as the perl5 one" and lacks support for streaming of input data and response backpressure and "..."
15:34 yoleaux timotimo: I'll pass your message to zostay.
15:35 timotimo lichtkind: damn, someone should have called .tap on it!
15:35 FROGGS lichtkind: all of them are at 75% to 98% I think :o)
15:35 itz *groan*
15:35 lichtkind i mean some things could be explained more to the point and with less repetition but that true for most of my talks too
15:35 lichtkind timotimo: they had camera there just choose to tape the leading talks
15:36 lichtkind but slides are elaborate - 140 at least
15:36 lichtkind i just mention because if your pythonista the whole functional thing could interest you
15:37 perl6_newbee @FROGGS I filed a bug report via email
15:38 skids joined #perl6
15:39 timotimo i should do a bit of python on the side again
15:40 nine -msg lichtkind
15:42 masak evening, #perl6
15:48 Ulti time perl6 -e 'for lines() {}' 8.225s   vs   time perl -e 'while (<>) {}' 0.178s
15:48 pmurias evening masak
15:48 Ulti am I missing latest moarvm for the rest of the speedup?
15:49 timotimo it's mostly rakudo for speedups i think
15:49 jnthn It's a Rakudo one and also I didn't do it for $*ARGFILES yet, which lines() uses
15:49 jnthn Also, the perl benchmark misses a chomp, which Rakudo is doing for you :)
15:50 timotimo right
15:50 jnthn for $*IN.lines() {} might be worth a try
15:51 Ulti ahh okedoke
15:51 jnthn Maybe somebody will find time to port my improvement to argfiles :)
15:51 jnthn (before I get to it :))
15:51 lichtkind nin: i dont quite get it
15:53 lichtkind jnthn: me upřime blahopřaní
15:53 lichtkind nine: i mean this message thing
15:54 jnthn lichtkind: diky moc! :)
15:56 nits joined #perl6
15:56 Ulti whoa 8.225 down to 2.284s
15:56 domidumont joined #perl6
15:57 jnthn Ulti: There's more to come yet too :)
16:01 Ulti Ruby takes 0.450 doing a lazy chomp all lines
16:02 pink_mist how many lines are we talking about?
16:02 jnthn So basically we need another factor of 4 improvement to match :)
16:03 jnthn pink_mist: My earlier benchmark was with a million lines
16:03 pink_mist I also wonder how much of those times are startup
16:03 pink_mist ah, that's a lot of lines :P
16:04 FROGGS joined #perl6
16:06 ugexe startup time shouldn't be too bad with just that. `time perl6 -e '1'`
16:10 Ulti pink_mist: 100,000 for the one I'm doing
16:10 Ulti Python is 0.319s
16:11 Ulti a bit lame Perl being slick at IO isn't talked about a bit more
16:12 Ulti I could minus off startup time and normalise for lines
16:12 jnthn Ulti: fwiw, my numbers were from a file rather than STDIN
16:12 Ulti these are from a file
16:12 jnthn OK :)
16:12 Ulti basically the exact same code
16:12 Ulti I can gist them up
16:12 jnthn Could be interesting
16:12 jnthn I wonder if Perl 5's I/O is less competitive on Windows, given that I was getting Rakudo being within a factor of 2
16:13 jnthn Then, I've observed that Rakudo on MoarVM is very generally better against Perl 5 on Windows than on Linux.
16:14 flussence «Stage parse      :  79.646» <-- this jumped a lot lately; it was 55 pre-GLR and 72 post-GLR. I'm curious where the other 10% came from...
16:14 jnthn allomorphic stuff
16:14 flussence oh, ok :)
16:14 jnthn And yeah, we could do with getting it down some again.
16:14 flussence (was worried for a moment that the new quote stuff had adverse side effects)
16:15 ShimmerFairy I recall not seeing the parse jump up when I introduced allomorphic stuff, so I'd be interested if that was in fact the case :)
16:16 jnthn ShimmerFairy: It's not a huge jump (about 1s-2s more for me), but it was when I rebased my local changes after pulling down your allomorph merge.
16:17 jnthn ShimmerFairy: It's possible another commit sneaked in and did it, but I don't recall seeing a candidate in the git lot
16:17 FROGGS it is weird.... when I skip NativeCall in jvm's makefile, 01-sanity passes...
16:17 ShimmerFairy jnthn: All I recall is that the time was never significantly different from pre-allomorph, pre-GLR parse time for me
16:17 duncan_dmg joined #perl6
16:17 Ulti chomp some lines https://gist.github.com/MattOates/24fe1f212be1ad09fd96
16:18 Ulti afaik those all use lazy lists and/or line by line IO
16:18 FROGGS psch: I'm spectesting jvm now... perhaps we spot then something odd we can chase
16:20 FROGGS psch: still stuff about attributes is showing up
16:21 psch FROGGS: nice.  i take it there's lots of "this other way compiles at least" though?
16:21 FROGGS jnthn: were there any changes about attribute handling during the glr period?
16:21 FROGGS psch: aye
16:21 FROGGS psch: we have a bunch of passing tests
16:21 FROGGS psch: feels like 50/50 so far
16:21 dalek perl6-examples: 5b8bc61 | (Steve Mynott)++ | / (21 files):
16:21 dalek perl6-examples: fix half the 99 problems tests failing due to GLR
16:21 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/5b8bc613a7
16:26 [Coke] m: say .023 / .142 # bare -e 1 on 5.16 vs. latest 6
16:26 camelia rakudo-moar b5d8ce: OUTPUT«0.161972␤»
16:27 cdc [Coke] (or anyone else), maybe RT #125978 deserves to be tagged [GLR], but I'm not able to change it... (and I'm not sure if this can be reproduced without .hyper/.race, but with await/start for instance)
16:27 lichtkind sorry for acting stupid but why exactly parcel became unnecessary?
16:29 timotimo List is now immutable, which replaces what Parcel was for
16:29 timotimo and in the old code there were coercions to list all over the code
16:29 timotimo that was unnecessary and costly
16:29 timotimo unfortunately, we don't currently really have a value-type like Parcel was
16:30 lichtkind so what no list with an iterator callback?
16:30 lichtkind i mean now not no
16:30 jnthn FROGGS: Attribute handling? Not really...I mean, the internal structure of List changed, for example
16:30 timotimo lists are still lazy
16:30 timotimo so it has iterators at its base
16:30 timotimo AFK
16:31 jnthn [Coke]: Note that -e "0" may give a sink warning
16:31 jnthn [Coke]: So -e "" is probably a better test
16:32 [Coke] jnthn: mostly equivalent.
16:32 [Coke] varies from .144 to maybe a low of .128
16:32 [Coke] m: say .023 / .128 # bare -e 1 on 5.16 vs. latest 6
16:32 camelia rakudo-moar b5d8ce: OUTPUT«0.179688␤»
16:32 lichtkind but can lists hold named parameter like parcel could do?
16:32 nine lichtkind: parcel couldn't. Capture does
16:32 [Coke] m: say .128/.021
16:32 camelia rakudo-moar b5d8ce: OUTPUT«6.095238␤»
16:33 [Coke] there, still about 6. it's an older 5, though.
16:33 nine lichtkind: really it's not Parcel that has left but the old List. And Parcel got renamed to List after that.
16:33 FROGGS jnthn: and should cover this, right? https://github.com/rakudo/rakudo/commit/e0f725929bda09ae2e10e37f27558ae9c32876f3
16:34 FROGGS jnthn: because $!why moved from routine to block... but we do not access attributes of List AFAIK
16:34 jnthn FROGGS: Yeah, the Java-implemented ops to do with List went away iirc
16:34 tadzik That's silly. Block  has no.need for.why
16:34 lichtkind so he new list can do the parcel trick of holding positionals and named?
16:35 lichtkind s/he/the/
16:35 FROGGS jnthn: I'll try to fix this and see what changes... "optional array param NYI after GLR"
16:35 FROGGS tadzik: is it?
16:36 psch https://github.com/rakudo/rakudo/commit/83e91a584ab3e286b9bab3de6b5858a8b4219fc3 is the original commit
16:36 psch i think the reason is sound
16:36 psch where "original" = "the one that moved $!why"
16:36 japhb ShimmerFairy: Whatever happened with our community guidelines?  What's the current status?
16:36 telex joined #perl6
16:36 tadzik FROGGS: I don't recall Block being documentable, and I.can't think of a reason why it should be
16:36 nine lichtkind: you're still confusing Parcel with Capture.
16:36 nine lichtkind: Parcel just was an immutable list. No nameds there.
16:36 FROGGS tadzik: look at psch's linky
16:37 * tadzik looks
16:37 flussence huh, force-pushing a branch over an existing one on github that's referenced by a pull request causes data corruption, that's nasty. Good thing it only lost a 4 char diff...
16:37 japhb .seen ShimmerFairy
16:37 yoleaux I saw ShimmerFairy 16:17Z in #perl6: <ShimmerFairy> jnthn: All I recall is that the time was never significantly different from pre-allomorph, pre-GLR parse time for me
16:38 tadzik Hmmm
16:38 tadzik Okay, that makes sense
16:38 lichtkind nine++ your right i forgot that i already understood that,
16:38 nine lichtkind: a regression so to speak ;)
16:38 tadzik I'm inclined to stand on a why-not rather that why-side:)
16:39 psch tadzik: so "why not allow doc'ing Block?" instead of "why allow doc'ing Block?" :)
16:40 lichtkind or braino
16:40 psch i suppose it should be read more in "why change it" instead of "why not leave it" way
16:40 FROGGS it is always good when a discussion is going on... any discussion :o)
16:40 psch (the line before was with humours intent, no offense intended)
16:41 psch *humorous
16:46 jnthn Time to cook dinner; back later :)
16:50 baest_ joined #perl6
16:54 xfix joined #perl6
16:54 xfix joined #perl6
16:55 dalek rakudo/UnbreakJVMBuildFactory: f1ce993 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
16:55 dalek rakudo/UnbreakJVMBuildFactory: handle optional array params in binder on jvm
16:55 dalek rakudo/UnbreakJVMBuildFactory: review: https://github.com/rakudo/rakudo/commit/f1ce993293
17:00 FROGGS jnthn: can you tell why?
17:00 FROGGS src/Perl6/Metamodel/BOOTSTRAP.nqp:408: nqp::die('replace this Array is copy logic');
17:00 mohij joined #perl6
17:04 dalek perl6-roast-data: 00c12e3 | coke++ | / (9 files):
17:04 dalek perl6-roast-data: today (automated commit)
17:04 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/00c12e3a9d
17:08 inokenty joined #perl6
17:12 sufrostico joined #perl6
17:14 Ven joined #perl6
17:22 bbkr joined #perl6
17:22 ugexe perl6 -e "my $cmd = 'say 1'; say 'Proc'; my $p1 = run($*EXECUTABLE, '-e', $cmd, :out); .say for $p1.out.lines; $p1.out.close; say 'Proc::Async'; my $p2 = Proc::Async.new($*EXECUTABLE, '-e', '\"' ~ $cmd ~ '\"'); $p2.stdout.act: {.say}; await $p2.start;"
17:23 duncan_dmg left #perl6
17:23 ugexe on windows you can't just pass $cmd for Proc and Proc::Async. Proc::Async needs more quoting stuff around its $cmd for some reason
17:23 n0tjack joined #perl6
17:27 ugexe i should say you cant just pass $cmd the same way to both Proc and Proc::Async. You *can* just pass $cmd to Proc as shown in the example
17:32 TimToady m: my @array = lazy gather for 1..* { take $_ }; say @array[10]; say @array[^10]
17:33 camelia rakudo-moar b5d8ce: OUTPUT«(timeout)11␤»
17:33 TimToady m: my @array = lazy gather for 1..* { take $_ }; say @array[10]; say @array[0...^10]
17:33 camelia rakudo-moar b5d8ce: OUTPUT«11␤(1 2 3 4 5 6 7 8 9 10)␤»
17:34 TimToady this seems buggy
17:34 nine m: my @array = (gather for 1..* { take $_ }).lazy; say @array[10]; say @array[^10]
17:34 mohij How can I format a DateTime according to a given format?
17:34 camelia rakudo-moar b5d8ce: OUTPUT«(timeout)11␤»
17:35 nine m: my @array = (gather for 1..* { take $_ }).lazy; say @array[10];
17:35 camelia rakudo-moar b5d8ce: OUTPUT«11␤»
17:37 TimToady m: my (@array) ::= lazy gather for 1..* { take $_ }; say @array[10]; say @array[^10]
17:37 camelia rakudo-moar b5d8ce: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤  in block <unit> at /tmp/tJEaAl9ZOb:1␤␤»
17:38 TimToady m: my (@array) ::= \(lazy gather for 1..* { take $_ }); say @array[10]; say @array[^10]
17:38 camelia rakudo-moar b5d8ce: OUTPUT«(timeout)11␤»
17:39 TimToady m: my @array = (lazy gather for 1..* { take $_ }).list; say @array[10]; say @array[0...^10]
17:39 camelia rakudo-moar b5d8ce: OUTPUT«11␤(1 2 3 4 5 6 7 8 9 10)␤»
17:39 TimToady the @ doesn't seem to be implying .list with either assignment or ::=
17:40 TimToady m: my @array = (lazy gather for 1..* { take $_ }).list; say @array[10]; say @array[^10]
17:40 camelia rakudo-moar b5d8ce: OUTPUT«11␤(1 2 3 4 5 6 7 8 9 10)␤»
17:40 TimToady but then why does the 0...^10 slice work, when the ^10 one doesn't?
17:41 timotimo timo@schmetterling ~> perl6 -e 'say default-formatter(DateTime.now)'
17:41 timotimo 2015-09-10T19:41:20+02:00
17:41 TimToady well, .[0...^10] is probably dispatching to a different routine than .[^10] is
17:42 timotimo i don't actually see a datetime formatting thing anywhere
17:42 TimToady that's for modules
17:42 spider-mario joined #perl6
17:42 TimToady it's too cultural to bake in
17:43 timotimo mhm
17:43 timotimo ah, yes
17:43 timotimo DateTime::Format, with ::LikeGo, and ::W3CDTF
17:45 nine TimToady: we do have a POSITIONS candidate for Range
17:45 mohij so there is no DateTime.strftime("%Y%m%d%H%M%S") :-(
17:45 timotimo mohij: actually, DateTime has a new candidate
17:46 timotimo oh
17:46 timotimo that's only for ISO 8601
17:47 mohij docs don't state how that should look and it feels wrong to bake the format into my object just to retrieve that format once...
17:47 nine m: my @array = (gather for 1..* { take $_ }).lazy; say @array[^10];
17:47 camelia rakudo-moar b5d8ce: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
17:47 muraiki joined #perl6
17:47 nine Now that's weird! It starts to hang once we access a single item before trying the range?!
17:48 TimToady yup
17:49 nine my @a = lazy gather for 1..* { take $_ }; say @a[10]; @a.EXISTS-POS(0);'
17:49 nine 11
17:49 nine m: my @a = lazy gather for 1..* { take $_ }; say @a[10]; @a.EXISTS-POS(0);
17:49 nine The EXISTS-POS is where it hangs
17:49 camelia rakudo-moar b5d8ce: OUTPUT«(timeout)11␤»
17:50 mohij DateTime::Format Module \o/
17:54 thou joined #perl6
17:57 tadzik psch: exactly :)
17:59 dalek perl6-examples: 7817733 | (Steve Mynott)++ | categories/ (10 files):
17:59 dalek perl6-examples: more GLR fixes
17:59 dalek perl6-examples: review: https://github.com/perl6/perl6-examples/commit/7817733bc6
18:01 dalek rakudo/nom: b81aff1 | (Stefan Seifert)++ | src/core/Seq.pm:
18:01 dalek rakudo/nom: Fix endless loop on re-accessing array populated by lazy gather
18:01 dalek rakudo/nom:
18:01 dalek rakudo/nom: The Iterator gather {} returns did not cope with being asked to push a negative
18:01 dalek rakudo/nom: number of elements. Thus when used to populate a lazy array and already reified
18:01 dalek rakudo/nom: elements where accessed twice, we would hang reifieing forever.
18:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b81aff1382
18:01 nine TimToady: fixed ^^^
18:05 TimToady \o/
18:05 TimToady nine++ has fixed Floyd's Triangle :)
18:05 AlexDaniel joined #perl6
18:11 masak http://rosettacode.org/wiki/Floyd%27s_triangle#Perl_6 ?
18:12 TimToady just checked in the new version
18:12 TimToady so refresh :)
18:12 nine The beauty of programming: you can fix things without having the slightest idea of what they are...
18:12 masak woot
18:13 masak yeah, that's much nicer.
18:14 TimToady you can tell how far I am through my RC pass, since I'm visiting the buggy ones in alphabetic orde
18:14 TimToady order, even
18:14 masak so you're on "Fl"? :P
18:14 TimToady next up, Fractran
18:15 TimToady my list is just the ones that overtly misbehaved in the first minute or so till I ^C'd the ones taking too long
18:15 TimToady so there could be some loopers I'm not working on
18:17 TimToady actually, looks like fractran has fixed itself already
18:17 masak TimToady++ # ecosystem spelunking
18:19 timotimo so ... let's see how much shaped arrays actually exists already
18:20 timotimo ah, hehe, "Shaped arrays not yet implemented. Sorry."
18:21 timotimo hm, "with initial values" NYI and can't assign full rows or cols with [0;*] yet
18:24 * TimToady thinks .list is misnamed, should be .cache or .save or .keep
18:24 timotimo hmm. an AoA where i can't assign to fields
18:25 timotimo apparently that comes from >>.clone
18:26 TimToady see also #126030
18:26 timotimo but with .map: *.clone i can change elems just fine
18:26 timotimo hm, synopsebot is asleep
18:26 timotimo mhm
18:27 nine .tell jnthn I experimented with making gather lazy by default. The spec test fallout was....sobering
18:27 yoleaux nine: I'll pass your message to jnthn.
18:30 arnsholt joined #perl6
18:31 sjn joined #perl6
18:31 nowan joined #perl6
18:31 ambs joined #perl6
18:36 Skarsnik joined #perl6
18:36 sufrostico joined #perl6
18:43 mprelude joined #perl6
18:43 TimToady m: my $b = bag <a b c a b a>; say $b.list.WHAT
18:43 camelia rakudo-moar b81aff: OUTPUT«(Seq)␤»
18:43 TimToady m: my $b = bag <a b c a b a>; say $b.list.list.WHAT
18:43 camelia rakudo-moar b81aff: OUTPUT«(List)␤»
18:44 TimToady jnthn: ^^^ clearly shows the bad overloading we still have on .list
18:46 vendethiel joined #perl6
18:46 TimToady I also don't like that Capture has overloads it to access a @.list attribute
18:46 jnthn FROGGS: (Array is copy) because what was there before dealt in ListIter and other gone-away things; the solution will be whatever it is we do in Moar's binder, but I think call .STORE
18:46 yoleaux 18:27Z <nine> jnthn: I experimented with making gather lazy by default. The spec test fallout was....sobering
18:47 FROGGS jnthn: we die() in moar
18:47 FROGGS jnthn: I also dont know how to hit that code path
18:50 jnthn TimToady: .list should *never* return a Seq
18:50 TimToady so I suspect we should leave .list for pulling lists out of things, and rename Seq.list to Seq.cache or some such, because in addition to the .list overloading, it's going to be really hard to teach .list vs .List
18:50 TimToady it's confusing
18:50 jnthn Well, what do you want .list on a Seq to do?
18:51 jnthn What .List does now?
18:51 TimToady it makes sense from the implementors point of view, but not so much from the user's
18:51 bartolin joined #perl6
18:51 TimToady well, if we do decide to rename it, there'll have to be a transition
18:51 TimToady or keep .list as an alias
18:51 jnthn Bag.list returning a Seq is just wrong
18:52 jnthn And Capture.list feels...right, it's getting the List nature of the Capture, no?
18:54 jnthn But .list not being the same as .List in Seq is easily fixable if we want; it's fine for the binder to call a different method on failover
18:54 TimToady m: say signal(SIGINT).list.WHAT
18:54 camelia rakudo-moar b81aff: OUTPUT«(Seq)␤»
18:54 jnthn That's also wrong
18:54 TimToady m: say Channel.new.list.WHAT
18:54 camelia rakudo-moar b81aff: OUTPUT«(Seq)␤»
18:54 TimToady there's just vast confusion
18:55 jnthn More like, there's just been a big change of underlying model, and we did the work needed to make spectests pass
18:55 jnthn And didn't do the work they didn't pick up on
18:55 nine There's just some .list calls missing
18:56 TimToady what does it mean to say that .List doesn't cache?
18:56 TimToady how can a List not cache?
18:56 TimToady if I find this confusing, fershure others will too
18:57 jnthn TimToady: It's not the result that doesn't cache, it's the call
18:57 jnthn But sure, we can rename the method the binder calls to force memoization
18:57 TimToady o_O
18:57 jnthn m: my $s = gather { for ^10 { .take } }; $s.list xx 2
18:57 camelia rakudo-moar b81aff: ( no output )
18:58 jnthn m: my $s = gather { for ^10 { .take } }; $s.List xx 2
18:58 camelia rakudo-moar b81aff: OUTPUT«===SORRY!===␤This Seq has already been iterated, and its values consumed␤»
18:58 jnthn What on earth happened to error reporting...that shouldn't be a SORRY
18:58 TimToady constant folding?
18:58 jnthn Oh, maybe :)
18:59 jnthn But $s isn't a constant
18:59 jnthn So I really hope not
18:59 jnthn Anyway, if you want .list to do the same as .List does now, and then we call what .list does now .save or something...
18:59 jnthn ...I'm fine with that.
18:59 jnthn Maybe even it's a good thing
18:59 * TimToady summons the bikeshedders
18:59 jnthn Because .list on a Supply will tap and so consume
18:59 dalek rakudo/nom: b70ba13 | (Stefan Seifert)++ | src/core/QuantHash.pm:
18:59 dalek rakudo/nom: Have QuantHash's and decsendants' .list return a List instead of Seq
18:59 dalek rakudo/nom:
18:59 dalek rakudo/nom: 20:50 < jnthn> TimToady: .list should *never* return a Seq
18:59 dalek rakudo/nom: 20:51 < jnthn> Bag.list returning a Seq is just wrong
18:59 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b70ba13d5b
19:00 jnthn Mabye don't call it Seq.keep though, we used that word on Promise :)
19:00 jnthn Seq.save isn't bad
19:00 TimToady .cache might be clearer
19:00 jnthn Seq.remember also
19:00 TimToady .memoize is too long
19:01 TimToady so is .remember :P
19:01 jnthn I...don't think this needs to be short?
19:01 jnthn I don't expect people to write it much
19:01 jnthn I mean, I really *hope* we won't end up with it.
19:01 jnthn .cache is maybe better than save 'cus it puns as "cache this" and "get the cached this", which the method is both of
19:02 TimToady indeed
19:02 * TimToady likes things that work as both verbs and nouns
19:02 jnthn Anyway, I'm fine with the change.
19:03 jnthn But thing .list should probably better not be returning Seq also
19:03 joaof joined #perl6
19:03 TimToady do you have a choice on something like Channel?
19:03 nine Why do we need to rename it again? .list gives you a List. The only difference to .List is that is will always give you the same List. If anything we should have .List be a synonym for .list
19:04 TimToady that "only difference" is huge
19:04 TimToady to big to ride on a case distinction
19:04 TimToady *too
19:05 nine I don't even see the point of .List as it is now. You can only call it once.
19:05 nine Why do we need a method with this restriction?
19:05 test_perl6 joined #perl6
19:06 TimToady beats me, maybe jnthn++ has a use case?
19:07 TimToady maybe when you *want* to exhaust the Seq and throw it away?
19:07 TimToady rather than keeping both the Seq and the cache
19:08 TimToady but then it should be called .drain or some such
19:08 nine If you throw the Seq away, keeping the reference to the list in the Seq won't hurt.
19:09 TimToady it's just this .list vs .List nonsense that is very non-user-friendly, in my estimation; I wouldn't mind if both methods went away in favor of .drain and .cache
19:09 TimToady though .drain sound too much like sink, bikeshedwise
19:09 jnthn And what would .list do then? Throw a "no you can't" exception?
19:10 nine We can .list so many things. Would be weird to not be able to do this with a sequence of items.
19:11 hernanGOA joined #perl6
19:11 nine Really if the case distinction is the problem, just make .List an alias for .list.
19:12 TimToady or .list an alias for .List, and add .cache
19:12 jnthn Yeah, it'd be odd for .list not to work
19:13 jnthn Yeah, it's really deciding that the semantics of .list are
19:15 mprelude Is there a Twitter lib for perl6?
19:16 dha joined #perl6
19:16 brrt joined #perl6
19:16 TimToady it's the Seq nature to be read-once, while it's the List nature to be read-many, but so arguably a method that mutates the Seq is more in the the Seq domain, and should probably be .cache for that reason
19:16 nine mprelude: I don't think so. You can either write one or use one of these: https://metacpan.org/search?q=twitter&amp;size=20&amp;search_type=modules
19:16 mprelude Writing one would be a good way to learn the language :P
19:16 mprelude Hmm
19:17 mprelude Are the underlying crypto functions available?
19:17 TimToady and a coercion to list/List should not be telling the Seq how to behave
19:18 nine m: say 1.list, "1".list, (1..10).list, (1...10).list;
19:18 camelia rakudo-moar b70ba1: OUTPUT«(1)(1)(1 2 3 4 5 6 7 8 9 10)(1 2 3 4 5 6 7 8 9 10)␤»
19:18 nine TimToady: ^^^ consistency
19:18 TimToady and it would still work if it drained the Seq
19:19 TimToady you just can't redrain it without a .cache
19:19 nine mprelude: maybe. If you find it on http://modules.perl6.org/
19:20 mprelude nine: Will take a look, I can implement OAuth but I'm not implementing SHA1 or HMAC ;)
19:20 pippo joined #perl6
19:20 FROGGS mprelude: we have Digest::SHA and HMAC already
19:20 pippo o/ #perl6
19:21 mprelude OK, should be able to do OAuth pretty easily
19:21 ugexe i dont think Digest works
19:21 FROGGS ugexe: you are right, it be adopted to work with GLR
19:22 brrt \o pippo
19:22 mprelude FROGGS: So I can't use Digest?
19:23 FROGGS mprelude: little patches are needed to make it pass its tests
19:23 FROGGS shouldn't be too hard
19:24 pippo One question. My prog crates a big hash out of a text file. Then I use that has to get data out. How can I do to save the big hash to disk for later reuse? I used spurt to write the hash to disk and the slurp and EVAL to get it back but it is slower then reconstructing the hash from the beginning. Any suggestions?
19:24 pippo The file with the hash saved to disk is about 5 megs.
19:24 FROGGS jnthn: what exactly implements bind_attribute_native on jvm?
19:25 dha Yeah, Digest::MD5 is failing tests. Unfortunately, that seems to make a panda install of Task::Star bail.
19:25 FROGGS pippo: should the saved hash survive a compiler rebuild?
19:26 mprelude I'm definitely not wanting to touch crypto :P
19:26 mprelude Not my area of expertise
19:26 tokuhiro_ joined #perl6
19:27 pippo FROGGS: Nope. I'll accept not surviving if there is a quick way to get that done. :-)
19:27 yqt joined #perl6
19:30 FROGGS pippo: test that: https://gist.github.com/FROGGS/f77c3bf35a7b1d53fea9
19:30 test_perl6 joined #perl6
19:30 jnthn pippo: Then you can write a module like just `sub get-hash() is export { BEGIN { my %h; ...; %h } }`
19:31 jnthn pippo: Where ... is the code to populate %h from the file
19:31 jnthn And when you pre-comp the file it will cache the hash
19:31 pippo FROGGS: Thank you very much.
19:32 jnthn Bah, the "we take pointless closures" bug worked out silly
19:32 jnthn timotimo++ for noticing
19:32 FROGGS O.o
19:34 * masak .oO( point-free closures )
19:34 pippo jnthn: here it is: https://gist.github.com/anonymous/059bd2164593536fc7f6
19:35 jnthn That's another 6 GC runs knocked off Text::CSV
19:35 rurban joined #perl6
19:35 timotimo oh, nice
19:35 * jnthn figures he'd better spectest
19:35 jnthn m: say 54 / 60
19:35 camelia rakudo-moar b70ba1: OUTPUT«0.9␤»
19:36 jnthn 10% less GC runs
19:36 jnthn Too bad our GC is fairly fast or it'd be more of a speed win :P
19:36 FROGGS *g*
19:36 pippo jnthn: sorry I realize you did not ask for the code :-)
19:37 [Tux] do I wait for dalek to rebuild?
19:38 Peter_R joined #perl6
19:38 jnthn [Tux]: For? :)
19:39 dalek rakudo/nom: 7564b4c | TimToady++ | src/core/Seq.pm:
19:39 dalek rakudo/nom: add a Seq.cache method to start plaing with
19:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7564b4ce75
19:39 jnthn [Tux]: I didn't puch my patch yet, if you're wondering about my latest little improvement.
19:39 TimToady someone forgot to cache my 'y'
19:40 TimToady interesting point, apparently the DEPRECATE function depends on Seq.list somewhere...
19:40 mprelude Whats a GC?
19:41 jnthn mprelude: Garbage Collection
19:41 mprelude Ah, ofcourse
19:42 pippo jnthn: how do I precompile?
19:44 jnthn Something like `perl6 --target=mbc --output=lib/Foo.moarvm lib/Foo.pm`
19:44 lichtkind_ joined #perl6
19:44 jnthn uh, --output=lib/Foo.pm.moarvm these days :)
19:44 FROGGS perl6 --target=mbc --output=lib/Foo.pm.moarvm lib/Foo.pm # this
19:44 FROGGS aye
19:44 pippo jnthn: FROGGS: tahnk you very much!
19:44 dalek nqp: 85db8f9 | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
19:44 dalek nqp: Fix thinko that caused unneeded takeclosure ops.
19:44 dalek nqp:
19:44 dalek nqp: Will greatly cut down on allocations in programs making heavy use of
19:44 dalek nqp: iteration post-GLR.
19:44 dalek nqp: review: https://github.com/perl6/nqp/commit/85db8f9b6f
19:46 leont joined #perl6
19:47 [Coke] m: enum X <a b c>; say a ~~ Int; say True ~~ Int # RT #72580, someone related to TimToady's earlier send.
19:47 camelia rakudo-moar b70ba1: OUTPUT«True␤False␤»
19:47 [Coke] m: say False ~~ Int
19:47 camelia rakudo-moar b70ba1: OUTPUT«False␤»
19:47 dalek rakudo/nom: 8911bc9 | jnthn++ | src/core/List.pm:
19:47 dalek rakudo/nom: No, .infinite did not survive the GLR.
19:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8911bc9a3c
19:47 [Coke] Bool isn't a "real" enum, though, right?
19:49 TimToady sometimes the circularity saw cuts Bool right in two
19:49 [Coke] masak, jnthn, moritz: RT #72820 - it looks like maybe this is not a bug based on the last chat?
19:59 jnthn [Coke]: &1?
20:00 jnthn m: &1
20:00 camelia rakudo-moar b70ba1: ( no output )
20:00 jnthn I bet it compiles for the same reason $1, @1, and %1 do :)
20:00 jnthn I'm not sure what exactly to do about it :)
20:02 moritz well, if Match does both Positional and Associative, both %1 and @1 make sense
20:02 moritz &1, not so much
20:03 jnthn Aye
20:03 moritz ... unless TimToady finds a good use case for a Callable Match :-)
20:04 moritz .oO( a Match, when invoked with a Str argument, returns the original string with the Match replaced by the argument
20:05 moritz ).
20:05 moritz 'abcd' ~~ /b/ and say $/('x'); # axcd
20:05 kinslayer Hi perl6.
20:06 FROGGS hi kinslayer
20:06 kinslayer I found a library that lets me schedule a function to be called at a specific time, is there any thing like this in perl6
20:07 Ven joined #perl6
20:07 masak m: my &1 = sub foo { say "OH HAI" }; &1()
20:07 camelia rakudo-moar b70ba1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GKQ8Dc2YQl␤Cannot declare a numeric variable␤at /tmp/GKQ8Dc2YQl:1␤------> 3my &17⏏5 = sub foo { say "OH HAI" }; &1()␤»
20:07 masak m: &1 = sub foo { say "OH HAI" }; &1()
20:07 camelia rakudo-moar b70ba1: OUTPUT«Attempted to ASSIGN-POS to Nil.␤  in block <unit> at /tmp/PvccSIGA6O:1␤␤»
20:07 masak hehehe.
20:09 kinslayer to be clear I have not found any thing like this in perl6
20:09 jnthn m: say 4189 / 4349
20:09 camelia rakudo-moar b70ba1: OUTPUT«0.963210␤»
20:09 kinslayer so I was wondering if anybody else knows of such a library in perl6
20:10 jnthn kinslayer: Just in memory, or persisting the subscription?
20:10 jnthn m: Promise.in(2).then({ say 'hi!' }); sleep;
20:10 camelia rakudo-moar 8911bc: OUTPUT«(timeout)hi!␤»
20:10 kinslayer hmm that seems nice, but can I use a time as on the clock
20:11 kinslayer such as on every wednesday at 2:15 run this function
20:12 FROGGS why don't you use cron?
20:12 jnthn If it's that kind of scheduling you probably do need a library that remembers the subscriptions
20:13 kinslayer jnthn: okay how can I use something like this ?
20:13 jnthn I mean, $*SCHEDULER.cue({ ...code... }, at => $datetime) works (you pass it a DateTime object)
20:13 kinslayer jnthn: okay I will look at that.
20:14 jnthn And you can even pass every => ... to specify the interval between calls
20:14 jnthn I'm not aware of any higher level library
20:14 kinslayer well that is pretty awesome :D
20:14 moritz m: await Promise.in(2).then({ say 'hi!' })
20:14 camelia rakudo-moar 8911bc: OUTPUT«hi!␤»
20:15 moritz # no timeout
20:15 kinslayer moritz: nice
20:19 dalek rakudo/nom: 2af8cb4 | jnthn++ | src/Perl6/Optimizer.nqp:
20:19 dalek rakudo/nom: Make optimizer aware of types of nqp:: ops.
20:19 dalek rakudo/nom:
20:19 dalek rakudo/nom: Means that we can generate much better code in various situations and
20:19 dalek rakudo/nom: avoid making some lexicalrefs when we don't need to.
20:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2af8cb4672
20:19 dalek rakudo/nom: 93bb1ae | jnthn++ | tools/build/NQP_REVISION:
20:19 dalek rakudo/nom: Bump NQP_REVISION for code-gen improvement.
20:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/93bb1ae243
20:20 TimToady m: sleep-until(now + 2); say "ha"
20:20 camelia rakudo-moar 8911bc: OUTPUT«ha␤»
20:20 TimToady if you're not interesting in doing anything in the meanwhile
20:21 jnthn [Tux]: Hopefully another bit knocked off Text::CSV
20:21 jnthn And off iteration in general.
20:22 jnthn m: say 2.57 / 4.52
20:22 camelia rakudo-moar 8911bc: OUTPUT«0.568584␤»
20:23 jnthn And an iota better on the lines thing from earlier.
20:24 jnthn m: say 4.52 / 4.9
20:24 camelia rakudo-moar 8911bc: OUTPUT«0.922449␤»
20:24 jnthn 8% better, even.
20:28 * jnthn was kinda meant to do grant admin stuffs tonight like blog, but ended up making things faster instead...
20:28 jnthn Ah well... :)
20:29 TimToady You have to take care of those you love, as well as those who love you.  :)
20:30 jnthn :)
20:30 test_perl6 joined #perl6
20:31 jnthn Yes, talking of which, enough computer time for today...will do the admin tomorrow :)
20:31 * jnthn is enjoying doing some performance work again, now the GLR is in place :)
20:31 timotimo good rest, jnthn!
20:31 [Coke] jnthn++
20:32 jnthn TimToady: If it's not already on your mental stack: shaped arrays are kinda blocking on deciding the semantics of list assignment, .map (and all other iteration-y things), .rotate (forbid?), .reverse (forbid?), .keys/.values... :)
20:33 dha Huh. Github apparently doesn't alert me when someone comments on one of my gists.
20:33 jnthn (I mean, sure, I can wire up the declaration syntax, and then look at natives shaped arrays, but I kinda need to know what we're doing on those bits to make good decisions on things :))
20:33 timotimo jnthn: i'd like list assignment to work if you assign a LoL or AoA, that's how i'd initialize the world for a cellular automaton, for example
20:33 silasmariner joined #perl6
20:34 silasmariner hello perl6
20:34 jnthn timotimo: Feel free to sketch out what you want in a gist :)
20:34 silasmariner your language is pretty cool
20:34 timotimo @foo = (^10).roll(10) xx 10
20:34 jnthn Anyways, goodnight o/
20:34 masak 'night, jnthn
20:34 timotimo my current code does that exact thing, but shaping it could lead to better things (also using the multi-dimensional slice syntax might give a performance benefit)
20:35 timotimo oh, another thing: currently i'm accessing the neighbours of a given field independent of whether i'm at the border or not, so i have code like my @neighbours = @grid[$px,$py] // Inf, @grid[$x,$py] // Inf, ...
20:36 silasmariner Is there a way of producing big decimals from a ration with a specific accuracy (e.g. 100 sig figs)?
20:36 timotimo if there'd be some way to react to an out-of-bounds access after turning this array into a shaped array, that'd be interesting
20:36 silasmariner *from a ratio
20:36 timotimo our rationals are already "big"
20:36 timotimo er, not quite
20:36 timotimo but we have a FatRat type that's "big"
20:36 silasmariner yeah, but if I want to sum a lot of them, I don't want massive integers
20:37 silasmariner as the denominator and numerator
20:37 timotimo huh.
20:37 silasmariner I saw fat rat... I meant just a decimal repr
20:37 silasmariner sorry if I'm being stupid
20:37 silasmariner I guess actually
20:37 arnsholt As long as you don't overflow, Rat operations should get GCDed as you go along
20:37 silasmariner fatrat subsumes decimal, with a 10^n denominator
20:37 arnsholt They should get GCDed anyways, actually
20:38 timotimo i'll be AFK for a bit
20:38 arnsholt A FatRat is just a Rat with bigints instead of ints
20:38 silasmariner OK, this has been very helpful, thankyou
20:39 silasmariner yeah. I just didn't think that decimal repr was a subset of fatrat
20:39 silasmariner because I am not a clever man
20:42 dha Edited my proposed documentation for C<for>, including proposals from [Coke] and raiph.
20:42 dha https://gist.github.com/dha/d8ab9b8cf852d358bfaf
20:43 dha Any other suggestions or complaints before I commit?
20:44 [Coke] dha;spare use on line 26?
20:45 [Coke] +1, looks fine.
20:45 dha ah. yeah, don't know how that got in there.
20:45 garryBarlowsLeft joined #perl6
20:50 [Coke] dha: I don't know that it will make you feel better, but I have docs on the list at https://gist.github.com/coke/38a589cec239409a4212
20:51 rurban joined #perl6
20:52 dha \o/
20:53 atta joined #perl6
20:56 dalek doc: af677c4 | (David H. Adler)++ | lib/Language/control.pod:
20:56 dalek doc: Added docs for C<for> in lib/Language/control.pod
20:56 dalek doc: review: https://github.com/perl6/doc/commit/af677c4e8d
20:56 jdv79 dha o/
20:57 dha Now to look at C<state>
20:57 muraiki how would I specify that a parameter must be a Set of Str? if I do "set <foo>.WHAT" I get back set((Str)) but that doesn't work
20:59 geekosaur m: my Set{Str} %x; %x.WHAT.say
20:59 camelia rakudo-moar 93bb1a: OUTPUT«5===SORRY!5===␤Type 'Set' is not declared. Did you mean 'Seq'?␤at /tmp/jPS4RWoZLr:1␤------> 3my Set7⏏5{Str} %x; %x.WHAT.say␤Malformed my␤at /tmp/jPS4RWoZLr:1␤------> 3my Set7⏏5{Str} %x; %x.WHAT.say␤␤»
20:59 geekosaur hm
21:00 jdv79 dha: have you been doing state for 3 weeks now?
21:01 dha I've been *complaining* about state for 3 weeks, I think. the actual *work* has been much less.
21:01 dha :0)
21:01 jdv79 that's a bit better than my metacpan speed
21:01 jdv79 ah
21:02 muraiki also, is there a better way to write "%words{$_}:delete if %words{$_} < $threshhold for keys %words;" as that's what I did but it seems pretty perl5-ish :)
21:03 brrt joined #perl6
21:04 jdv79 brrt: i meant to ask you at yapc - why is nobody else working on jit?
21:04 * geekosaur thinks he just tripped over an LTA
21:04 brrt oh hai jdv79
21:05 geekosaur "Type 'set' is not declared. Did you mean 'Set'?" ... "Type 'Set' is not declared. Did you mean 'Seq'?"
21:05 brrt well partially, it's my job to work on the JIT currently, or should i say, it was my job and it's been somewhat extended
21:05 * geekosaur can guess what happened there, but it's still a bit LTA
21:05 brrt secondly, people have worked on the JIT in the past, like JimmyZ++ and timotimo++ (and jnthn++ of course)
21:06 brrt finally, it's probably also because the next gen JIT is still in design flux
21:10 dalek rakudo/nom: 75665e3 | FROGGS++ | src/core/Variable.pm:
21:10 dalek rakudo/nom: flatten export trait list, like we do for Routines
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/75665e3132
21:10 dalek rakudo/nom: 0ea1338 | FROGGS++ | src/core/Inc.pm:
21:10 dalek rakudo/nom: box -I string, we'll .split it later
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0ea1338ac7
21:10 dalek rakudo/nom: f254e1f | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
21:10 dalek rakudo/nom: psch++, align JVM's slurp/slurp-flat code to moar's
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f254e1fe72
21:10 dalek rakudo/nom: 4db99fb | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
21:10 dalek rakudo/nom: port Seq->List conversion in binder to JVM
21:10 dalek rakudo/nom:
21:10 dalek rakudo/nom: This ports the missing bit from 211740be84f0.
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4db99fb405
21:10 dalek rakudo/nom: 5b55618 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
21:10 dalek rakudo/nom: toss unused attribute position hints
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5b55618932
21:10 dalek rakudo/nom: 940eacf | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
21:10 dalek rakudo/nom: handle optional array params in binder on jvm
21:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/940eacfd0a
21:10 jdv79 k
21:10 muraiki night perl6
21:11 FROGGS psch / jnthn: I figured it can't hurt to merge the jvm fixes into nom, as it doesnt not build anyway... and this way we get a little bit further
21:13 dalek rakudo/nom: c6a50ff | FROGGS++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
21:13 dalek rakudo/nom: fix copy&pasto in binder flags
21:13 dalek rakudo/nom:
21:13 dalek rakudo/nom: It did not hurt before for some reason, besides not being used at all.
21:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c6a50ff410
21:14 brrt jdv79: it is very much my intention to have more people work on it :-)
21:17 timotimo m: my str @foo;
21:17 camelia rakudo-moar 93bb1a: OUTPUT«===SORRY!===␤NYI␤»
21:17 timotimo star-m: my str @foo;
21:17 camelia star-m 2015.03: OUTPUT«===SORRY!===␤NYI␤»
21:18 FROGGS timotimo: lowercase str needs some love probably
21:18 timotimo mhm
21:28 tokuhiro_ joined #perl6
21:34 n0tjack joined #perl6
21:35 rindolf joined #perl6
21:44 n0tjack joined #perl6
21:45 kjs_ joined #perl6
21:45 FROGGS .tell jnthn here is the current state of perl6-j, if you are curious: https://gist.github.com/FROGGS/3598992b921b34a1c6d5
21:45 yoleaux FROGGS: I'll pass your message to jnthn.
21:46 lizmat messages ?
21:46 lizmat guess not  :-)
21:46 FROGGS :o)
21:46 espadrine joined #perl6
21:47 lizmat FROGGS o/
21:47 FROGGS hi lizmat
21:49 lizmat hmmm... I just pulled, built and see quite a lot of spectest breakage?
21:49 FROGGS O.o
21:50 lizmat When invoking cuid_3534_1441921390.28184 'new', provided outer frame 0x7fd06a332c40 (cuid_3534_1441921390.28184 'new') does not match expected static frame 0x7fd06a332b20 (cuid_3540_1441921390.28184 '')
21:50 FROGGS huh
21:50 lizmat t/spec/S15-nfg/many-threads.t
21:51 FROGGS lizmat: you might need to update nqp
21:51 mullagainn left #perl6
21:51 lizmat shouldn't a configure take care of that?
21:51 FROGGS lizmat: it should... the version was bumped
21:52 lizmat hmmm...
21:52 FROGGS $ nqp-m --version
21:52 FROGGS This is nqp version 2015.07.2-46-g85db8f9 built on MoarVM version 2015.08-15-g4b427ed
21:52 FROGGS I'll rebuild my perl6-m without debugging stuff and run a spectest too
21:53 lizmat This is nqp version 2015.07.2-46-g85db8f9 built on MoarVM version 2015.08-15-g4b427ed
21:53 FROGGS k
21:53 lizmat looks the same to me...  :-(
21:57 lizmat m: await do for ^4 {  start (Uni.new((800..850).pick(5)) xx 2000)>>.Str }
21:57 camelia rakudo-moar c6a50f: OUTPUT«(signal SEGV)*** Error in `/home/camelia/rakudo-inst-2/bin/moar': double free or corruption (top): 0x00007f576c39fc90 ***␤»
21:57 psch FROGGS: i gather the Unbreak* branch is retired now?
21:57 FROGGS psch: it is gone
21:58 FROGGS psch: I made it because I intended to commit hacks... but since I don't, we can work on nom
21:58 psch FROGGS: right, that's sensible.  that also means you didn't glean any insight from the hackishly running spectest?
21:59 FROGGS psch: correct
21:59 FROGGS psch: that's still my status: https://gist.github.com/FROGGS/3598992b921b34a1c6d5
21:59 lizmat m: await do for ^4 {  start <a b c>>>.Str }
21:59 camelia rakudo-moar c6a50f: ( no output )
21:59 lizmat m: await do for ^4 {  start <a b c>>>.Str }
21:59 camelia rakudo-moar c6a50f: ( no output )
21:59 lizmat m: await do for ^4 {  start <a b c>>>.Str }
21:59 camelia rakudo-moar c6a50f: ( no output )
22:00 lizmat hmmm... that segfaults for me
22:00 FROGGS psch: do you know where bind_attribute_native is implemented?
22:00 psch FROGGS: at compile time, by each P6opaque
22:00 FROGGS lizmat: works reliable here
22:00 lizmat m: await do for ^4 {  start (^4)>>.Str }
22:00 camelia rakudo-moar c6a50f: OUTPUT«When invoking cuid_7864_1441921174.01322 'pull-one', provided outer frame 0x2e52dd0 (cuid_3435_1441921174.01322 'iterator') does not match expected static frame 0x2db21b0 (cuid_7865_1441921174.01322 '')␤  in block <unit> at /tmp/muluci0J4v:1␤␤»
22:01 lizmat seems like a combination of >> inside a start triggers it
22:01 FROGGS psch: I don't get it
22:01 lizmat but only if the start is a statememt, not a block
22:01 psch FROGGS: P6Opaque.java:622 has a commented line to dump the generated byte code
22:01 lizmat m: await do for ^4 {  start { (^4)>>.Str } }
22:01 camelia rakudo-moar c6a50f: OUTPUT«When invoking cuid_7864_1441921174.01322 'pull-one', provided outer frame 0x2a40580 (cuid_7864_1441921174.01322 'pull-one') does not match expected static frame 0x2a401f0 (cuid_7865_1441921174.01322 '')␤  in block <unit> at /tmp/k7vTbpYHBl:1␤␤»
22:01 lizmat hmmm... guess not
22:01 psch FROGGS: the byte code gen is what generates the bind_* and get_* methods
22:02 FROGGS ohh
22:02 FROGGS lizmat: t/spec/S15-nfg/many-threads.t fails her too, with the error message you posted
22:03 FROGGS lizmat: four files fail in total
22:03 psch FROGGS: "javap -p -c -constants" is your friend :)
22:03 FROGGS aha
22:03 lizmat I had 7 fails, some are flappers
22:04 FROGGS psch: do I need to import FileOutputStream?
22:04 psch FROGGS: yeah, and i think File and one more thing
22:05 psch FROGGS: IOException
22:05 lizmat $ 6 'for ^4 {  start { (^5)>>.Str } }; sleep 5'
22:05 lizmat Trying to unwind from wrong handler
22:05 psch that's java.io.File and java.io.IOException
22:05 FROGGS psch: thanks
22:05 n0tjack joined #perl6
22:06 lizmat so my conclusion: start and >> interact in interesting ways
22:06 FROGGS hmmm, now I have more than a hundred .class files
22:06 lizmat and on that thought, I wll call it a day
22:07 FROGGS lizmat: gnight
22:07 [Sno] joined #perl6
22:14 TEttinger joined #perl6
22:19 skids joined #perl6
22:26 Skarsnik_ joined #perl6
22:29 tokuhiro_ joined #perl6
22:37 n0tjack joined #perl6
22:39 Ashimema joined #perl6
22:52 telex joined #perl6
22:53 kjs_ joined #perl6
23:00 cognominal joined #perl6
23:10 n0tjack joined #perl6
23:23 masak 'nigth, #perl6
23:23 masak night*
23:26 hahainternet nn masak
23:26 awwaiid hello
23:27 awwaiid I have a string in a var. I want to send it to an external program (stdin) and get the result (stdout). There a good way to do this?
23:27 awwaiid (specifically, I'm taking source code and running it through a script that uses vim to convert it to colorized-html)
23:30 hahainternet jnthn had a talk similar to that at some point
23:30 hahainternet http://jnthn.net/papers/2014-nlpw-reactive.pdf
23:30 hahainternet it might have been updated since
23:30 hahainternet but there's a section about running code there with all the pitfalls that come with things
23:30 hahainternet i'm not exactly up on the current state of things, but thought you deserved a response despite it being quiet
23:30 hahainternet i'm off to bed now though, nn
23:31 psch awwaiid: http://doc.perl6.org/type/Proc is probably where you want to look
23:31 awwaiid thanks psch
23:31 awwaiid thanks hahainternet
23:32 BenGoldberg joined #perl6
23:40 tokuhiro_ joined #perl6
23:42 n0tjack joined #perl6
23:48 pippo left #perl6
23:52 ShimmerFairy m: say :{1 => 4}.perl; my %h = :{1 => 4}; say %h.perl
23:52 camelia rakudo-moar c6a50f: OUTPUT«:{1 => 4}␤{"1" => 4}␤»
23:52 ShimmerFairy m: say :{1 => 4}.perl; my %h; %h{1} = 4; say %h.perl
23:52 camelia rakudo-moar c6a50f: OUTPUT«:{1 => 4}␤{"1" => 4}␤»
23:52 ShimmerFairy Are these results expected? How do I get an object hash?
23:59 japhb ShimmerFairy: Whatever happened with our community guidelines?  What's the current status?

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

Perl 6 | Reference Documentation | Rakudo