»ö« 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 1Deprecated 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 rolerole TestRole; method foobar { ... } | 03:40 | ||
camelia | rakudo-moar abd2bc: OUTPUT«===SORRY!=== Error while compiling /tmp/asSq2nwZRPMethod 'foobar' must be implemented by TestRole because it is required by a roleat /tmp/asSq2nwZRP:2------> » | ||
timotimo | m: # this is documentation for the upcoming rolerole 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:1use of uninitialized value $unit of type Str in string context in sub thread_junction at src/gen/m-CORE.setting:1use 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/BQizHAhhVYTwo terms in a rowat /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/r5oToeJwTUVariable '$h' is not declaredat /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«aliveNilstill 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/xTQu6zWjzlUnsupported 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/Xy5Szv397IUnexpected 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/_b8MbmIQZDUnexpected 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/WwTDCj39mDUnexpected 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
|