Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-09-06

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:01 xenoterracide joined #perl6
00:16 aborazmeh joined #perl6
00:25 TimToady 'as' is deprecated in any case
00:26 TimToady it will eventually be 'has Int(Cool) $bar'
00:26 TimToady meaning it accepts a Cool but coerces to Int
00:28 TimToady but it's NYI
00:29 itz joined #perl6
00:32 dalek rakudo/nom: a3262f6 | TimToady++ | src/core/Whatever.pm:
00:32 dalek rakudo/nom: at least avoid multiple allocs in Whatever.new
00:32 dalek rakudo/nom:
00:32 dalek rakudo/nom: This is a stopgap till we figure out how to add constant singletons in the setting.
00:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a3262f6570
00:32 * TimToady failed to add constant singletons many different ways :/
00:36 TimToady but it still the case that every darn .gimme(*) or .reify(*) calls Whatever.new
00:49 raydiak r: Buf.new(0).subbuf-rw(0).say
00:49 camelia rakudo-{parrot,jvm,moar} fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf'␤  in block <unit> at /tmp/tmpfile:1␤␤»
00:49 raydiak ^ isn't this supposed to exist now?
00:52 TimToady m: Buf.new(0)[0] = 42;
00:52 camelia rakudo-moar fd9238: ( no output )
00:52 TimToady m: my $b := Buf.new(0); $b[0] = 42; say $b.decode
00:52 camelia rakudo-moar fd9238: OUTPUT«*␤»
00:53 TimToady proving that then answer to Life, the Universe, and Everything is really "whatever".
00:53 raydiak heh
00:56 raydiak how would I modify more than one value at a time?
00:57 TimToady m: my $b := Buf.new(0,0,0); $b[0,1,2] = 65,66,67; say $b.decode
00:57 camelia rakudo-moar fd9238: OUTPUT«Cannot modify an immutable Int␤  in method STORE at src/gen/m-CORE.setting:7513␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2615␤  in block <unit> at /tmp/QfLkMoqQcJ:1␤␤»
00:57 TimToady aww
00:57 TimToady m: my $b := Buf.new(); $b[0,1,2] = 65,66,67; say $b.decode
00:57 camelia rakudo-moar fd9238: OUTPUT«Cannot modify an immutable Int␤  in method STORE at src/gen/m-CORE.setting:7513␤  in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2615␤  in block <unit> at /tmp/ghx6CeCera:1␤␤»
00:58 TimToady eh, beats me
00:58 raydiak "subbuf-rw specced and implemented" may have been a tad premature? :)
00:59 TimToady m: my $b := Buf.new(0); $b.subbuf-rw(0,1) = 65; say $b.decode
00:59 camelia rakudo-moar fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf'␤  in block <unit> at /tmp/DyTrJcuD4K:1␤␤»
00:59 TimToady praps
01:00 raydiak very excited though...it's been a blocker for Pray since last year
01:01 BenGoldberg joined #perl6
01:01 TimToady m: my $b := buf8.new(0); $b.subbuf-rw(0,1) = 65; say $b.decode
01:01 camelia rakudo-moar fd9238: OUTPUT«No such method 'subbuf-rw' for invocant of type 'Buf[uint8]'␤  in block <unit> at /tmp/suro800_qn:1␤␤»
01:03 itz_ joined #perl6
01:12 timotimo we did have subbuf-rw!
01:12 TimToady m: my $b := buf8.new(0); subbuf-rw($b,0,1) = 65; say $b.decode
01:12 camelia rakudo-moar fd9238: OUTPUT«Type check failed in binding $new; expected 'Blob' but got 'Int'␤  in sub  at src/gen/m-CORE.setting:5908␤  in block <unit> at /tmp/j2ZYXalpro:1␤␤»
01:13 TimToady eh?
01:13 timotimo ah, subbuf-rw is a sub, not a method
01:13 TimToady m: my $b := buf8.new(0); subbuf-rw($b,0,1) = buf8.new(65); say $b.decode
01:13 camelia rakudo-moar fd9238: OUTPUT«Cannot assign to an immutable value␤  in sub  at src/gen/m-CORE.setting:5908␤  in block <unit> at /tmp/B_N4cfluuD:1␤␤»
01:13 TimToady huh
01:13 timotimo oh?
01:13 dalek roast: 469d6a5 | (David Warring david.warring@gmail.com)++ | S02-types/whatever.t:
01:13 dalek roast: add fudged tests for RT #122708 non-currying: * min 2
01:13 dalek roast: review: https://github.com/perl6/roast/commit/469d6a545d
01:13 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122708
01:14 chenryn joined #perl6
01:15 * TimToady smells dinner, and is suddenly de-incentivized wrt hacking... &
01:19 timotimo something's keeping me from really progressing with the MATCH rewrite :\
01:33 JimmyZ joined #perl6
01:49 raydiak confirmed that subbuf-rw worked properly in moar 2014.08 as a sub at least...should file a bug, I assume?
01:56 raydiak oh, and it works properly as a sub now too...guess it's just not a method like timo said
01:56 FROGGS_ joined #perl6
02:00 Sqirrel joined #perl6
02:01 raiph joined #perl6
02:04 itz joined #perl6
02:09 masak aloha, #perl6
02:12 BenGoldberg Do all alohas come from hawaii?
02:15 cognome joined #perl6
02:15 masak not this one.
02:18 masak ingy: re http://irclog.perlgeek.de/perl6/2014-09-05#i_9305944 -- when a language declares by assignment, there's no way to distinguish `my $x = 1; sub { $x = 2 }` from `my $x = 1; sub { my $x = 2 }`, and so the language has to choose (usually the latter). I've seen this decision cause untold head-scratchers, surprise, and hardship in (e.g.) Python and AngularJS.
02:19 masak Python 3 introduces `nonlocal` as a way to get the former semantics. but then community-suggests that "you don't really want to do that". :/
02:22 cooper_ joined #perl6
02:34 davido_ joined #perl6
02:59 noganex joined #perl6
03:03 colomon joined #perl6
03:03 ingy masak: I'm not sure I agreee
03:03 ingy or at least that it's going to be a problem
03:04 ingy I could make a set of test cases
03:04 ingy And as I said, assignment is just the default decl
03:05 * ingy tests in CS
03:07 masak oh, you're free to agree or disagree ;)
03:07 masak I'm just saying I see that semantics causing actual pain in a way explicit declarations don't.
03:09 masak there are plenty of ways to decide that declaration-by-assignment is still the right thing to do. for example, by considering the sum effort involved in declaring lexical variables to be worse than the occasional bug caused by implicitly mis-declaring one.
03:10 ingy nod
03:10 raiph joined #perl6
03:11 masak as for me, though, I've come to really really appreciate explicit declarations. they form a beautiful static modek in the program, and they frequently catch thinkos for me which otherwise might have escaped into live code as unintended declarations.
03:11 ingy masak: so CafeScript is syntax and L'Ingy is the (syntaxless) language.
03:11 ingy one sec
03:13 * colomon just realized it must be morning for masak
03:13 JimmyZ_ joined #perl6
03:14 MilkmanDan joined #perl6
03:14 masak colomon: it's before noon, yes.
03:14 * JimmyZ_ doesn't like the implicit syntax in scala, btw :(
03:15 masak there's some sense in which implicit syntax looks like less work, but it ends up causing trouble when refactoring.
03:16 ingy masak: possibly :)
03:16 masak a bit like having the redundancy of indentation and explicit braces on blocks tends to be a good thing.
03:16 ingy masak: https://github.com/ingydotnet/pig-latin-acme/blob/master/lib/Pig/Latin.ly.yaml is the raw L'Ingy port
03:16 * masak looks
03:16 ingy that I just made
03:17 ingy it is close to the compilation unit (AST) of https://github.com/ingydotnet/pig-latin-acme/blob/master/lib/Pig/Latin.cafe
03:17 masak *nod*
03:17 ingy and all the vars are scoped and typed
03:17 ingy so I can swap syntaxen (theoretically) to meet issues
03:18 ingy Cafe is admittedly pushing full-on lean
03:19 ingy masak: you'll like: https://gist.github.com/7b86c66589fd5b67feab
03:19 ingy I was reading p6OO doc and started refactoring :)
03:20 ingy note line 20
03:20 ingy no comma after "x:
03:20 ingy no comma after "x: "
03:21 ingy that's because commas are optional following a literal in a list
03:21 ingy [1 2 3 4]
03:21 ingy stolen from audreyt's #1 fav lang LiveScript
03:22 masak seems a big perverse from a p6 perspective :)
03:22 masak bit*
03:23 masak (as we typically reserve TTIAR for either special forms or parse errors)
03:23 ingy I have a lightning talk that asserts that , ; ( ) { } have pretty much identical meanings in all modern languages. they should always be supported, and semantically DTRT, and always be optional :)
03:24 masak reminds me of JS's optional semicolons, for some reason.
03:24 masak ingy: I also note that you opted for *neither* braces nor indentation to indicate nesting.
03:24 ingy perl6 feels perverse from the PoV of porting between other common langs
03:24 ingy ?
03:25 masak everything's at indent level 0.
03:25 ingy you mean I opted both either
03:25 ingy oh
03:25 masak well, in your example I see neither.
03:25 masak what if I want nested classes?
03:25 masak or nesting of something else?
03:25 ingy a 'Module' is Class*
03:25 ingy so class ends at next class
03:26 masak I figured. that's why you need a class main.
03:26 itz_ joined #perl6
03:26 ingy that's one thing from p5 I won't give up
03:26 ingy but still ♥ indentation
03:27 ingy open code from before first class is also in main
03:27 ingy er Main
03:27 ingy I just didn't want to break the p6 code order
03:28 masak ingy: I find this discussion interesting in that it brings out language design preferences I didn't know I had, by looking at what you have and figuring out why I don't like it. ingy++ :)
03:28 lastofthe joined #perl6
03:28 ingy It will be pretty cool to see how Cafe beats up on P6 (and vice versa)
03:29 ingy backhanded compliment touché :P
03:29 masak not meant as a slight in any way
03:29 ingy people like what they are used to
03:29 masak at least those who stick with what they like :P
03:30 ingy I find CoffeeScript to the most delightful syntax
03:30 masak oh augh :P
03:30 cognome joined #perl6
03:31 ingy well, until I realized it could be better
03:31 ingy p6 is a fountainhead of great ideas
03:31 masak ingy: I think it's weird that your model has `main` as a class, since it has neither attributes, methods, or instances. just mainline code.
03:32 ingy masak: to be honest, Cafe's dream is only OO/Class/Module singularity
03:32 ingy one programs in P6
03:32 ingy one writes modules in Lingy/Cafe
03:33 ingy if one is Acmeist (wants ideas (modules) to go beyond one's tiny language domain)
03:33 ingy so the 'main' thing is not well thought out yet
03:33 masak sir, I wish you good luck on your ambitious Acmeist quest.
03:33 ingy but it's probably inevitable
03:34 ingy masak: it's the lonliest path least traveled, my good friend!
03:34 ingy but it's the only path that calls out to my soul…
03:35 ingy I had all these ideas before coffee. coffee was a huge shot in the arm though.
03:35 aborazmeh joined #perl6
03:36 btyler is it possible to use NativeCall with static libs?
03:36 ingy and coffee taught me that the sugar can be richer than the target
03:36 ingy and take the best ideas from great langs
03:36 masak *nod*
03:36 masak I give you that, CoffeeScript has had a huge influence by example.
03:36 ingy including the best of the greats, Perl6
03:36 btyler I'm playing around with bindings for discount, the markdown compiler, but nativecall either looks for .dylib, or, when I specify "libmarkdown.a" can't find that
03:36 JimmyZ .oO(someone want ColaScript...)
03:38 ingy vendethiel- I believe was/is a huge backer of LiveScript (aka CoffeeScript++; aka FunctionalCoffeeScript)
03:39 ingy vendethiel-: do you hear me, man?!
03:50 * masak should take a closer look at LiveScript
04:04 JimmyZ_ joined #perl6
04:11 xenoterracide joined #perl6
04:20 telex joined #perl6
04:30 itz joined #perl6
04:43 bjz joined #perl6
04:46 itz_ joined #perl6
04:57 itz joined #perl6
04:57 JimmyZ_ joined #perl6
04:59 JimmyZ__ joined #perl6
05:02 JimmyZ__ joined #perl6
05:03 JimmyZ_ joined #perl6
05:10 anaeem1 joined #perl6
05:10 itz_ joined #perl6
05:14 dalek rakudo/nom: cc1965f | jonathan++ | / (5 files):
05:14 dalek rakudo/nom: Bulid a * and ** during compile, and use them.
05:14 dalek rakudo/nom:
05:14 dalek rakudo/nom: This means that we eliminate the method calls to .new in both cases,
05:14 dalek rakudo/nom: as well as a bunch of object allocations. This should - at least in
05:14 dalek rakudo/nom: the pre-compiled module case where the created object is in gen2, or
05:14 dalek rakudo/nom: when the compilation ran long enough to promote it - JIT down to an
05:14 dalek rakudo/nom: instruction or two on Moar. Even if it's the less direct lookup, it
05:14 dalek rakudo/nom: will still be enormously faster than a method call.
05:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cc1965fba7
05:19 tinyblak joined #perl6
05:20 TimToady \o/
05:27 jnthn lunch &
05:27 yoleaux 5 Sep 2014 21:57Z <lizmat> jnthn: re "my $p; $p = start { await $p }; await $p" deadlock, maybe we should force waiting for a start promise to only be allowed in the originating thread ?
05:32 tinyblak joined #perl6
05:37 moritz good morning
05:46 kaare_ joined #perl6
05:54 JimmyZ_ joined #perl6
06:00 dolmen joined #perl6
06:01 lizmat jnthn: re method new() { our $star //= nqp::create(self) }, wouldn't 'method new() { $ //= nqp::create(self) }' be better?
06:02 lizmat or even method new() { $ = nqp::create(self) }
06:02 TimToady can probably just be 'method new() { (*) }' now
06:04 lizmat and ** for HyperWhatever ?
06:04 TimToady yes, World now already defines those as singleton instances, so there's no point in making more of 'em
06:05 JimmyZ m: say *.WHAT; (*).WHAT
06:05 camelia rakudo-moar a3262f: OUTPUT«(Whatever)␤»
06:05 JimmyZ m: say *.WHAT; say (*).WHAT
06:05 camelia rakudo-moar a3262f: OUTPUT«(Whatever)␤(Whatever)␤»
06:06 TimToady not sure if the parens are necessarily, since {*} is an "onlystar" for protos
06:06 TimToady m: sub foo() {*}
06:06 camelia rakudo-moar a3262f: ( no output )
06:06 TimToady m: sub foo() {*}; say foo.WHAT
06:06 camelia rakudo-moar a3262f: OUTPUT«(Whatever)␤»
06:07 TimToady looks safe-ish
06:07 lizmat remember, we're doing this early in the settings
06:08 lizmat a lot of things don't work yet then...
06:08 lizmat testing $ = variant over breakfast&
06:08 TimToady what would be the point of assigning to a state var?
06:08 lizmat the same as //=, but without the METAOP ?
06:09 * TimToady doesn't understand what you are trying to do
06:09 TimToady we scarcely need the new method at all now
06:10 danaj What's a fast way to read numbers from a file (one per line).  It seems using "for $in.lines -> $_ { ... }" is extraordinarily slow.
06:10 Timbus -> $_
06:10 Timbus you can do that?
06:10 danaj (sorry for basic question, feel free to point me to better channel for silly questions)
06:13 mr-foobar joined #perl6
06:13 TimToady danaj: what kind of numbers?
06:14 tinyblak joined #perl6
06:14 JimmyZ I thinks somethink like http://perlmonks.org/?node_id=1099654?
06:14 JimmyZ *something
06:14 TimToady you might do better with $in.slurp.words
06:14 danaj TimToady: 64-bit integers.  It takes many minutes to plow through 32M of them (with an empty loop).  Perl 5 takes 5 seconds.
06:14 JimmyZ Note 3 ) part ?
06:15 TimToady yes, I know that p5 is very fast on input; I cheated all over to make it that way
06:15 TimToady we haven't cheated in P6 yet
06:17 danaj NP, I don't need P5 speed (yet :)) but this seems awfully boggish.
06:19 danaj Hmm, slurp.words up to 8GB and still going.
06:19 TimToady it's possible that 'for eager $in.lines' will run faster
06:21 TimToady the other thing that's going on here is that p5 will be using native 64-bit ints internally, while p6 is defaulting to arbitrary bigints
06:22 TimToady so finding some way to convert direction to int64 will probably be quite a bit faster
06:22 danaj This is for testing the base-2 strong pseudoprimes, where the goal is to ensure is-prime returns true on each one (obviously the current one will, as only the first 12 bases are needed and we run an extra 88 for good luck)
06:22 TimToady *directly
06:23 danaj I can always just do the file open/read/loop directly from C and have it call the C routine, but there's something to be said for doing it from the language directly.
06:23 lizmat TimToady: this is about a3262f65704cd4c1ac
06:23 TimToady opening the file in binary mode might help
06:24 lizmat a. why burden UNIT:: with something
06:24 TimToady lizmat: that's obsolete
06:24 lizmat b. why use a METAop
06:24 TimToady jnthn++ has already done something better
06:25 lizmat so should a3262f65704cd4c1ac be reverted then?
06:25 TimToady no, it should be changed to what I said, just returning *
06:26 lizmat commute to venue, will look at it there&
06:27 woolfy left #perl6
06:32 TimToady actually, should just delete new and clone, I think
06:34 dalek rakudo/nom: 4a74294 | TimToady++ | src/core/Whatever.pm:
06:34 dalek rakudo/nom: no longer need new and clone in Whatever
06:34 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4a74294806
06:51 lastofthe joined #perl6
06:56 darutoko joined #perl6
07:08 anaeem1_ joined #perl6
07:08 gfldex joined #perl6
07:10 anaeem1_ joined #perl6
07:13 lizmat joined #perl6
07:19 JimmyZ_ joined #perl6
07:21 virtualsue joined #perl6
07:21 Woodi morning #perl6 :)
07:21 lizmat morning Woodi
07:22 lizmat TimToady: re 4a74294806 : that's one way of solving it  :-)
07:24 Woodi TimToady: I'm very interested what are all that places you cheat in p5 to make it fast :) could you share thes ideas ?
07:25 Woodi lizmat: I have long standing question to you :) maybe TimToady and masak also :)
07:26 Timbus you should ask leon timmermans about perl IO. he has a lot to say
07:27 Woodi once I was watching 3in1 perl presentation and part 3on3 was you three a bit shyish "allowing" Perl5 community to branch Perl5 :) what was that actually ? :)
07:27 Woodi probably this was on same conference as Perl11 idea...
07:34 lizmat Woodi: would that be on stage at the YAPC::EU 2013 ?
07:34 lizmat if so, that was a very weird situation
07:34 lizmat the origanizer of the conference wanted a "Perl 7" discussion
07:34 lizmat but in the end, didn't find anybody to defend the "perl 7" standpoint on stage
07:35 Timbus ... thats so weird
07:35 lizmat so it became a weird one sided 45 minutes of my life
07:35 jack_rabbit joined #perl6
07:36 Woodi probably becouse morphing perl5 code into v7 is hard... and (probably) includes dropping compability with perl5 :)
07:37 lizmat there's that  :-)
07:38 Woodi some vendors coalition could do that but unlikely :)  and from user perspective perl5 development is quite good :)
08:11 dalek roast: a9608c6 | (Elizabeth Mattijsen)++ | S17-lowlevel/thread.t:
08:11 dalek roast: Unfudge: this seems stable now, even under load
08:11 dalek roast: review: https://github.com/perl6/roast/commit/a9608c6b3d
08:19 dalek rakudo/nom: bdf153c | jonathan++ | src/core/control.pm:
08:19 dalek rakudo/nom: Improve take[-rw], proceed, succeed.
08:19 dalek rakudo/nom:
08:19 dalek rakudo/nom: By making them multis, the common cases can avoid a Parcel allocation
08:19 dalek rakudo/nom: along with the underlying list construction, as well as a call. This
08:19 dalek rakudo/nom: takes around 5% off a "read a million lines" benchmark, and probably
08:19 dalek rakudo/nom: is more significant in things that hot-path on gather. The succeed
08:19 dalek rakudo/nom: improvement should help all given/when usages.
08:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bdf153c23d
08:20 jnthn Also brings the common cases within inlining thresholds, I'd imagine.
08:22 elohmrow joined #perl6
08:22 elohmrow greetings, from sunny olten!
08:24 Woodi while installing R* 2014.08 with jit configure says my Pentium4 is i586 so no jitting for me... it's strange, I'm pretty sure `uname -a` says i686...
08:24 Timbus danaj, i just tested using $file.lines vs loop{$file.get} and for a 100,000 file line the time goes from 8 seconds to 1
08:24 Woodi elohmrow: o/
08:24 Timbus if that helps
08:24 firefish5000 Is there currently a bash_completion for panda or perl6?
08:25 Timbus 100,000 line file*
08:28 BizarreCake joined #perl6
08:31 danaj Timbus: Thanks, I'll try that later.  I was getting ~6s in binary using $file.lines for first 100k lines of 32M line file, ~11s if I call a nqp routine with the integer that immediately returns.  The speedup will be nice, and that should be fine for now.
08:36 Timbus i dont seem to get any speedup for using :bin, almost all of the slowdown is coming from the lazy list code.
08:36 danaj Timbus: That goes to ~1s for first 100k lines for me as well.  12s for first 1M lines, and much better memory using moar.
08:37 Timbus cool :)
08:39 FROGGS firefish5000: never heard of one
08:40 firefish5000 In that case, would you guys be intrested in mine, (comes with no warrenty)
08:42 moritz sure
08:45 FROGGS sure!
08:46 FROGGS shall we but that in the star repo?
08:46 firefish5000 Here it is. http://pastebin.com/JNKuF4KY
08:47 * firefish5000 is not responable for any damage nor injures aquired while using perl6 completion
08:48 virtualsue joined #perl6
08:49 firefish5000 to use, put it in your bash_completion.d directory and source /etc/profile or source the file itself.
08:50 anaeem1 joined #perl6
08:50 elohmrow just starting with perl6 here ... vim user (don't shoot?!) ... and vim syntax goodies for perl6
08:53 firefish5000 I believe vim comes with builtin perl6 support (for highlighting/brace matching/etc). although its a little slow with big files.
08:55 brrt joined #perl6
08:56 FROGGS I think some ppl here use vim
08:57 * lizmat uses vim but pretty vanilla
08:58 moritz firefish5000 is correct, though iirc it's not reliably autodetected; I put ft=perl6 in my modelines
08:59 elohmrow yeah multi-line comments don't work in what i have
09:00 elohmrow they work, but the highlighting !works
09:00 * firefish5000 notices a echo to file in his bash_completion in _perl6() { ...
09:00 firefish5000 oops
09:01 dalek rakudo/nom: 2132868 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
09:01 dalek rakudo/nom: Phase #1 of IO.pm breakup
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/21328689f5
09:01 dalek rakudo/nom: 8b9b6cc | (Elizabeth Mattijsen)++ | src/core/IO.pm:
09:01 dalek rakudo/nom: Phase #2 of IO.pm breakup
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8b9b6ccc4e
09:01 dalek rakudo/nom: fa8a7df | (Elizabeth Mattijsen)++ | src/core/IO/ (3 files):
09:01 dalek rakudo/nom: Part #3 of IO.pm breakup
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fa8a7df3bf
09:01 dalek rakudo/nom: 95876bc | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
09:01 dalek rakudo/nom: Part #4 of IO.pm breakup
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/95876bc4cc
09:01 dalek rakudo/nom: 888b855 | (Elizabeth Mattijsen)++ | tools/build/ (3 files):
09:01 dalek rakudo/nom: Part #5 of IO.pm breakup
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/888b8556d7
09:03 grep0r joined #perl6
09:05 akaseki joined #perl6
09:05 leont joined #perl6
09:06 spider-mario joined #perl6
09:09 vukcrni joined #perl6
09:09 spider-mario joined #perl6
09:11 * lizmat got fed up with the convulution in IO.pm
09:15 lizmat *convolution rather
09:22 Rotwang joined #perl6
09:22 itz_ one thing which would be nice for vim would be perl6 aware tag creation
09:23 itz_ either as a simple p6 script or support in etags
09:26 leont joined #perl6
09:30 Timbus so, if .lines calls .get over and over, does the optimizer know that it doesn't have to test $!PIO and $!isDir every single time? does nqp or moar know to.. 'unroll' safety checks in some way? as i type this it seems less and less likely
09:35 JimmyZ_ joined #perl6
09:35 dalek rakudo/nom: e0a98ba | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
09:35 dalek rakudo/nom: Make simple say more atomic in threaded situations
09:35 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e0a98badab
09:40 kurahaupo joined #perl6
09:41 nine lizmat: does this make say faster or slower?
09:44 virtualsue joined #perl6
09:44 Timbus yes
10:03 lizmat I'm pretty sure for most cases it won't make much difference
10:04 lizmat if you're saying a 1M character scalar, it probably will
10:04 lizmat in reality, that doesn't happen much
10:05 lizmat and if it *is* a performance issue, adding a , to the param list, should probably select the candidate that doesn't do the concatenation
10:06 * JimmyZ remembered jnthn++ optimized it to avoids ',' :P
10:08 lizmat well, perhaps we need to optimize 'say "foo"' to 'print "foo\n"' at compile time
10:09 lizmat actually, to '$*OUT.print: "foo\n"'
10:09 lizmat and then MMD print to have a candidate for Str:D:
10:10 lizmat perhaps the \x candidate shouldn't be optimized like that
10:10 lizmat otoh, calling .gist on something probably means a lot of concatenation already
10:11 lizmat I felt the atomicity of say in that case, would be more important
10:13 itz joined #perl6
10:15 * JimmyZ wonders  what about 'say "$foo"'
10:15 * JimmyZ was asked by someone before
10:21 nine lizmat: but it is not atomic.
10:22 jnthn Timbus: No, those are done each time; factoring them out is one of my todos for later on today
10:22 lizmat JimmyZ: "$foo" will foo.Str
10:22 lizmat JimmyZ: say $foo will $foo.gist
10:22 nine lizmat: Nothing whatsoever prevents mixed lines in output if mutltiple threads say at the same time. You just reduced the chance of this happening thereby making potential race conditions harder to reproduce.
10:24 lizmat nine: are you saying race conditions on $*OUT.say are a problem ?
10:25 lizmat if so, we need to fix this
10:25 nine lizmat: I say you are obviously seeing them as a problem, otherwise why try to fix it?. But your fix is not a real fix. You just reduced the chance of the problem manifesting.
10:26 lizmat true... it's all about priorities
10:26 Timbus jnthn, i see. i was more interested from an automatic optimizer perspective, but after thinking about it, it seemed.. difficult.
10:26 lizmat when trying to debug multi threaded apps, I take any semblance of atomicity on say as a help
10:27 lizmat meanwhile, I'm trying to make @*INC and %*CUSTOM_LIB lazy
10:27 vendethiel- o/, #perl6
10:27 nine And I might even argue that by reducing the chance, we make it harder for people to find such race conditions in their code.
10:27 lizmat $ time perl6 -e1
10:27 lizmat real0m0.165s
10:27 lizmat user0m0.132s
10:27 lizmat sys0m0.031s
10:27 lizmat that would be nice, eh?
10:27 Timbus jnthn, anyway that said, removing the checks does speed up a 100k line iteration by 120 milliseconds or so. yay profiler
10:27 lizmat although wrt to spectesting, it wouldn't make a difference
10:27 nine Works fine on first glance but may still fail when larger strings are printed and the OS preempts in the middle.
10:28 lizmat as any "use" will cause @*INC and %*CUSTOM_LIB to be populated
10:28 lizmat and any test starts with "use Test"
10:29 elohmrow they work, but the highlighting !works
10:29 lizmat nine: this is *only* for sub say { ... }
10:29 elohmrow oopsie, looks like i somehow accidentally re-posted that :)
10:30 lizmat and yes, I realize that as soon as the string exceeds the size of the IO buffering of the OS, we may seem "breakage"
10:30 lizmat *see
10:41 Woodi <stdio.h> is generally thread-safe now, could we use that somehow in ? in some shortcut way maybe...
10:41 Woodi grr... forget about all that VMs :)
10:41 lizmat Woodi: IO is handled by libuv, afaik
10:42 Woodi on j-nqp too ?
10:42 lizmat sorry, I meant on -m
10:42 Woodi still we can invent some new and powerfull threaded apps debuging tool :)
10:43 Woodi with printf ;)
10:43 * leont isn't sure what printf would buy you
10:44 leont Yes, it uses locks to guarantee every printf call is consistent, it's not that hard to write that honestly
10:45 Woodi leont: I just realized that we talk about stdout and my proposed powerfull tool is just adapter for printf :)
10:45 jnthn In the case of MoarVM, in a multi-threaded program the VM takes a lock on its internal handle data structures, since libuv IO and event loop data structures ain't threadsafe.
10:45 jnthn On the JVM, we lock as needed also
10:47 JimmyZ_ joined #perl6
10:48 * lizmat is surprised to learn that libuv isn't threadsafe in that respect
10:49 jnthn lizmat: It was built initially for Node.js, so it ain't so surprising. :)
10:50 lizmat jnthn: we don't have a standard way of making a proxy like object for arrays and hashes, do we?
10:51 jnthn No, though a lazy array is, well, just a lazy list... :)
10:52 nwc10 is this also why it's quite happy to change its API but only bump the most minor part of the version number?
10:52 PersonX joined #perl6
10:53 jnthn nwc10: Well, I more meant that if you're building something that centers around huge amounts of overlapped IO on a single thread, you won't need to worry about thread safety of handles.
10:53 nwc10 yes, sorry, I realised that. It makes sense
10:54 nwc10 it was more that I was feeling the need question why they are 0.11.lots rather than 0.12.smaller given that the API changes
10:54 jnthn Yes. The latter thing, not so much sense, though...
10:55 pmurias joined #perl6
10:55 pmurias is there anyone still supporting the Perl 7 renaming?
10:56 vendethiel- trolls?
10:56 lizmat vendethiel:  :-)
10:56 * pmurias noticed the irc log mentioned yapc 2013 not 2014 ;)
10:57 vendethiel yeah, the c-day-is-coming talk was apparently rather well received
10:58 Woodi jnthn: is libuv planned to be eventually replaced ?
10:59 * lizmat wasn't burnt at the stake  :-)
10:59 leont Woodi: do you have anything better?
10:59 PersonX joined #perl6
10:59 jnthn Woodi: I've no such plans.
11:00 jnthn Just because it's not perfect doesn't mean there's a better option.
11:00 lizmat jnthn: in Metamodel/BOOTSTRAP, I see a lit of repeated .HOW calls to a type object
11:00 jnthn lizmat: .HOW is rather cheap....
11:00 lizmat would it make sense to do the .HOW once, store it and then call methods on that ?
11:00 jnthn lizmat: It's not actually a method call, even.
11:00 lizmat ok
11:00 lizmat what I wanted to know
11:01 leont Woodi: keep in mind that cross-platform async is hard. There are only a handful viable low-level implementations.
11:01 leont boost.async is kind of neat, but moar is in C not in C++
11:01 * jnthn for one does not want to design/implement a cross-platform async IO thingy :)
11:01 vendethiel I wonder why :D
11:02 vendethiel boost guys really are crazy (awesome).
11:05 lizmat jnthn: so if I wanted to do a lazy @*INC, I would create a ListIter with a .nextiter set to the code to run, and $!list set to PROCESS:::<@INC> ?
11:06 leont jnthn: why wouldn't you want to port such a project to, say, OpenVMS? ;-)
11:06 pmurias what are the reason for replacing libuv?
11:06 Woodi leont: *VMS users should do that ;)
11:06 vendethiel thread safety
11:06 lizmat pmurias: because we found something better ?
11:07 lizmat but we didn't find it yet (afaik)
11:07 Woodi pmurias: primery is NIH :)
11:07 leont Woodi: sarcasm ;-)
11:07 jnthn lizmat: Actually I think you'd just create an array, and then .plan(gather { blah blabh set up stuff; take entry })
11:08 lizmat is .plan actually functional now?
11:08 jnthn lizmat: I thought TimToady implemented it the other day...
11:09 jnthn leont: The only thing I know about VMS is what I've learned from Perl folks. And that boils down to, "porting stuff to VMS is HORRIBLE" :)
11:10 leont There is a POSIXy compatibility layer, but IPC in general is weird. perl5 still doesn't have a working IPC::Open2 for VMS for example :-/.
11:11 lizmat jnthn: maybe, but 'ack '\.plan' t/spec' doesn't show any hits, so it is at least untested
11:11 pmurias lizmat: have we found something better?
11:11 jnthn m: my @a; @a.plan(gather { say 'dugong'; take 1; }); say 'manatee'; say @a[0]
11:12 camelia rakudo-moar 4a7429: OUTPUT«(timeout)manatee␤»
11:12 jnthn um...
11:12 lizmat that doesn't feel right  :-)
11:12 jnthn TimToady: Oh the hue manatee! ^^
11:12 leont I'm observing the done callback on a Supply (from Proc::Async) being called more than once, is that expected?
11:13 jnthn Um, no... o.O
11:13 jnthn more will be
11:13 jnthn done should happen once
11:14 pmurias lizmat: sorry didn't reed
11:14 jnthn If I managed to mess that up, please toss a bug report in RT
11:15 leont That's what I expected
11:15 leont I'll try to come up with a minimal example
11:16 jnthn Thanks
11:16 lizmat in any case, the initialization of %*CUSTOM_LIB and @*INC is heavily intertwined
11:17 lizmat so any access to %*CUSTOM_LIB would also need @*INC to be filled
11:17 lizmat and we don't have a lazy hash filler, do we ?
11:17 jnthn Oh, somebody asked earlier about:
11:17 jnthn await my $p = start { await $p }
11:18 jnthn This is actually nothing to do with threading per se, just about setting up a situation where you wait for something to happen on a code-path to making it happen
11:19 jnthn my $p = Promise.new; await $p; $p.keep(1) # exactly the same, with a single thread
11:20 firefish5000 Perl6 bash-completion v2 http://pastebin.com/ZGkKgZ3c , now runs on other systems! (now uses @*INC to find projects.json, basic support for rakudobrew)
11:20 jnthn And, to be clear:
11:20 jnthn my $a = False; until $a { }; $a = True  # exactly the same, without a Promise :)
11:20 jnthn lizmat: (lazy hash) no
11:20 lizmat well, this was related to #122709
11:20 synopsebot Link: https://rt.perl.org/rt3//Public/Bug/Display.html?id=122709
11:21 lizmat lunch&
11:21 lastofthe joined #perl6
11:22 jnthn lizmat: Ah, that involves multiple promises...
11:22 jnthn lizmat: So it's not quite such a simple case :)
11:22 jnthn But yeah it shouldn't behave as it does.
11:22 * jnthn leaves it open in a browser tab for later examination
11:22 jnthn For now, I think it's dinner time :)
11:24 PersonX joined #perl6
11:25 brrt joined #perl6
11:31 * firefish5000 inst sure if he should blame pastebin or terminal cp/paste for $'r' on line 12..
11:31 BizarreCake joined #perl6
11:37 mr-foobar joined #perl6
11:37 daxim joined #perl6
11:47 yeahnoob joined #perl6
11:48 leont m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { }, :done({ say "Done called" })); await $proc.start
11:48 camelia rakudo-moar 4a7429: OUTPUT«Done called␤Done called␤»
11:49 nbrown___ joined #perl6
11:49 lastofthe left #perl6
11:51 PersonX joined #perl6
11:57 tadzik hah
11:57 pmurias joined #perl6
11:57 tadzik m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { say "got something}, :done({ say "Done called" })); await $proc.start
11:57 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/iPnYJX0xDXâ�¤Unable to parse expression in double quotes; couldn't find final '"' â�¤at /tmp/iPnYJX0xDX:1â�¤------> [32msay "Done called" })); await $proc.start[33mâ��[31m<EOL>[0mâ�¤    expectin…»
11:57 tadzik grr
11:57 tadzik m: my $proc = Proc::Async.new(:path("echo"), :args([<Hello World>])); my $in = $proc.stdout_chars(); $in.tap(-> $data { say "got something" }, :done({ say "Done called" })); await $proc.start
11:57 camelia rakudo-moar 4a7429: OUTPUT«got something␤Done called␤Done called␤»
12:00 firefish5000 if anyone is still interested. perl6/panda/rakudo completion https://github.com/firefish5000/Mod6 . done right with git this time.
12:00 elohmrow joined #perl6
12:03 tadzik nice :)
12:03 tadzik firefish5000++
12:04 firefish5000 if anyone else trys it and finds it doesn't work... tell me (I spent too much time on it to be satisfied with just my system)
12:04 firefish5000 tadzik, thanks :)
12:07 * firefish5000 leaves to take his (very late) nighttime shower
12:07 zakharyas joined #perl6
12:15 PersonX joined #perl6
12:16 yeahnoob joined #perl6
12:17 lizmat jnthn: in Proc::Async, the first done is at line 110, the second is from line 95
12:19 moritz firefish5000++
12:19 nbrown___ joined #perl6
12:22 dalek rakudo/nom: 6ff79a9 | (Elizabeth Mattijsen)++ | src/core/Proc/Async.pm:
12:22 dalek rakudo/nom: Naive fix for double "done"
12:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6ff79a9a29
12:23 lizmat jnthn: ^^^    as there are no tests, not sure if this changes behaviour or not
12:24 robinsmidsrod joined #perl6
12:28 moritz firefish5000: found the first bug, see https://github.com/firefish5000/Mod6/issues/1
12:32 Ven joined #perl6
12:34 raiph joined #perl6
12:35 leont lizmat: yeah, that's what I suspect too, but I'm only have understanding the nqp there. I guess the one on line 110 should be left out.
12:36 lizmat leont: that's what my naive patch did
12:37 jerrycheung joined #perl6
12:40 woolfy joined #perl6
12:42 leont m: my @l = 1, 2, 3; my $t = start { @l.map(* + 10) }; await $t; say $t.result.perl
12:42 camelia rakudo-moar 4a7429: OUTPUT«().list␤»
12:42 leont Why is that an empty list? Why do I have to put square brackets around that map to make it DWIM?
12:43 leont Is that a bug or a feature I don't understand?
12:44 moritz without knowing much about threads, I'd naively say it's a bug
12:44 dolmen joined #perl6
12:48 * leont too, but half of the time I'm thinking that I'm just not grokking the language
12:54 PersonX joined #perl6
12:54 dalek rakudo/nom: 28f3066 | moritz++ | src/core/Str.pm:
12:54 dalek rakudo/nom: remove return value annotation from unbase
12:54 dalek rakudo/nom:
12:54 dalek rakudo/nom: unbase is used for :8(...) and the like, but it can also return a Failure
12:54 dalek rakudo/nom: when the argument is not in a numeric format. The Numeric:D return type
12:54 dalek rakudo/nom: then makes it throw an exception, hiding the actual problem
12:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/28f3066c8a
12:54 dalek rakudo/nom: 27a5c13 | moritz++ | src/core/IO.pm:
12:54 dalek rakudo/nom: Avoid EVAL in IO.umask
12:54 dalek rakudo/nom:
12:54 dalek rakudo/nom: For interpreting a string as an octal number, :8(...) should be much faster,
12:54 dalek rakudo/nom: and it is not prone to injection attacks.
12:54 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/27a5c130ab
12:57 xenoterracide joined #perl6
13:01 moritz leont: when I run your code locally, I get "Unhandled exception in code scheduled on thread 140335676462848  Cannot assign to an immutable value  in method break at src/gen/m-CORE.setting:18938"
13:01 cognome joined #perl6
13:03 JimmyZ I got '().list' locally
13:05 vendethiel moritz: run it again ;D
13:07 JimmyZ_ joined #perl6
13:09 JimmyZ_ r: IO.umask
13:09 camelia rakudo-jvm 4a7429: OUTPUT«(timeout)»
13:09 camelia ..rakudo-{parrot,moar} 4a7429: ( no output )
13:09 FROGGS m: say IO.umask
13:09 camelia rakudo-moar 4a7429: OUTPUT«2␤»
13:10 JimmyZ perl6 -e 'say IO.umask' hangs locally with lastest commit
13:12 moritz JimmyZ: what does perl6 -e 'say qx/umask/.perl' print for you?
13:12 JimmyZ perl6 -e 'qx/umask/' hangs ...
13:12 JimmyZ m: qx/umask/
13:12 camelia rakudo-moar 4a7429: OUTPUT«qx, qqx is disallowed in restricted setting␤  in sub restricted at src/RESTRICTED.setting:1␤  in sub QX at src/RESTRICTED.setting:9␤  in block <unit> at /tmp/jXTaU4uU7E:1␤␤»
13:12 moritz JimmyZ: then it hung before the latest commit too
13:13 JimmyZ lastest libuv issue? spwan  bug?
13:14 moritz maybe
13:14 JimmyZ I'm with ubuntu 14.04
13:14 moritz so am I (I think)
13:16 moritz leont: oh, Array.map is lazy; maybe the code that generates the list is scheduled on the thread that's already gone when you call .result
13:16 moritz if so, await() should be eager, IMHO
13:16 moritz or start blocks
13:16 moritz or whatever the right abstraction is
13:17 leont That sounds like an explanation
13:17 JimmyZ yeah, libuv update-ish bug, I revert updating libuv and rebuild moarvm , qx// works
13:18 PersonX joined #perl6
13:20 yeahnoob joined #perl6
13:22 moritz m: my $x = start { die "42" }; await $x;
13:22 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤42␤»
13:23 moritz m: my $x = start { die "42" }; Promise.allof($x);
13:23 camelia rakudo-moar 4a7429: ( no output )
13:23 moritz m: my $x = start { die "42" }; Promise.allof($x); say $x.result.^name
13:23 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤42␤»
13:26 dalek roast: 9f5b221 | moritz++ | S17-promise/start.t:
13:26 dalek roast: test returning lazy lists from start
13:26 dalek roast:
13:26 dalek roast: failing on rakudo-moar, fudged. leont++
13:26 dalek roast: review: https://github.com/perl6/roast/commit/9f5b221ac9
13:26 PersonX joined #perl6
13:26 moritz m: my @outer = 0..3; await my $x = start { eager @outer.map: *+1 }; say $x.result.perl
13:26 camelia rakudo-moar 4a7429: OUTPUT«(1, 2, 3, 4).list␤»
13:26 moritz m: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl
13:26 camelia rakudo-moar 4a7429: OUTPUT«().list␤»
13:27 colomon j: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl
13:27 camelia rakudo-jvm 4a7429: OUTPUT«().list␤»
13:28 moritz j: my @outer = 0..3; await my $x = start { @outer.map: *+1 }; say $x.result.perl
13:28 camelia rakudo-jvm 4a7429: OUTPUT«().list␤»
13:28 moritz j: my @outer = 0..3; await my $x = start { eager @outer.map: *+1 }; say $x.result.perl
13:28 camelia rakudo-jvm 4a7429: OUTPUT«(1, 2, 3, 4).list␤»
13:28 * moritz submits rakudobug
13:34 leont m: Proc::Async.new(:path("echo")).start.result.perl.say
13:34 camelia rakudo-moar 4a7429: OUTPUT«␤Proc::Status.new(exit => 0, pid => Any, signal => Any)␤»
13:35 leont I'd guess that pid attribute should be defined, right? Not that it's particularly useful…
13:35 FROGGS leont: it should, yes
13:35 FROGGS but it isnt wired up yet
13:39 brrt joined #perl6
13:45 lizmat can we have a MMD selection on str versus Str ?
13:45 PersonX joined #perl6
13:47 FROGGS m: multi foo (Str) { say 1 }; multi foo (str) { }; foo("abc")
13:47 camelia rakudo-moar 4a7429: ( no output )
13:47 FROGGS m: multi foo (Str) { say 1 }; multi foo (str) { say 2 }; foo("abc")
13:47 camelia rakudo-moar 4a7429: OUTPUT«1␤»
13:47 FROGGS O.o
13:47 FROGGS m: multi foo (Str) { say 1 }; multi foo (str) { say 2 }; foo(nqp::unbox_s("abc"))
13:47 camelia rakudo-moar 4a7429: OUTPUT«2␤»
13:48 FROGGS lizmat: we have that... except for the case #1 where it does not say anything
13:50 lastofthe joined #perl6
13:50 lizmat can we actually return an unboxed string from a Perl 6 sub ?
13:54 PersonX joined #perl6
13:55 moritz lizmat: with 'returns str' maybe?
13:57 lizmat m: sub a ( --> str) { "Foo" }; say a   #apparently not ?
13:57 camelia rakudo-moar 4a7429: OUTPUT«Foo␤»
13:58 FROGGS lizmat: you can say a str
13:58 lizmat that will just autobox it, afaik
13:58 FROGGS m: sub a ( --> str) { "Foo" }; say nqp::isstr(a)
13:58 camelia rakudo-moar 4a7429: OUTPUT«0␤»
13:58 FROGGS m: sub a ( --> str) { nqp::unbox_s("Foo") }; say nqp::isstr(a)
13:58 lizmat I was thinking on adding a MMD candidate for chomp()
13:58 camelia rakudo-moar 4a7429: OUTPUT«0␤»
13:58 lizmat that would take / return str rather than Str
13:58 FROGGS IIRC the return value gets hllized
13:58 lizmat yes, feared so as well
13:59 FROGGS that is why I had to use findmethod(...)(...) somewhere in v5
14:01 PersonX joined #perl6
14:03 aborazmeh joined #perl6
14:04 nbrown___ joined #perl6
14:09 lastofthe joined #perl6
14:11 dalek roast: f59399e | moritz++ | S17-promise/start.t:
14:11 dalek roast: add ticket number
14:11 dalek roast: review: https://github.com/perl6/roast/commit/f59399e70b
14:14 virtualsue joined #perl6
14:16 PersonX joined #perl6
14:16 pmurias if I relocate the star directory I have to run Configure.PL/make install again?
14:17 moritz first clean, then reconfigure
14:24 pmurias there is a rakudobrew?
14:25 * pmurias found it
14:25 pmurias does it build star?
14:28 leont No it builds from git
14:30 FROGGS but is also has a build-panda command, which is the most important bit of star :o)
14:34 lizmat if we're ever want to get closer to p5 wrt reading text files, we will need an nqp::readlinefhchomp($!PIO)
14:34 lizmat doing this in P6 space is just a waste
14:34 lizmat wheres nqp could just make the returned string a little shorter
14:34 lizmat instead of having to copy
14:35 FROGGS lizmat: we can pass down a flag to chomp, like we pass a flag to sayfh to append a newline
14:35 lizmat we have sayfh ?
14:36 FROGGS m: nqp::sayfh
14:36 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤Arg count 0 doesn't equal required operand count 3 for op 'say_fhs'␤»
14:36 FROGGS yes :o)
14:36 * leont agrees with lizmat, this is something you kind of need to do low-level
14:37 lizmat the current situation with IO::Handle.get / getc is that for *each* call
14:37 lizmat it checks whether there's a handle
14:37 lizmat it checks whether it is a directory
14:38 lizmat and it checks whether we're at end of file *before* doing anything at all
14:38 pmurias joined #perl6
14:38 lizmat guess what IO::Handle.lines is using...
14:38 FROGGS .get
14:39 FROGGS btw, `perl6 -n -e '1' bigfile.txt` spends 35% in ListIter.reify
14:39 FROGGS so at least in this case it isnt just .lines or .get to blame
14:41 tadzik pmurias: you can install Task::Star after it's there
14:44 dalek rakudo/nom: 72c02db | (Elizabeth Mattijsen)++ | src/core/Str.pm:
14:44 dalek rakudo/nom: Make Str.chomp a bit smarter
14:44 dalek rakudo/nom:
14:44 dalek rakudo/nom: 1. don't change anything if there's nothing to chomp
14:44 dalek rakudo/nom:    doing 1M chomps on a short string: 1.534 -> 1.138
14:44 dalek rakudo/nom: 2. reduce number of checks and characters checked
14:44 dalek rakudo/nom:    1M x Foo\n:   1.749 -> 1.717
14:44 dalek rakudo/nom:    1M x Foo\r\n: 1.842 -> 1.721
14:44 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/72c02dbd8a
14:47 PersonX joined #perl6
14:47 lizmat m: gather { last }   # is this kosher ???
14:48 camelia rakudo-moar 4a7429: OUTPUT«(timeout)»
14:48 FROGGS no
14:49 vendethiel broke it
14:49 lizmat m: gather { .take for ^10; last }  # not kosher either
14:49 vendethiel haha
14:49 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
14:49 nbrown___ joined #perl6
14:50 dalek rakudo/nom: 1bebd3d | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
14:50 dalek rakudo/nom: fix Label.gist for short source codes
14:50 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1bebd3df31
14:50 pmurias nine: ping
14:51 lizmat FROGGS: I *should* be able to last out of a gather { } ???
14:53 kst joined #perl6
14:53 glumm joined #perl6
14:54 PersonX joined #perl6
14:55 FROGGS lizmat: is a gather a loop?
14:55 masak m: for 1, 2 { .say; my @a = gather { last; take 42 } }; say "alive"
14:56 camelia rakudo-moar 4a7429: OUTPUT«(timeout)1␤»
14:56 masak o.O
14:56 masak p6: for 1, 2 { .say; my @a = gather { last; take 42 } }; say "alive"
14:56 camelia niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:â�¤  @a is declared but not used at /tmp/tmpfile line 1:â�¤------> [32mfor 1, 2 { .say; my [33mâ��[31m@a = gather { last; take 42 } }; say "al[0mâ�¤â�¤1â�¤aliveâ�¤Â»
14:56 camelia ..rakudo-{jvm,moar} 4a7429: OUTPUT«(timeout)1␤»
14:56 camelia ..rakudo-parrot 4a7429: OUTPUT«1␤Cannot resume dead coroutine.␤  in method reify at gen/parrot/CORE.setting:8094␤  in method reify at gen/parrot/CORE.setting:7804␤  in method reify at gen/parrot/CORE.setting:7804␤  in method gimme at gen/parrot/CORE.setting:8273␤  in metho…»
14:57 lizmat I guess gather is insufficiently tested   :-(
14:57 masak p6: for 1, 2 { .say; my @a = gather { last; take 42 }; 1 }; say "alive"
14:57 masak gather is... weird.
14:57 camelia rakudo-{jvm,moar} 4a7429: OUTPUT«(timeout)1␤»
14:57 camelia ..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties:â�¤  @a is declared but not used at /tmp/tmpfile line 1:â�¤------> [32mfor 1, 2 { .say; my [33mâ��[31m@a = gather { last; take 42 }; 1 }; say [0mâ�¤â�¤1â�¤aliveâ�¤Â»
14:57 camelia ..rakudo-parrot 4a7429: OUTPUT«1␤Cannot resume dead coroutine.␤  in method reify at gen/parrot/CORE.setting:8094␤  in method reify at gen/parrot/CORE.setting:7804␤  in method reify at gen/parrot/CORE.setting:7804␤  in method gimme at gen/parrot/CORE.setting:8273␤  in metho…»
14:57 masak I don't use it a lot. I wouldn't go so far as saying I mistrust it, but... maybe I do a little.
14:58 masak also, Parrot probably should avoid using the word "dead" in its error messages :P
14:59 masak fwiw, I see nothing wrong with the code I wrote, and I'm sorely tempted to submit a rakudobug on it.
14:59 masak actually, my main goal was to provide a "no" answer to FROGGS++'s question.
15:00 masak a gather is not a loop. in the "does it bind next/redo/last" sense. had my code worked, it'd've shown that.
15:08 * lizmat takes this as not being able to last out of a gather {}
15:13 rindolf joined #perl6
15:13 rindolf Hi all.
15:13 rindolf What's up?
15:14 FROGGS rindolf: a lot actually :o)
15:14 rindolf Can I be honest and share my thoughts about Perl 6?
15:14 rindolf FROGGS: hi.
15:14 rindolf FROGGS: what?
15:14 FROGGS libuv update troubles that seem to vanish, async hacking and much much more :o)
15:14 rindolf FROGGS: ah.
15:14 rindolf FROGGS: don't know what those are.
15:14 FROGGS rindolf: of course you can share your thoughts
15:15 rindolf My thought is that Perl 6 as it currently stands is ran too perfectionistically and will never be ready.
15:15 tadzik you used the R word
15:15 tadzik ;)
15:15 pmurias does perl6-m support automatic compilation of modules?
15:16 moritz we're happy to prove you wrong, eventually
15:16 tadzik pmurias: nope
15:16 FROGGS pmurias: just must invoke it explicitly
15:16 moritz pmurias: it compiles modules that aren't compiled yet, but it doesn't save the bytecode
15:17 FROGGS rindolf: I don't think so... we have three missing features on our list before we call it ready, that does not sound perfectionistic
15:18 rindolf I realise that the Perl 6 effort has proved of a lot of inspiration to perl 5, Perl 5, CPAN, and other languages, but is utility is over. I suggest rethinking the strategy. And I also suggest that Perl 6 people open up to more inspiration than just programming - Sci Fi/Fantasy/literature/etc. , television/cinema, psychology, philosophy, history, etc. - see http://www.shlomifish.org/humour/fortunes/show.cgi?id=larry-wall-all-truth-is-go
15:18 rindolf ds-truh
15:18 pmurias is there a list of those missing things?
15:19 moritz pmurias: mostly docs/ROADMAP in rakudo, and a bit in the feature matrix
15:19 tadzik what happened to our brainstorm with "list of things before 6.0" recetly?
15:19 FROGGS pmurias: lizmat++ said it at the YAPC::EU.... it is about NFG, shared array/hashes, and perhaps the list refactor, maybe I forgot something
15:19 tadzik yes, that
15:19 tadzik (FROGGS's memory)++
15:20 FROGGS rindolf: I don't share that opinion, I think the current goal is reachable, and reading more scifi books won't help us there
15:20 masak I have put together a list, with the goal of turning it into a status page on perl6.org
15:21 masak dunno if I am ready to share it just yet.
15:21 FROGGS masak: share early share often :o)
15:21 masak FROGGS: ...I'll have another look at it, and then consider it.
15:21 nwc10 FROGGS: I was suspicious that it might be four - DESTROY isn't on the list
15:22 FROGGS nwc10: because DESTROY isnt that important (to me)
15:22 japhb lizmat: I love that 72c02dbd8a13f1620bcec3189f84f2df39eceff5 has details of the performance numbers from your improvement.  Care to make that into a perl6-bench microbenchmark?  :-)
15:22 masak rindolf: "its utility is over" -- this tells me you're not a Perl 6 user. you should try the language -- it's pretty great!
15:23 lizmat japhb: not right now, but soon
15:23 nwc10 FROGGS: fair enough, but it is to nine and the Perl 5 stuff
15:23 lizmat the while IO::* need a real performance haul over...
15:23 japhb lizmat: I'll buy that.  :-)
15:23 japhb yeah
15:23 FROGGS btw, I tried C# likee two weeks ago... and no, I stick to Perl 6 :o) - it is way nicer to write
15:23 rindolf FROGGS: how partial are the implementations of Perl 6 so far?
15:24 rindolf masak: I tried it several times in the past - it was slow and buggy and incomplete.
15:24 FROGGS rindolf: the only implementation that matters is rakudo and it is not partial, it is able to clarify bits of the spec, or sometimes is the reason to extend the spec...
15:25 masak rindolf: it was. speed has much improved, though. there are still bugs, but fewer and fewer. as to incomplete -- Perl 5 is "incomplete".
15:25 FROGGS bbi1h
15:26 masak rindolf: also, you may appreciate my view that "I tried it several times in the past" is not a goodenuf answer if you want to argue about whether Perl 6 is relevant *today*.
15:27 rindolf masak: well, I tried it across many years.
15:27 masak those years had smaller numbers than 2014, though.
15:27 rindolf masak: and many times.
15:27 masak right.
15:27 masak I get that.
15:27 masak you're very patient.
15:27 masak have you tried it *recently*?
15:28 rindolf masak: I tried it about a year ago.
15:28 masak then... you might be in for a pleasant surprise.
15:28 masak Rakudo on Moar got a JIT since then, and a number of other performance improvements.
15:29 masak and stability (which was decent already a year ago) has improved further.
15:29 nwc10 rakudo startup time is now comparable with Moose startup time
15:29 masak so I would strongly suggest that you update your view on Perl 6's utility on a *recent* Rakudo.
15:30 nwc10 rakudo concurrency makes ithreads look like, well, the ugly hack that it always was
15:31 elohmrow left #perl6
15:32 masak rindolf: basically, back in 2012 I wouldn't have been able to come back with anything stronger than "just you wait; Perl 6 will get there". last year I felt the pivot happening. this year, I can be assertive: Perl 6 is getting an edge or two over Perl 5.
15:32 masak well, besides the feature-related ones it's had for years.
15:33 woolfy masak++
15:33 rindolf BTW, I can recommend the recent https://en.wikipedia.org/wiki/Teenage_Mutant_Ninja_Turtles_%282014_film%29 - it's a great film on so many levels, here's my review - http://www.reddit.com/r/TMNT/comments/2d9fo7/postrelease_movie_discussion_thread_2/ck2yiti
15:34 zakharyas joined #perl6
15:34 itz what do people recommend for parsing XML?
15:35 lizmat FROGGS was working on a libxml NativeCall interface?
15:36 masak rindolf: oh, here I was hoping you'd stay on topic. :/ I felt we were getting somewhere.
15:36 itz I liked the look of XML::Parser::Tiny but it doesn't seem to work anymore :\
15:36 masak rindolf: if you don't mind me saying so, your mentioning your (probably excellent) TMNT review just like that, while we are talking, feels slightly disrespectful and out of tune.
15:37 itz oh it works in the last * :)
15:37 rindolf masak: well, back on topic - it seems like Perl 6 is too much like "The Boy Who Cried Wolf" for me. Too much promise and keep being disappointed times and times again.
15:38 rindolf masak: anyway, I want to leave to the dogs+dog owners assembly-in-the-park soon
15:38 masak rindolf: agreed -- where Perl in general sucks at marketing, Perl 6 double-sucks at marketing.
15:38 masak rindolf: we fail so hard that we disappoint many of the people in the Perl community!
15:39 masak rindolf: (and for good reason. some may have expected 1 year, or 2, or 5, or maybe even 10. but 14 years is... a lot. and most of them don't have the overview of the current status we do.)
15:40 tadzik when Rakudo Star was released, it was said "it's not a final, feature-complete thing"
15:40 denis_boyun joined #perl6
15:40 nine pmurias: pong
15:40 tadzik people want something that'll have the Seal of Approval saying "this is it, this is what you've been waiting for"
15:40 masak rindolf: tell you what, though. last year I went to YAPC::EU with a sinking feeling that the whole Perl 7 thing would blow up and fracture the whole community into irreparable shards.
15:40 tadzik if it doesn't have the entire spec in it, no problem
15:40 dalek rakudo/nom: 7b2852d | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
15:40 dalek rakudo/nom: Make IO.lines faster
15:40 dalek rakudo/nom:
15:40 dalek rakudo/nom: Reading /usr/share/dict/words from 5.770s -> 3.941s (32% improvement)
15:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7b2852daa6
15:40 tadzik as long as they can do their stuff
15:40 tadzik lizmat++!
15:40 flussence .oO( I'm still waiting for CSS 3 )
15:41 tadzik I'm still waiting for C99
15:41 masak rindolf: what happened instead was that the p7 people turned out to be a disorganized scattering of individuals who mostly just wanted someone to talk to.
15:41 * moritz is still waiting for CSS 6
15:41 flussence :)
15:41 vendethiel joined #perl6
15:42 masak rindolf: *this* YAPC::EU, people came up to us and said "you know, I used to be against Perl 6, but this year I am starting to pay attention"
15:42 vendethiel also, we saw people coming here, and blog posts, and ... :-)
15:45 glumm masak: the last few days I used perl6 for real for the first time. And I like it. I miss the excellent documentation of perl5, and there are some bugs (or I just don't understand enough, hard to tell because of the missing docs), but I can live with that
15:45 masak glumm++ # you'll get the money we agreed on later
15:46 moritz glumm: please take notes one what docs you are missing in particular
15:46 masak oh, and what moritz said.
15:46 masak dangit, I should be informative/useful first, and try to be funny second :P
15:47 woolfy1 joined #perl6
15:48 vendethiel masak: definitely keep being funny first :P
15:48 vendethiel the masak/moritz duo works.
15:48 * vendethiel will get back to his learnXinY after some scala
15:49 moritz m: say nqp::chomp("foo\n")
15:49 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤No registered operation handler for 'chomp'␤»
15:50 nbrown___ joined #perl6
15:50 flussence How hard is it to add content to doc.perl6.org? I find myself falling back to the specs a lot when trying to get stuff done, so if it's possible, I may as well take useful notes while I'm there.
15:51 moritz flussence: you just have to write pod6 to add content :-)
15:51 nine Trying out Perl 6 for the first that first time had the feeling of Star Trek The Motion Picture. It's like when they first walk through the new Enterprise with people still busily working everywhere to finish it up. Yes, when they first took her for a spin, they encountered some limitations and problems but boy did we get an impression of what this ship was able to do. Rough edges nonwithstanding certainly worthy of being the new flagship!
15:51 moritz flussence: it's all in the perl6/doc repo; you should have a commit bit already
15:51 flussence oh, I'll take a look tonight then :)
15:52 [Coke] I am not a fan of removing return type annotations so we can return Failure instead of the type.
15:52 Arc joined #perl6
15:52 flussence +1
15:52 moritz [Coke]: it would be much nicer to be able to say   returns Numeric:D | Failure
15:52 vendethiel moritz: "well volunteered"?
15:52 vendethiel that's specced :P
15:52 moritz it is?
15:52 vendethiel | and & on types are specced, yes.
15:53 vendethiel They won't make it into 6.0 at least (pretty certain of that)
15:53 vendethiel moritz: abusing types is something I like doing, so I payed close attention WRT that while reading the spec.
15:53 * vendethiel is still thinking on how to encode church's number in P6 types
15:54 masak ooh
15:55 moritz vendethiel: ah, my mental model of Perl 6 excludes anything that is marked as "after 6.0"
15:57 dolmen joined #perl6
15:57 guru joined #perl6
15:57 vendethiel masak: wanna try :P ?
15:57 vendethiel moritz: right. at least, you can do `subset Foo where Int|Str`, but that's for different reasons (namely any() and smart matching)
15:58 vendethiel also, probably won't get you compile-time errors
15:58 moritz and won't help the optimizer at all
15:58 vendethiel ;-)
15:58 tadzik nine: that's a nice comparison :)
15:58 vendethiel moritz: I have this little dream of mine of being able to constant-fold or compile time-check some `where`s, but I'm not sure that's worth it.
15:58 vendethiel Provability is undecidable in general
15:59 moritz profiling IO.lines shows that about 50% of the exclusive time is spent in method reify
16:00 vendethiel m: role Foo[Int $n] { our const $b = $n; }; say $Foo[5]::n;
16:00 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m�Type 'const' is not declared�at /tmp/uaFZBFDHrl:1�------> [32mrole Foo[Int $n] { our const[33m�[31m $b = $n; }; say $Foo[5]::n;[0m�Malformed our�at /tmp/uaFZBFDHrl:1�------> [32mrole Foo[Int $n] { our [33m…»
16:00 moritz 'constant'
16:00 vendethiel m: role Foo[Int $n] { our constant $b = $n; }; say $Foo[5]::n;
16:00 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/r8bVbmw_70â�¤Variable '$Foo' is not declaredâ�¤at /tmp/r8bVbmw_70:1â�¤------> [32m] { our constant $b = $n; }; say $Foo[5][33mâ��[31m::n;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        s…»
16:01 vendethiel m: role Foo[Int $n] { our constant $b = $n; }; say Foo[5]::$n;
16:01 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/1GSEyOQwVxâ�¤Two terms in a rowâ�¤at /tmp/1GSEyOQwVx:1â�¤------> [32mn] { our constant $b = $n; }; say Foo[5][33mâ��[31m::$n;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopper…»
16:01 vendethiel eh.
16:01 jnthn lizmat: readlinefhchomp is something I've been pondering; especially since we simply can do it just by dropping those pieces off the end before doing bytes => string.
16:01 vendethiel moritz: not sure what's the syntax for that...
16:01 vendethiel .oO( oh boi, we have template constexprs already )
16:01 lizmat jnthn: yes, indeed  :-)
16:01 moritz vendethiel: I don't think there is one
16:02 vendethiel m: role Foo[Int $n] { our sub b { $n } }; say Foo[5]::n;
16:02 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/BlCfVHllbEâ�¤Two terms in a rowâ�¤at /tmp/BlCfVHllbE:1â�¤------> [32mInt $n] { our sub b { $n } }; say Foo[5][33mâ��[31m::n;[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopper…»
16:02 dalek rakudo/nom: ecebe3c | moritz++ | src/core/IO/Handle.pm:
16:02 dalek rakudo/nom: speed up IO.lines another 4%
16:02 dalek rakudo/nom:
16:02 dalek rakudo/nom: by caching $.chomp into a lexical variable
16:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ecebe3c683
16:02 vendethiel m: role Foo[Int $n] { our sub b { $n } }; say (Foo[5])::n; # :(
16:02 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/H89KMMqcXrâ�¤Two terms in a rowâ�¤at /tmp/H89KMMqcXr:1â�¤------> [32mt $n] { our sub b { $n } }; say (Foo[5])[33mâ��[31m::n; # :([0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix sto…»
16:02 moritz vendethiel: I think you you must use a method
16:02 vendethiel moritz: then I need an instance
16:02 * lizmat hopes that rindolf is finally looking at the *current* state of things
16:03 lizmat moritz: your change is going to be incompatible with another opt I'm doing right now
16:04 masak as someone who is into Sci-Fi, he should have a vested interest in staying current with the version closest to the future :)
16:04 moritz lizmat: :(
16:04 lizmat so it will disappear
16:04 moritz lizmat: :-)
16:04 lizmat the result will be better :-)
16:04 vendethiel moritz: actually, I don't think I can encode type-level SKI into P6's types
16:04 vendethiel because I'd need to have in-role templated type aliases
16:04 moritz lizmat: if that brings us more than the 4%, go ahead
16:04 vendethiel template<class T> using ...;, or type T[F] = ...
16:05 masak vendethiel: and ::T is not enough?
16:05 vendethiel masak: where?
16:05 vendethiel m: class F[::T] {}; # :(
16:05 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/dkYJogXBsyâ�¤Unable to parse class definitionâ�¤at /tmp/dkYJogXBsy:1â�¤------> [32mclass F[33mâ��[31m[::T] {}; # :([0mâ�¤    expecting any of:â�¤        statement listâ�¤        prefix or term…»
16:06 moritz role
16:06 vendethiel I know, but it's why I'm sad
16:06 vendethiel why only roles?
16:06 lizmat moritz: again 11%
16:06 masak vendethiel: that has occurred to me a couple of times recently too.
16:06 moritz lizmat++
16:06 masak vendethiel: but you can essentially ignore classes and just use roles. that should work.
16:07 vendethiel masak: yeah; 'guess so :)
16:07 Ven joined #perl6
16:07 jnthn lizmat: If you want to remove another allocation per line: $!ins could be a native int.
16:08 masak m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; say R["OH"]; say R["OH", "HAI"]
16:08 camelia rakudo-moar 4a7429: OUTPUT«(R[Str])␤(R[Str,Str])␤»
16:08 masak m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; say R["OH"].foo; say R["OH", "HAI"].foo
16:08 camelia rakudo-moar 4a7429: OUTPUT«one␤True␤two␤True␤»
16:08 masak m: role R[$] { method foo { say "one" } }; role R[$, $] { method foo { say "two" } }; R["OH"].foo; R["OH", "HAI"].foo
16:08 camelia rakudo-moar 4a7429: OUTPUT«one␤two␤»
16:08 lizmat jnthn: tried that, it breaks building
16:09 lizmat will look at that later
16:09 Ven m: role Foo[::T] {}; subset Bar of Foo[Int];
16:09 camelia rakudo-moar 4a7429: ( no output )
16:09 Ven hmm mmh
16:10 Ven m: role Foo; role Bar[Foo | Str] {}; # probably will blow up
16:10 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/fRRfGYNz_h�Unable to parse expression in generic role; couldn't find final ']' �at /tmp/fRRfGYNz_h:1�------> [32mrole Foo; role Bar[Foo | [33m�[31mStr] {}; # probably will blow up[0m� …»
16:10 jnthn lizmat: OK. Or I can take a peek, but reviewing/working on timotimo++'s gen2 GC tuning patch first.
16:10 TimToady you can't use | or & in signatures, it already means something else
16:11 Ven TimToady: what does it mean, then?
16:11 TimToady |c is a capture, &foo is a routine
16:11 TimToady and we don't enforce ttiar inside sigs
16:12 Ven ooh, actually, I just encoded them :D.
16:12 Ven well, I *kinda* cheated.
16:13 TimToady so there aren't really operators in signatures
16:13 Ven masak, moritz: https://gist.github.com/Nami-Doc/5c4c622e2613b96bfad7
16:13 masak vendethiel: you can probably use `where` clauses for what you want.
16:13 * masak looks
16:13 Ven this correctly prints "3"
16:13 dalek rakudo/nom: 4d55aa5 | moritz++ | src/core/ListIter.pm:
16:13 dalek rakudo/nom: save two containers in ListIter.reify
16:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/4d55aa5308
16:13 dalek rakudo/nom: aa7c060 | moritz++ | src/core/MapIter.pm:
16:13 dalek rakudo/nom: Save a few more allocations in MapIter.reify
16:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/aa7c060894
16:13 moritz oh dammit, I didn't want to push the last commit
16:13 moritz I haven't tested it yet
16:13 masak Ven: I think you can do without .new there
16:13 moritz be doubly impressed if it works anyway
16:13 brrt joined #perl6
16:14 TimToady and .plan is known to be broken on subscripting
16:14 masak Ven: that's a cute use of subset that I think you're the first one to do.
16:14 Ven am I ? Yay :).
16:14 masak Ven: did you try `constant`, though?
16:14 masak should work, too.
16:14 TimToady m: my @a = 1,2,3; @a.plan: 4..100; say @a
16:14 Ven masak: I did, earlier in the backlog. Did not find the syntax to access it
16:14 camelia rakudo-moar 4a7429: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
16:14 TimToady that part works
16:14 Ven masak: indeed - works without the new!!
16:15 TimToady but it hangs in the while loop in reify if you try to subscript
16:15 moritz sorry, my last commit broke setting compilations
16:15 moritz s/s$//
16:15 Ven if I can get constant working, I'd be happy to say I'm the first to demonstrate p6 types are (not really) turing-complete
16:15 moritz I'm testing a fix now; if it doesn't work, I'll revert
16:15 moritz m: say Int.Int
16:15 camelia rakudo-moar 4a7429: OUTPUT«(Int)␤»
16:16 Ven Oooh, I got a segfault!
16:16 dalek rakudo/nom: 815b034 | moritz++ | src/core/MapIter.pm:
16:16 dalek rakudo/nom: Revert "Save a few more allocations in MapIter.reify"
16:16 dalek rakudo/nom:
16:16 dalek rakudo/nom: This reverts commit aa7c060894dafbbf266df31742db02284e019122.
16:16 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/815b034789
16:16 Ven https://gist.github.com/Nami-Doc/f0232a94cec52f0ec14c <- this segfaults here :)
16:17 Ven and this `REPR:null`s: https://gist.github.com/Nami-Doc/63603a232733db06df8d
16:17 Ven Free bugs for everybody \o/
16:18 masak there's probably something submittable in there, but it doesn't look golf'd.
16:18 masak segfault reproduced. golfing.
16:18 Ven ah, thanks :)
16:18 * Ven proceeds with equality now ...
16:19 dalek rakudo/nom: c53772d | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
16:19 dalek rakudo/nom: Optimize IO.lines a bit more
16:19 dalek rakudo/nom:
16:19 dalek rakudo/nom: Reading /usr/share/dict/words: 3.941s -> 3.468s (12%)
16:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c53772d1e8
16:21 Ven well, I won't prove commutivity or w/e tho :P
16:22 masak m: role S[::N] { N::x }
16:22 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
16:22 * masak submits rakudobug
16:22 anaeem1 joined #perl6
16:22 masak m: sub foo(::N) { N::x }
16:22 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
16:23 Ven masak++ # golfing while I'm having fun
16:23 masak m: my (::N); N::x
16:23 * moritz could imagine that masak++ is also having fun
16:23 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
16:23 masak definitely having fun :)
16:23 Ven well then, that's nice :d.
16:23 moritz m: (my ::N)::x
16:23 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤Type 'N' is not declaredâ�¤at /tmp/kBVLYH4p7d:1â�¤------> [32m(my ::N[33mâ��[31m)::x[0mâ�¤Malformed myâ�¤at /tmp/kBVLYH4p7d:1â�¤------> [32m(my ::N[33mâ��[31m)::x[0mâ�¤    expecting any of:â�¤        scoped declarat…»
16:24 moritz m: (my (::N))::x
16:24 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/b3ASLhGiCtâ�¤Two terms in a rowâ�¤at /tmp/b3ASLhGiCt:1â�¤------> [32m(my (::N))[33mâ��[31m::x[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopperâ�¤        infix or meta-infix…»
16:24 lizmat jnthn: the reason I could not make $!ins a native int:
16:24 kaare__ joined #perl6
16:24 lizmat m: class A { has int $.a = 42 }; say A.new
16:24 camelia rakudo-moar 4a7429: OUTPUT«Cannot modify an immutable int␤  in block  at src/gen/m-CORE.setting:957␤  in method BUILDALL at src/gen/m-CORE.setting:912␤  in method bless at src/gen/m-CORE.setting:901␤  in method new at src/gen/m-CORE.setting:885␤  in block <unit> at /tmp/Hl…»
16:24 jnthn lizmat: Why do we need to assign to it there?
16:25 jnthn Doesin't it start at zero? :)
16:25 lizmat ah, good point
16:25 Ven well, p6 is powerful, right.
16:25 FROGGS itz / lizmat: aye, sergot and me are working on a XML::LibXML port, and after that on a. XML::Compile port
16:25 Ven encoding GADTs with roles is fun :DDDD
16:25 btyler hi all. two NativeCall questions: 1) should it work with static libs? it seems it only search for the shared lib object name for the platform (.so or .dylib on osx), and when I specified "libmarkdown.a" it still could not locate. lib is in the path, compiling as a shared lib got NativeCall to find it
16:27 moritz btyler: I don't see how it could work
16:27 moritz btyler: after a static library has to be compiled into an executable
16:27 moritz btyler: whereas nativecall loads library dynamically (it's not a C linker)
16:27 btyler 2) libmarkdown performs most of its work on **char buffers that get passed to functions. life would be simple and lovely if I could pass it a reference to a p6 string, but I haven't been able to make that happen, so I tried giving it a reference to a CArray[int8], but the lib can't seem to fill it with anything (still ends up with null values)
16:28 btyler moritz: ok, cool, makes sense. my C is pretty much limited to reading source, so I didn't know if that was a reasonable expectation or not
16:28 masak Ven: I cannot reproduce your `REPR:Null` error from https://gist.github.com/Nami-Doc/63603a232733db06df8d , though: I get "No such method 'count' for invocant of type 'N'"
16:28 Ven masak: do you? maybe I'm a little bit outdated then
16:28 moritz btyler: as a workaround, a CArray[Str] gives you a pointer to a string
16:28 Ven m: role Zero { constant count = 0; }; role Suc[::N] { constant count = 1 + N.count };
16:28 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤No such method 'count' for invocant of type 'N'␤»
16:29 geekosaur btyler, the only architecture that can reasonably load static libraries that way is PowerPC
16:29 Ven m: role Zero { constant count = 0; }; role Suc[::N] { constant count = 1 + N.count }; say "alive" # wtf?
16:29 camelia rakudo-moar 4a7429: OUTPUT«===SORRY!===␤No such method 'count' for invocant of type 'N'␤»
16:29 Ven ooh.
16:29 Ven m: constant foo = ...; 1
16:29 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
16:29 Ven :D
16:30 * masak submits rakudobug
16:30 Ven this seems to be my "lucky day". But not quite the implementor's...
16:30 btyler moritz, geekosaur: excellent, now I know :) I tried CArray[Str] but the array was still full of null values (well, the (Str) type object) at the end of things. I'll gist my code and then start throwing printfs into discount to see where things are choking
16:31 masak Ven: bug discoveries/reports are good for everyone, including the implementors.
16:32 Ven well, I'll go back to a method in the meantime
16:32 jnthn The pattern here seems to be "BEGIN time thing throws"...
16:33 Ven indeed
16:33 dalek rakudo/nom: ff31e66 | (Elizabeth Mattijsen)++ | src/core/IO/Handle.pm:
16:33 dalek rakudo/nom: Save some more allocations with IO.lines
16:33 dalek rakudo/nom:
16:33 dalek rakudo/nom: Reading "/usr/share/dict/words": 3.468 -> 3.344 (3%)
16:33 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ff31e66d31
16:34 Ven m: role F { ... }; role A does F {}; role B[::T] does F {};
16:34 camelia rakudo-moar 4a7429: OUTPUT«Unhandled exception: Could not instantiate role 'B':␤Not enough positional parameters passed; got 1 but expected 2␤   at <unknown>:1  (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295)␤ from src/gen/m-Metamode…»
16:34 lizmat jnthn++ for encouragement in that area
16:34 Ven m: role F { ... }; role A does F {}; role B[::T]  {};
16:34 camelia rakudo-moar 4a7429: OUTPUT«Unhandled exception: Could not instantiate role 'B':␤Not enough positional parameters passed; got 1 but expected 2␤   at <unknown>:1  (/home/p6eval/rakudo-inst-2/languages/nqp/lib/Perl6/Metamodel.moarvm:specialize:4294967295)␤ from src/gen/m-Metamode…»
16:34 telex joined #perl6
16:34 Ven m: role F { ... }; role A does F {}; role B[::T] does F {}; say "alive";
16:34 camelia rakudo-moar 4a7429: OUTPUT«alive␤»
16:35 Ven it ... works in the repl, but crashes in my file. duh
16:36 masak Ven: sometimes I feel I should write an "automated feature combination bug suggestion generator", that spits out "what happens if you use <X> and <Y> together in Rakudo". sometimes I find I would've found some bug sooner if I had had one and it'd given me inspiration. today <X> is "type capture parameters" and <Y> is "package namespace lookup".
16:36 Ven indeed
16:36 Ven okay, now I'm really puzzled.
16:36 Ven why does it crashes in my fail but not in my repl
16:38 Ven masak: https://gist.github.com/Nami-Doc/e781f62e46e3a530c8ab do you see any reason for the REPL to work
16:38 Ven and for the script file to crash here?
16:39 Ven oh-uh. Adding a `1` at the end of the file ... fixes it??
16:39 dalek rakudo/nom: a436ebe | moritz++ | src/core/MapIter.pm:
16:39 dalek rakudo/nom: Avoid a few more containers in MapIter.reify
16:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a436ebe683
16:41 firefish5000 moritz: Thanks for the bug report! padre-completion fixed now.
16:41 moritz firefish5000: s/padre/panda/ I hope :-)
16:42 firefish5000 ...yes, padre is not supported...
16:42 Ven masak: I abandoned the idea of using a super-role to encode GADTs. just doesn't work :
16:42 Ven =(
16:42 * firefish5000 needs some coffee
16:45 leont How do I deal with «Unhandled exception in code scheduled on thread 140243200333568\nNo exception handler located for warn»?
16:46 * Ven encoded +
16:46 TimToady leont: warn the developers! :)
16:46 moritz firefish5000: now I don't get any suggestions at all anymore when typing 'panda install Math::' and then hitting tab :(
16:47 TimToady if you have control of the warning, maybe try 'note' instead
16:47 TimToady if you don't, a CONTROL block might or might not be a workaround
16:47 TimToady I think more thought has gone into threading 'die' than into 'warn' though
16:48 TimToady it would be nice if such meta handlers would do a better job of printing out the subsidiary warning/failure
16:49 firefish5000 moritz, ensure you re-sourced it. It's working for me still.
16:49 Ven masak: I haz the ADD nao
16:49 moritz firefish5000: I did
16:49 Ven doing the TIMES ...
16:50 firefish5000 ... what shelll are you on? (prehaps I borked other shells)
16:50 timotimo joined #perl6
16:50 moritz firefish5000: after 'panda install '<tab> it suggests --nodeps and --notests, but no module names
16:50 moritz firefish5000: bash 4.3
16:50 Ven TimToady: thanks for type capture and type capture constraining :D.
16:51 nbrown___ joined #perl6
16:51 Ven masak: Okay, TIMES work.
16:52 TimToady Ven: If a language can't easily be abused, it can't easily be used.
16:52 M_o_C joined #perl6
16:52 Ven TimToady: and I like you for these words ;-)
16:53 firefish5000 moritz: the old version should have had that problem.. could you try the Development branch prehaps (should be the same as master though).
16:53 dalek rakudo-star-daily: 753c9b6 | coke++ | log/ (14 files):
16:53 dalek rakudo-star-daily: today (automated commit)
16:53 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/753c9b651a
16:53 dalek perl6-roast-data: 94227cf | coke++ | / (6 files):
16:53 dalek perl6-roast-data: today (automated commit)
16:53 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/94227cf425
16:53 Ven masak: https://gist.github.com/Nami-Doc/5c4c622e2613b96bfad7
16:53 * masak looks
16:53 Ven Note that I'm cheating because I'm not (YET) providing operations on the type-level.
16:53 Ven I'm afraid I can't do that right now, since there's no way to access a role's type parameter (AFAIK?)
16:54 moritz you can make it accessible
16:54 Ven m: role F[::T] {}; say F[Int].T;
16:54 camelia rakudo-moar 4a7429: OUTPUT«No such method 'T' for invocant of type 'F[Int]'␤  in block <unit> at /tmp/iRpI01zqNQ:1␤␤»
16:54 Ven moritz: can I :)?
16:54 moritz role Foo[::T] { method of() { T } }
16:54 Ven true that :p
16:54 moritz m: role Foo[::T] { method of() { T } ; say Foo[42].of
16:54 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/tdiaiev0LSâ�¤Unable to parse expression in block; couldn't find final '}' â�¤at /tmp/tdiaiev0LS:1â�¤------> [32m:T] { method of() { T } ; say Foo[42].of[33mâ��[31m<EOL>[0mâ�¤    expecting any of…»
16:54 lizmat SPW shutting down &
16:54 moritz m: role Foo[::T] { method of() { T } } ; say Foo[42].of
16:54 camelia rakudo-moar 4a7429: OUTPUT«(Int)␤»
16:55 moritz m: role Foo[$x] { method of() { $x } } ; say Foo[42].of
16:55 camelia rakudo-moar 4a7429: OUTPUT«42␤»
16:55 [Coke] massive failures on the JVM today.
16:55 [Coke] rakudo.moar down to a single failure.
16:55 [Coke] parrot still failing the same tests since TimToady's divby0 change.
16:55 Ven can I make a role ... invocable ? ie Role[F, T]()
16:56 masak Ven: I was surprised at lines 33 and 45. aren't you supposed to define those in terms of Suc and Add, respectively?
16:56 moritz Ven: try giving it a method postcircumfix:<( )>(|c) { }
16:56 TimToady [Coke]: but there's an #if parrot in there that restores the fail on parrot, so I don't see how that can be the cause
16:57 firefish5000 moritz,  just opened a new shell, ran git clone, sourced, and it workd. could you run _panda_modules and see if it outputes anything
16:57 moritz firefish5000: it doesn't
16:59 [Coke] TimToady: I agree that should have resolved the issue.
16:59 [Coke] well, avoided the issue.
16:59 firefish5000 just to be sure, you havn't upgraded rakudo/moarvm etc which would change perl6's inst dir to a new and clean one have you?
17:00 moritz firefish5000: I upgraded rakudo, and rebootstrapped panda. Install dir is stil the same as before.
17:00 [Coke] TimToady: I'll see if I can dig deeper once I unbust jvm.
17:00 moritz firefish5000: and yes, I pulled and started a fresh shell
17:01 firefish5000 moritz, could you give me the output of perl6 -e 'for @*INC { say $_.Str if $_.^name === "CompUnitRepo::Local::Installation" ;}', (feel free to change your homedir)
17:02 SamuraiJack_ joined #perl6
17:02 firefish5000 I havn't used rakudobrew so I havn't tested it yet.
17:04 tinyblak joined #perl6
17:05 timotimo i'm glad to see all these performance tunings in the backlog
17:06 Ven masak: yes, indeed!
17:06 Ven masak: that's why it's still called "cheating"
17:06 timotimo The List Refactor might end up blowing us all away with the improvement it brings to performance everywhere ...
17:06 Ven masak: I need to deconstruct it, etc, and return a type.
17:06 Ven But I guess I'll head out tonight as well, not in the mood for the computer
17:07 Ven masak: (also, those 0s should be ZEROes)
17:08 moritz firefish5000: /home/moritz/p6/rakudo/install/languages/perl6
17:08 moritz /home/moritz/p6/rakudo/install/languages/perl6/site
17:08 tinyblak_ joined #perl6
17:09 [Coke] I'm getting this building rakudo.jvm: ===SORRY!===
17:09 [Coke] control operator crossed continuation barrier
17:09 [Coke] let me try a -j1 build.
17:12 vendethiel masak: heading out right now. I'll finish that later :-).
17:12 vendethiel I still believe that my code has the potential to find a few new segfaults haha
17:12 vendethiel m: role infix:<***>[::T1, ::T2] { method Str { "{T1}|{T2}" } }; say (Str *** Int)
17:12 camelia rakudo-moar 4a7429: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/kIWNrnfivlâ�¤Two terms in a rowâ�¤at /tmp/kIWNrnfivl:1â�¤------> [32mhod Str { "{T1}|{T2}" } }; say (Str *** [33mâ��[31mInt)[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix stopper…»
17:13 vendethiel ha; too bad :D.
17:13 * vendethiel really likes agda's parsing, which is quite powerful: `if_then_else_` for example, which you can then implement as `if cond then res1 else 2
17:14 * vendethiel ` (or `if_then_else cond res1 res`)
17:14 masak ooh
17:16 firefish5000 moritz, I have changed two lines that would affect panda install, but _panda_modules is completly unchanged and should output a list of modules.
17:17 vendethiel m: role _Mult_Impl[::T1, ::T2] { method Str { "{T1}|{T2}" } }; sub infix:<***>(::T, ::T2) { _Mult_Impl[T, T2].Str }; say Int *** Str
17:17 camelia rakudo-moar 4a7429: OUTPUT«No such method 'Stringy' for invocant of type 'T'␤  in method Str at /tmp/KJ6lrdHaxq:1␤  in any  at src/gen/m-Metamodel.nqp:1440␤  in sub infix:<***> at /tmp/KJ6lrdHaxq:1␤  in block <unit> at /tmp/KJ6lrdHaxq:1␤␤»
17:17 vendethiel m: role _Mult_Impl[::T1, ::T2] { method Str { "{T1.gist}|{T2.gist}" } }; sub infix:<***>(::T, ::T2) { _Mult_Impl[T, T2].Str }; say Int *** Str
17:17 camelia rakudo-moar 4a7429: OUTPUT«No such method 'gist' for invocant of type 'T'␤  in method Str at /tmp/cqTzv_20d4:1␤  in any  at src/gen/m-Metamodel.nqp:1440␤  in sub infix:<***> at /tmp/cqTzv_20d4:1␤  in block <unit> at /tmp/cqTzv_20d4:1␤␤»
17:18 BizarreCake joined #perl6
17:18 firefish5000 moritz, I have to go, but ill stay online and read anything highlighted when I come back (~6hr),
17:18 M_o_C joined #perl6
17:22 firefish5000 prehaps try executing a panda command (if you havn't already) and maybey it will generate a new projects.json, or check if a a /panda/projects.json exists in any of the inst: locations (if so, it should be detected) else, I borked it somehow..(I blame exhaustion)
17:29 moritz firefish5000: I'll play with it a 'tod;t n
17:31 moritz that was supposed to be "a bit" at the end :-)
17:32 pmurias nine: inline_perl5.pl is the Inline-Perl5 repo is outdated
17:34 akaseki joined #perl6
17:42 molaf joined #perl6
17:45 Akagi201 joined #perl6
17:46 tinyblak joined #perl6
17:50 moritz eeks, I get lots of NativeCall test failures
17:50 moritz expected 'OpaquePointer' but got 'Whatever'
17:50 moritz seems to be the common theme
17:51 nbrown___ joined #perl6
17:53 moritz maybe related to Whatever changes in rakudo today or yesterday
17:54 timotimo sounds likely
17:55 leont joined #perl6
17:56 leont And then I crashed my computer using perl6 (death-by-swap
17:56 colomon NativeCall passed for me ~14 hours ago in the smoke test
17:56 leont )
17:56 timotimo leont: luckily, we're fast at allocating stuff ;)
17:57 timotimo colomon: i believe the whatever changes are at most 12 hours old
17:57 colomon looking at the commit log in github, it looks like there was a batch 17 hours ago and a batch 11 hours ago
17:57 timotimo oh
17:57 timotimo i believed wrong, then
17:57 zakharyas joined #perl6
17:58 leont It seems I made the grammar engine go recursive
17:58 TimToady is NativeCall using * for something idiosyncratic?
17:58 leont Still, that should fail more gracefully
17:58 TimToady leont: that's not difficult, if you try to do left recursion; we're not trying to be LL(*)
17:59 itz LWP::Simple doesn't decode the Buf if the web server doesn't supply a charset (which seems common)
17:59 leont It was a typo, not a parsing cheat
18:00 TimToady well, $* is known to be a very short infinite loop :)
18:00 TimToady m: '' ~~ /$*/
18:00 camelia rakudo-moar 4a7429: OUTPUT«(signal )»
18:01 TimToady ooh, signal before timeout
18:01 brrt joined #perl6
18:01 TimToady sure would be nice if it would say *which* signal...
18:01 timotimo it says so right between "signal " and ")"
18:02 jnthn Aye. I guess it mighta been OOM-killed 'cus it built up a huge set of backtracking points...
18:02 TimToady wait, lemme write a regex to parse that
18:02 colomon moritz: yup, duplicated your fail
18:05 colomon sub Argless() is native('./01-argless') { * }
18:05 colomon Could that be the troubling Whatever?
18:06 colomon errr, no, because that one works
18:06 nine pmurias: thanks, good catch!
18:06 colomon I don't see any sign this is actually related to Whatever?
18:09 nine will fix that once I can sneak away from the family gathering
18:12 colomon okay, NativeCall still worked as of a3262f65704cd4c1ac26c5ceb82dae22aac92657
18:14 molaf_ joined #perl6
18:14 teodozjan joined #perl6
18:15 dalek rakudo/nom: 244026e | jonathan++ | src/core/control.pm:
18:15 dalek rakudo/nom: Optimizations to exception throw, returning.
18:15 dalek rakudo/nom:
18:15 dalek rakudo/nom: Make the functions more inliner-friendly and avoid some boxing.
18:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/244026eeb6
18:15 dalek rakudo/nom: 4896509 | jonathan++ | src/core/Str.pm:
18:15 dalek rakudo/nom: Further optimize chomp.
18:15 dalek rakudo/nom:
18:15 dalek rakudo/nom: This avoids a couple of string allocations.
18:15 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/48965097ba
18:16 TimToady does that help with $x .= chomp?
18:16 flussence every time I've looked in here today something's been made faster :D
18:16 jnthn TimToady: Yes
18:17 jnthn TimToady: It means the only allocation that happens now in chomp is for the result, nothing intermediate.
18:17 akaseki joined #perl6
18:17 TimToady would be nice to figure out you can steal it, and do it in place
18:18 jnthn That's Really Hard.
18:18 colomon NativeCall fails with 6ff79a9a293aaee5051a34d5184fe7f3d161f1ed
18:18 colomon afk # time to read aloud
18:20 jnthn (Basically, needs escape analysis)
18:22 masak sounds more like borrowed pointers.
18:22 masak but maybe they overlap somewhat.
18:22 TimToady well, hopefully IO can just precalculate the chomp without copying, in any case
18:22 jnthn TimToady: Yes, that's the goal for IO
18:22 jnthn TimToady: Doesn't hurt to have a faster chomp for any other use cases folks have for chomp, mind.
18:23 TimToady well, as was mentioned, ropes should let you just return a shorter strand
18:23 jnthn That's already happening here, afaik
18:24 TimToady okay
18:24 jnthn Though for short lines it's not always so wise
18:24 TimToady yes, large k
18:24 jnthn That is, the strand data structure can be bigger than the storage we'd need for the substring
18:25 jnthn I've not dealt with that yet. Will get to it soonish
18:25 btyler managed to get my buffer back out of discount :) https://github.com/kanatohodets/p6-text-markdown-discount
18:27 btyler moritz: thanks for the help, here's what I ended up doing (feels like cheating, but messing with CArray[Str] kept resulting in an uninitialized array): https://github.com/kanatohodets/p6-text-markdown-discount/blob/master/lib/Text/Markdown/Discount.pm#L8
18:27 jnthn Think I'll get to some sleep for now, though :)
18:27 jnthn 'night o/
18:30 FROGGS joined #perl6
18:30 FROGGS m: sub foo returns Str { * }; foo
18:30 camelia rakudo-moar 4a7429: OUTPUT«Type check failed for return value; expected 'Str' but got 'Whatever'␤  in any return_error at src/vm/moar/Perl6/Ops.nqp:646␤  in block <unit> at /tmp/NKtMJVOL5Y:1␤␤»
18:31 leont I'm trying to parse with arguments: one token passes an indent string to the next (for consistent unindenting). Is this sensible?
18:31 TimToady so why are we putting a * in native calls?  wouldn't a simple {} do?
18:32 FROGGS TimToady: it should look like an empty proto
18:32 TimToady but it's not a proto, and who says it "should"
18:32 TimToady feels more like cargo culting to me
18:32 FROGGS leont: you just have to be careful that this does not have side effects, in case you use it as a look ahead
18:33 FROGGS TimToady: s/should/was meant/ # germish
18:33 moritz but shouldn't the "is native" replace the routine anyway?
18:33 TimToady but surely the...what moritz sez
18:33 FROGGS yes, the body should never be run
18:33 leont FROGGS: I think I found a less "smart" way to work around, may be a better idea anyway
18:34 TimToady then it shouldn't matter what's in it
18:34 flussence the stuff I wrote with nativecall has { ... }, it kinda makes more sense to me
18:34 FROGGS leont: you can use a dynamic variable though, that should work
18:34 TimToady unless it really is calling the body and inserting the native call where * is
18:34 TimToady in which case it is a sort of proto
18:34 TimToady albeit with a different dispatcher
18:35 TimToady and apparently not detecting "onlystar" correctly, if * breaks it
18:35 FROGGS TimToady: no, NativeCall does its own magic by providing a postcircumfix:<( )> by the is native trait
18:36 TimToady does writing the body with {} change the buggy Whatever behavior?
18:36 TimToady since that's the only obvious Whatever I can see
18:37 TimToady is something trying to do analysis on the body even though it will be replaced maybe?
18:37 TimToady try with ... instead of * praps?
18:37 leont Great. The YAML module doesn't implement .load :-/
18:38 tadzik which one? I think we have at least two :)
18:38 FROGGS TimToady: ... works, an empty body doesnt
18:38 tadzik oh, we don't
18:38 TimToady so you just need a parser that pays attention to indentation :)
18:39 FROGGS because it statically checks the return type somehow
18:39 tadzik perhaps it should be renamed to YAML::Dumper
18:39 leont ingy: your TestML thingie is warning due to deprecated constructs you're using
18:40 FROGGS TimToady: that's why I cannot but a 'returns' trait on Inline::C subs, since the body contains just a string (to be compiled)
18:40 FROGGS sbut/put/
18:40 FROGGS grrr
18:40 FROGGS s/but/put/
18:49 FROGGS so... do I push the changes I made to NativeCall?
18:49 FROGGS or do we roll back?
18:50 FROGGS there are many modules that are broken now
18:50 moritz what change actually triggered the error?
18:51 leont I want to use a previous match value to substitute in another value, is that possible without a temporary?
18:52 FROGGS moritz: I dunno
18:52 FROGGS though, I can bisect it easily
18:52 TimToady leont: not easily; use a temp
18:52 leont I'm not doing «.subst(/ ^^ <$indent>/, '', :g)», but I can't pass it $<indent> instead, right?
18:52 leont s/not/now/
18:53 TimToady well, by normal lexical scoping, sure
18:53 TimToady but not for each application
18:54 TimToady not if $<indent> comes from a previous $/
18:54 TimToady we traded that binding for cleaning up the \1 backref fiasco
18:55 TimToady so $0 now is the current match on both sides of s///
18:55 TimToady and also for the ability to match any var literally
18:55 dalek zavolaj/stub_instead: 3592f0e | (Tobias Leich)++ | / (11 files):
18:55 dalek zavolaj/stub_instead: replace { * } by { ... }
18:55 dalek zavolaj/stub_instead: review: https://github.com/jnthn/zavolaj/commit/3592f0e3a9
18:55 TimToady I'll note that a literal match of indent is going to fail with mixed tabs/spaces
18:56 leont I'll interpret the spec I'm working with as "must be consistent"
18:56 leont Surely, adding extra indenting to YAML was a good idea…
19:00 FROGGS uhh
19:01 FROGGS moritz: we have a problem
19:01 brrt hmm... quick question. anybody here ever did a CS class, had to do a project, and found a library that claimed it implements 90% of your project
19:01 tadzik heheh hmm
19:01 brrt what would be the chances of that being OK with any given professor
19:01 tadzik I had a project to parse mbox once
19:01 moritz FROGGS: hm?
19:01 FROGGS moritz: when I change a source file or rakudo, the make file does not detect this, because the single files are not dependencies anymore
19:02 brrt mbox is the mail box in a file format
19:02 tadzik in that case chances would be close to 0, becuse the point was to teach people to write a parser
19:02 brrt rirc
19:02 brrt iirc
19:02 tadzik correct
19:02 brrt hmm
19:02 FROGGS moritz: so `make install` just copies over stuff, but does not recompile
19:02 brrt this is for distributed systems
19:02 moritz FROGGS: which file did you change?
19:02 brrt best way to figure out is to ask
19:02 FROGGS moritz: src/core/IO/Handle.pm
19:02 tadzik indeed
19:03 FROGGS moritz: I did `git checkout HEAD^` a few times
19:03 moritz FROGGS: well
19:03 moritz FROGGS: src/core/IO/Handle.pm is pretty new
19:03 moritz FROGGS: if you configured on a commit where it didn't exist, Makefile can't know about it
19:04 FROGGS huh
19:04 nick___ joined #perl6
19:04 nick___ yellow
19:04 moritz FROGGS: there's no way around reconfiguring when something in the build system changes
19:04 FROGGS moritz++ # you seem to be right
19:04 tadzik hello nick___
19:05 nick___ how is everyone doing
19:05 FROGGS I'm fine :o)
19:05 moritz I can't speak for everyone
19:07 * FROGGS .oO( Und? Dir geht's gut Heinrich? )
19:07 nick___ well i was think of making web framework for perl, but for jvm platform. i notice in job a lot of company and corp use jvm env . should i focus on the jvm or parrot vm?
19:07 FROGGS wow, stage parse here was 32s right now... I've not yet seen something <34s
19:07 moritz nick___: either on the JVM or on MoarVM
19:08 moritz nick___: parrot isn't developed all that much anymore
19:09 TimToady .oO(must...not...make...monty...python...sketch...references...)
19:09 FROGGS nick___: when you develop in pure Perl 6, it will very likely work on JVM, MoarVM and Parrot at the same time
19:09 tadzik another satisfied customer
19:09 FROGGS TimToady: *g*
19:09 nick___ joined #perl6
19:09 FROGGS nick___: when you develop in pure Perl 6, it will very likely work on JVM, MoarVM and Parrot at the same time
19:10 TimToady you can say that again
19:10 xinming_ joined #perl6
19:10 FROGGS no, I'm sitting in a room of kids that are supposed to be asleep :o)
19:11 nbrown___ joined #perl6
19:11 leont nick___: if you are going to write such a framework, better make it an interesting one :-)
19:11 BizarreCake_ joined #perl6
19:12 leont A Dancer port is a nice proof of concept, but perl6 has a much better chance of shining in an asynchronous framework
19:12 brrt of course we can use said library as a researchable example
19:12 FROGGS ... with an interesting name ...maybe a shout ...three letters should do
19:12 brrt can we do Mojo::Six
19:12 brrt or maybe
19:12 brrt MJ6
19:12 TimToady SIX!
19:12 FROGGS CGI!
19:13 TimToady MST!
19:13 brrt (like MI6 but with a J)
19:13 nick___ also rakudo is the only offical complier ?
19:13 brrt madness standard time
19:13 mst TimToady: WHAT
19:13 brrt no way man
19:13 brrt rakudo is the official compiler of rakudo perl 6
19:13 FROGGS nick___: no, there is no official compiler... but rakudo is the best (feature wise)
19:13 brrt perl6 doesn't have a official compiler
19:14 brrt any more than rakudo has an official target vm
19:14 moritz well, we can change that :-)
19:14 pmurias but rakudo is currently the most actively developed compiler
19:14 tadzik moritz: maybe we should
19:14 brrt hmm yeah, but we should be careful in differentiating between community overlap and technical goal overlap
19:15 tadzik or maybe it should be the reference compiler? :)
19:15 brrt no that would imply that the compiler would be the spec
19:15 brrt and the roles are reversed
19:15 tadzik hmm, would it now?
19:15 tadzik well, sort of yes
19:15 brrt yes. no point in calling something reference if it isn't authoritive
19:16 brrt i could live with recommended :-)
19:16 * moritz recommends rakudo-m right now
19:16 FROGGS yeah
19:16 TimToady if something passes roast, and doesn't match the behavior of some other "reference" compiler, it's still officially Perl 6, by current spec
19:17 moritz there you have it, a recommended compiler from somebody who has patched the spec now and then :-)
19:17 tadzik :D
19:17 TimToady so start writing more tests to bias roast in favor of rakudo :)
19:17 brrt lol
19:17 nick___ well , the rakudo lic says a person can redistrub the rakudo compiler the way he want with whatever logo or other name
19:17 moritz the last tests I wrote actually fail on rakudo :-)
19:18 FROGGS hopefully not for long :o)
19:18 moritz nick___: that's not quite what it says
19:18 nick___ do this mean someone redist it has to include the butterfly logo :P
19:18 brrt that's ok. bugs we can fix :-)
19:18 nick___ i am being more general
19:18 moritz nick___: if you redistributed rakudo as "Microsoft Word", you'd be in trouble
19:18 moritz :-)
19:19 nick___ i know that
19:19 nick___ lol
19:19 TimToady nick___: if you fork, we'd prefer that you do so in a way that doesn't confuse people, is all
19:19 brrt speaking of forks
19:19 moritz fork bomb!
19:19 brrt i heard scala 'forked' today
19:19 brrt or
19:19 brrt the scala compiler did
19:20 TimToady I would note, however, that the butterfly is marked with a ™
19:20 brrt which i think is uh.. unhappy for them
19:20 pmurias what's the recommended way of precompiling a module under mokudo
19:20 FROGGS pmurias: using panda
19:20 moritz pmurias: 'panda install .'
19:20 FROGGS I'd say
19:20 tadzik what a brand :)
19:20 moritz pmurias: though ufo && make might also work
19:20 FROGGS pmurias: provides you provide a META.info
19:20 FROGGS provided*
19:20 nick___ why do we use a butterfly anyway?
19:21 lastofthe joined #perl6
19:21 TimToady because otters are out this year
19:21 FROGGS nick___: that is the logo of the language, not the compiler
19:21 FROGGS hehe
19:21 nick___ true
19:21 moritz because that fat penguin already has other connotations
19:21 nick___ i miss the camel, it had more meaning
19:21 pmurias why is panda so slow?
19:21 TimToady we don't want Perl 6 known for being ugly
19:22 FROGGS pmurias: it isnt... at least not on moar
19:22 tadzik it's pretty fast on moar
19:22 moritz pmurias: cause it reads the json list of all packages
19:22 tadzik nick___: camel is actually an oreilly's trademark
19:22 timotimo moritz: is that really the reason?
19:22 pmurias 'panda help' takes 2.5s
19:22 nick___ so we cover it up with a butterfly?
19:22 timotimo oh ... that's true ;(
19:22 TimToady and, in fact, the butterfly is more meaningful than the camel
19:23 TimToady otters don't represent metamorphosis
19:23 pmurias is a 2.5s starup for panda expected
19:23 leont Can someone add https://raw.githubusercontent.com/Leont/tap-harness6/master/META.info to the modules list for me?
19:24 FROGGS nick___: https://raw.githubusercontent.com/perl6/mu/master/misc/camelia.txt
19:24 nick___ perl language is cool as it is, it has a lot depends. using a butterfly seem odd
19:24 brrt butterflys on the other hand do not represent resilience or long life
19:25 brrt i think the thing with perl5 is mostly that it worked really well in a time that was in many respects simpler than today's
19:25 tadzik leont: on it
19:25 nick___ yea, but the project has a long history so does perl, we should use a animal that has more  meaning, butterfly dont last long
19:25 brrt animals don't have any meaning per se
19:26 dalek ecosystem: 2e7b671 | (Tobias Leich)++ | META.list:
19:26 dalek ecosystem: add TAP::Harness6 leont++
19:26 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/2e7b6717fd
19:26 FROGGS tadzik: ha!
19:26 tadzik FROGGS: PFFTBT
19:26 nick___ if that was true no one would a animal for a logo
19:26 brrt it is humans who give meaning - or maybe other animals that communicate in a similar manner
19:26 timotimo pmurias: yeah, panda starts up quite slow indeed ;(
19:26 FROGGS brrt: cats! do not forget of cats!
19:26 colomon o/  # finished book, now need to prep noms for later
19:27 brrt do cats give meaning to other animals? maybe they do, but how would they communicate it?
19:27 FROGGS brrt: I think so by how they look at me
19:27 nick___ enlightenment how would butterfly would communicate with perl or people
19:27 TimToady by smiling
19:27 moritz meaningful wing flapping
19:28 FROGGS "you are disgusting, servant"
19:28 brrt causing hurricanes clearly
19:28 brrt i'm very much of the opinion that a great deal of the animal kingdom is concious
19:28 brrt i'm not so sure about sentient because i frankly have no idea what that means
19:28 moritz causing hurricanes that cause cosmic rays to alter bits in your PC's memory
19:28 TimToady you should also realize that a butterfly with a 3-meter wingspan has a correspondingly longer lifespan too
19:29 nick___ so being eating by a frog or cameleon
19:29 brrt but most animals are not so good at communication
19:29 vendethiel joined #perl6
19:29 MilkmanDan joined #perl6
19:29 jdv79 joined #perl6
19:29 xiaomiao joined #perl6
19:29 muraiki joined #perl6
19:29 brrt i doubt the physics of a 3-meter wingspan butterfly
19:29 brrt given that butterfly wings are but two cell layers thick
19:29 moritz magically reinforced, of course
19:30 brrt although i have heard of 1-meter wingspan dragonfly's
19:30 TimToady well, she might be an ET that just looks like a butterfly
19:30 pmurias so if I want to play around with Inline-Perl5 I should write a META.info for that and install it with panda?
19:30 * TimToady never said where he got the picture :)
19:30 nick___ ??Q?
19:30 leont dragonfly's are awesome
19:30 FROGGS pmurias: you could bug nine about the usage
19:30 leont flies
19:31 FROGGS moritz: the bad commit is: cc1965f... Bulid a * and ** during compile, and use them
19:31 brrt flies yeah
19:31 nick___ |'''| =^._.^= kitty
19:31 raiph joined #perl6
19:31 TimToady use of Unicode is encouraged here
19:32 TimToady ASCII is so...20th century
19:32 brrt what i'm wondering about is, are there any more moar-specific breakages for me to research
19:32 nick___ lol
19:32 brrt oh wait, i recall
19:32 brrt hmm
19:33 brrt i can do the force_gc thingy
19:33 TimToady .oO(löl)
19:33 pmurias nine: how should I install Inline-Perl5?
19:33 nick___ \xF0\x9F\x98\xB8
19:33 nine I actually have no idea what would be needed to install Inline::Perl5. After all I'm an absolute Perl 6 n00b ;)
19:34 FROGGS m: say "\xF0\x9F\x98\xB8"
19:34 camelia rakudo-moar 4a7429: OUTPUT«ðŸ˜¸␤»
19:34 nick___ U+1F638
19:35 nick___ if perf unicode lol
19:35 leont TimToady: ????
19:35 FROGGS m: say chr(0x1F638)
19:35 camelia rakudo-moar 4a7429: OUTPUT«????␤»
19:35 TimToady .u ????
19:35 yoleaux U+1F638 GRINNING CAT FACE WITH SMILING EYES [So] (????)
19:35 nick___ so back to the subject why are we using a butterfly
19:35 FROGGS m: say "\c[GRINNING CAT FACE WITH SMILING EYES]"
19:35 camelia rakudo-moar 4a7429: OUTPUT«????␤»
19:36 FROGGS m: say "\c[GRINNING CAT FACE WITH SMILING EYES]".ord
19:36 camelia rakudo-moar 4a7429: OUTPUT«128568␤»
19:36 FROGGS m: say "\c[GRINNING CAT FACE WITH SMILING EYES]".ord.fmt('%#x')
19:36 camelia rakudo-moar 4a7429: OUTPUT«0x1f638␤»
19:36 nine But I'd appreciate any help or someone experimenting
19:36 pmurias I'm also a Perl 6 n00b :/
19:37 moritz nine: I know that one can write a Build.pm or so and panda will pick it up
19:37 nine You could just try and see how it goes :)
19:37 moritz nine: ... and that's about all I remember :(
19:37 moritz can anybody remember a p6 module that uses that mechanism?
19:37 timotimo moritz: when did you last see if SVG::Plot works properly? :)
19:37 tadzik nine: I can help you with that
19:37 moritz ++tadzik
19:38 * nine is only typing on his phone at a family gathering
19:38 nick___ ok, back to snakes
19:38 tadzik nine: I think your best shot is to compile things in Build.pm and compute the path to .so relatively to Inline/Perl5.pm
19:38 FROGGS .tell jnthn You've killed NativeCall! (rakudo/cc1965f makes it able to check the return type of { * }. There is a stub_instead NativeCall branch if that is the way to go)
19:38 yoleaux FROGGS: I'll pass your message to jnthn.
19:39 tadzik panda will install the .so somewhere alongside it
19:39 FROGGS nine: look at sergot/OpenSSL as a pattern
19:40 tadzik oh yes, that's a good one
19:40 moritz FROGGS: so the difference is that the * is now created at compile time, and thus the type known at compile time, and thus the error, somehow?
19:40 FROGGS moritz: yes
19:40 nine I'm already loading the .so from the dir where Perl5.pm6 is located
19:41 FROGGS nine: but you have to be careful, don't apply the `is native` trait directly
19:41 FROGGS nine: because that would happen at compile time, which happens in a temp directory
19:43 nine FROGGS: ok, thanks
19:43 FROGGS lol: http://thedailywtf.com/Articles/Accuracy-is-Everything!.aspx
19:44 pmurias tadzik: any ideas what is causing the 'panda help' slowness?
19:44 colomon so, dunno if someone figured this out along the way or not, but cc1965fba794c28ee80273ad5198674ff3be9082 seems to be what is causing the problems in NativeCall
19:44 tadzik pmurias: probably the loads of code it has
19:45 tadzik pmurias: but it might be parsing the json and not lazily building Ecosystem
19:45 pmurias loads of code? it's <726 lines
19:46 pmurias well =726 lines ;)
19:46 tadzik heh
19:46 tadzik it feels big alright :P
19:47 FROGGS colomon: look at what I '.tell'd jnthn :o)
19:47 TimToady how many stone is that?
19:47 pmurias stone?
19:47 FROGGS it is at least 23.4456 cups
19:47 tadzik that's less than a koku
19:47 FROGGS what's a koku?
19:48 tadzik it's the amount of rice to feed an adult man for a year
19:48 FROGGS :D
19:48 TimToady how hungry is he?
19:48 tadzik http://en.wikipedia.org/wiki/Koku
19:49 tadzik so yeah, koku is about 23-24 stone :)
19:49 colomon FROGGS: are you sure that's the exact problem?  there seemed to be some successes and some failures  in the NativeCall tests if you prove --verbose
19:49 tadzik oh, it was actually for a generic person, not neceserily a male
19:49 tadzik however you write neceserily
19:50 FROGGS colomon: all passes at the commit before that
19:50 pmurias reading the .json project file is a slow part for sure
19:52 colomon FROGGS: … maybe a better way of saying this is does your NativeCall branch pass all tests?
19:53 FROGGS colomon: yes, my branch passes all tests at rakudo/HEAD
19:54 FROGGS there are tests that do not have a 'returns' trait, these pass anyway
19:56 colomon FROGGS++
20:01 akaseki joined #perl6
20:04 glumm joined #perl6
20:11 brrt left #perl6
20:17 lastofthe joined #perl6
20:17 Sqirrel joined #perl6
20:25 timotimo m: my @series := 1, 1, *.rand + *.rand ... *; my @data = @series[^100];
20:25 camelia rakudo-moar 4a7429: ( no output )
20:25 timotimo m: my @series := 1, 1, *.rand + *.rand ... *; my @data = @series[^100]; say @data;
20:25 camelia rakudo-moar 4a7429: OUTPUT«1 1 0.990956539530755 1.14596832130274 0.594032977212282 1.22437501862986 0.469724590512463 1.43381736696177 1.66513142467329 1.39218025168342 2.53376430317992 2.28981422567561 2.42785688234683 1.11403423682945 2.78958838847796 2.93708793726731 3.013136638…»
20:25 timotimo huh.
20:25 timotimo Cannot call 'postcircumfix:<[ ]>'; none of these signatures match:  ← this is what i get on my local REPL
20:27 timotimo but in non-repl it works
20:32 lizmat joined #perl6
20:38 woolfy joined #perl6
20:40 timotimo moritz: i'm apparently using your SVG::Plot wrong ...
20:40 timotimo perl6-m -e 'use SVG; use SVG::Plot; my @series := 1, 1, *.rand + *.rand ... *; my $plot = SVG::Plot.new(:width(800), :height(600), :plot-height(550), :data(@series[^100]), :x(^100)).plot(:lines)'
20:40 timotimo first it gives use of uninitialized value of type Any in numeric context  in method plot at lib/SVG/Plot.pm:329 and then it gives Cannot coerce Inf or NaN to an Int originating from the * in in method y-ticks at lib/SVG/Plot.pm:382
20:42 TimToady sounds like another * that has to turn into ...
20:48 timotimo oh, no this is a multiplication *
20:50 lastofthe joined #perl6
20:51 timotimo plotting that series didn't turn out as fun as i hoped
21:02 timotimo the one example in svg-plot that doesn't need a file from somewhere throws an exception
21:03 timotimo but the tests succeed ... so test coverage needs some improvements :)
21:09 timotimo hm, nothing's happening any more? :\
21:14 raiph joined #perl6
21:36 * vendethiel 's back
21:36 nbrown___ joined #perl6
21:39 jack_rabbit joined #perl6
21:40 vendethiel https://github.com/rakudo/rakudo/commit/48965097ba#diff-4ce1542a6f014c9a003fe452abe8cac3R87 - maybe this warrants a comment?
21:40 vendethiel not sure everybody knows the ASCII table by heart :-)
21:42 xenoterracide joined #perl6
21:44 BenGoldberg joined #perl6
21:46 lizmat vendethiel: was on my list of things to do...
21:46 vendethiel lizmat++ # teaching us ASCII
21:46 lizmat BTW, that optimization made my benchmark file load in 2.759s
21:46 lizmat so, that means we went from 5.8 to 2.8 seconds today
21:47 vendethiel wow :-). (people)++
21:47 lizmat that's more than 2 times as fast
21:47 lizmat anyway, Str.lines will need a similar treatment
21:47 lizmat will do that sometime after I'm home again
21:47 lizmat for now, sleep&
21:48 vendethiel g'night :)
22:12 gibbysan joined #perl6
22:12 vendethiel retupmoca++
22:13 timotimo huh?
22:13 raiph joined #perl6
22:14 gibbysan left #perl6
22:15 vendethiel timotimo: made my module panda-installable
22:15 vendethiel also made it work with case-sensitive filesystems
22:16 vendethiel he's doing it again: https://github.com/afiskon/p6-xml-parser-tiny/pull/4 :-)
22:16 retupmoca vendethiel: I like green checkmarks on the smoke tester :)
22:16 vendethiel retupmoca: I can guarantee you that my module passes locally :P
22:17 retupmoca yeah, the tests failed because I'm on linux (case sensitive)
22:17 retupmoca and the file that didn't build looked like your tests may not have hit it
22:17 retupmoca so only panda tried to compile it
22:18 timotimo sweet
22:18 vendethiel yes, either that or I didn't re-push after fixing the typo locally
22:18 retupmoca or that
22:18 dalek roast: 4ef1028 | coke++ | S17-promise/start.t:
22:18 dalek roast: use std. RT #xx format
22:18 dalek roast: review: https://github.com/perl6/roast/commit/4ef1028176
22:31 Psyche^ joined #perl6
22:40 retupmoca m: role Foo { method bar { ... } }; say 1
22:40 camelia rakudo-moar 4a7429: OUTPUT«1␤»
22:41 retupmoca that seems to die on my local machine
22:41 retupmoca with master/master/nom
22:42 retupmoca I get "Unhandled exception: Method 'bar' must be implemented by Foo because it is required by a role"
22:52 leont I just saw that error 10 minutes ago, but moved on instead of figuring out what was wrong, assuming I had screwed up
22:55 nebuchadnezzar joined #perl6
22:55 raiph joined #perl6
22:58 retupmoca ... and Game::Crypt passes tests with prove, but fails tests with panda :(
22:58 tadzik precomp issue probably
22:59 retupmoca oh right, I didn't test precomp
23:00 [Coke] looks like jnthn++ busted rakudo-jvm with bdf153c23d893e0b6da1f5ee9d03d2f7c91f7b1d
23:12 xragnar_ joined #perl6
23:14 vendethiel .tell ingy I started a scala port of your stuff, and ended up fighting its regexps for around 3hours :d. they're so much better in 6 ;)
23:14 yoleaux vendethiel: I'll pass your message to ingy.
23:21 retupmoca https://gist.github.com/retupmoca/6def9837388382a054b9
23:21 retupmoca ^ can someone duplicate this as well? Just to make sure
23:23 retupmoca I suppose I should learn how to bisect, as well...
23:28 * TimToady is still learning how to monosect...
23:40 * kurahaupo hand TimToady a monopole magnet
23:41 * TimToady finds himself drawn toward the East Pole
23:47 leont «Invocant requires an instance, but a type object was passed» this is not a very useful error without any further information
23:50 diakopter TimToady: not the inner pole?
23:52 TimToady leont: indeed, we call that LTA (Less Than Awesome)
23:53 TimToady and people who make error messages awesome are held in high regard around here
23:55 colomon joined #perl6

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

Perl 6 | Reference Documentation | Rakudo