»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
timotimo rakudo star seems to be containing an outdated version of rakudo-debugger from before it was turned into just a UI frontend 00:00
oh 00:01
oops
i was still in the "tristar" branch
ah, but the rakudo-debugger folder still has a pre-split checkout of the debugger 00:02
wait 00:03
git submodule update
dalek nda/eleven: b5e443f | (Tobias Leich)++ | bootstrap.pl:
workaround problemati PERL6LIB parsing
00:05
timotimo what's wrong with perl6-digest-md5? 00:06
dalek kudo/nom: abd2bc5 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm:
adapt to .pm.moarvm filename pattern
FROGGS I dunno offhand
timotimo Unable to checkout '7816bebdae5a4858e1dbb14e4e7ff23717d04a5e' in submodule path 'perl6-digest-md5' 00:07
"reference is not a tree:"
FROGGS panda/eleven still needs tweaks (include directory order, misplaced use of basename...)
gnight 00:08
timotimo gnite froggs
dalek ar: 5cd20e5 | (Timo Paulssen)++ | modules/perl6-digest-md5:
update digest-md5 module to a valid commit
00:09
ar: 83c8150 | (Timo Paulssen)++ | / (4 files):
rename rakudo-debugger folder to reflect module name change
00:11
00:19 ajr_ left, Diederich is now known as Diederich-away 00:29 xiaomiao is now known as bonsaikitten, bonsaikitten is now known as xiaomiao
timotimo m: sub returns-hash() { return %( a => 1, b => 2) }; my %result = returns-hash(); 00:33
camelia ( no output )
timotimo m: sub returns-hash() { return %( a => 1, b => 2) }; my %result = returns-hash(); 00:34
camelia ( no output )
timotimo m: sub returns-hash() { return {} }; my %result = returns-hash();
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…»
timotimo ah
00:36 BenGoldberg joined
japhb timotimo: Did my commit from earlier today fix the infinilooping perl6-bench test for you? 00:40
timotimo let me check :) 00:48
wow, list-checkouts is SLOW 00:50
hm. not as terribly slow on my laptop for some reason 00:51
yes, i get past while_pushme now 00:53
thank you!
mhm, spends 60% of time inside QX 00:54
should probably profile it on my desktop 00:55
but that's running benchmarks now 00:56
00:57 Guest95034 left
japhb \o/ 00:57
00:58 bowtie joined, xenoterracide joined, bowtie is now known as Guest70918 01:02 Guest70918 left
timotimo japhb: believe it or not, we may still get more performance out of the "simple" loop benchmarks 01:04
i stumbled over the fact that moarvm fills up the nursery with MVMStaticFrame instances over and over again 01:05
even though it probably shouldn't
01:05 bowtie_ joined
timotimo so we're wasting time going through the nursery and retaining and promoting 0 kb in total 01:05
01:06 Sqirrel left
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␤»
timotimo that doesn't sound so terrible
01:11 mephinet left
timotimo ah, list-checkouts is a lot faster when run the second time 01:11
01:13 dayangkun joined, dayangkun left
dalek rl6-bench: b9ab3aa | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs to several more microbenchmarks
01:14
japhb timotimo: Probably disk caching there
timotimo yes 01:16
the checkouts are on an HDD since i don't have enough capacity on my SSD to store all the builds
i really want an "extract-build-time" command for perl6-bench %) 01:18
01:24 erdic left, FROGGS left 01:26 FROGGS joined
japhb timotimo: You want `./bench --stop-after=time quickstart` except with chosen (non-default) checkouts? 01:29
01:29 erdic joined 01:30 erdic left, erdic joined, thou left
timotimo "--stop-after"? 01:30
didn't know about that
japhb is quite often adding new options to the various commands. :-) 01:34
01:35 exixt_ is now known as exixt 01:38 erdic left
dalek rl6-bench: aa0014a | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs to most of the for loop microbenchmarks
01:39
01:45 erdic joined
timotimo ho-hum 01:46
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:47
t.h8.lv/p6bench/2014-11-11-ten_vs_now.html - huh 01:50
01:50 immortal left
timotimo the bigger benchmarks show a different story 01:50
01:50 erkan joined, thou joined 01:51 erdic left
colomon The smoke runs have gone from 26s "stage parse" to 27s. Change happened a couple of weeks ago, I think. 01:51
01:54 espadrine` joined 01:55 danaj_ joined 01:56 espadrine_ left, integral left, danaj left, integral joined, integral left, integral joined
colomon m: say List ~~ Iterable 01:56
camelia rakudo-moar abd2bc: OUTPUT«True␤» 01:57
01:59 espadrine` left 02:00 integral left, integral joined, integral left, integral joined, hoelzro left, hoelzro_ joined 02:03 erdic joined
timotimo the speed we have now require bigger percentages of change to register :\ 02:04
02:10 cxreg left, PZt left, xinming left 02:11 cxreg joined 02:12 xinming joined, dayangkun joined 02:16 xinming left, skybluec joined 02:17 xinming joined
colomon m: my @sqrt-three := 1, (1, 2) xx *; say ($@sqrt-three) ~~ Iterable 02:17
camelia rakudo-moar abd2bc: OUTPUT«False␤»
skybluec Hi all, I'm starting to read about programming in Perl6 and have a quick question about Bools
colomon skybluec: okay
skybluec is there a good mnemonic to remember why 'so' is the prefix to turn the operand into a Bool? 02:18
I thought I'd remember it better if I had something to associate it with 02:19
colomon "if it is so", maybe? 02:20
skybluec ah, ok :)
colomon or "when it is so".
skybluec cool, thanks
colomon I think the only time I've used it is structures like when so .<lydian>
skybluec ok 02:21
colomon m: my @sqrt-three := (1, 2) xx *; say ($@sqrt-three) ~~ Iterable 02:23
camelia rakudo-moar abd2bc: OUTPUT«True␤»
colomon m: my @sqrt-three := 1, 2; say ($@sqrt-three) ~~ Iterable
camelia rakudo-moar abd2bc: OUTPUT«False␤»
colomon ah
02:25 chenryn joined, dayangkun left 02:28 KCL joined 02:31 KCL_ left, j4janicej left, j4jackj joined 02:32 skybluec left 02:34 grondilu left 02:35 j4jackj is now known as j4janicej, chenryn left, j4janicej is now known as janicez 02:36 chenryn joined, chenryn left, chenryn joined, chenryn left 02:37 chenryn joined, chenryn left, chenryn joined, chenryn left 02:38 chenryn joined, chenryn left 02:39 chenryn joined, chenryn left, chenryn joined, chenryn left 02:40 chenryn joined, chenryn left, chenryn joined, chenryn left 02:41 ChoHag left, chenryn joined, chenryn left
colomon is the debugger currently functional? I'm trying to use it, but s just stepped thrrough dozens of lines of code... 02:41
02:41 chenryn joined, chenryn left 02:42 chenryn joined, chenryn left 02:43 chenryn joined, chenryn left, chenryn joined, chenryn left 02:44 chenryn joined, chenryn left, chenryn joined, chenryn left 02:45 chenryn joined, chenryn left 02:46 chenryn joined, chenryn left, chenryn joined, chenryn left 02:47 chenryn joined, chenryn left, chenryn joined 02:48 ChoHag joined 02:50 thou left 02:53 jack_rabbit joined 02:56 xinming left 02:57 xinming joined 03:03 telex left 03:04 telex joined
dalek rl6-bench: 9af7967 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs for a few more microbenchmarks
03:08
rl6-bench: 0fb02ba | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs for the two split_string microbenchmarks
rl6-bench: eeea6e9 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs for visit_2d_indices microbenchmarks
rl6-bench: 81ee47a | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs for two more microbenchmarks
03:12 Mso150 joined 03:29 Mso150 left, Mso150 joined
timotimo colomon: note that the debugger can only stop in lines that have been compiled with the debugger "already in place" 03:30
so if you're using precompiled modules, it can't do anything about that
colomon I'm definitely not using precompiled modules here 03:31
the source file is a .t file I've been modifying repeatedly and running by hand with prove
timotimo mhm
i wonder if "s" is the same as just pressing return?
colomon s step to next statement, stepping over any calls 03:32
timotimo OK, what kinds of lines did it step over?
colomon first batch was a for loop with 9 lines in the looped block 03:33
03:33 immortal joined
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?
colomon yes, I got 33 oks before I killed it with a ctrl-C 03:34
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 erkan left
timotimo in recent times i've only ever used the debugger to single-step through regex matches 03:35
colomon made it through another several is tests after the loop, too. 03:36
could it be possible that .t files aren't supported?
timotimo that'd be silly :) 03:37
colomon yeah, I get the same nonsense with a .pl file, too.
timotimo :| 03:38
oh damn 03:39
m: #| this is documentation for the upcoming role␤role TestRole; method foobar { ... } 03:40
camelia rakudo-moar abd2bc: OUTPUT«===SORRY!=== Error while compiling /tmp/asSq2nwZRP␤Method 'foobar' must be implemented by TestRole because it is required by a role␤at /tmp/asSq2nwZRP:2␤------> ␤»
timotimo m: # this is documentation for the upcoming role␤role TestRole; method foobar { ... }
camelia ( no output )
timotimo trying to apply the documentation to the role tries to pun it, which fails because it requires an implementation of foobar
.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
timotimo .tell FROGGS Druid fails due to this exact bug above, but the reports, such as 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:43 immortal left 03:48 immortal joined 03:50 Mso150 left, erkan left
hoelzro_ timotimo: yes, that was one caveat of the S26 impl =/ 03:52
hmm
03:52 hoelzro_ is now known as hoelzro
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
hoelzro well, it's similar to the problem I knew about 03:56
03:58 immortal left 04:01 tinyblak joined, rmgk_ joined, rmgk is now known as Guest92287, rmgk_ is now known as rmgk 04:05 Guest92287 left 04:06 immortal joined 04:08 erkan left 04:17 erkan joined 04:20 immortal left 04:40 kaleem joined 04:42 mephinet joined
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:43
04:51 dzpm5mg joined, dzpm5mg left 04:58 chenryn left 05:02 xenoterracide left, immortal joined 05:03 kaare_ joined 05:04 erkan left 05:07 tinyblak left 05:11 bjz joined, FROGGS left 05:12 FROGGS joined
dalek rl6-bench: 9f8bd6e | (Geoffrey Broadwell)++ | / (2 files):
Add output and expected subs for string-escape minibenchmark
05:14
rl6-bench: fc11603 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Make a few expected subs a bit more clear
05:15 chenryn joined 05:21 kaleem left 05:23 jack_rabbit left 05:24 Tekk_` joined 05:28 Tekk_ left, cognominal left, cognominal joined
dalek Iish: 6c8aafd | ugexe++ | META.info:
meta.info provides (s11 panda badge)
05:29
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:30
05:32 Tene left
dalek rl6-bench: cfe2c50 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs for three more microbenchmarks
05:44
japhb Tene: <3 Right back atcha 05:46
05:51 kaare_ left 05:52 BenGoldberg left
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 cpandatesters.org/report/dist/Druid/1006 do not show that error. why? is it because it goes to stderr or something like that?
06:11 [Sno] left 06:13 kjs_ joined 06:15 FROGGS left 06:21 anaeem1_ joined 06:24 kaare_ joined 06:25 gfldex joined 06:27 kurahaupo joined 06:31 kjs_ left 06:41 xenoterracide joined 06:47 kaleem joined 07:06 xenoterracide left 07:15 bartolin left, bartolin joined 07:18 jfredett left, FROGGS joined 07:19 gfldex left 07:28 zoosha_ joined 07:29 BinGOs_ joined, jercos_ joined, mls_ joined 07:30 BinGOs left 07:33 darutoko joined 07:38 mls left, zoosha left, jercos left
[Tux] FROGGS++ 07:45
FROGGS [Tux]: :o) 07:46
[Tux]: thanks for the access to the hp-ux machine btw
[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
my $foo = function(...).map(...)
07:47 rurban joined
[Tux] .function(...).function(...) 07:47
.function(...).function(...);
FROGGS yeah, that's a place where you typically would unspace... my $foo = function(...).map(...)\␤ .function 07:48
I'll look into it tonight
[Tux] FROGGS++; # making people happy
FROGGS *g* 07:49
07:49 daxim left
rurban FROGGS: I also just fixed your .lex "\\o" bug right now in parrot 07:53
[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
FROGGS rurban++ # \o/ 07:55
07:56 chenryn left 07:57 rindolf joined
FROGGS rurban: yeah, housekeeping always holds one back :/ 07:58
07:59 bjz left 08:01 BinGOs_ is now known as BinGOs 08:02 rindolf left, BinGOs left, BinGOs joined 08:03 rurban left, pecastro left
masak FROGGS++ # abusing Perl 6 whitespace to find out the consequences 08:05
morning, #perl6
moritz \o masak, FROGGS, [Tux], * 08:07
08:07 chenryn joined 08:08 zakharyas joined
moritz m: say ~( 'abc' ~~ /.{1..2}/) 08:09
camelia rakudo-moar abd2bc: OUTPUT«a␤»
FROGGS morning
moritz m: say ~( 'abc' ~~ /.**{1..2}/)
camelia rakudo-moar abd2bc: OUTPUT«ab␤»
moritz m: say ~( 'abc' ~~ /.**?{1..2}/)
camelia rakudo-moar abd2bc: OUTPUT«a␤»
moritz m: my $cnt = 2; say ~('abc' ~~ /. ** { $cnt }/)
camelia rakudo-moar abd2bc: OUTPUT«ab␤»
moritz \o/
when did we get that feature? 08:10
FROGGS in may I think
moritz wow
moritz just saw that FROGGS++ resolved the open ticket for it
FROGGS moritz: you should read the changelogs :o)
moritz FROGGS: indeed I should 08:11
08:13 ghostlines joined, rindolf joined
masak not just write them ;) 08:13
moritz but, aren't changelogs a write-only language? 08:14
FROGGS eww, it is not even mentioned in the changelog >.<
it is available since 2014.08
moritz ha 08:15
that's why I missed it!
(and I didn't even contribute to the 2014.08 changelog) 08:16
08:18 daxim joined
masak that's also why you missed it! :P 08:19
08:21 rurban joined 08:22 kurahaupo left
vendethiel o/, #perl6. 08:23
FROGGS hi vendethiel 08:26
08:27 bjz joined 08:28 tinyblak joined 08:30 virtualsue joined 08:31 sqirrel_ joined
masak does /[^\n]/s in Perl 5 mean the same as \N in Perl 6? 08:31
hi m:i/Ven [. ** {7}]?/ 08:32
vendethiel masak: am I just a pretense to write perl6 regexps now :P? 08:34
masak vendethiel: you act as if that state of affairs has changed recently :P 08:35
oh and, by the way, "regexps" is p5-speak. too hard to enunciate. we call them "regexes"...
m: say /turnip\, for/.WHAT 08:36
camelia rakudo-moar abd2bc: OUTPUT«(Regex)␤»
masak digs the music
vendethiel dududu
08:37 kaleem left 08:41 kaleem joined 08:43 tinyblak left, tinyblak joined
itz moritz: method truncated-to(Date:D: Cool $unit)? 08:47
isn't that method truncated-to(Date:D: Cool:D: $unit)
the unit arg is required 08:48
08:48 molaf_ joined
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…»
moritz itz: it doesn't enforce the definedness of the argument in the signature
itz: an optional $unit would be followed by a question mark 08:50
itz OK I follow
moritz (one could argue that it should, though)
08:51 molaf__ left
masak enforce the definedness? yes, I think it should. 08:53
moritz unless we expect a Month or Year subclass of Cool that would stringy to 'month' or 'year' even in its undefined form 08:54
masak seeing that hypothetical use case written out like that makes me even less inclined to support it. 08:56
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 chenryn left
masak does 08:57
08:57 chenryn joined 09:00 tinyblak_ joined 09:01 tinyblak_ left, [Sno] joined, tinyblak_ joined 09:02 Mso150 joined
masak spectests 09:03
09:03 GibbaTheHutt joined 09:04 tinyblak left 09:24 tinyblak joined 09:28 exixt is now known as exixt_, tinyblak_ left, Sqirrel joined
dalek kudo/nom: 0c2affd | masak++ | src/core/Temporal.pm:
[Temporal.pm] require .truncated-to arg be defined

  itz++ moritz++
09:31
09:31 dakkar joined
dalek kudo/nom: 41fe4f9 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Unbreak chdir on Win32

This reverts commit 2b57f3f48812528280e6d7371517083712ff69f1.
09:31
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
lizmat afk for a few hours& 09:33
09:33 Mso150 left 09:35 Mso150 joined
FROGGS lizmat: okay, I'll test later if HEAD works 09:35
09:41 anaeem1_ left, anaeem1_ joined 09:46 anaeem1_ left 09:47 anaeem1_ joined 09:57 pecastro joined
masak moritz: two to go? please be more specific. 10:00
moritz masak: specs and docs need updating too, no? 10:02
10:05 virtualsue left 10:09 anaeem1_ left 10:10 anaeem1_ joined
masak ah, yes. someone who isn't at $work at present is welcome to task-steal those commits from me :) 10:17
otherwise I might get to it this evening, if my unreliable wetware brain reminds me of it. 10:18
10:20 ptc_p6 joined 10:31 tinyblak left, ugator joined, tinyblak joined 10:36 espadrine` joined 10:37 mls_ is now known as mls 10:41 GHAALCJT joined 10:56 virtualsue joined 10:58 Mso150 left 11:01 sqirrel_ left, leont joined 11:04 ggoebel111111116 joined 11:05 tinyblak left, tinyblak joined 11:07 ggoebel111111115 left 11:17 sqirrel_ joined
Ulti R just got something resembling the P6 feed operator cran.r-project.org/web/packages/mag...rittr.html but with a rather unusual symbol %>% 11:18
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
as far as I could tell, which function you call decides how its arguments are *parsed*.
Ulti masak it wasn't designed other than to be backwards compatible with S :'( 11:20
11:20 pecastro left 11:22 pecastro joined
masak I know. I don't know enough about S to know whether that's where the crazy comes from, though. 11:27
11:31 chenryn left 11:34 tinyblak left 11:35 tinyblak joined
Ulti yeah they cleaned up some of the crazy and added some fresh insanity :) 11:36
11:37 tinyblak_ joined
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:37
or communism I guess 11:38
11:39 kaleem left 11:40 tinyblak left 11:41 telex left 11:42 daxim left, telex joined 11:43 chenryn joined
moritz Perl 5's AnyEvent makes much more sense when you realize that CondVars are really promises 11:43
timotimo o/ 11:50
11:54 chenryn left 11:55 haroldwu left 11:56 haroldwu joined 12:01 [Sno] left, [Sno] joined 12:02 [Sno] left
moritz \o timotimo 12:03
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
timotimo perl6 tends to do that, too :P 12:07
leont Likewise, his Coro is not about coroutines but about cooperative threading
moritz leont: I know I only learned for promises a year or two ago
leont timotimo: perl6 finds new names that aren't in use yet, instead of names that already have an established meaning
timotimo OK :)
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:08
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 12:16 tinyblak joined 12:18 tinyblak_ left
jnthn But hey, at least it makes me feel useful for soemthing... :P 12:21
12:23 tinyblak left 12:24 tinyblak joined 12:30 daxim joined 12:32 ghostlines left
timotimo jnthn: you're still recovering from your vacation? :)) 12:36
12:39 anaeem1_ left 12:40 anaeem1 joined
jnthn Well, the journey home rather than the vacation itself... 12:41
My body hasn't coped as well as expected with the time shift. :S 12:42
Probably just that I was awake for so long.
Anyway, I didn't have energy for much after $dayjob, dinner, and other bits last night. 12:43
Then didn't sleep well :/
12:44 anaeem1 left
Ulti moritz have you seen search.cpan.org/dist/Promises/lib/Promises.pm 12:44
moritz Ulti: nope 12:45
timotimo jnthn: i do hope you'll feel better soon :)
jnthn Me too 12:46
leont Ulti: and metacpan.org/pod/Future 12:50
Ulti I imagine there must be Task somewhere too :D 12:51
does anyone know the best solution for P6 syntax highlighting for HTML? 12:52
moritz Ulti: I tend to use Text::VimColor
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
it's 1k lines including docs 12:54
so about 500 lines of actual code
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␤»
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␤»
Ulti oh wow it actually runs vim
rather than using the syntax file :/
moritz then it would be a few more lines :-) 12:57
timotimo m: sub test(*%a) { say %a.perl }; test foo => True bar => True
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== Error while compiling /tmp/BQizHAhhVY␤Two terms in a row␤at /tmp/BQizHAhhVY:1␤------> (*%a) { say %a.perl }; test foo => True ⏏bar => True␤ expecting any of:␤ postfix␤ infix s…»
Ulti actually thinking about it I could use gist for code examples and have GitHub do the nice pygments colouring 12:58
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
timotimo i really ought to grok the precedence of colonpair-to-operator-attachment 13:04
vendethiel expected it to bind to + as well 13:06
timotimo i expected that to blow up, too
but i don't really know how to explain this to other people :P
FROGGS it binds to the outermost thingy, no? 13:07
timotimo and it doesn't bind to test() in this case because there's no explicit postcircumfix:<( )> in that case? 13:08
13:09 guru joined 13:10 guru is now known as Guest3990, Guest3990 is now known as ajr_
FROGGS hmmm, I have no idea 13:11
13:12 ajr_ left 13:13 raiph joined 13:17 ajr joined, chenryn joined, ajr is now known as Guest56624, Guest56624 is now known as ajr_ 13:22 chenryn left, kaleem joined 13:24 denis_boyun_ joined 13:25 chenryn joined 13:29 chenryn left 13:31 lizmat_ joined 13:34 chenryn joined, anaeem1 left, lizmat left 13:36 anaeem1_ joined 13:37 khisanth_ joined, chenryn left 13:40 Khisanth left
masak today's autopun: twitter.com/Andrew_Taylor/status/5...1604380672 13:43
13:44 anaeem1_ left 13:45 anaeem1_ joined 13:49 anaeem1_ left 13:59 d4l3k_ joined 14:00 rurban1 joined 14:01 woolfy1 left, rurban left, dalek left 14:02 lizmat_ is now known as lizmat, d4l3k_ is now known as dalek, sqirrel_ left, sqirrel_ joined, jfredett joined 14:03 woolfy joined 14:17 brrt joined 14:18 sqirrel_ left 14:20 kaare_ left
timotimo d'aaw, how cute, perl8.org is a redirect to scala's website 14:21
14:21 ajr_ left
brrt o.O 14:22
gtodd so scala is just a perl6 slang ?
14:22 guru joined 14:23 guru is now known as Guest94855
vendethiel kinda. 14:24
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:25
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
14:26 ajr joined 14:27 ajr is now known as Guest74247, Guest94855 left, Guest74247 is now known as ajr_ 14:28 KCL_ joined
gtodd or a more pleasant way to program in a java environment ... 14:28
moritz alexghacker: the current advise is "do it yourself" :( 14:29
alexghacker moritz++, thanks. I was afraid of that. 14:30
timotimo advice*
gtodd there's no module for it?
14:31 KCL left
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!
alexghacker I had my hopes up for a moment
gtodd I thought I saw a .clone once upon a time
alexghacker gtodd: clone is shallow
gtodd oh I assumed there was .copy and .clone 14:32
alexghacker no copy
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
masak it has to be implemented by someone with specific knowledge of the domain they're in.
timotimo your data structures are always a tiny bit custom
no matter if you're actually just using lists and hashes
(if it's just lists and hashes, though, why not from-json(to-json())? :P )
masak well, slight correction.
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.
DeepClonable, say.
but things like file handles and database handles would specifically *not* mix those in.
and there could be a standard deep clone algorithm that handled normal stuff, up to and including cycles in the object graph. 14:37
that could be done. and it might even be worth it/a good idea. I'm not sure.
gtodd masak: the weekend is coming!! :-D 14:38
masak especially the necessary marker interface cutting across almost all the types feels... icky.
moritz or one could use the cpan approach
simply know about the built-in types that can (or cannot) be cloned
and provide some custom hooks
gtodd or both ...
masak anyhoo, I'd *much* like for this to be experimunt in a module first... 14:40
...and then we can discuss taking a well-oiled solution wholesale and maybe putting it in core. 14:41
gtodd so could there be a role that has methods which can be overridden or augmented by loading a cpanda module ? 14:42
masak "cpanda"? 14:43
tadzik: you're a freaking genius!
dalek kudo/newio: 4e45909 | (Elizabeth Mattijsen)++ | src/core/ (2 files):
Eradicate :test again
kudo/newio: a8e368f | (Elizabeth Mattijsen)++ | src/core/io_operators.pm:
dir() now returns IO::Local objects
masak all these years, I hadn't noticed that "CPAN" and "panda" have three letters' overlap! 14:44
gtodd oops ... errm "ecosystem" ...
comprehensive perl archive network distributed archive ??
hmm
heheh
tadzik masak: to be honest, I think FROGGS++ came up with this :)
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
comprehensive perl archive network distributed archive .... must switch one of the archives for another word
"awesome" :-D 14:47
masak tadzik++ # subgenius! :P 14:52
lizmat $ echo 'say $*PROGRAM' | perl6 14:53
"/Users/liz/Github/rakudo.moar/interactive".IO
masak gtodd: Comprehensive Perl Archive Network Deadly AI
lizmat
.oO( what's this magic "interactive" script we're using here? )
14:55 amkrankruleuen left 14:59 kjs_ joined, brrt left
gtodd hmm ... $PWD ... followed by .IO would make sense but "interactive" is confusing 15:01
15:02 hightower4 left 15:04 thou joined
FROGGS lizmat: btw, I am about to unbust CUR::Installation 15:05
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
lizmat huh? what did I break there ? 15:08
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
FROGGS I guess it does not tread PERL6LIB correctly, but I'll know for sure this evening
lizmat nothing to do with my recent IO work then
FROGGS correct
lizmat well, recently I have been looking at the inside of panda a lot 15:10
and there's definitely some work to be done there :-)
FROGGS btw, I merged panda/master into panda/eleven
lizmat ok
FROGGS btw, I'd really like to keep the json installation "database" files, at least until S11 handling it is not bug free 15:12
because you can easily see what is going on in there, and you can adjust stuff for testing 15:13
dealing with a binary format that's hard to read/write would not help much
lizmat ok
I'm not too sure about binary format either... but json might be too lomited 15:14
*limited
FROGGS probably yes
and slow
lizmat so I was more thinking of code that can be EVALled :-)
but am not sure of the security implications of that :-) 15:15
FROGGS why not just serialize it and spat it out do disk?
serialize as in: the serialize method the VMHash REPR has
lizmat well, that would be less readable....
FROGGS not readable*
lizmat I would be more thinking about a temporary source file that would get pre-comped 15:16
and which would export whatever we need :-)
FROGGS hmmm 15:17
that's the same approach
because a hash from a source gets precomp'd by calling serialize
15:18 tinyblak_ joined
FROGGS ahh, we can just precompile the json files 15:18
(or the .perl of our hash later)
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)
dalek kudo/newio: cfefdaf | (Elizabeth Mattijsen)++ | src/core/Process.pm:
$*EXECUTABLE is now an IO::File
15:20
lizmat FWIW, I'm going to do *all* of the changes I think are needed in the branch
and then check panda again
my assumption is now that the panda problem is really caused by an incomplete migration 15:21
15:21 tinyblak left
FROGGS yeah 15:30
15:30 Diederich-away is now known as Diederich 15:32 kaleem left 15:35 anaeem1 joined 15:37 kaare_ joined
alexghacker any clue why: « [||] $thing <<~~<< ( Array, Hash ) » would hang while « [||] $thing <<~~<< ( Positional, Associative ) » does not? 15:39
15:40 treehug88 joined, zakharyas left
ugexe how do i submit test reports to testers.perl6.org? 15:41
FROGGS ugexe: you would have to clone panda, checkout the reporter branch, and run the rebootstrap script 15:42
15:43 zakharyas joined
FROGGS ugexe: then it will send reports for every module you install via: PANDA_SUBMIT_TESTREPORTS=1 panda install FooBar 15:43
ugexe is there a way to just smoke test everything? 15:44
15:44 tinyblak_ left
ugexe just tryin to fill up the win32 code quality graphs 15:44
15:44 tinyblak joined
FROGGS ugexe: PANDA_SUBMIT_TESTREPORTS=1 panda --exclude=panda smoke 15:45
ugexe++ 15:46
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:02
16:07 tinyblak_ joined 16:11 tinyblak left
FROGGS m: say 42 <<~~<< Array 16:15
wait for it...
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
FROGGS where is masak? :o)
m: say 42 <<~~<< Hash
camelia rakudo-moar 41fe4f: OUTPUT«␤»
FROGGS m: say 42 <<~~<< List 16:16
yeah, I thought so
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
FROGGS m: say 42 <<~~<< Parcel
camelia rakudo-moar 41fe4f: OUTPUT«False␤»
alexghacker m: say 42 <<~~<< Iterable
FROGGS hmmm, that the Hash case does not output anything is also weird
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)» 16:17
FROGGS m: say 42 <<~~<< Int
camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:18 zakharyas left
alexghacker m: $h = {}; $h <<~~<< Hash 16:18
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== Error while compiling /tmp/r5oToeJwTU␤Variable '$h' is not declared␤at /tmp/r5oToeJwTU:1␤------> $h⏏ = {}; $h <<~~<< Hash␤ expecting any of:␤ postfix␤»
alexghacker m: my $h = {}; $h <<~~<< Hash
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
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…»
alexghacker m: my $h = {}; $h <<~~<< EnumMap
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…»
alexghacker m: my $h = {}; $h <<~~<< Iterable
(oh yeah, I'd already demonstrated that one) 16:20
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
16:20 denis_boyun_ left 16:21 anaeem1 left
FROGGS if I'd knew a nice short title I'd rakudobug it 16:21
16:21 anaeem1 joined 16:25 anaeem1 left 16:26 FROGGS[mobile] joined 16:27 FROGGS left 16:30 ajr_ left
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:33
raiph ugexe: irclog.perlgeek.de/perl6/search/?ni...amp;q=pipe 16:36
ugexe ah thanks 16:37
16:38 guru joined, guru is now known as Guest13800, Guest13800 is now known as ajr_ 16:39 kjs_ left
gtodd alexghacker: did "my $h = {}; $h <<~~<< Hash" ever work in earlier versions? 16:40
alexghacker gtodd: I have no idea. I just started writing perl6 last week. 16:42
FROGGS[mobile] you can test here with star-m:
star-m: say 1 16:43
camelia star-m 2014.09: OUTPUT«1␤»
alexghacker m: my $a = [ 0 ]; say $a <<~~<< ( Positional, Associative ); $a.pop; say $a <<~~<< ( Positional, Associative )
gtodd alexghacker: ok then what do you expect it to do ? :-D
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)False False␤»
FROGGS[mobile] not to hang?
gtodd star-m: my $h = {}; $h <<~~<< Iterable 16:44
camelia star-m 2014.09: OUTPUT«(timeout)»
gtodd oh I was doing the Hash one at home and the Iterable one in here ...
my $h = {}; $h <<~~<< Hash
alexghacker gtodd: my original was something along the lines of: "$subpart = deepclone( $subpart ) if [||] $subpart <<~~<< ( Array, Hash );"
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
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 ....
oh I see 16:46
alexghacker star-m: my $a = []; $a <<~~<< Positional 16:49
m: my $a = []; $a <<~~<< Positional
camelia star-m 2014.09: OUTPUT«(timeout)»
rakudo-moar 41fe4f: OUTPUT«(timeout)»
alexghacker m: my $a = [ Nil ]; $a <<~~<< Positional
m: my $a = [ 0 ]; $a <<~~<< Positional 16:50
camelia rakudo-moar 41fe4f: OUTPUT«(timeout)»
( no output )
alexghacker m: my $a = [ 0 ]; say $a <<~~<< Positional
camelia rakudo-moar 41fe4f: OUTPUT«False␤»
alexghacker m: my $a = [ 0 ]; say $a <<~~<< ( Positional )
camelia rakudo-moar 41fe4f: OUTPUT«False␤»
alexghacker m: my $a = [ [ 0 ] ]; say $a <<~~<< ( Positional ) 16:51
camelia rakudo-moar 41fe4f: OUTPUT«False␤»
alexghacker m: say Array ~~ Positional
camelia rakudo-moar 41fe4f: OUTPUT«True␤»
16:51 Juerd left
alexghacker m: say [] ~~ Array 16:52
camelia rakudo-moar 41fe4f: OUTPUT«True␤»
alexghacker say [ 0 ] ~~ Array
I didn't expect that
16:53 Juerd joined
alexghacker ah, forgot the m:... 16:53
alexghacker is ashamed
m: say [ 0 ] ~~ Array
camelia rakudo-moar 41fe4f: OUTPUT«True␤»
alexghacker m: say [ 0 ] ~~ Positional
camelia rakudo-moar 41fe4f: OUTPUT«True␤»
alexghacker m: say [] ~~ Positional
camelia rakudo-moar 41fe4f: OUTPUT«True␤» 16:54
jdv79 why is perl6-m forking (cloning) always? 16:58
in other words, what is line 100 all about here: nopaste.info/5678960089.html 17:00
17:03 tinyblak_ left, tinyblak joined 17:04 sqirrel_ joined
jdv79 oh, nevermind. not awake yet. 17:06
17:08 tinyblak left 17:10 khisanth_ is now known as Khisanth 17:11 spider-mario joined 17:15 zakharyas left 17:16 prammer left
cognominal hi, where is the parameter trait C<as> documented? 17:19
lizmat++ is using it a lot in IO related routines 17:22
17:24 treehug88 left
vendethiel cognominal: which method? 17:24
17:26 rurban1 left
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
synopsebot Link: perlcabal.org/syn/S06.html#line_2042
cognominal A random one github.com/rakudo/rakudo/blob/nom/...le.pm#L432 17:29
17:29 GibbaTheHutt left
cognominal I suppose C<as IO> results in a call of C<.IO> to convert the said parameter 17:30
vendethiel, , do you come to OSD>? have you a talk for OSDC?
vendethiel OSDC? what's that? 17:31
17:31 treehug88 joined
cognominal act.osdc.fr/osdc2014fr/ 17:31
17:31 rurban joined
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:31
vendethiel ah, I can't be there on the 22th, :( 17:32
sjn cognominal: act.osdc.no/osdc2014no/ \o/
cognominal act.osdc.fr/osdc2014fr/talks # too bad, there is a shortage of proposals
17:33 [Sno] joined
cognominal everyone knowledebable on anything perl6 is welcome to do one 17:33
I don't see (file)globs on Path related stuff 17:34
sjn, The requested URL /osdc2014no/ was not found on this server. 17:36
act.sdc.no redirects to act.osdc.no/osdc2015no/ though 17:37
ugexe i say that with the 2014.09 build of rakudo though 17:40
17:40 lucas___ joined 17:43 fhelmberger left
lucas___ Hello good people 17:45
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:45 sqirrel_ left
lucas___ for example: 17:46
raiph lucas___: this is a fundamental issue
lucas___ m: my $a := Nil; $a.this-is-ok; $a.this-too; say "alive"
camelia rakudo-moar 41fe4f: OUTPUT«alive␤»
raiph lucas___: P6 is concurrency friendly
lucas___: and P6 unifies error and exception handling 17:47
vendethiel what..?
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?␤»
lucas___ I'm think about a sub that returns something or Nil on error... 17:49
my $a = somesub();
PerlJam "Nil on error" sounds wrongish.
lucas___ And then the user uses $a without knowing it's Nil
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?
vendethiel doesn't like Nil not failing either, and doesn't see a compelling reaon 17:51
reason*
jnthn hopes something is busted with his build :/
17:52 Sqirrel left
jdv79 was your vaca better than your spectest? 17:55
jnthn Yes, thankfully... 17:56
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 : github.com/rakudo/rakudo/blob/nom/...ts.pm#L363
17:57 kurahaupo joined
jnthn cleans up and re-builds everything 17:57
17:58 leont left, regreg joined
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."? (perlcabal.org/syn/S02.html#Nil) 17:58
17:58 virtualsue left 17:59 dakkar left
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.
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)
vendethiel PerlJam: yes - sorry ;-)
jnthn crosses fingers and spectests after thoroughly cleaning up everything 18:02
18:03 anaeem1_ joined
masak comes running, panting 18:03
18:03 anaeem1_ left
jnthn OK, phew, it's looking a good bit better. 18:03
masak FROGGS[mobile]: I'm here, I'm here!
jnthn Sorry for false (hopfully) alarm.
No idea what was up.
masak FROGGS[mobile]: did you submit those yourself, or should I? 18:04
18:04 anaeem1_ joined, grondilu joined
FROGGS[mobile] masak: I did not... I was unable to think of a subject 18:04
masak oh, that's easy.
masak submits rakudobug
FROGGS[mobile] thank you 18:05
18:06 Sqirrel joined
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? gist.github.com/arnsholt/b9fba5e3c92d402bf57f
FROGGS[mobile] jnthn: rakudo should build... but maybe panda is broken on win32 18:07
TimToady one of the Perl 6 design principles is that exceptions should be reserved for exceptional circumstances 18:08
18:08 anaeem1_ left
TimToady and doing cascaded lookups is not exceptional enough to warrant sprinkling try all over your code 18:08
jnthn OK, spectest done. It's not anything like as bad as my previous one. Not so clean as before I left, alas. 18:09
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.
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 :)
TimToady and yes, one of the main motivations for reserving exceptions for catasrophic events is that exceptions interfere with fine-grained parallelism and concurrency
jnthn Well, should probably worry about dinner first, and the fact I'm not really recovered from jetlag...
tony-o rurban: i just released a module that is similar to Benchmark from p5 (but written in p6)
18:12 kjs_ left
TimToady jnthn: take good care of yourself; you're the only jnthn we have... 18:13
18:13 FROGGS joined
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
lizmat (breakage on Win32 that is)
dalek ast: 42d285c | jnthn++ | S32-io/spurt.t:
A couple of missing 'close' calls.

Windows is funny about deleting unclosed handles; need to take care of it here to keep the test portable.
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
rurban somethink like perf stat, Dumbbench comes closer when it would have better kernel access
masak jnthn: phew, those were a couple of close calls!
dalek ecs: c4c3f19 | (Stéphane Payrard)++ | S06-routines.pod:
documented C<as> trait for parameters
jnthn lizmat: Urgh...
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:15 rurban left
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?
jnthn lizmat: Random failure is...pretty ugly. :(
lizmat yes and annoying
masak jnthn: at least one of those puns was awesome. :)
lizmat because I have to retry the failing tests manually again to see whether I really didn't break anything
masak jnthn: oh right -- "you're just compounding the problem" :P
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
lizmat feels like it started already before you left on holiday
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
lizmat could you gist them? 18:18
lucas___ TimToady: thanks! I still need to study lots more to understand :)
18:18 pecastro left
jnthn lizmat: gist.github.com/anonymous/0ff022bbc09cf8522234 is the tmpdir.t one 18:18
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 ;-)
TimToady it's one of these zero-tolerance policies that I have zero tolerance for :)
vendethiel having incorrect results doesn't help me. It's making my life as a coder debugging a living hell
I don't like living in hell.
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
vendethiel has a tons of bad memories of that in ruby
vendethiel would probably like to do away with Nil in general, but that's not an option here 18:21
18:21 denis_boyun_ joined
TimToady then you're using it wrong; you should write things like @things[$x].lookup.[$y]{$which} // recover() 18:21
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 ?
TimToady or if you aren't defining a cascadable lookup API, return Failure instead
masak TimToady: incidentally, that's how I use junctions.
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.
TimToady well, it's hyperbole :)
vendethiel Failure only delays the problem even more...
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␤␤»
TimToady but yeah, you don't want to do things with control flow that can be handled with expressions, basically
jnthn lizmat: Here's all the IO failures collected: gist.github.com/jnthn/6d389e6269c24b24f97e
lizmat: Yes, probably.
vendethiel He. I guess I'm kind-of-looking for ":D by default"
TimToady it's like requiring people to use goto when math will work
vendethiel
.oO( that should be the :Default )
masak .oO( x**2/a**2 - y**2/b**2 == 1, the most *awesome* conic section! ) <== hyperbole
TimToady Failure is supposed to have a payload that tells you where it failed
PerlJam masak++ :)
masak PerlJam: just you wait until I tell you the parable. 18:25
(it's eccentric)
TimToady berates masak roundly 18:26
lucas___ BTW, I was just trying to convert the Perl 5 idiom of returning undef on error.
PerlJam lucas___: Nil is not "undef" :) 18:27
lucas___ PerlJam, *: Now I got it, thanks :)
TimToady m: undef;
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== 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 ajr_ left
TimToady that "whatever" is LTA there 18:28
since * is the whatever object 18:29
18:29 Mouq joined
TimToady std: undef; 18:30
18:30 camelia left
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
m: .foo; .bar; say 'alive'
TimToady killed camelia
lucas___ oh 18:31
sorry
:D
18:31 camelia joined
masak you... killed camelia!? 18:31
camelia: oh, there you are
TimToady she got better
masak zombie butterfly
lucas___ m: .foo; .bar; say 'alive'
TimToady she sucks the nectar from your brane
18:32 raydiak left
lucas___ will she come back automatically? 18:32
Mouq std: -> $a = 0 { $a } # bug or LTA?
TimToady startup transients...
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 ChanServ sets mode: +v camelia
Mouq O_o 18:32
camelia rakudo-moar 41fe4f: OUTPUT«alive␤»
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…»
PerlJam Mouq: bug! ;)
Mouq :9 18:33
lucas___ I'm sorry for the second try. I shouldn't have done it.
TimToady m: .say
camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
TimToady that's not right 18:34
masak submits rakudobug
TimToady m: say $_.WHAT
camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
TimToady m: say Any.foo
camelia rakudo-moar 41fe4f: OUTPUT«No such method 'foo' for invocant of type 'Any'␤ in block <unit> at /tmp/LyHlzgeukL:1␤␤»
jnthn m: sub foo() { say $_.WHAT }
camelia ( no output )
TimToady m: say Mu.foo
camelia rakudo-moar 41fe4f: OUTPUT«No such method 'foo' for invocant of type 'Mu'␤ in block <unit> at /tmp/2AFGxXjyie:1␤␤»
jnthn m: sub foo() { say $_.WHAT }; foo()
camelia rakudo-moar 41fe4f: OUTPUT«Nil␤»
TimToady should blow up on of those ways
jnthn Huh, I thought $_ was initialized to Any? 18:35
TimToady now *that* is a bad occurence of NIL
*Nil
18:35 raydiak joined
TimToady I dont know when it changed 18:35
jnthn Me either.
masak just to be clear for the bug report, what should `.say` do? 18:36
18:36 bowtie_ left
masak and what should `say $_.WHAT` do? 18:36
TimToady probably print (Mu)
jnthn Well, (Any) if it's like any other normal Scalar
masak ok, so the whole problem is that $_ contains Nil, not Mu?
TimToady or arguably that, yes
jnthn (Type-constraint is Mu, default value is Any) 18:37
masak ok.
Mouq m: -> $a = 0 { $a } # anyway 18:38
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== Error while compiling /tmp/Xy5Szv397I␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/Xy5Szv397I:1␤------> -> $a = 0 ⏏{ $a } # anyway␤ …»
masak Mouq: huh.
Mouq m: 0 { 42 }
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== Error while compiling /tmp/_b8MbmIQZD␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/_b8MbmIQZD:1␤------> 0 ⏏{ 42 }␤ expecting any of:…»
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{
masak submits rakudobug
TimToady std: -> $a = 0 { $a }
18:39 camelia left
jnthn I don't even know if we make it that far. 18:39
TimToady ooopsss
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
masak TimToady: this is starting to look like serial butterfly murder...
Mouq TimToady: STD has the same error
masak m: -> 0 { 0 }
18:41 camelia joined
masak m: -> 0 { 0 } 18:41
jnthn Mouq: Ah, I'll stop playing "spot the STD discrepancy" then ;)
18:42 bowtie joined
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
18:42 ChanServ sets mode: +v camelia
camelia ( no output ) 18:42
18:42 bowtie is now known as Guest86076
TimToady m: -> $a = (0) { $a } 18:42
camelia rakudo-moar 41fe4f: OUTPUT«===SORRY!=== Error while compiling /tmp/WwTDCj39mD␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?)␤at /tmp/WwTDCj39mD:1␤------> -> $a = (0) ⏏{ $a }␤ expecti…»
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
lizmat TimToady: S02:503 states: "Any undefined method call on C<Nil> returns C<Nil>, so that C<Nil> propagates down method call chains."
synopsebot Link: perlcabal.org/syn/S02.html#line_503
lizmat I guess we need to define a number of methods on Nil, like ".say" ?
TimToady that's not the problem 18:44
jnthn lizmat: Nil ~~ Mu, so it inherits a .say anyway I think...
TimToady the problem is that $_ is starting out Nil, not Mu/Any
jnthn And yes, that.
18:44 Mso150 joined
TimToady m: -> $a = 0, { $a } 18:45
camelia ( no output )
TimToady workaround
jnthn rule default_value {
:my $*IN_DECL := '';
'=' <EXPR('i=')>
}
TimToady m: say (-> $a = 0, { $a })(42)
camelia rakudo-moar 41fe4f: OUTPUT«42␤»
TimToady m: say (-> $a = 0, { $a })() 18:46
camelia rakudo-moar 41fe4f: OUTPUT«0␤»
jnthn That i= is what makes the , there not be taken as part of the default value
Trouble is that infix:sym<lambda> just explodes if we end up in it.
TimToady yes, but { is not a valid infix
\s{ wants to be a terminator, as in an xblock
18:46 Guest86076 left
jnthn TimToady: github.com/perl6/std/blob/master/STD.pm6#L3148 18:47
Mouq So, just :$*GOAL := '{'; ?
Mouq is still updating Moar+NQP
TimToady probably
any you can probably do it on the whole sig, not just default 18:48
jnthn Aye, then infixstopper handles it
That's better than teaching infix:sym<lambda> about preclim.
masak aye.
TimToady the whole $*GOAL thing worked out much better than it had any right to :) 18:49
18:50 bowtie_ joined
TimToady but it's really the approved way to cheat on TTIAR :) 18:51
masak wonders if that has any bearing on regex-using macros 18:52
18:54 guru joined 18:55 guru is now known as Guest80402
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
jnthn The concurrency stuff is, afaik, quite under-p6doc'd. 18:56
18:56 Guest80402 is now known as ajr_ 18:57 denis_boyun_ left 18:58 spider-mario left, kjs_ left 18:59 spider-mario joined
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 18:59
PerlJam: ...maybe :) 19:00
masak Mouq: pick something a little risky, but not too risky. 19:01
Mouq: "how to slang" would be wonderful if we figgered out, but there's no guarantee you'll finish in time.
PerlJam There's always the option of "how to slang today" with pointers at the dragony bits 19:02
raiph .oO ( what if $_ started out as a defined object, eg the compiler, or some other object that responded to methods like .help? ) 19:03
PerlJam raiph: It doesn't have to be defined to respond to .help 19:04
But ... that's an interesting idea
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
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
Though a first version is due fairly soon
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 &
masak *especially* if it pointed to a possible way forward, to make it better and more streamlined.
PerlJam what masak++ said
masak Mouq: FROGGS is the master of slanging, so you'll want to basically interview him.
Mouq: and look at his code.
FROGGS++, I mean
PerlJam
.oO( FROGGS -- Master Slanger )
19:10
.oO( slang, slang, slang .... slang of tools. :)
19:12
19:16 telex left 19:17 Sqirrel left 19:18 telex joined
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:24
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
TimToady returning undef explicitly is not usually considered good practice in P5 either 19:27
usually just "return;"
lucas___ yes, I usually prefer a empty return
19:29 gfldex joined
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
and list operators are, by necessity, looser than comma
lucas___ *more undefined than...
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:33
it has occasionally been argued that Nil should live outside of Any 19:34
since it is primarily conceptual 19:35
then most of Nil's semantics could automatically trigger on type mismatch with Any, much like junctional autothreading does 19:36
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?
anyone know Bailador well enough to send me in the right direction?
TimToady maybe you should ask on #perl6? 19:38
19:38 Mso150_x joined, Mso150 left
masak I tried that, but some guy called TimToady said I should ask here. 19:38
sergot :)) 19:39
masak touches the mirror, and it starts creeping up his arm, like cold goo
19:41 alexghacker is now known as the-mirror
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:41 the-mirror is now known as alexghacker
masak I was always a red pill kinda guy. 19:42
TimToady likes the purple pill
masak anyone want to help me with my Bailador question?
it's a really simple thing to do -- get the POST body -- but I just can't figure it out.
TimToady read the source code? 19:43
masak tried that.
moritz masak: it's request.body
masak: (found by grepping the Bailador sources and tests)
masak \o/ 19:44
moritz++
ok, will try this.
TimToady wonders if the Balmer peak for writing code turns into a Balmer valley for reading code... 19:45
m: say [[[1,2],3],4].deepmap({$_}).perl 19:48
camelia rakudo-moar 41fe4f: OUTPUT«([[1, 2], 3], 4)␤»
TimToady gtodd: ^^ a sort of deep clone
but only descends known iterables
vendethiel github.com/tombenner/ru <- This looks incredibly cool 19:49
TimToady m: say [[[1,2],3],4].deepmap(*.clone).perl
camelia rakudo-moar 41fe4f: OUTPUT«([[1, 2], 3], 4)␤»
vendethiel I might do something like that for Perl6!
TimToady m: say [[[1,2],3],4]».clone.perl
camelia rakudo-moar 41fe4f: OUTPUT«(Array.new([1, 2], 3), 4)␤»
TimToady almost right...
Diederich vendethiel: surely you're currently using metacpan.org/release/Zoidberg ? 19:50
vendethiel Diederich: what is a cpan :)?
Diederich: I don't speak perl5, sorry.
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...
gtodd cool
TimToady anyway, that's a deep clone for one definition of it 19:52
gtodd deepmap is nicer name :)
19:55 kernel joined, Guest70398 left
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:55
19:56 kernel is now known as Guest86942
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
lucas___ oops, seens like I forgot this :) 19:58
TimToady and fail() gives the caller the option to fatalize eagerly or lazily
it's appropriate for most places that are not used as cascaded lookups 19:59
gtodd plays around with scala REPL .... :history N :save .... 20:00
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:01
20:02 bowtie_ left
vendethiel also :multiline one :p 20:02
on*
gtodd vendethiel: since perl8.org claims to the "real future of perl" stealing ideas from the scala REPL will just make us more compatible :-)
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 ?
vendethiel I did one program in perl5, an IRC bot when I was 12.
20:04 bowtie joined, bowtie is now known as Guest46158
gtodd vendethiel: cause perl6 seems like it has really fledged types :-) 20:04
vendethiel gtodd: you can't compare Perl6's type system with scala's type system ;-) 20:05
though, really, scala went too far.
lucas___ So, thanks. I should use fail instead for my purposes. I may have thinked that Failure was a strong word, or something.
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:07 Mouq left
gtodd with perl6 you can get all demanding with types for say version 2 of your application :-) 20:08
20:08 kurahaupo left
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
vendethiel When I'll be able to say `sub f(::T $ --> Sign[T].some_subset)` I'll turn completly crazy
20:10 raiph left
vendethiel :) 20:10
20:10 Tekk_` is now known as Tekk_ 20:11 Guest46158 left
PerlJam vendethiel: you could just use macros ;> 20:11
vendethiel that's cheating
TimToady When all you have are macros, everything starts to look like a macro.
PerlJam vendethiel: tmtowtdi!
vendethiel ..and that's when you need to stop ;-)
20:12 bowtie_ joined
TimToady Macros are like Vice Grips®, they're the wrong tool for every job, but they'll do every job. 20:12
Er, Vise Grips 20:13
gtodd haha
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
vendethiel duct tape is the tool for some jobs...
gtodd TimToady: errm heads up there is a brand of Duct Tape called "Duck Tape" ....
TimToady yeah, I've seen that
comes in lots of colors and patterns, including Disney-esque, but oddly, there wasn't a pattern with Donald 20:15
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
but then, fail() is currently mis-implemented using a dynamic var, iirc, which propagates fatalization too deeply 20:17
it should depend only on the immediate caller, so should probably be checked at the call site, really
in which case explicit return would work the same
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
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
20:19 darutoko left
TimToady though, it doesn't really have to be all that efficient, given that failure is supposed to be exceptional 20:19
20:20 jercos_ is now known as jercos
lucas___ I wish the caller never to fatalize the failure and always treat it like a undefined value. 20:20
But I can't wish that...
TimToady that should be their policy decision, not yours
it's a breach of what I call "excapsulation"
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."
*tion 20:22
lucas___ Looks symmetrical to me... :) 20:23
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:24
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
gtodd vendethiel: how does :multiline work or where is it documented? 20:29
oosp
TimToady ^^ a very small autopun 20:30
gtodd bows
lucas___ m: use fatal; fail 20:33
camelia rakudo-moar 41fe4f: OUTPUT«␤ in block <unit> at /tmp/PSWDXsXqPj:1␤␤»
lucas___ No error message... just location.
TimToady m: fail 20:34
camelia rakudo-moar 41fe4f: OUTPUT«Unhandled exception: ␤ at <unknown>:1 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:13724 (/home/camelia/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:29)␤…»
20:35 ghostlines joined, ghostlines left, ghostlines joined 20:36 pecastro joined
jnthn lucas___: Well, you didn't give it a message... 20:37
m: use fatal; fail "oh noez"
camelia rakudo-moar 41fe4f: OUTPUT«oh noez␤ in block <unit> at /tmp/3soCTHNrHI:1␤␤»
20:37 regreg left
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
it's supposed to just influence the callee
jnthn So how should it be implemnted? 20:39
If it's influencing callees, dynvars seem natural.
Given they're the usual way we convey things that are dynamically scoped. 20:40
TimToady dynvars go too deep
jnthn ?
TimToady they have magical action at a distance down in the called code
the called code may not be expecting *its* calls to be fatalized, so all their // code breaks 20:41
jnthn Ah.
TimToady refrains from pointing out that he's been pointing this out for years... :)
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
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 :)
Well, I'd rather have a special case than a CALLER::<$?FATAL> that pessimizes everything :)
TimToady will try to think about it while on his vacation here at the timeshare... 20:44
20:44 daxim left
gtodd :-) 20:44
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
btyler_ fail fast and break things :)
TimToady but I could be rwong 20:46
jnthn Yes, CALLER certainly pessimizes stuff
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
*y b
20:48 ghostlines left
TimToady and fail could be a macro that only does one CALLER rather than a function that does two 20:48
if that's relevant
or a function that we always inline immediately, if macros are too scary :) 20:49
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
so that we avoid assuming things about our ability to examine the caller's lexical scope
but it's just one idea 20:52
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:53
since we have more space for hints than we do for bits in the callframe 20:54
and as you say, at least this use doesn't need to be that efficient
jnthn *nod* 20:55
The trouble with bit fields is you eventually run out of bits :)
TimToady Aye, to quote someone I know who's from Yorkshire. 20:56
20:56 jack_rabbit joined
jnthn only grew up there :) 20:57
TimToady well, I'm from Los Angeles...which is a really good place to be *from*.
Diederich TimToady++ amen, so say we all
21:00 raiph joined 21:04 Mso150_x left 21:05 Mso150_x joined 21:13 |Tux| joined
lucas___ jnthn: :D (i was afk) 21:13
21:13 TuxCM left 21:14 daxim joined 21:15 lucas___ left 21:16 rindolf left
FROGGS can somebody please merge this? github.com/parrot/parrot/pull/1134 21:17
masak 'night, #perl6
FROGGS gnight masak
moritz FROGGS: done 21:23
FROGGS moritz: thanks :o)
21:26 daxim left 21:29 daxim joined 21:31 denis_boyun_ joined
moritz ingy, davido___: do you still want logging for #inline? 21:32
21:33 jack_rabbit left 21:39 raiph left, Alina-malina left 21:42 cognominal left
dalek kudo/nom: 209674f | Mouq++ | src/Perl6/Grammar.nqp:
Fix RT #123176
21:42
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123176
21:43 cognominal joined
dalek ast: d89f90e | Mouq++ | S06-signature/defaults.t:
Test for RT #123176
21:43
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123176
ast: 6721083 | Mouq++ | S (9 files):
Merge branch 'master' of github.com/perl6/roast
ecs: 98fc7a4 | TimToady++ | S06-routines.pod:
Mark 'as' trait as deprecated

This feature was removed from the spec in 2012 because it does not compose well syntactically. Please use explicit coercions instead, at least until coercion types are implemented.
21:46
21:51 rurban joined
dalek d: 76ccee1 | Mouq++ | STD.pm6:
Fix RT #123176
21:52
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123176
21:52 ab5tract joined 21:55 raiph joined 21:57 colomon left
davido___ moritz : To my knowledge the desire hasn't changed. But Ingy is traveling today, so let's find out his final decision Wednesday. 21:59
jnthn Mouq++ 22:00
22:00 regreg joined 22:02 treehug88 left 22:06 kaare_ left 22:08 regreg left, virtualsue joined 22:09 prammer joined
jdv79 is it correct that there is not a full HTTP lib implementation yet? 22:09
22:09 jack_rabbit joined, bwisti joined
jdv79 HTTP UA specifically 22:10
FROGGS HTTP::UA is the best we have
if you need features, ask for it :o) 22:11
(i.e. make issues)
22:12 virtualsue left
jdv79 ok, thanks 22:12
22:13 bowtie_ left
jdv79 hmm, NativeCall failed to install 22:15
22:15 ptc_p6 left
FROGGS jdv79: are you on a 32bit machine? 22:15
jdv79 looks like it 22:16
22:17 bowtie joined 22:18 bowtie is now known as Guest1865
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
FROGGS jdv79: you can install it without running the tests... 22:19
perhaps it is enough for what you are up to 22:20
jdv79 i wanted to try HTTP::UserAgent
FROGGS there is a chance that it works out
jdv79 i think it failed before the tests: nopaste.info/f05779cb9d.html 22:21
22:21 Mso150_x left, virtualsue joined
FROGGS jdv79: you need a newer rakudo 22:21
jdv79 ok 22:22
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
p6 doesn't define it the same as C does, nor is there a 'long' type in p6
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:26
22:28 gfldex left
ab5tract TimToady: if types can be namespaced, it could go something like C::GCC::Int, C::Clang::Float, etc ? 22:29
22:32 spider-mario left
TimToady well, the final bit should probably look more like the actual type name, such as C::GCC::long_long or so 22:33
22:34 ajr_ left
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
then we wouldn't have to keep repeating it
22:35 Guest1865 left
TimToady but we do still have to distinguish C types from Perl types somehow 22:36
22:36 ptc_p6 joined 22:37 bowtie_ joined
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 ... )
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:38
japhb True 22:39
ab5tract ouch :/
dalek kudo/nom: ae1cde4 | TimToady++ | src/Perl6/Grammar.nqp:
copy STD's better undef message
22:40
22:47 leont joined
araujo looks around 23:03
araujo has not used rakudo in a while and wonders how mature it is for a (pseudo)production project 23:04
Mouq irclog.perlgeek.de/perl6/2014-11-07#i_9626379 23:05
dalek kudo/newio: c51e844 | (Elizabeth Mattijsen)++ | src/core/ (9 files):
$*CWD is now an IO::Dir
23:07 bwisti left
FROGGS araujo: I'd say that rakudo-on-moar is worth a try at least 23:08
araujo FROGGS, I will check 23:09
it's mainly for parsing magic
23:09 alexghacker left 23:10 mephinet left, denis_boyun_ left 23:11 Alina-malina joined
timotimo oooh much backlog 23:12
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:14
timotimo i'll keep that in mind :) 23:16
23:17 rurban left 23:20 bowtie_ left 23:23 bowtie joined, bowtie is now known as Guest86377 23:30 cognominal left 23:31 FROGGS[mobile] left 23:37 virtualsue left 23:41 Guest86377 left
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:45
timotimo hmm 23:46
oh, yeah, maybe that's what caused the numbers to be so weird?
japhb Could be. Should have only gotten more accurate though (delta the small time spent to actually output the results). 23:47
If you see any that look really wrong, I may need to investigate.
timotimo you ... defeated easy optimizations? :)
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.
timotimo optimized away completely?
doesn't sound terribly likely 23:49
23:49 bowtie_ joined
japhb Yeah, because people were reporting that it was overflowing 64 bits in SCALE. 23:49
timotimo oh, hehehe
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 ....
Sure ... but that would make overflowing 32 bits doable. Not 64. 23:51
timotimo hum
i don't think we actually do optimizations that would actually eliminate a loop like that
japhb Well *something* went horribly wrong.
23:55 dayangkun joined 23:56 dayangkun left