Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2014-11-11

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:00 timotimo rakudo star seems to be containing an outdated version of rakudo-debugger from before it was turned into just a UI frontend
00:01 timotimo oh
00:01 timotimo oops
00:01 timotimo i was still in the "tristar" branch
00:02 timotimo ah, but the rakudo-debugger folder still has a pre-split checkout of the debugger
00:03 timotimo wait
00:03 timotimo git submodule update
00:05 dalek panda/eleven: b5e443f | (Tobias Leich)++ | bootstrap.pl:
00:05 dalek panda/eleven: workaround problemati PERL6LIB parsing
00:05 dalek panda/eleven: review: https://github.com/tadzik/panda/commit/b5e443f6eb
00:06 timotimo what's wrong with perl6-digest-md5?
00:06 dalek rakudo/nom: abd2bc5 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm:
00:06 dalek rakudo/nom: adapt to .pm.moarvm filename pattern
00:06 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/abd2bc5824
00:06 FROGGS I dunno offhand
00:07 timotimo Unable to checkout '7816bebdae5a4858e1dbb14e4e7ff23717d04a5e' in submodule path 'perl6-digest-md5'
00:07 timotimo "reference is not a tree:"
00:07 FROGGS panda/eleven still needs tweaks (include directory order, misplaced use of basename...)
00:07 FROGGS gnight
00:08 timotimo gnite froggs
00:09 dalek star: 5cd20e5 | (Timo Paulssen)++ | modules/perl6-digest-md5:
00:09 dalek star: update digest-md5 module to a valid commit
00:09 dalek star: review: https://github.com/rakudo/star/commit/5cd20e5e9d
00:11 dalek star: 83c8150 | (Timo Paulssen)++ | / (4 files):
00:11 dalek star: rename rakudo-debugger folder to reflect module name change
00:11 dalek star: review: https://github.com/rakudo/star/commit/83c8150c86
00:33 timotimo m: sub returns-hash() { return %( a => 1, b => 2) }; my %result = returns-hash();
00:33 camelia rakudo-moar abd2bc: ( no output )
00:34 timotimo m: sub returns-hash() { return %( a => 1, b => 2) }; my %result = returns-hash();
00:34 camelia rakudo-moar abd2bc: ( no output )
00:34 timotimo m: sub returns-hash() { return {} }; my %result = returns-hash();
00:34 camelia rakudo-moar abd2bc: OUTPUT«Saw 1 call to deprecated code during execution.␤=======================================​=========================================␤%result = itemized hash called at:␤  /tmp/Ive_luo0IZ, line 1␤Deprecated since v2014.7, will be removed with release v20…»
00:34 timotimo ah
00:36 BenGoldberg joined #perl6
00:40 japhb timotimo: Did my commit from earlier today fix the infinilooping perl6-bench test for you?
00:48 timotimo let me check :)
00:50 timotimo wow, list-checkouts is SLOW
00:51 timotimo hm. not as terribly slow on my laptop for some reason
00:53 timotimo yes, i get past while_pushme now
00:53 timotimo thank you!
00:54 timotimo mhm, spends 60% of time inside QX
00:55 timotimo should probably profile it on my desktop
00:55 timotimo but that's running benchmarks now
00:57 japhb \o/
00:58 bowtie joined #perl6
00:58 xenoterracide joined #perl6
01:04 timotimo japhb: believe it or not, we may still get more performance out of the "simple" loop benchmarks
01:05 timotimo i stumbled over the fact that moarvm fills up the nursery with MVMStaticFrame instances over and over again
01:05 timotimo even though it probably shouldn't
01:05 bowtie_ joined #perl6
01:05 timotimo so we're wasting time going through the nursery and retaining and promoting 0 kb in total
01:06 timotimo m: say "there were { 780 / 40964096 } GC runs per loop iteration"
01:06 camelia rakudo-moar abd2bc: OUTPUT«there were 0.000019041 GC runs per loop iteration␤»
01:06 timotimo that doesn't sound so terrible
01:11 timotimo ah, list-checkouts is a lot faster when run the second time
01:13 dayangkun joined #perl6
01:14 dalek perl6-bench: b9ab3aa | (Geoffrey Broadwell)++ | microbenchmarks.pl:
01:14 dalek perl6-bench: Add output and expected subs to several more microbenchmarks
01:14 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/b9ab3aa032
01:14 japhb timotimo: Probably disk caching there
01:16 timotimo yes
01:16 timotimo the checkouts are on an HDD since i don't have enough capacity on my SSD to store all the builds
01:18 timotimo i really want an "extract-build-time" command for perl6-bench %)
01:26 FROGGS joined #perl6
01:29 japhb timotimo: You want `./bench --stop-after=time quickstart` except with chosen (non-default) checkouts?
01:29 erdic joined #perl6
01:30 erdic joined #perl6
01:30 timotimo "--stop-after"?
01:30 timotimo didn't know about that
01:34 * japhb is quite often adding new options to the various commands.  :-)
01:39 dalek perl6-bench: aa0014a | (Geoffrey Broadwell)++ | microbenchmarks.pl:
01:39 dalek perl6-bench: Add output and expected subs to most of the for loop microbenchmarks
01:39 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/aa0014a08e
01:45 erdic joined #perl6
01:46 timotimo ho-hum
01:47 timotimo more than half of the benchmarks with an up-to-date rakudo-moar are a tiny bit slower than 2014.10 was, but the 12.3x difference in deep_scan_for_interpolated_string_var makes the current rakudo-moar come out ahead
01:49 timotimo http://t.h8.lv/p6bench/2014-11-11-ten_vs_now.html  -  huh
01:50 timotimo the bigger benchmarks show a different story
01:50 erkan joined #perl6
01:50 thou joined #perl6
01:51 colomon The smoke runs have gone from 26s "stage parse" to 27s.  Change happened a couple of weeks ago, I think.
01:54 espadrine` joined #perl6
01:55 danaj_ joined #perl6
01:56 integral joined #perl6
01:56 integral joined #perl6
01:56 colomon m: say List ~~ Iterable
01:56 camelia rakudo-moar abd2bc: OUTPUT«True␤»
02:00 integral joined #perl6
02:00 integral joined #perl6
02:00 hoelzro_ joined #perl6
02:05 erdic joined #perl6
02:05 timotimo the speed we have now require bigger percentages of change to register :\
02:11 cxreg joined #perl6
02:12 xinming joined #perl6
02:12 dayangkun joined #perl6
02:16 skybluec joined #perl6
02:17 xinming joined #perl6
02:17 colomon m: my @sqrt-three := 1, (1, 2) xx *; say ($@sqrt-three) ~~ Iterable
02:17 camelia rakudo-moar abd2bc: OUTPUT«False␤»
02:17 skybluec Hi all, I'm starting to read about programming in Perl6 and have a quick question about Bools
02:17 colomon skybluec: okay
02:18 skybluec is there a good mnemonic to remember why 'so' is the prefix to turn the operand into a Bool?
02:19 skybluec I thought I'd remember it better if I had something to associate it with
02:20 colomon "if it is so", maybe?
02:20 skybluec ah, ok :)
02:20 colomon or "when it is so".
02:20 skybluec cool, thanks
02:20 colomon I think the only time I've used it is structures like     when so .<lydian>
02:21 skybluec ok
02:23 colomon m: my @sqrt-three := (1, 2) xx *; say ($@sqrt-three) ~~ Iterable
02:23 camelia rakudo-moar abd2bc: OUTPUT«True␤»
02:23 colomon m: my @sqrt-three := 1, 2; say ($@sqrt-three) ~~ Iterable
02:23 camelia rakudo-moar abd2bc: OUTPUT«False␤»
02:23 colomon ah
02:25 chenryn joined #perl6
02:28 KCL joined #perl6
02:31 j4jackj joined #perl6
02:36 chenryn joined #perl6
02:36 chenryn joined #perl6
02:37 chenryn joined #perl6
02:37 chenryn joined #perl6
02:38 chenryn joined #perl6
02:39 chenryn joined #perl6
02:39 chenryn joined #perl6
02:40 chenryn joined #perl6
02:40 chenryn joined #perl6
02:41 chenryn joined #perl6
02:41 colomon is the debugger currently functional?  I'm  trying to use it, but s just stepped thrrough dozens of lines of code...
02:41 chenryn joined #perl6
02:45 chenryn joined #perl6
02:45 chenryn joined #perl6
02:45 chenryn joined #perl6
02:45 chenryn joined #perl6
02:45 chenryn joined #perl6
02:45 chenryn joined #perl6
02:46 chenryn joined #perl6
02:46 chenryn joined #perl6
02:47 chenryn joined #perl6
02:47 chenryn joined #perl6
02:48 ChoHag joined #perl6
02:53 jack_rabbit joined #perl6
02:57 xinming joined #perl6
03:04 telex joined #perl6
03:08 dalek perl6-bench: 9af7967 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
03:08 dalek perl6-bench: Add output and expected subs for a few more microbenchmarks
03:08 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/9af79670c7
03:08 dalek perl6-bench: 0fb02ba | (Geoffrey Broadwell)++ | microbenchmarks.pl:
03:08 dalek perl6-bench: Add output and expected subs for the two split_string microbenchmarks
03:08 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/0fb02bacb9
03:08 dalek perl6-bench: eeea6e9 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
03:08 dalek perl6-bench: Add output and expected subs for visit_2d_indices microbenchmarks
03:08 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/eeea6e978f
03:08 dalek perl6-bench: 81ee47a | (Geoffrey Broadwell)++ | microbenchmarks.pl:
03:08 dalek perl6-bench: Add output and expected subs for two more microbenchmarks
03:08 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/81ee47a5d2
03:12 Mso150 joined #perl6
03:29 Mso150 joined #perl6
03:30 timotimo colomon: note that the debugger can only stop in lines that have been compiled with the debugger "already in place"
03:30 timotimo so if you're using precompiled modules, it can't do anything about that
03:31 colomon I'm definitely not using precompiled modules here
03:31 colomon the source file is a .t file I've been modifying repeatedly and running by hand with prove
03:31 timotimo mhm
03:31 timotimo i wonder if "s" is the same as just pressing return?
03:32 colomon s                      step to next statement, stepping over any calls
03:32 timotimo OK, what kinds of lines did it step over?
03:33 colomon first batch was a for loop with 9 lines in the looped block
03:33 immortal joined #perl6
03:33 colomon including isa_ok and is tests
03:33 timotimo ah, that's how you were able to tell that they were in fact executed?
03:34 colomon yes, I got 33 oks before I killed it with a ctrl-C
03:35 colomon also, the breakpoint command also completely failed recognize that I was giving it a valid line in the code
03:35 timotimo the only thing i can think of is perhaps the for loop has been optimized so that it turned into a while loop instead, but that shouldn't make it unhooked
03:35 timotimo in recent times i've only ever used the debugger to single-step through regex matches
03:36 colomon made it through another several is tests after the loop, too.
03:36 colomon could it be possible that .t files aren't supported?
03:37 timotimo that'd be silly :)
03:37 colomon yeah, I get the same nonsense with a .pl file, too.
03:38 timotimo :|
03:39 timotimo oh damn
03:40 timotimo m: #| this is documentation for the upcoming role␤role TestRole; method foobar { ... }
03:40 camelia rakudo-moar abd2bc: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/asSq2nwZRP�Method 'foobar' must be implemented by TestRole because it is required by a role�at /tmp/asSq2nwZRP:2�------> �»
03:40 timotimo m: # this is documentation for the upcoming role␤role TestRole; method foobar { ... }
03:40 camelia rakudo-moar abd2bc: ( no output )
03:40 timotimo trying to apply the documentation to the role tries to pun it, which fails because it requires an implementation of foobar
03:41 timotimo .tell hoelzro can you figure this out? i seem to recall you've been working on this recently? or was that mouq?
03:41 yoleaux timotimo: I'll pass your message to hoelzro.
03:41 erkan joined #perl6
03:42 timotimo .tell FROGGS Druid fails due to this exact bug above, but the reports, such as http://cpandatesters.org/report/dist/Druid/1006 do not show that error. why? is it because it goes to stderr or something like that?
03:42 yoleaux timotimo: I'll pass your message to FROGGS.
03:48 immortal joined #perl6
03:52 hoelzro_ timotimo: yes, that was one caveat of the S26 impl =/
03:52 hoelzro_ hmm
03:53 hoelzro actually, I think that's new.
03:53 yoleaux 03:41Z <timotimo> hoelzro: can you figure this out? i seem to recall you've been working on this recently? or was that mouq?
03:56 erkan joined #perl6
03:56 hoelzro well, it's similar to the problem I knew about
04:01 tinyblak joined #perl6
04:01 rmgk_ joined #perl6
04:06 immortal joined #perl6
04:17 erkan joined #perl6
04:40 kaleem joined #perl6
04:42 mephinet joined #perl6
04:43 dj_goku so how do we know if our reports are being sent to cpandatesters (testers.perl6.org)? Look at the most recent reports?
04:51 dzpm5mg joined #perl6
04:51 dzpm5mg left #perl6
05:02 immortal joined #perl6
05:03 kaare_ joined #perl6
05:11 bjz joined #perl6
05:12 FROGGS joined #perl6
05:14 dalek perl6-bench: 9f8bd6e | (Geoffrey Broadwell)++ | / (2 files):
05:14 dalek perl6-bench: Add output and expected subs for string-escape minibenchmark
05:14 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/9f8bd6ee11
05:14 dalek perl6-bench: fc11603 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
05:14 dalek perl6-bench: Make a few expected subs a bit more clear
05:14 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/fc11603ac6
05:15 chenryn joined #perl6
05:24 Tekk_` joined #perl6
05:28 cognominal joined #perl6
05:29 dalek DBIish: 6c8aafd | ugexe++ | META.info:
05:29 dalek DBIish: meta.info provides (s11 panda badge)
05:29 dalek DBIish: review: https://github.com/perl6/DBIish/commit/6c8aafd127
05:30 Tene I've had a lot of fun here over the years, but I haven't participated here in a very long time, so it's time for me to move on.  So long and thanks for all the fish.  <3
05:32 Tene left #perl6
05:44 dalek perl6-bench: cfe2c50 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
05:44 dalek perl6-bench: Add output and expected subs for three more microbenchmarks
05:44 dalek perl6-bench: review: https://github.com/japhb/pe​rl6-bench/commit/cfe2c50634
05:46 japhb Tene: <3 Right back atcha
06:07 FROGGS timotimo: yes, stderr is not yet captured
06:07 yoleaux 03:42Z <timotimo> FROGGS: Druid fails due to this exact bug above, but the reports, such as http://cpandatesters.org/report/dist/Druid/1006 do not show that error. why? is it because it goes to stderr or something like that?
06:13 kjs_ joined #perl6
06:21 anaeem1_ joined #perl6
06:24 kaare_ joined #perl6
06:25 gfldex joined #perl6
06:27 kurahaupo joined #perl6
06:41 xenoterracide joined #perl6
06:47 kaleem joined #perl6
07:15 bartolin joined #perl6
07:18 FROGGS joined #perl6
07:28 zoosha_ joined #perl6
07:29 BinGOs_ joined #perl6
07:29 jercos_ joined #perl6
07:29 mls_ joined #perl6
07:33 darutoko joined #perl6
07:45 [Tux] FROGGS++
07:46 FROGGS [Tux]: :o)
07:46 FROGGS [Tux]: thanks for the access to the hp-ux machine btw
07:47 [Tux] another point I know of that makes (other) people unhappy is that you cannot use whitespace before a ., so long lines cannot be split on a natural *reading* boundary
07:47 [Tux] my $foo = function(...).map(...)
07:47 rurban joined #perl6
07:47 [Tux] .function(...).function(...)
07:47 [Tux] .function(...).function(...)
07:47 [Tux] .function(...).function(...);
07:48 FROGGS yeah, that's a place where you typically would unspace... my $foo = function(...).map(...)\␤    .function
07:48 FROGGS I'll look into it tonight
07:48 [Tux] FROGGS++; # making people happy
07:48 FROGGS *g*
07:53 rurban FROGGS: I also just fixed your .lex "\\o" bug right now in parrot
07:54 [Tux] I also see that using Tuxic has *NO* impact on performance! beautyful
07:54 rurban So I can finally work in parrot performance again. sigh
07:55 FROGGS rurban++ # \o/
07:57 rindolf joined #perl6
07:58 FROGGS rurban: yeah, housekeeping always holds one back :/
08:02 BinGOs joined #perl6
08:05 masak FROGGS++ # abusing Perl 6 whitespace to find out the consequences
08:05 masak morning, #perl6
08:07 moritz \o masak, FROGGS, [Tux], *
08:07 chenryn joined #perl6
08:08 zakharyas joined #perl6
08:09 moritz m: say ~( 'abc' ~~ /.{1..2}/)
08:09 camelia rakudo-moar abd2bc: OUTPUT«a␤»
08:09 FROGGS morning
08:09 moritz m: say ~( 'abc' ~~ /.**{1..2}/)
08:09 camelia rakudo-moar abd2bc: OUTPUT«ab␤»
08:09 moritz m: say ~( 'abc' ~~ /.**?{1..2}/)
08:09 camelia rakudo-moar abd2bc: OUTPUT«a␤»
08:09 moritz m: my $cnt = 2; say ~('abc' ~~ /. ** { $cnt }/)
08:09 camelia rakudo-moar abd2bc: OUTPUT«ab␤»
08:09 moritz \o/
08:10 moritz when did we get that feature?
08:10 FROGGS in may I think
08:10 moritz wow
08:10 * moritz just saw that FROGGS++ resolved the open ticket for it
08:10 FROGGS moritz: you should read the changelogs :o)
08:11 moritz FROGGS: indeed I should
08:13 ghostlines joined #perl6
08:13 rindolf joined #perl6
08:13 masak not just write them ;)
08:14 moritz but, aren't changelogs a write-only language?
08:14 FROGGS eww, it is not even mentioned in the changelog >.<
08:14 FROGGS it is available since 2014.08
08:15 moritz ha
08:15 moritz that's why I missed it!
08:16 moritz (and I didn't even contribute to the 2014.08 changelog)
08:18 daxim joined #perl6
08:19 masak that's also why you missed it! :P
08:21 rurban joined #perl6
08:23 vendethiel o/, #perl6.
08:26 FROGGS hi vendethiel
08:27 bjz joined #perl6
08:28 tinyblak joined #perl6
08:30 virtualsue joined #perl6
08:31 sqirrel_ joined #perl6
08:31 masak does /[^\n]/s in Perl 5 mean the same as \N in Perl 6?
08:32 masak hi m:i/Ven [. ** {7}]?/
08:34 vendethiel masak: am I just a pretense to write perl6 regexps now :P?
08:35 masak vendethiel: you act as if that state of affairs has changed recently :P
08:35 masak oh and, by the way, "regexps" is p5-speak. too hard to enunciate. we call them "regexes"...
08:36 masak m: say /turnip\, for/.WHAT
08:36 camelia rakudo-moar abd2bc: OUTPUT«(Regex)␤»
08:36 * masak digs the music
08:36 vendethiel dududu
08:41 kaleem joined #perl6
08:43 tinyblak joined #perl6
08:47 itz moritz: method truncated-to(Date:D: Cool $unit)?
08:47 itz isn't that method truncated-to(Date:D: Cool:D: $unit)
08:48 itz the unit arg is required
08:48 molaf_ joined #perl6
08:49 moritz m: Date.today.truncated-to: Str
08:49 camelia rakudo-moar abd2bc: OUTPUT«use of uninitialized value $unit of type Str in string context  in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitialized value $unit of type Str in string context  in sub thread_junction at src/gen/m-CORE.setting:1␤␤use of uninitial…»
08:49 moritz itz: it doesn't enforce the definedness of the argument in the signature
08:50 moritz itz: an optional $unit would be followed by a question mark
08:50 itz OK I follow
08:50 moritz (one could argue that it should, though)
08:53 masak enforce the definedness? yes, I think it should.
08:54 moritz unless we expect a Month or Year subclass of Cool that would stringy to 'month' or 'year' even in its undefined form
08:56 masak seeing that hypothetical use case written out like that makes me even less inclined to support it.
08:57 * masak .oO( oh, the Month is undefined, is it? well, that means "February" by spec ) :P
08:57 moritz then go fetch your patcher!
08:57 * masak does
08:57 chenryn joined #perl6
09:00 tinyblak_ joined #perl6
09:01 [Sno] joined #perl6
09:01 tinyblak_ joined #perl6
09:02 Mso150 joined #perl6
09:03 * masak spectests
09:03 GibbaTheHutt joined #perl6
09:24 tinyblak joined #perl6
09:28 Sqirrel joined #perl6
09:31 dalek rakudo/nom: 0c2affd | masak++ | src/core/Temporal.pm:
09:31 dalek rakudo/nom: [Temporal.pm] require .truncated-to arg be defined
09:31 dalek rakudo/nom:
09:31 dalek rakudo/nom: itz++ moritz++
09:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0c2affd45e
09:31 dakkar joined #perl6
09:31 dalek rakudo/nom: 41fe4f9 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
09:31 dalek rakudo/nom: Unbreak chdir on Win32
09:31 dalek rakudo/nom:
09:31 dalek rakudo/nom: This reverts commit 2b57f3f48812528280e6d7371517083712ff69f1.
09:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/41fe4f9697
09:32 lizmat FROGGS: ^^  I won't have much time in the next days to fix this in any other way
09:32 moritz masak++ # one down, two to go
09:33 lizmat afk for a few hours&
09:35 Mso150 joined #perl6
09:35 FROGGS lizmat: okay, I'll test later if HEAD works
09:41 anaeem1_ joined #perl6
09:47 anaeem1_ joined #perl6
09:57 pecastro joined #perl6
10:00 masak moritz: two to go? please be more specific.
10:02 moritz masak: specs and docs need updating too, no?
10:10 anaeem1_ joined #perl6
10:17 masak ah, yes. someone who isn't at $work at present is welcome to task-steal those commits from me :)
10:18 masak otherwise I might get to it this evening, if my unreliable wetware brain reminds me of it.
10:20 ptc_p6 joined #perl6
10:31 ugator joined #perl6
10:31 tinyblak joined #perl6
10:36 espadrine` joined #perl6
10:41 7GHAALCJT joined #perl6
10:56 virtualsue joined #perl6
11:01 leont joined #perl6
11:04 ggoebel111111116 joined #perl6
11:05 tinyblak joined #perl6
11:17 sqirrel_ joined #perl6
11:18 Ulti R just got something resembling the P6 feed operator http://cran.r-project.org/web/packag​es/magrittr/vignettes/magrittr.html but with a rather unusual symbol %>%
11:19 masak Ulti: every time I look at R, I'm thoroughly confused. PHP may be badly designed, but R seems designed just to mess with my head.
11:19 masak as far as I could tell, which function you call decides how its arguments are *parsed*.
11:20 Ulti masak it wasn't designed other than to be backwards compatible with S :'(
11:22 pecastro joined #perl6
11:27 masak I know. I don't know enough about S to know whether that's where the crazy comes from, though.
11:35 tinyblak joined #perl6
11:36 Ulti yeah they cleaned up some of the crazy and added some fresh insanity :)
11:37 tinyblak_ joined #perl6
11:37 Ulti really the problem is like natural languages older programming languages have evolved because people are always using them and don't easily tollerate normalisation and restructuring, usually takes a king/emperor/dictator to fix human languages :D
11:38 Ulti or communism I guess
11:42 telex joined #perl6
11:43 chenryn joined #perl6
11:43 moritz Perl 5's AnyEvent makes much more sense when you realize that CondVars are really promises
11:50 timotimo o/
11:56 haroldwu joined #perl6
12:01 [Sno] joined #perl6
12:03 moritz \o timotimo
12:06 leont moritz: It's fairly typical lehmann to give his thingies the name of something else entirely
12:06 moritz leont: I don't even know if Promises were a thing when he wrote it
12:07 timotimo perl6 tends to do that, too :P
12:07 leont Likewise, his Coro is not about coroutines but about cooperative threading
12:07 moritz leont: I know I only learned for promises a year or two ago
12:07 leont timotimo: perl6 finds new names that aren't in use yet, instead of names that already have an established meaning
12:07 timotimo OK :)
12:08 leont Sometimes still annoying (had a hard time figuring out information about Supplies until jnthn told me it's called Observables elsewhere), but not nearly as confusing
12:09 timotimo ideally you wouldn't have to go through to jnthn to find out such things in the future
12:09 moritz ideally it would be on doc.perl6.org
12:09 fhelmberger joined #perl6
12:16 tinyblak joined #perl6
12:21 jnthn But hey, at least it makes me feel useful for soemthing... :P
12:24 tinyblak joined #perl6
12:30 daxim joined #perl6
12:36 timotimo jnthn: you're still recovering from your vacation? :))
12:39 anaeem1 joined #perl6
12:41 jnthn Well, the journey home rather than the vacation itself...
12:42 jnthn My body hasn't coped as well as expected with the time shift. :S
12:42 jnthn Probably just that I was awake for so long.
12:43 jnthn Anyway, I didn't have energy for much after $dayjob, dinner, and other bits last night.
12:43 jnthn Then didn't sleep well :/
12:44 Ulti moritz have you seen http://search.cpan.org/dis​t/Promises/lib/Promises.pm
12:45 moritz Ulti: nope
12:45 timotimo jnthn: i do hope you'll feel better soon :)
12:46 jnthn Me too
12:50 leont Ulti: and https://metacpan.org/pod/Future
12:51 Ulti I imagine there must be Task somewhere too :D
12:52 Ulti does anyone know the best solution for P6 syntax highlighting for HTML?
12:52 moritz Ulti: I tend to use Text::VimColor
12:53 Ulti hmmm I guess I can use the new Perl 5 bridge to use that from Perl 6
12:53 moritz or port Text::VimColor to p6; shouldn't be too much work, I think
12:54 moritz it's 1k lines including docs
12:54 moritz so about 500 lines of actual code
12:55 timotimo m: sub test(*%a) { say %a.perl }; test :foo :bar
12:55 camelia rakudo-moar 41fe4f: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash␤»
12:56 timotimo m: sub test(*%a) { say %a.perl }; test foo => True, bar => True
12:56 camelia rakudo-moar 41fe4f: OUTPUT«("foo" => Bool::True, "bar" => Bool::True).hash␤»
12:56 Ulti oh wow it actually runs vim
12:56 Ulti rather than using the syntax file :/
12:57 moritz then it would be a few more lines :-)
12:57 timotimo m: sub test(*%a) { say %a.perl }; test foo => True bar => True
12:57 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/BQizHAhhVYâ�¤Two terms in a rowâ�¤at /tmp/BQizHAhhVY:1â�¤------> [32m(*%a) { say %a.perl }; test foo => True [33mâ��[31mbar => True[0mâ�¤    expecting any of:â�¤        postfixâ�¤        infix s…»
12:58 Ulti actually thinking about it I could use gist for code examples and have GitHub do the nice pygments colouring
13:03 timotimo m: sub test(*@a, *%a) { say @a.perl; say %a.perl }; test 1 + 2 :foobar
13:03 camelia rakudo-moar 41fe4f: OUTPUT«Unexpected named parameter 'foobar' passed␤  in sub infix:<+> at src/gen/m-CORE.setting:4491␤  in block <unit> at /tmp/VCigd9XULo:1␤␤»
13:03 anaeem1 joined #perl6
13:04 timotimo i really ought to grok the precedence of colonpair-to-operator-attachment
13:06 * vendethiel expected it to bind to + as well
13:06 timotimo i expected that to blow up, too
13:06 timotimo but i don't really know how to explain this to other people :P
13:07 FROGGS it binds to the outermost thingy, no?
13:08 timotimo and it doesn't bind to test() in this case because there's no explicit postcircumfix:<( )> in that case?
13:09 guru joined #perl6
13:11 FROGGS hmmm, I have no idea
13:13 raiph joined #perl6
13:17 ajr joined #perl6
13:17 chenryn joined #perl6
13:22 kaleem joined #perl6
13:24 denis_boyun_ joined #perl6
13:25 chenryn joined #perl6
13:31 lizmat_ joined #perl6
13:34 chenryn joined #perl6
13:36 anaeem1_ joined #perl6
13:37 khisanth_ joined #perl6
13:43 masak today's autopun: https://twitter.com/Andrew_Tay​lor/status/531078621604380672
13:45 anaeem1_ joined #perl6
13:59 d4l3k_ joined #perl6
14:00 rurban1 joined #perl6
14:02 sqirrel_ joined #perl6
14:02 jfredett joined #perl6
14:03 woolfy joined #perl6
14:17 brrt joined #perl6
14:21 timotimo d'aaw, how cute, perl8.org is a redirect to scala's website
14:22 brrt o.O
14:22 gtodd so scala is just a perl6 slang ?
14:22 guru joined #perl6
14:24 vendethiel kinda.
14:25 gtodd I remember a project for scala to make it usable without the JVM (somehow using llvm to achieve this) ... but ... I think a lot of people still view scala as a pleasant way to deal with java :-)
14:26 alexghacker ok, newbie question time: what's the perl6 way to do a deep copy/clone of a complex data structure?  I've seen RFC67 and (quite old) discussion of the feature on the lists, but nothing recent and nothing in any of the more current perl6 docs/tutorials
14:26 ajr joined #perl6
14:28 KCL_ joined #perl6
14:28 gtodd or a more pleasant way to program in a java environment ...
14:29 moritz alexghacker: the current advise is "do it yourself" :(
14:30 alexghacker moritz++, thanks.  I was afraid of that.
14:30 timotimo advice*
14:30 gtodd there's no module for it?
14:31 alexghacker I did notice that calling $v.clone:deep didn't throw any errors, but it still only did a shallow copy
14:31 moritz gtodd: not yet. Your cue!
14:31 alexghacker I had my hopes up for a moment
14:31 gtodd I thought I saw a .clone once upon a time
14:31 alexghacker gtodd: clone is shallow
14:32 gtodd oh I assumed there was .copy and .clone
14:32 alexghacker no copy
14:35 masak I've privately concluded that deep copying cannot be provided by the language in a cookie-cutter form.
14:35 timotimo that sounds reasonable
14:35 masak it has to be implemented by someone with specific knowledge of the domain they're in.
14:35 timotimo your data structures are always a tiny bit custom
14:35 timotimo no matter if you're actually just using lists and hashes
14:35 timotimo (if it's just lists and hashes, though, why not from-json(to-json())? :P )
14:35 masak well, slight correction.
14:36 gtodd so some kind of toolset for making DIY deep copying  easier but no "builtin" ?
14:36 masak I could see a 90% kind of solution being provided by having a role that most Perl 6 types would mix in by default.
14:36 masak DeepClonable, say.
14:36 masak but things like file handles and database handles would specifically *not* mix those in.
14:37 masak and there could be a standard deep clone algorithm that handled normal stuff, up to and including cycles in the object graph.
14:37 masak that could be done. and it might even be worth it/a good idea. I'm not sure.
14:38 gtodd masak: the weekend is coming!! :-D
14:38 masak especially the necessary marker interface cutting across almost all the types feels... icky.
14:38 moritz or one could use the cpan approach
14:38 moritz simply know about the built-in types that can (or cannot) be cloned
14:38 moritz and provide some custom hooks
14:38 gtodd or both ...
14:40 masak anyhoo, I'd *much* like for this to be experimunt in a module first...
14:41 masak ...and then we can discuss taking a well-oiled solution wholesale and maybe putting it in core.
14:42 gtodd so could there be a role that has methods which can be overridden or augmented by loading a cpanda module ?
14:43 masak "cpanda"?
14:43 masak tadzik: you're a freaking genius!
14:43 dalek rakudo/newio: 4e45909 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
14:43 dalek rakudo/newio: Eradicate :test again
14:43 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/4e459090fd
14:43 dalek rakudo/newio: a8e368f | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
14:43 dalek rakudo/newio: dir() now returns IO::Local objects
14:43 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/a8e368f4c9
14:44 masak all these years, I hadn't noticed that "CPAN" and "panda" have three letters' overlap!
14:44 gtodd oops ...  errm "ecosystem" ...
14:44 gtodd comprehensive perl archive network distributed archive ??
14:44 gtodd hmm
14:44 gtodd heheh
14:44 tadzik masak: to be honest, I think FROGGS++ came up with this :)
14:45 tadzik but the overlap itself must be my subconscious genius, yes :P
14:45 gtodd I meant to type CPAN but panda is all the rage these days :-)
14:46 gtodd comprehensive perl archive network distributed archive    .... must switch one of the archives for another word
14:47 gtodd "awesome" :-D
14:52 masak tadzik++ # subgenius! :P
14:53 lizmat $ echo 'say $*PROGRAM' | perl6
14:53 lizmat "/Users/liz/Github/rakudo.moar/interactive".IO
14:53 masak gtodd: Comprehensive Perl Archive Network Deadly AI
14:53 lizmat .oO( what's this magic "interactive" script we're using here? )
14:59 kjs_ joined #perl6
15:01 gtodd hmm ... $PWD ... followed by .IO would make sense but "interactive" is confusing
15:04 thou joined #perl6
15:05 FROGGS lizmat: btw, I am about to unbust CUR::Installation
15:06 gtodd maybe it should just be formatted differently so $*PROGRAM in that case prints "$*CWD".IO  (perl6 interactive)
15:06 FROGGS lizmat: especially the panda bootstrap process does not work anymore
15:08 lizmat huh?  what did I break there ?
15:09 FROGGS lizmat: I dunno, I last tried it in february or so, so many things could be the cause for it
15:09 lizmat ah, ok
15:09 FROGGS I guess it does not tread PERL6LIB correctly, but I'll know for sure this evening
15:09 lizmat nothing to do with my recent IO work then
15:09 FROGGS correct
15:10 lizmat well, recently I have been looking at the inside of panda a lot
15:10 lizmat and there's definitely some work to be done there  :-)
15:10 FROGGS btw, I merged panda/master into panda/eleven
15:10 lizmat ok
15:12 FROGGS btw, I'd really like to keep the json installation "database" files, at least until S11 handling it is not bug free
15:13 FROGGS because you can easily see what is going on in there, and you can adjust stuff for testing
15:13 FROGGS dealing with a binary format that's hard to read/write would not help much
15:13 lizmat ok
15:14 lizmat I'm not too sure about binary format either...  but json might be too lomited
15:14 lizmat *limited
15:14 FROGGS probably yes
15:14 FROGGS and slow
15:14 lizmat so I was more thinking of code that can be EVALled  :-)
15:14 lizmat but am not sure of the security implications of that  :-)
15:15 FROGGS why not just serialize it and spat it out do disk?
15:15 FROGGS serialize as in: the serialize method the VMHash REPR has
15:15 lizmat well, that would be less readable....
15:15 FROGGS not readable*
15:16 lizmat I would be more thinking about a temporary source file that would get pre-comped
15:16 lizmat and which would export whatever we need  :-)
15:17 FROGGS hmmm
15:17 FROGGS that's the same approach
15:17 FROGGS because a hash from a source gets precomp'd by calling serialize
15:18 tinyblak_ joined #perl6
15:18 FROGGS ahh, we can just precompile the json files
15:18 FROGGS (or the .perl of our hash later)
15:19 lizmat yes, but again, I'm afraid json will be short on features that we need
15:19 FROGGS that's why I mention the .perl :o)
15:20 dalek rakudo/newio: cfefdaf | (Elizabeth Mattijsen)++ | src/core/Process.pm:
15:20 dalek rakudo/newio: $*EXECUTABLE is now an IO::File
15:20 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/cfefdafe55
15:20 lizmat FWIW, I'm going to do *all* of the changes I think are needed in the branch
15:20 lizmat and then check panda again
15:21 lizmat my assumption is now that the panda problem is really caused by an incomplete migration
15:30 FROGGS yeah
15:35 anaeem1 joined #perl6
15:37 kaare_ joined #perl6
15:39 alexghacker any clue why: «  [||] $thing <<~~<< ( Array, Hash )  »  would hang while «  [||] $thing <<~~<< ( Positional, Associative )  » does not?
15:40 treehug88 joined #perl6
15:41 ugexe how do i submit test reports to testers.perl6.org?
15:42 FROGGS ugexe: you would have to clone panda, checkout the reporter branch, and run the rebootstrap script
15:43 zakharyas joined #perl6
15:43 FROGGS ugexe: then it will send reports for every module you install via: PANDA_SUBMIT_TESTREPORTS=1 panda install FooBar
15:44 ugexe is there a way to just smoke test everything?
15:44 ugexe just tryin to fill up the win32 code quality graphs
15:44 tinyblak joined #perl6
15:45 FROGGS ugexe: PANDA_SUBMIT_TESTREPORTS=1 panda --exclude=panda smoke
15:46 FROGGS ugexe++
16:02 alexghacker It seems to be the Array that's hanging things up, and I'm thinking that it's because ~~ isn't doing the same thing when I say: « [||] $v <<~~<< ( Array, Hash ) » as it does when I say « $v ~~ Array || $v ~~ Hash »
16:07 tinyblak_ joined #perl6
16:15 FROGGS m: say 42 <<~~<< Array
16:15 FROGGS wait for it...
16:15 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:15 FROGGS where is masak? :o)
16:15 FROGGS m: say 42 <<~~<< Hash
16:15 camelia rakudo-moar 41fe4f: OUTPUT«␤»
16:15 FROGGS m: say 42 <<~~<< List
16:16 FROGGS yeah, I thought so
16:16 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:16 FROGGS m: say 42 <<~~<< Parcel
16:16 camelia rakudo-moar 41fe4f: OUTPUT«False␤»
16:16 alexghacker m: say 42 <<~~<< Iterable
16:16 FROGGS hmmm, that the Hash case does not output anything is also weird
16:17 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:17 FROGGS m: say 42 <<~~<< Int
16:17 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:18 alexghacker m: $h = {}; $h <<~~<< Hash
16:18 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/r5oToeJwTUâ�¤Variable '$h' is not declaredâ�¤at /tmp/r5oToeJwTU:1â�¤------> [32m$h[33mâ��[31m = {}; $h <<~~<< Hash[0mâ�¤    expecting any of:â�¤        postfixâ�¤Â»
16:18 alexghacker m: my $h = {}; $h <<~~<< Hash
16:18 camelia rakudo-moar 41fe4f: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤  in any bind_error at src/vm/moar/Perl6/Ops.nqp:224␤  in sub hyper at src/gen/m-CORE.setting:19878␤  in block  at src/gen/m-CORE.setting:19728␤  in block <unit> at /tmp/3DACAfDTki:1…»
16:18 zakharyas joined #perl6
16:19 alexghacker m: my $h = {}; $h <<~~<< Associative
16:19 camelia rakudo-moar 41fe4f: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤  in any bind_error at src/vm/moar/Perl6/Ops.nqp:224␤  in sub hyper at src/gen/m-CORE.setting:19878␤  in block  at src/gen/m-CORE.setting:19728␤  in block <unit> at /tmp/mfJ3dh4R8m:1…»
16:19 alexghacker m: my $h = {}; $h <<~~<< EnumMap
16:19 camelia rakudo-moar 41fe4f: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤  in any bind_error at src/vm/moar/Perl6/Ops.nqp:224␤  in sub hyper at src/gen/m-CORE.setting:19878␤  in block  at src/gen/m-CORE.setting:19728␤  in block <unit> at /tmp/oQVUF4iXFi:1…»
16:19 alexghacker m: my $h = {}; $h <<~~<< Iterable
16:20 alexghacker (oh yeah, I'd already demonstrated that one)
16:20 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:21 FROGGS if I'd knew a nice short title I'd rakudobug it
16:21 anaeem1 joined #perl6
16:26 FROGGS[mobile] joined #perl6
16:33 ugexe Anyone know where the 'pipe' sub is from? Trying to bootstrap panda origin/reporter results in Undeclared routine: pipe (which I dont see in panda or Shell::Command)
16:36 raiph ugexe: http://irclog.perlgeek.de/perl6​/search/?nick=dalek&amp;q=pipe
16:37 ugexe ah thanks
16:38 guru joined #perl6
16:40 gtodd alexghacker: did "my $h = {}; $h <<~~<< Hash"   ever work in earlier versions?
16:42 alexghacker gtodd: I have no idea.  I just started writing perl6 last week.
16:42 FROGGS[mobile] you can test here with star-m:
16:43 FROGGS[mobile] star-m: say 1
16:43 camelia star-m 2014.09: OUTPUT«1␤»
16:43 alexghacker m: my $a = [ 0 ]; say $a <<~~<< ( Positional, Associative ); $a.pop; say $a <<~~<< ( Positional, Associative )
16:43 gtodd alexghacker: ok then what do you expect it to do ? :-D
16:43 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)False False␤»
16:43 FROGGS[mobile] not to hang?
16:44 gtodd star-m: my $h = {}; $h <<~~<< Iterable
16:44 camelia star-m 2014.09: OUTPUT«(timeout)»
16:44 gtodd oh I was doing the Hash one at home and the Iterable one in here ...
16:44 gtodd my $h = {}; $h <<~~<< Hash
16:44 alexghacker gtodd: my original was something along the lines of: "$subpart = deepclone( $subpart ) if [||] $subpart <<~~<< ( Array, Hash );"
16:45 gtodd star-m: my $h = {}; $h <<~~<< Hash
16:45 camelia star-m 2014.09: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Any'␤  in any bind_error at src/vm/moar/Perl6/Ops.nqp:221␤  in sub hyper at src/gen/m-CORE.setting:18612␤  in block  at src/gen/m-CORE.setting:18462␤  in block <unit> at /tmp/w9sueqsdwD:1␤␤»
16:45 kjs_ joined #perl6
16:45 alexghacker which I expected to be equivalent to "$subpart = deepclone( $subpart ) if $subpart ~~ Array || $subpart ~~ Hash;"
16:45 gtodd I like errors better than hangs ....
16:46 gtodd oh I see
16:48 alexghacker star-m: my $a = []; $a <<~~<< Positional
16:49 alexghacker m: my $a = []; $a <<~~<< Positional
16:49 camelia star-m 2014.09: OUTPUT«(timeout)»
16:49 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:49 alexghacker m: my $a = [ Nil ]; $a <<~~<< Positional
16:50 alexghacker m: my $a = [ 0 ]; $a <<~~<< Positional
16:50 camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:50 camelia rakudo-moar 41fe4f: ( no output )
16:50 alexghacker m: my $a = [ 0 ]; say $a <<~~<< Positional
16:50 camelia rakudo-moar 41fe4f: OUTPUT«False␤»
16:50 alexghacker m: my $a = [ 0 ]; say $a <<~~<< ( Positional )
16:50 camelia rakudo-moar 41fe4f: OUTPUT«False␤»
16:51 alexghacker m: my $a = [ [ 0 ] ]; say $a <<~~<< ( Positional )
16:51 camelia rakudo-moar 41fe4f: OUTPUT«False␤»
16:51 alexghacker m: say Array ~~ Positional
16:51 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:51 alexghacker m: say [] ~~ Array
16:51 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:52 alexghacker say [ 0 ] ~~ Array
16:52 alexghacker I didn't expect that
16:53 Juerd joined #perl6
16:53 alexghacker ah, forgot the m:...
16:53 * alexghacker is ashamed
16:53 alexghacker m: say [ 0 ] ~~ Array
16:53 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:53 alexghacker m: say [ 0 ] ~~ Positional
16:53 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:53 alexghacker m: say [] ~~ Positional
16:53 camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:58 jdv79 why is perl6-m forking (cloning) always?
17:00 jdv79 in other words, what is line 100 all about here:  http://nopaste.info/5678960089.html
17:03 tinyblak joined #perl6
17:04 sqirrel_ joined #perl6
17:06 jdv79 oh, nevermind.  not awake yet.
17:11 spider-mario joined #perl6
17:19 cognominal hi, where is the parameter trait C<as> documented?
17:22 cognominal lizmat++ is using it a lot in IO related routines
17:24 vendethiel cognominal: which method?
17:27 cognominal do a ack -w on rakudo/src/core and you get ~100 of them
17:27 PerlJam cognominal: Huh ... maybe it's not documented in the synopses.  The closest reference I can find is S06:2042, but that's subroutine traits, not parameter traits
17:27 synopsebot Link: http://perlcabal.org/syn/S06.html#line_2042
17:29 cognominal A random one https://github.com/rakudo/rakudo/b​lob/nom/src/core/IO/Handle.pm#L432
17:30 cognominal I suppose   C<as IO>  results in a call of C<.IO> to convert the said parameter
17:30 cognominal vendethiel, , do you come to OSD>? have you a talk for OSDC?
17:31 vendethiel OSDC? what's that?
17:31 treehug88 joined #perl6
17:31 cognominal http://act.osdc.fr/osdc2014fr/
17:31 rurban joined #perl6
17:31 ugexe speaking of IO, whatever is used to generate the paths for getopts usage message prints a double slash before the program on win32. it still works, but im not sure if thats desired behavior or not (C:\rakudo\bin\\panda search <pattern>). Presumably its because my PATH doesnt have a trailing /, but why not just use a foward slash instead of a windows specific double backslash?
17:32 vendethiel ah, I can't be there on the 22th, :(
17:32 sjn cognominal: http://act.osdc.no/osdc2014no/ \o/
17:32 cognominal http://act.osdc.fr/osdc2014fr/talks   # too bad, there is a shortage of proposals
17:33 [Sno] joined #perl6
17:33 cognominal everyone knowledebable on anything perl6 is welcome to do one
17:34 cognominal I don't see (file)globs on Path related stuff
17:36 cognominal sjn,  The requested URL /osdc2014no/ was not found on this server.
17:37 cognominal http://act.sdc.no redirects to http://act.osdc.no/osdc2015no/    though
17:40 ugexe i say that with the 2014.09 build of rakudo though
17:40 lucas___ joined #perl6
17:45 lucas___ Hello good people
17:45 lucas___ So, Nil returns Nil on unknown methods, right? But why it doesn't fail instead? What reasoning am I missing? Isn't it strange to let the user think everything went fine, when in fact it didn't?
17:46 lucas___ for example:
17:46 raiph lucas___: this is a fundamental issue
17:46 lucas___ m: my $a := Nil; $a.this-is-ok; $a.this-too; say "alive"
17:46 camelia rakudo-moar 41fe4f: OUTPUT«alive␤»
17:46 raiph lucas___: P6 is concurrency friendly
17:47 raiph lucas___: and P6 unifies error and exception handling
17:47 vendethiel what..?
17:48 raiph m: my $a := Nil; $a.this-is-ok; $a.this-too; say "alive"; say $a; say "still alive?"
17:48 camelia rakudo-moar 41fe4f: OUTPUT«alive␤Nil␤still alive?␤»
17:49 lucas___ I'm think about a sub that returns something or Nil on error...
17:49 lucas___ my $a = somesub();
17:49 PerlJam "Nil on error" sounds wrongish.
17:49 lucas___ And then the user uses $a without knowing it's Nil
17:50 lucas___ PerlJam: oh...
17:50 jnthn So, my first spectest after vacation. Fails all over the place. And buf.t ate 12GB of RAM before I killed it. What the hell, folks?
17:51 * vendethiel doesn't like Nil not failing either, and doesn't see a compelling reaon
17:51 vendethiel reason*
17:51 * jnthn hopes something is busted with his build :/
17:55 jdv79 was your vaca better than your spectest?
17:56 jnthn Yes, thankfully...
17:57 jnthn But I'd hoped to come back and dig into native arrays, not come back to a huge mess...
17:57 cognominal vendethiel, indeed, the as trait on a parameters coerces it if I believe this code : https://github.com/rakudo/rakudo/​blob/nom/src/core/traits.pm#L363
17:57 kurahaupo joined #perl6
17:57 * jnthn cleans up and re-builds everything
17:58 regreg joined #perl6
17:58 raiph vendethiel: So you don't like "The Nil value represents the absence of a value where there should be one ... [it] relies on something downstream to catch it or blow up."? (http://perlcabal.org/syn/S02.html#Nil)
17:59 vendethiel raiph: No. I want a function call called on nil to explode on my face.
17:59 lucas___ I made a mistake... returning Nil from a sub doesn't assign it to the variable.
18:00 lucas___ like a binding would do
18:00 PerlJam vendethiel: you mean method call, right?  (calling a function with a Nil value, should surely be able to do something besides blow up)
18:00 vendethiel PerlJam: yes - sorry ;-)
18:02 * jnthn crosses fingers and spectests after thoroughly cleaning up everything
18:03 anaeem1_ joined #perl6
18:03 * masak comes running, panting
18:03 jnthn OK, phew, it's looking a good bit better.
18:03 masak FROGGS[mobile]: I'm here, I'm here!
18:03 jnthn Sorry for false (hopfully) alarm.
18:03 jnthn No idea what was up.
18:04 masak FROGGS[mobile]: did you submit those yourself, or should I?
18:04 anaeem1_ joined #perl6
18:04 grondilu joined #perl6
18:04 FROGGS[mobile] masak: I did not... I was unable to think of a subject
18:04 masak oh, that's easy.
18:04 * masak submits rakudobug
18:05 FROGGS[mobile] thank you
18:06 Sqirrel joined #perl6
18:06 masak I live to serve.
18:06 arnsholt jnthn (and anyone else with the QAST/MoarVM fu): Shouldn't code giving this kind of QAST/bytecode throw an exception on the non-existent lexical x? https://gist.github.com/arn​sholt/b9fba5e3c92d402bf57f
18:07 FROGGS[mobile] jnthn: rakudo should build... but maybe panda is broken on win32
18:08 TimToady one of the Perl 6 design principles is that exceptions should be reserved for exceptional circumstances
18:08 TimToady and doing cascaded lookups is not exceptional enough to warrant sprinkling try all over your code
18:09 jnthn OK, spectest done. It's not anything like as bad as my previous one. Not so clean as before I left, alas.
18:10 TimToady welcome home from and to the appropriate amount of fun :)
18:10 jnthn Many of them are IO related, and I guess dust is still settling there.
18:11 rurban should I really use perl to run my benchmarks? no perf stat on darwin...
18:11 jnthn So maybe I'll ignore those for now and start worryin gabout native arrays :)
18:11 TimToady and yes, one of the main motivations for reserving exceptions for catasrophic events is that exceptions interfere with fine-grained parallelism and concurrency
18:11 jnthn Well, should probably worry about dinner first, and the fact I'm not really recovered from jetlag...
18:11 tony-o rurban: i just released a module that is similar to Benchmark from p5 (but written in p6)
18:13 TimToady jnthn: take good care of yourself; you're the only jnthn we have...
18:13 FROGGS joined #perl6
18:14 lizmat jnthn: could you show me win32 breakage?  I thought I had taken out all breakage in HEAD earlier today
18:14 rurban i need something better than Benchmark, the kernel stats
18:14 lizmat (breakage on Win32 that is)
18:15 dalek roast: 42d285c | jnthn++ | S32-io/spurt.t:
18:15 dalek roast: A couple of missing 'close' calls.
18:15 dalek roast:
18:15 dalek roast: Windows is funny about deleting unclosed handles; need to take care
18:15 dalek roast: of it here to keep the test portable.
18:15 dalek roast: review: https://github.com/perl6/roast/commit/42d285c446
18:15 lizmat jnthn: with regards to stabiility: every spectest I do on OS x has a set of 0 to 10 random test-files failing one or more tests
18:15 rurban somethink like perf stat, Dumbbench comes closer when it would have better kernel access
18:15 masak jnthn: phew, those were a couple of close calls!
18:15 dalek specs: c4c3f19 | (Stéphane Payrard)++ | S06-routines.pod:
18:15 dalek specs: documented C<as> trait for parameters
18:15 dalek specs: review: https://github.com/perl6/specs/commit/c4c3f192bb
18:15 jnthn lizmat: Urgh...
18:15 tony-o rurban: i've been working on getting the times like how Benchmark.pm does but i'm having trouble in win32 for the kernel calls
18:16 jnthn masak: Arrrgh...though after some of my jetlug puns at work today I deserved that :P
18:16 tony-o are you looking for win or lin specifically?
18:16 jnthn lizmat: Random failure is...pretty ugly. :(
18:16 lizmat yes  and annoying
18:16 masak jnthn: at least one of those puns was awesome. :)
18:16 lizmat because I have to retry the failing tests manually again to see whether I really didn't break anything
18:16 masak jnthn: oh right -- "you're just compounding the problem" :P
18:17 jnthn lizmat: When did this start?
18:17 TimToady lucas___, vendethiel: ^^^ about Nil vs exceptions, if you can pick out what I said from the other conversations
18:17 lizmat feels like it started already before you left on holiday
18:17 jnthn lizmat: Issues that are IO-related are in io-spec-cygwin.t, io-spec-win.t, chdir.t, and tmpdir.t.
18:18 kjs_ joined #perl6
18:18 lizmat could you gist them?
18:18 lucas___ TimToady: thanks! I still need to study lots more to understand :)
18:18 jnthn lizmat: https://gist.github.com/ano​nymous/0ff022bbc09cf8522234 is the tmpdir.t one
18:19 TimToady my feeling is that the industry is going exception happy (and teaching everyone to be exception happy) just in time to make it very hard to take advantage of multiple cores
18:19 vendethiel TimToady: I'd rather crash than not crash ;-)
18:19 TimToady it's one of these zero-tolerance policies that I have zero tolerance for :)
18:19 vendethiel having incorrect results doesn't help me. It's making my life as a coder debugging a living hell
18:19 vendethiel I don't like living in hell.
18:20 lizmat jnthn: src/gen/m-CORE.setting:29985  # that's a strange line number ???
18:20 vendethiel And much the same, I don't like having to track *where* something became nil, because it certainly *WILL* blow up, but *NEVER* at the correct place
18:20 * vendethiel has a tons of bad memories of that in ruby
18:21 * vendethiel would probably like to do away with Nil in general, but that's not an option here
18:21 denis_boyun_ joined #perl6
18:21 TimToady then you're using it wrong; you should write things like @things[$x].lookup.[$y]{$which} // recover()
18:22 jnthn lizmat: Yes, for some reason my generated CORE.setting seems to get extra line breaks between every line...
18:22 lizmat perhaps LF / CRLF confusion ?
18:22 TimToady or if you aren't defining a cascadable lookup API, return Failure instead
18:22 masak TimToady: incidentally, that's how I use junctions.
18:23 masak TimToady: I know exactly where I create them, and I make sure to collapse them into Bool ASAP.
18:23 vendethiel "then you're doing it wrong" seems like a pretty big phrase to me.
18:23 TimToady well, it's hyperbole :)
18:23 vendethiel Failure only delays the problem even more...
18:24 vendethiel m: sub f(Cool:D $a) {}; f(Nil);
18:24 camelia rakudo-moar 41fe4f: OUTPUT«Parameter '$a' requires an instance, but a type object was passed␤  in sub f at /tmp/7R2NBb8MpI:1␤  in block <unit> at /tmp/7R2NBb8MpI:1␤␤»
18:24 TimToady but yeah, you don't want to do things with control flow that can be handled with expressions, basically
18:24 jnthn lizmat: Here's all the IO failures collected: https://gist.github.com/jnthn/6d389e6269c24b24f97e
18:24 jnthn lizmat: Yes, probably.
18:24 vendethiel He. I guess I'm kind-of-looking for ":D by default"
18:24 TimToady it's like requiring people to use goto when math will work
18:24 vendethiel .oO( that should be the :Default )
18:24 * masak .oO( x**2/a**2 - y**2/b**2 == 1, the most *awesome* conic section! ) <== hyperbole
18:24 TimToady Failure is supposed to have a payload that tells you where it failed
18:24 PerlJam masak++  :)
18:25 masak PerlJam: just you wait until I tell you the parable.
18:25 masak (it's eccentric)
18:26 * TimToady berates masak roundly
18:26 lucas___ BTW, I was just trying to convert the Perl 5 idiom of returning undef on error.
18:27 PerlJam lucas___: Nil is not "undef"  :)
18:27 lucas___ PerlJam, *: Now I got it, thanks :)
18:27 TimToady m: undef;
18:27 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/xTQu6zWjzlâ�¤Unsupported use of undef as a value; in Perl 6 please use something more specific:â�¤     Any (the "whatever" type object),â�¤      an undefined type object such as Int,â�¤  :!defined as a matche…»
18:28 TimToady that "whatever" is LTA there
18:29 TimToady since * is the whatever object
18:29 Mouq joined #perl6
18:30 TimToady std: undef;
18:30 TimToady kaboom!
18:30 lucas___ just a note... a user may think that some feature put a value in $_ for him, when it doesn't
18:30 lucas___ m: .foo; .bar; say 'alive'
18:30 * TimToady killed camelia
18:31 lucas___ oh
18:31 lucas___ sorry
18:31 lucas___ :D
18:31 camelia joined #perl6
18:31 masak you... killed camelia!?
18:31 masak camelia: oh, there you are
18:31 TimToady she got better
18:31 masak zombie butterfly
18:31 lucas___ m: .foo; .bar; say 'alive'
18:31 TimToady she sucks the nectar from your brane
18:32 lucas___ will she come back automatically?
18:32 Mouq std: -> $a = 0 { $a } # bug or LTA?
18:32 TimToady startup transients...
18:32 camelia std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 166.␤    EvalbotExecuter::_auto_execute(HASH(0x1c009c8), "undef;", GLOB(0x83f2f28), "/tmp/jqRw9X5gkd", "std") called at lib/EvalbotExecuter.pm line 114␤ EvalbotExecuter::_…»
18:32 Mouq O_o
18:32 camelia rakudo-moar 41fe4f: OUTPUT«alive␤»
18:32 camelia std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 166.␤    EvalbotExecuter::_auto_execute(HASH(0x1c009c8), "-> \$a = 0 { \$a } # bug or LTA?", GLOB(0x7ea50c8), "/tmp/F2R14ZisbF", "std") called at lib/EvalbotExecuter.pm line…»
18:32 PerlJam Mouq: bug!  ;)
18:33 Mouq :9
18:33 lucas___ I'm sorry for the second try. I shouldn't have done it.
18:33 TimToady m: .say
18:33 camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
18:34 TimToady that's not right
18:34 * masak submits rakudobug
18:34 TimToady m: say $_.WHAT
18:34 camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
18:34 TimToady m: say Any.foo
18:34 camelia rakudo-moar 41fe4f: OUTPUT«No such method 'foo' for invocant of type 'Any'␤  in block <unit> at /tmp/LyHlzgeukL:1␤␤»
18:34 jnthn m: sub foo() { say $_.WHAT }
18:34 camelia rakudo-moar 41fe4f: ( no output )
18:34 TimToady m: say Mu.foo
18:34 jnthn m: sub foo() { say $_.WHAT }; foo()
18:34 camelia rakudo-moar 41fe4f: OUTPUT«No such method 'foo' for invocant of type 'Mu'␤  in block <unit> at /tmp/2AFGxXjyie:1␤␤»
18:34 camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
18:34 TimToady should blow up on of those ways
18:35 jnthn Huh, I thought $_ was initialized to Any?
18:35 TimToady now *that* is a bad occurence of NIL
18:35 TimToady *Nil
18:35 raydiak joined #perl6
18:35 TimToady I dont know when it changed
18:35 jnthn Me either.
18:36 masak just to be clear for the bug report, what should `.say` do?
18:36 masak and what should `say $_.WHAT` do?
18:36 TimToady probably print (Mu)
18:36 jnthn Well, (Any) if it's like any other normal Scalar
18:36 masak ok, so the whole problem is that $_ contains Nil, not Mu?
18:36 TimToady or arguably that, yes
18:37 jnthn (Type-constraint is Mu, default value is Any)
18:37 masak ok.
18:38 Mouq m: -> $a = 0 { $a } # anyway
18:38 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/Xy5Szv397Iâ�¤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)â�¤at /tmp/Xy5Szv397I:1â�¤------> [32m-> $a = 0 [33mâ��[31m{ $a } # anyway[0mâ�¤    â€¦Â»
18:38 masak Mouq: huh.
18:38 Mouq m: 0 { 42 }
18:38 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/_b8MbmIQZDâ�¤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)â�¤at /tmp/_b8MbmIQZD:1â�¤------> [32m0 [33mâ��[31m{ 42 }[0mâ�¤    expecting any of:…»
18:39 masak feels like the '{' is not acting properly as a stopper for the EXPR
18:39 TimToady ->'s sig is supposed to have a terminator of \s{
18:39 * masak submits rakudobug
18:39 TimToady std: -> $a = 0 { $a }
18:39 jnthn I don't even know if we make it that far.
18:39 TimToady ooopsss
18:40 jnthn As in, I think the error might happen while parsing the default for the arg
18:40 TimToady I thought moritz++ fixed the camelia directory bug
18:40 masak TimToady: this is starting to look like serial butterfly murder...
18:40 Mouq TimToady: STD has the same error
18:40 masak m: -> 0 { 0 }
18:41 camelia joined #perl6
18:41 masak m: -> 0 { 0 }
18:41 jnthn Mouq: Ah, I'll stop playing "spot the STD discrepancy" then ;)
18:42 bowtie joined #perl6
18:42 camelia std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 166.␤    EvalbotExecuter::_auto_execute(HASH(0x1c009c8), "-> \$a = 0 { \$a }", GLOB(0x73b9090), "/tmp/wtu2dtvVbd", "std") called at lib/EvalbotExecuter.pm line 114␤     Evalbo…»
18:42 camelia rakudo-moar 41fe4f: ( no output )
18:42 TimToady m: -> $a = (0) { $a }
18:42 camelia rakudo-moar 41fe4f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/WwTDCj39mDâ�¤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)â�¤at /tmp/WwTDCj39mD:1â�¤------> [32m-> $a = (0) [33mâ��[31m{ $a }[0mâ�¤    expecti…»
18:43 TimToady oh, wait, the \s{ terminator is on xblocks, not here (yet)
18:43 jnthn TimToady: Hacky fix may be that infix:sym<lambda> needs to be attentive to the current precedence limit we're parsing under
18:43 lizmat TimToady: S02:503 states: "Any undefined method call on C<Nil> returns C<Nil>, so that C<Nil> propagates down method call chains."
18:43 synopsebot Link: http://perlcabal.org/syn/S02.html#line_503
18:43 lizmat I guess we need to define a number of methods on Nil, like ".say" ?
18:44 TimToady that's not the problem
18:44 jnthn lizmat: Nil ~~ Mu, so it inherits a .say anyway I think...
18:44 TimToady the problem is that $_ is starting out Nil, not Mu/Any
18:44 jnthn And yes, that.
18:44 Mso150 joined #perl6
18:45 TimToady m: -> $a = 0, { $a }
18:45 camelia rakudo-moar 41fe4f: ( no output )
18:45 TimToady workaround
18:45 jnthn rule default_value {
18:45 jnthn :my $*IN_DECL := '';
18:45 jnthn '=' <EXPR('i=')>
18:45 jnthn }
18:45 TimToady m: say (-> $a = 0, { $a })(42)
18:45 camelia rakudo-moar 41fe4f: OUTPUT«42␤»
18:46 TimToady m: say (-> $a = 0, { $a })()
18:46 camelia rakudo-moar 41fe4f: OUTPUT«0␤»
18:46 jnthn That i= is what makes the , there not be taken as part of the default value
18:46 jnthn Trouble is that infix:sym<lambda> just explodes if we end up in it.
18:46 TimToady yes, but { is not a valid infix
18:46 TimToady \s{ wants to be a terminator, as in an xblock
18:47 jnthn TimToady: https://github.com/perl6/st​d/blob/master/STD.pm6#L3148
18:47 Mouq So, just :$*GOAL := '{'; ?
18:47 * Mouq is still updating Moar+NQP
18:47 TimToady probably
18:48 TimToady any you can probably do it on the whole sig, not just default
18:48 jnthn Aye, then infixstopper handles it
18:48 jnthn That's better than teaching infix:sym<lambda> about preclim.
18:48 masak aye.
18:49 TimToady the whole $*GOAL thing worked out much better than it had any right to :)
18:50 bowtie_ joined #perl6
18:51 TimToady but it's really the approved way to cheat on TTIAR :)
18:52 * masak wonders if that has any bearing on regex-using macros
18:54 guru joined #perl6
18:55 Mouq So for class my next paper is about "process analysis," i.e., I explain how to do something. I'm strongly considering some kind of tutorial for Perl 6 (which I'd of course adapt for the docs :), so I'm trying to figure out what to write about
18:55 PerlJam Mouq: how to slang
18:56 jnthn The concurrency stuff is, afaik, quite under-p6doc'd.
18:59 spider-mario joined #perl6
18:59 Mouq jnthn: I thoroughly agree, and I may, but I haven't done much sophisticated work with concurrency and so if/when I write those docs I'd prefer to steal as much documentation as I can, which isn't so great for a paper :P
19:00 Mouq PerlJam: ...maybe :)
19:01 masak Mouq: pick something a little risky, but not too risky.
19:01 masak Mouq: "how to slang" would be wonderful if we figgered out, but there's no guarantee you'll finish in time.
19:02 PerlJam There's always the option of "how to slang today" with pointers at the dragony bits
19:03 raiph .oO ( what if $_ started out as a defined object, eg the compiler, or some other object that responded to methods like .help? )
19:04 PerlJam raiph: It doesn't have to be defined to respond to .help
19:04 PerlJam But ... that's an interesting idea
19:05 PerlJam raiph: maybe make .help work out-of-the-box only in the REPL?
19:05 raiph perlJam: I have long wanted to see a Camelia bot that defines a number of useful objects available for one-liners
19:08 Mouq masak: Hmm, although I have the ability to revise the paper until the end of the semester, so I do have some time
19:08 Mouq Though a first version is due fairly soon
19:09 masak then, "how to slang today" would be a topic I'd be interested in.
19:09 * Mouq goes to think about it over lunch &
19:09 masak *especially* if it pointed to a possible way forward, to make it better and more streamlined.
19:09 PerlJam what masak++ said
19:09 masak Mouq: FROGGS is the master of slanging, so you'll want to basically interview him.
19:09 masak Mouq: and look at his code.
19:09 masak FROGGS++, I mean
19:10 PerlJam .oO( FROGGS -- Master Slanger )
19:12 PerlJam .oO( slang, slang, slang .... slang of tools.  :)
19:18 telex joined #perl6
19:24 lucas___ So, I should not return Nil when a I mean undef in Perl 5, right? I should return something like Any, Int, Str, right? But the thing is that these things don't sound like "bad" things, they sound like "good" things. (I know, all type objects are undefined)
19:26 TimToady often it means you should fail instead, if you don't want to be able to cascade lookups
19:26 moritz lucas___: undef doesn't sound "bad" to me in p5 either
19:27 TimToady returning undef explicitly is not usually considered good practice in P5 either
19:27 TimToady usually just "return;"
19:27 lucas___ yes, I usually prefer a empty return
19:29 gfldex joined #perl6
19:30 lucas___ well, maybe I should use Mu, because that sounds more undefined that Any, Int, Str.
19:30 TimToady timotimo: an adverb binds to the loosest operator tighter than comma
19:30 TimToady and list operators are, by necessity, looser than comma
19:30 lucas___ *more undefined than...
19:33 * TimToady thinks of Mu as mostly meaning "concept" these days, since things like junctions are concepts that live outside of Any, which is the most undefined normal object
19:34 TimToady it has occasionally been argued that Nil should live outside of Any
19:35 TimToady since it is primarily conceptual
19:36 TimToady then most of Nil's semantics could automatically trigger on type mismatch with Any, much like junctional autothreading does
19:37 TimToady rather than using introspection
19:37 masak I'm using Bailador. I'm writing the handler for a POST request. how do I get the HTTP body of the request?
19:37 masak anyone know Bailador well enough to send me in the right direction?
19:38 TimToady maybe you should ask on #perl6?
19:38 Mso150_x joined #perl6
19:38 masak I tried that, but some guy called TimToady said I should ask here.
19:39 sergot :))
19:39 * masak touches the mirror, and it starts creeping up his arm, like cold goo
19:41 * the-mirror touches masak's arm, and it starts creeping up his face, feels like warm goo
19:41 vendethiel masak: #perl6-redpill and #perl6-bluepill
19:42 masak I was always a red pill kinda guy.
19:42 * TimToady likes the purple pill
19:42 masak anyone want to help me with my Bailador question?
19:42 masak it's a really simple thing to do -- get the POST body -- but I just can't figure it out.
19:43 TimToady read the source code?
19:43 masak tried that.
19:43 moritz masak: it's request.body
19:43 moritz masak: (found by grepping the Bailador sources and tests)
19:44 masak \o/
19:44 masak moritz++
19:44 masak ok, will try this.
19:45 * TimToady wonders if the Balmer peak for writing code turns into a Balmer valley for reading code...
19:48 TimToady m: say [[[1,2],3],4].deepmap({$_}).perl
19:48 camelia rakudo-moar 41fe4f: OUTPUT«([[1, 2], 3], 4)␤»
19:48 TimToady gtodd: ^^ a sort of deep clone
19:48 TimToady but only descends known iterables
19:49 vendethiel https://github.com/tombenner/ru <- This looks incredibly cool
19:49 TimToady m: say [[[1,2],3],4].deepmap(*.clone).perl
19:49 camelia rakudo-moar 41fe4f: OUTPUT«([[1, 2], 3], 4)␤»
19:49 vendethiel I might do something like that for Perl6!
19:49 TimToady m: say [[[1,2],3],4]».clone.perl
19:49 camelia rakudo-moar 41fe4f: OUTPUT«(Array.new([1, 2], 3), 4)␤»
19:49 TimToady almost right...
19:50 Diederich vendethiel: surely you're currently using https://metacpan.org/release/Zoidberg ?
19:50 vendethiel Diederich: what is a cpan :)?
19:50 vendethiel Diederich: I don't speak perl5, sorry.
19:51 Diederich I saw the talk..Perl6 runs most anything Perl5 now :)
19:51 TimToady given that » is supposed to use .deepmap internally, I wonder how that comes out different...
19:51 gtodd cool
19:52 TimToady anyway, that's a deep clone for one definition of it
19:52 gtodd deepmap is nicer name :)
19:55 kernel joined #perl6
19:55 lucas___ The way I see scalar variables is like these: those who are defined and those who are not. This clearly divides the scalar domain into two sets. I use this test to make the decisions. Since exceptions should be for exceptional situations. And I don't want to insert a try statement in the code for just a little sign that something is missing.
19:56 lucas___ Then I could use any type object, since all of them are undefined. But it seens that none of them were made for this purpose, since they mean something "conceptual". I would have used the word "Nil" for this, but Nil can't play this role, because of his role in cascading operations. So, there is no value that clearly means something is missing, and dies or warns if tried to used like something defined. So... there is no Undef, Undefined, Void, Null.
19:56 TimToady that's what Failure is for
19:58 lucas___ oops, seens like I forgot this :)
19:58 TimToady and fail() gives the caller the option to fatalize eagerly or lazily
19:59 TimToady it's appropriate for most places that are not used as cascaded lookups
20:00 * gtodd plays around with scala REPL  .... :history N   :save   ....
20:01 gtodd it's growing little features and stuff  ( and somehow does trickery that makes it seem like it is starting faster than it really is ) ...
20:02 vendethiel also :multiline one :p
20:02 vendethiel on*
20:02 gtodd vendethiel:  since perl8.org claims to the "real future of perl" stealing ideas from the scala REPL will just make us more compatible :-)
20:03 vendethiel if at some point we have a more full-fledged type system, I'll be happy :)
20:03 gtodd vendethiel: so did you ever program a lot in perl5 ?
20:03 vendethiel I did one program in perl5, an IRC bot when I was 12.
20:04 bowtie joined #perl6
20:04 gtodd vendethiel: cause perl6 seems like it has really fledged types :-)
20:05 vendethiel gtodd: you can't compare Perl6's type system with scala's type system ;-)
20:05 vendethiel though, really, scala went too far.
20:05 lucas___ So, thanks. I should use fail instead for my purposes. I may have thinked that Failure was a strong word, or something.
20:06 TimToady if at some point our type system is so full-fledged that mere mortals can't cargo cult their code, we'll have gone too far :)
20:06 gtodd hehe
20:08 gtodd with perl6 you can get all demanding with types for say version 2 of your application :-)
20:09 vendethiel TimToady: mmh-hm. Don't forget our types are turing-complete :P
20:09 TimToady there are a few things that are not completely hooked up yet, such as function types including signatures, not to mention native accessors
20:09 vendethiel When I'll be able to say `sub f(::T $ --> Sign[T].some_subset)` I'll turn completly crazy
20:10 vendethiel :)
20:11 PerlJam vendethiel: you could just use macros  ;>
20:11 vendethiel that's cheating
20:11 TimToady When all you have are macros, everything starts to look like a macro.
20:11 PerlJam vendethiel: tmtowtdi!
20:11 vendethiel ..and that's when you need to stop ;-)
20:12 bowtie_ joined #perl6
20:12 TimToady Macros are like Vice Grips®, they're the wrong tool for every job, but they'll do every job.
20:13 TimToady Er, Vise Grips
20:13 gtodd haha
20:14 gtodd TimToady: duct tape?
20:14 PerlJam I have an Old Timer pocket knife in my pocket that has been used quite effectively as a screw driver and pry bar too
20:14 vendethiel duct tape is the tool for some jobs...
20:14 gtodd TimToady: errm heads up there is a brand of Duct Tape called "Duck Tape" ....
20:14 TimToady yeah, I've seen that
20:15 TimToady comes in lots of colors and patterns, including Disney-esque, but oddly, there wasn't a pattern with Donald
20:16 lucas___ To determine if a fail will be eager or lazy, it only depends on the use fatal pragma? Any way I can be sure a failure will always be lazy, ie, never thrown?
20:16 TimToady I think "return Failure.new(...)" will do that currently
20:17 TimToady but then, fail() is currently mis-implemented using a dynamic var, iirc, which propagates fatalization too deeply
20:17 TimToady it should depend only on the immediate caller, so should probably be checked at the call site, really
20:17 TimToady in which case explicit return would work the same
20:18 gtodd I assume that fix would be more than just one line
20:18 TimToady but you shouldn't really care what your caller does with the failure
20:19 Mouq joined #perl6
20:19 TimToady will probably take Deep Magic of some sort, either callsite magic, or a bit in the call frame that is easily checked
20:19 TimToady though, it doesn't really have to be all that efficient, given that failure is supposed to be exceptional
20:20 lucas___ I wish the caller never to fatalize the failure and always treat it like a undefined value.
20:20 lucas___ But I can't wish that...
20:20 TimToady that should be their policy decision, not yours
20:20 TimToady it's a breach of what I call "excapsulation"
20:21 lucas___ encapsulated exceptions?
20:21 TimToady encapsulation is "You shouldn't care about what's inside this.", whereas excapsulatoin is "You shouldn't care about what's outside this."
20:22 TimToady *tion
20:23 lucas___ Looks symmetrical to me... :)
20:24 TimToady similar to why there's no "protected" concept; your derived classes have the same privileges as any other external caller, and no more, unless you explicitly trust them.
20:25 * masak is proud to never have needed `trusts` in any of his Perl 6 designs
20:25 TimToady yes, it's a bit of a design smell
20:29 gtodd vendethiel: how does :multiline work or where is it documented?
20:29 gtodd oosp
20:30 TimToady ^^ a very small autopun
20:30 * gtodd bows
20:33 lucas___ m: use fatal; fail
20:33 camelia rakudo-moar 41fe4f: OUTPUT«␤  in block <unit> at /tmp/PSWDXsXqPj:1␤␤»
20:33 lucas___ No error message... just location.
20:34 TimToady m: fail
20:34 camelia rakudo-moar 41fe4f: OUTPUT«Unhandled exception: ␤   at <unknown>:1  (/home/camelia/rakudo-inst-1/languages/perl6/r​untime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13724  (/home/camelia/rakudo-inst-1/languages/per​l6/runtime/CORE.setting.moarvm:sink:29)␤…»
20:35 ghostlines joined #perl6
20:35 ghostlines joined #perl6
20:36 pecastro joined #perl6
20:37 jnthn lucas___: Well, you didn't give it a message...
20:37 jnthn m: use fatal; fail "oh noez"
20:37 camelia rakudo-moar 41fe4f: OUTPUT«oh noez␤  in block <unit> at /tmp/3soCTHNrHI:1␤␤»
20:37 TimToady also, the fact that 'use fatal' has an effect in the current lexical scope is a side effect of the mis-implementation using dynvars
20:37 TimToady it's supposed to just influence the callee
20:39 jnthn So how should it be implemnted?
20:39 jnthn If it's influencing callees, dynvars seem natural.
20:40 jnthn Given they're the usual way we convey things that are dynamically scoped.
20:40 TimToady dynvars go too deep
20:40 jnthn ?
20:40 TimToady they have magical action at a distance down in the called code
20:41 TimToady the called code may not be expecting *its* calls to be fatalized, so all their // code breaks
20:41 jnthn Ah.
20:41 * TimToady refrains from pointing out that he's been pointing this out for years... :)
20:42 * jnthn refrains from pointing out that TimToady still hasn't told him how it should be implemented :P
20:42 * TimToady refrains from pointing out that he only recently had any clue how things are actually implemented :P
20:43 jnthn Well, I'd rather it uses some general mechanism rather than us having to do some weird special case thing for it...
20:43 * TimToady having been told to stay out of that back in, oh, 2001 or so :)
20:43 TimToady Well, I'd rather have a special case than a CALLER::<$?FATAL> that pessimizes everything :)
20:44 * TimToady will try to think about it while on his vacation here at the timeshare...
20:44 gtodd :-)
20:45 jnthn True, though if "fail" is a hot-path in your code, it may be time for a re-think ;-)
20:45 TimToady I think there are some optimizations that are currently pessimized if you see CALLER
20:45 btyler_ fail fast and break things :)
20:45 TimToady but I could be rwong
20:46 jnthn Yes, CALLER certainly pessimizes stuff
20:47 jnthn Though it's only so bad.
20:47 TimToady well, there maybe a class of those things that are fixupable upon inlining that we haven't generalized yet
20:47 TimToady *y b
20:48 TimToady and fail could be a macro that only does one CALLER rather than a function that does two
20:48 TimToady if that's relevant
20:49 TimToady or a function that we always inline immediately, if macros are too scary :)
20:51 TimToady anyway, if we notice any handy place to put a fatalize bit while doing the sink refactor, we should at least consider it
20:51 TimToady so that we avoid assuming things about our ability to examine the caller's lexical scope
20:52 TimToady but it's just one idea
20:53 TimToady an intermediately general thing would be to be able to examine just the lexical hints (think p5's %^H or so) in effect at the callsite
20:54 TimToady since we have more space for hints than we do for bits in the callframe
20:54 TimToady and as you say, at least this use doesn't need to be that efficient
20:55 jnthn *nod*
20:55 jnthn The trouble with bit fields is you eventually run out of bits :)
20:56 TimToady Aye, to quote someone I know who's from Yorkshire.
20:56 jack_rabbit joined #perl6
20:57 * jnthn only grew up there :)
20:57 TimToady well, I'm from Los Angeles...which is a really good place to be *from*.
20:57 Diederich TimToady++ amen, so say we all
21:00 raiph joined #perl6
21:05 Mso150_x joined #perl6
21:13 |Tux| joined #perl6
21:13 lucas___ jnthn: :D  (i was afk)
21:14 daxim joined #perl6
21:17 FROGGS can somebody please merge this? https://github.com/parrot/parrot/pull/1134
21:17 masak 'night, #perl6
21:17 FROGGS gnight masak
21:23 moritz FROGGS: done
21:23 FROGGS moritz: thanks :o)
21:29 daxim joined #perl6
21:31 denis_boyun_ joined #perl6
21:32 moritz ingy, davido___: do you still want logging for #inline?
21:42 dalek rakudo/nom: 209674f | Mouq++ | src/Perl6/Grammar.nqp:
21:42 dalek rakudo/nom: Fix RT #123176
21:42 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/209674f42d
21:42 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123176
21:43 cognominal joined #perl6
21:43 dalek roast: d89f90e | Mouq++ | S06-signature/defaults.t:
21:43 dalek roast: Test for RT #123176
21:43 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123176
21:43 dalek roast: review: https://github.com/perl6/roast/commit/d89f90e8ac
21:43 dalek roast: 6721083 | Mouq++ | S (9 files):
21:43 dalek roast: Merge branch 'master' of https://github.com/perl6/roast
21:43 dalek roast: review: https://github.com/perl6/roast/commit/6721083f6a
21:46 dalek specs: 98fc7a4 | TimToady++ | S06-routines.pod:
21:46 dalek specs: Mark 'as' trait as deprecated
21:46 dalek specs:
21:46 dalek specs: This feature was removed from the spec in 2012 because it does not
21:46 dalek specs: compose well syntactically.  Please use explicit coercions instead,
21:46 dalek specs: at least until coercion types are implemented.
21:46 dalek specs: review: https://github.com/perl6/specs/commit/98fc7a47c7
21:51 rurban joined #perl6
21:52 dalek std: 76ccee1 | Mouq++ | STD.pm6:
21:52 dalek std: Fix RT #123176
21:52 dalek std: review: https://github.com/perl6/std/commit/76ccee1cba
21:52 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=123176
21:52 ab5tract joined #perl6
21:55 raiph joined #perl6
21:59 davido___ moritz : To my knowledge the desire hasn't changed.  But Ingy is traveling today, so let's find out his final decision Wednesday.
22:00 jnthn Mouq++
22:00 regreg joined #perl6
22:08 virtualsue joined #perl6
22:09 prammer joined #perl6
22:09 jdv79 is it correct that there is not a full HTTP lib implementation yet?
22:09 jack_rabbit joined #perl6
22:09 bwisti joined #perl6
22:10 jdv79 HTTP UA specifically
22:10 FROGGS HTTP::UA is the best we have
22:11 FROGGS if you need features, ask for it :o)
22:11 FROGGS (i.e. make issues)
22:12 virtualsue left #perl6
22:12 jdv79 ok, thanks
22:15 jdv79 hmm, NativeCall failed to install
22:15 FROGGS jdv79: are you on a 32bit machine?
22:16 jdv79 looks like it
22:17 bowtie joined #perl6
22:19 FROGGS jdv79: it is known to fail on 32bit... we hope to have a patch for that soonish
22:19 jdv79 ok:(
22:19 colomon joined #perl6
22:19 FROGGS jdv79: you can install it without running the tests...
22:20 FROGGS perhaps it is enough for what you are up to
22:20 jdv79 i wanted to try HTTP::UserAgent
22:20 FROGGS there is a chance that it works out
22:21 jdv79 i think it failed before the tests:  http://nopaste.info/f05779cb9d.html
22:21 virtualsue joined #perl6
22:21 FROGGS jdv79: you need a newer rakudo
22:22 jdv79 ok
22:24 TimToady there are still likely to be differences of opinion on the meaning of 'int' without qualification as to the number of bits
22:24 TimToady p6 doesn't define it the same as C does, nor is there a 'long' type in p6
22:26 TimToady we might need some typenames that refer to the C defs (assuming there's only one C compiler involved, which ain't necessarily the case)
22:29 ab5tract TimToady: if types can be namespaced, it could go something like C::GCC::Int, C::Clang::Float, etc ?
22:33 TimToady well, the final bit should probably look more like the actual type name, such as C::GCC::long_long or so
22:35 japhb I'm not sure compiler alone is enough there, it can vary by platform and OS as well.
22:35 TimToady well, it may be sufficient to know how a given library was compiled
22:35 TimToady then we wouldn't have to keep repeating it
22:36 TimToady but we do still have to distinguish C types from Perl types somehow
22:36 ptc_p6 joined #perl6
22:37 bowtie_ joined #perl6
22:37 TimToady I suspect that when we get coercion types, that will also help ease the inner/outer type notation
22:37 japhb .oO( If only we had some sort of toolkit for parsing, we could just parse stdint.h ... )
22:38 TimToady oh, the parsing isn't the hard part, it's knowing the 5000 switches that are going to be passed to the C compiler
22:39 japhb True
22:39 ab5tract ouch :/
22:40 dalek rakudo/nom: ae1cde4 | TimToady++ | src/Perl6/Grammar.nqp:
22:40 dalek rakudo/nom: copy STD's better undef message
22:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae1cde4d57
22:47 leont joined #perl6
23:03 * araujo looks around
23:04 * araujo has not used rakudo in a while and wonders how mature it is for a (pseudo)production project
23:05 Mouq http://irclog.perlgeek.de/​perl6/2014-11-07#i_9626379
23:05 dalek rakudo/newio: c51e844 | (Elizabeth Mattijsen)++ | src/core/ (9 files):
23:05 dalek rakudo/newio: $*CWD is now an IO::Dir
23:05 dalek rakudo/newio: review: https://github.com/rakudo/rakudo/commit/c51e844671
23:08 FROGGS araujo: I'd say that rakudo-on-moar is worth a try at least
23:09 araujo FROGGS, I will check
23:09 araujo it's mainly for parsing magic
23:11 Alina-malina joined #perl6
23:12 timotimo oooh much backlog
23:14 japhb timotimo: I've converted over about as many perl6-bench tests as I easily can to have expected output.  However, I have not done a full test across nqp, rakudo, and perl5.  If you happen to run one of those tests any time soon, and see any mismatch failures, please let me know right quick.  :-)
23:16 timotimo i'll keep that in mind :)
23:23 bowtie joined #perl6
23:45 japhb timotimo: As a side note, you shouldn't compare benchmark results from older versions of perl6-bench to ones from a current version, because some of the tests got heavier in order to produce meaningful output, and I likely defeated a few easy optimizations to boot.
23:46 timotimo hmm
23:46 timotimo oh, yeah, maybe that's what caused the numbers to be so weird?
23:47 japhb Could be.  Should have only gotten more accurate though (delta the small time spent to actually output the results).
23:47 japhb If you see any that look really wrong, I may need to investigate.
23:47 timotimo you ... defeated easy optimizations? :)
23:48 timotimo that sounds like you found a workaround that gets us rid of the benefits
23:48 japhb timotimo: I find it quite likely that's what had caused the infinilooping test before -- the loop got optimized away.
23:48 timotimo optimized away completely?
23:49 timotimo doesn't sound terribly likely
23:49 bowtie_ joined #perl6
23:49 japhb Yeah, because people were reporting that it was overflowing 64 bits in SCALE.
23:49 timotimo oh, hehehe
23:50 timotimo yeah, i suppose our completely-turned-to-asm loops can get pretty fast
23:50 japhb Mind you, I think that would have been a buggy optimization, but still if just adding output fixes it ....
23:51 japhb Sure ... but that would make overflowing 32 bits doable.  Not 64.
23:51 timotimo hum
23:51 timotimo i don't think we actually do optimizations that would actually eliminate a loop like that
23:51 japhb Well *something* went horribly wrong.
23:55 dayangkun joined #perl6

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

Perl 6 | Reference Documentation | Rakudo