»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
00:07
tinyblak joined
|
|||
TimToady | and that fails no tests, so obviously we never tested the flattening of the method forms | 00:18 | |
dalek | ast: 931a0de | TimToady++ | S03-junctions/misc.t: test that junctional methods do not flatten |
00:19 | |
00:20
laouji_ joined
|
|||
TimToady | m: say ((1,2,3),(4,5,6)).any == 3 | 00:21 | |
camelia | rakudo-moar b80de3: OUTPUT«any(True, True)» | 00:22 | |
TimToady | m: say any((1,2,3),(4,5,6)) == 3 | ||
camelia | rakudo-moar b80de3: OUTPUT«any(False, False, True, False, False, False)» | ||
TimToady | what it used to say | ||
00:24
hobbs left
00:26
hobbs joined
00:29
rurban left
00:36
ssqq joined
|
|||
dalek | ast: 44d4696 | TimToady++ | S03-junctions/misc.t: also test that listop forms are flattening |
00:36 | |
00:39
laouji_ left,
laouji_ joined
00:41
jnthn left,
jnthn joined
00:43
gcole joined
00:44
laouji_ left
|
|||
TimToady | note this change may also have ecosystem fallout, even though roast didn't | 00:44 | |
00:48
gcole left,
laouji_ joined
|
|||
raiph | .tell jepeway I've added a comment to your gist | 00:57 | |
yoleaux | raiph: I'll pass your message to jepeway. | ||
colomon | smoke.perl6.org/report looks like there has already been some ecosystem issue over the weekend… bunch of new failures since the 23rd. | 01:00 | |
yoleaux | 24 Apr 2015 07:09Z <nine> colomon: ah, yes, I do not handle overloading at all, yet. Maybe I should have a look at that soonish. | ||
TimToady | well, this is the part of the GLR we knew we need to get out of the way because API | 01:01 | |
colomon | TimToady: aye, I just hope someone looks at the issues. :) | 01:03 | |
any idea how pm’s team did in the robot worlds this weekend? | |||
TimToady | ain't heard | 01:04 | |
01:17
TomHyer left
01:22
Spot__ joined
01:34
raiph left
|
|||
ugexe | dir("/").sort({ -.chars })>>.say # is the hyperoperator parallelizing the work, resulting in like: aaaa,bb,c,ddddddd,eeee,ff? | 01:45 | |
01:46
ilbot3 joined
01:48
chenryn joined
|
|||
ugexe | example output for a better picture: gist.github.com/ugexe/dd3169b7fe1a80e30ef6 | 01:51 | |
02:05
yeahnoob joined
02:07
ssqq left
02:08
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
dalek | kudo/nom: 9f7c71f | TimToady++ | src/core/Junction.pm: remove commented code |
02:16 | |
02:24
cognominal left
02:32
gcole joined
02:36
gcole left
02:40
ssqq joined
|
|||
ssqq | I think the method `first` of `List` should have default behaviour just like Lisp: get the first element of List. | 02:42 | |
(1,2,3).first #=> 1 | 02:43 | ||
(1,2,3).last #=> 3; (1,2,3).rest #=> (2,3) | 02:44 | ||
02:48
konsolebox joined
02:53
raiph joined
|
|||
TimToady | why duplicate [0] and such? | 02:55 | |
02:55
noganex_ joined
|
|||
TimToady | and most of the time we end up dealing with that using binding: ($first, *@rest) | 02:56 | |
besides, it should obviously be .car and .cdr :) | 02:57 | ||
02:58
noganex left
|
|||
ssqq | TimToady: last elements of array `[*-1]` is ugly, .last is better. | 03:08 | |
TimToady: .car and .cdr have been out of style, `first` and `last` is modern. | 03:11 | ||
TimToady | last is terribly ambiguous ("previous"?) and last already means something else in Perl | 03:14 | |
and nothing about Lisp can be construed as "modern" :P | |||
except in the prior-to-postmodern sense :) | |||
ssqq | TimToady: I think `(1,2,3).first` is more natural than `(1,2,3)[0]` | 03:15 | |
TimToady | and we're not in the business of pulling in every meme we can from other languages anyway--that was Perl 1's jobb :) | ||
and why overload .first anyway, when .head is unambiguous | 03:16 | ||
ssqq | Maybe I poison in `Lisp` too much. | ||
TimToady | we're quite willing to borrow ideas from other languages, but specific syntax...not so much... | ||
dalek | kudo/nom: 13aed01 | TimToady++ | src/core/Hash.pm: flattery gets .classify and .categorize nowhere |
03:17 | |
03:29
ssqq_ joined
|
|||
dalek | kudo/nom: fff887e | TimToady++ | src/core/Any.pm: min/max/minmax deflatting |
03:32 | |
skids | std: grammar A { token foo-bar { <[A]> }; token TOP { <[B] + foo-bar> } }; | ||
camelia | std 28329a7: OUTPUT«ok 00:00 138m» | ||
skids | m: grammar A { token foo-bar { <[A]> }; token TOP { <[B] + foo-bar> } }; | 03:33 | |
camelia | ( no output ) | ||
skids | oh its runtime. | ||
03:33
ssqq left
|
|||
skids | m: grammar A { token foo-bar { <[A]> }; token TOP { <[B] + foo-bar> } }; A.parse("A"); | 03:33 | |
camelia | rakudo-moar 9f7c71: OUTPUT«Method 'bar' not found for invocant of class 'A' in regex TOP at /tmp/7frYnpHMaF:1 in method parse at src/gen/m-CORE.setting:16852 in block <unit> at /tmp/7frYnpHMaF:1» | ||
03:37
ssqq_ left
|
|||
dalek | osystem: 71068f3 | (David Farrell)++ | META.list: Added Pod::Perl5 |
03:45 | |
03:52
konsolebox left
04:00
rhr joined
04:01
konsolebox joined
|
|||
labster | I'm almost tempted to define bytes as octets in S99 so I can close github.com/perl6/specs/issues/85 | 04:10 | |
04:14
chenryn left
04:18
BenGoldberg left
04:21
gcole joined,
aborazmeh left
04:25
gcole left
04:40
laouji_ left
04:41
chenryn joined
04:55
laouji_ joined
05:11
baest_ is now known as baest
05:15
kaare_ joined
05:16
skids left
05:33
chenryn left
05:36
rindolf joined
05:40
chenryn joined
05:50
raiph left
06:06
domidumont joined
06:09
diana_olhovik joined,
gcole joined
06:10
domidumont left
06:11
domidumont joined
06:14
gcole left
06:19
FROGGS joined
|
|||
FROGGS | o/ | 06:22 | |
raydiak | \o | 06:24 | |
jnthn | o/ | 06:30 | |
nwc10 | \o | ||
"you have no messages" | 06:31 | ||
including, you have no messages from ASAN | |||
jnthn | phew :) | ||
labster | \o/ | 06:32 | |
06:43
mathw_ is now known as mathw
06:44
eli-se joined
06:48
RabidGravy joined
|
|||
labster | m: 1 x "''''" | 06:56 | |
camelia | rakudo-moar fff887: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏''''' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7463 in sub parse-simple-number at src/gen/m-CORE.setting:7633 in sub parse-…» | ||
labster | hm, maybe that string in the error should escape single quotes. | 06:57 | |
06:59
Rounin joined
|
|||
jnthn | Or just pick the same quotes that regexes use to put in that error | 07:00 | |
07:03
virtualsue joined
|
|||
raydiak | m: say "" ~~ /^$/ | 07:03 | |
camelia | rakudo-moar fff887: OUTPUT«「」» | ||
raydiak | m: say "「」" ~~ /../ | 07:04 | |
camelia | rakudo-moar fff887: OUTPUT«「「」」» | ||
labster | m: (1 x "a").WHAT.say | 07:05 | |
camelia | rakudo-moar fff887: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7463 in sub parse-simple-number at src/gen/m-CORE.setting:7633 in sub parse-rea…» | ||
labster | m: my $x = "a"; (1 x "a").WHAT.say | 07:06 | |
camelia | rakudo-moar fff887: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7463 in sub parse-simple-number at src/gen/m-CORE.setting:7633 in sub parse-rea…» | ||
labster | m: my $x = "a"; (1 x $x).WHAT.say | ||
camelia | rakudo-moar fff887: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7463 in sub parse-simple-number at src/gen/m-CORE.setting:7633 in sub parse-rea…» | ||
jnthn | uh, Match objects I mean | ||
07:06
salv0 joined,
_mg_ joined
|
|||
labster | I vaguely feel like that should be a Failure, not sure why. | 07:07 | |
07:07
Rounin left
07:08
telex left
07:09
xfix joined
07:10
telex joined
|
|||
moritz | TimToady: thanks, fixed | 07:10 | |
yoleaux | 26 Apr 2015 21:53Z <TimToady> moritz: ss/need to much/need to know much/ | ||
07:13
Rounin joined,
salv0 left,
salv00 joined
07:14
salv00 left,
salv0 joined
07:18
virtualsue_ joined,
virtualsue left,
virtualsue_ is now known as virtualsue
07:20
zakharyas joined
|
|||
dalek | ast: b634151 | lizmat++ | S16-filehandles/io.t: Remove test for #124394, it's tested elsewhere |
07:24 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124394 | ||
lizmat | and good *, #perl6! | ||
labster | good * lizmat | ||
m: "a".Numeric.WHAT.say | |||
camelia | rakudo-moar fff887: OUTPUT«(Failure)» | ||
labster | m: "a".Int.WHAT.say | 07:25 | |
camelia | rakudo-moar fff887: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏a' (indicated by ⏏) in sub parse-int-frac-exp at src/gen/m-CORE.setting:7463 in sub parse-simple-number at src/gen/m-CORE.setting:7633 in sub parse-rea…» | ||
lizmat | last news about pmichaud's team is: 5th place (woolfy++) | 07:27 | |
FROGGS | (pmichaud's team)».++ | ||
nwc10 | 5th place in the known universe? | 07:29 | |
dalek | ast: 52a016a | lizmat++ | S16-filehandles/io.t: When you remove a test, adjust the count, duh! |
07:30 | |
lizmat | world championship robotics | ||
nwc10 | "world championship" is roughly "known universe", if you follow my sense of humour | ||
lizmat | I'm not that terran centric :-) | 07:31 | |
meanwhile, with all the last changes, startup on my machine has gone up from .20 to .32 seconds | 07:32 | ||
I also understand 5th out of 64 teams | |||
moritz | that's pretty impressive | 07:34 | |
jnthn | Indeed. | ||
07:34
bjz joined
|
|||
jnthn | Congrats to them :) | 07:35 | |
07:35
mr-foobar joined,
araujo joined
|
|||
jnthn | lizmat: If the NFG merge is within the scope of that increase, it's entirely possible that doing a load of NFG-ing at startup as we load various string heaps could be part of it. | 07:35 | |
lizmat: Thankfully for that one, callgrind can tell me how much of an issue it is, and I've a good idea how to solve it. :) | 07:36 | ||
lizmat | feels like it | ||
TimToady | it's unlikely to be the GLR api changes | ||
jnthn | TimToady: Agree. | ||
lizmat | agree | ||
07:36
domidumont left
|
|||
jnthn | I kinda suspected we might take a startup hit from switching NFG one, but punted worrying about that until I'd got past the "make it work" phase. :) | 07:37 | |
s/one/on/ | |||
lizmat | yeah, that's why I didn't mention it until now :-) | ||
jnthn | Anyways, I'll do some measuring tomorrow and see if that's it. :) | 07:38 | |
lizmat | kewl :-) | ||
FROGGS | TimToady: do we want to support this? my $Letter = True; say "foo..." ~~ / <:$Letter>+ / | 07:39 | |
nwc10 | jnthn: in theory, we could serialise in NFG. Or, at least, have an option, enabled during setting compiation, to serialise as NFG, and bootstrap the NFG table from the serialised blob. | 07:40 | |
or, have a "trusted" flag on the seralisation saying that we've confirmed there's nothing NFG-able in here | |||
dalek | kudo/nom: 0a68977 | TimToady++ | src/core/List.pm: deitemize combination/permutations |
07:41 | |
ast: 19ddb08 | TimToady++ | S32-list/ (2 files): de-itemize combinations/permutations |
|||
jnthn | nwc10: In practice, latin-1 already *is* in NFG, and more compact than UTF-8, and cheaper to decode than UTF-8, so we probably win more overall just by storing those strings we can as latin-1. :) | ||
(which was my plan :)) | |||
nwc10 | although if (post Christmas) someone (else) writes the 8 bit NFG, it might be that the setting uses fewer than 128 non-ASCII characters, so it can all be stored as 8 bit | 07:42 | |
TimToady | FROGGS: beats me | ||
nwc10 | but agree, seralising to Latin 1 where viable feels like a win. | ||
FROGGS | k, leave it out for now | ||
07:43
domidumont joined,
abraxxa joined
|
|||
jnthn | FROGGS: Do we do :Letter($Letter) already? | 07:43 | |
FROGGS | jnthn: yes | ||
jnthn | Hmm | ||
It's arguable :) | 07:44 | ||
It's cute :) | |||
(today) ;) | |||
FROGGS | it is a colonpair | ||
jnthn | Right | 07:45 | |
That's what makes it arguable :) | |||
FROGGS | well, it can be extended later very easily... | ||
thing is, I need to check what the jvm is doing here at all, since getuniprop_{str,int} is not supported yet | 07:46 | ||
so I probably do that first so I can apply my patches | |||
and add or unfudge tests, since there was not a single passing todo :o( | 07:47 | ||
07:49
zakharyas left
|
|||
FROGGS | m: say "foo" ~~ "foo"|"bar" ?? 1 !! 0 | 07:50 | |
camelia | rakudo-moar fff887: OUTPUT«1» | ||
FROGGS | m: say ("foo"|"bar").ACCEPTS("foo") ?? 1 !! 0 | ||
camelia | rakudo-moar fff887: OUTPUT«1» | ||
FROGGS | m: say (("foo"|"bar").ACCEPTS("foo") ?? 1 !! 0).perl | ||
camelia | rakudo-moar fff887: OUTPUT«1» | ||
FROGGS | hmmm | ||
07:50
cschwenz joined
|
|||
lizmat | m: use strict <foo bar> # what should this do ? | 07:51 | |
camelia | rakudo-moar fff887: OUTPUT«===SORRY!===This representation (P6str) does not support associative access» | ||
lizmat | my approach at the moment, is that it goes out to find a module with that name | ||
and then fail atm: | 07:52 | ||
$ 6 'use strict <foo bar>' | |||
===SORRY!=== | |||
Could not find strict in any of | |||
m: use strict | |||
camelia | ( no output ) | ||
FROGGS | and without the arglist it would use the pragma? that feels strange | ||
lizmat | well, I can let it die then and there as well :-) | 07:53 | |
FROGGS | I mean, if we do not handle options passed to pragmas yet we should say so | ||
lizmat | that's what I'm working on now | ||
before, any options passed to pragmas were simply ignored or caused LTA errors | |||
cschwenz | That also has huge potential to conflict with design.perl6.org/S22.html#emulates | ||
FROGGS | ahh | ||
07:55
zakharyas joined
07:57
bjz left
07:58
bjz joined,
gcole joined
|
|||
FROGGS | cschwenz: in what way? | 07:59 | |
cschwenz | "use JSON::XS:auth<cpan:MLEHMANN>;" | 08:00 | |
admitedly there is an "auth" there, but still… | |||
*admittedly | 08:01 | ||
FROGGS | I still don't see a connection to pragmas here | ||
jnthn | There's no ambiguity; the :auth is part of the name | 08:02 | |
Arguments come after whitespace | |||
use Foo :auth<bar>; # use Foo, pass one argument (and probably get an error for trying) | 08:03 | ||
08:03
gcole left
|
|||
lizmat | so jnthn, you're saying that: | 08:04 | |
$ 6 'use strict:auth<foo>' | |||
===SORRY!=== | |||
Could not find strict in any of: | |||
feels correct but: | |||
dalek | ast: eec1d5e | TimToady++ | S32-list/ (2 files): .unique and .squish don't flatten |
||
08:04
andreoss joined
|
|||
lizmat | $ 6 'use strict <foo bar>' | 08:04 | |
===SORRY!=== | |||
Could not find strict in any of | |||
dalek | kudo/nom: 3a2f8a5 | TimToady++ | src/core/List.pm: .unique and .squish don't flatten |
||
lizmat | should fail with something like "strict doesn't take any parameters" ? | ||
jnthn | lizmat: The latter is certainly correct | 08:05 | |
lizmat: The first we may want to recognize they're using a built-in pragma that doesn't accept ver/auth search. | |||
lizmat | ok, I'll make it that way then | 08:06 | |
jnthn | And so give a slightly more helpful error. | ||
Otherwise we'll only get somebody reporting it as LTA :P | |||
lizmat | but only if the module cannot be found? or not try to load anyway ? | ||
08:07
virtualsue left
|
|||
jnthn | lizmat: My first inclination is "don't even try", but maybe that's restricting people writing their own definition of strict...otoh we don't have the facilities to really do such a thing yet. | 08:07 | |
lizmat | if we would allow access to %*PRAGMAS, it could work, no? | 08:08 | |
jnthn | %*PRAGMAS is just a stand-in for now | ||
We need a better mechanism eventually. | |||
Ties into masak++'s QTree work, I suspect. | 08:09 | ||
lizmat | ok, well, then we shouldn't restrict just yet, then | ||
jnthn | yeah...guess it's Perl-ier not to :) | ||
lizmat | fwiw, my next thing would be using the %*PRAGMAS framework for handling 'use lib' | 08:10 | |
jnthn | So maybe you already have it right. :) | ||
andreoss | the readline interface is now broken with perl6-m | 08:16 | |
jnthn | readline interface? | ||
08:16
darutoko joined
|
|||
andreoss | repl | 08:16 | |
how do you call it? | 08:17 | ||
jnthn | Broken in what sense? | ||
I think you need to install some module to get history/tab-completion support. | |||
(Since it was moved out of the VM) | |||
cschwenz | andreoss: do you mean the linenose reimplementation of readline? | ||
*linenoise | 08:18 | ||
andreoss | ^A, ^E etc don't work | ||
so i putted rlwrap in bin/perl6 | |||
it was a nice feature, I guess some people want it out of the box. | 08:20 | ||
jnthn | I assume we'll ship the module needed with R*, so most end users will get it out of the box. | ||
08:21
sqirrel joined
08:27
dakkar joined
|
|||
dalek | kudo/nom: 34f7992 | lizmat++ | src/Perl6/ (2 files): Move module loading logic to World Step #1 towards making module loading more S11/S22 compatible. |
08:28 | |
08:35
bjz left
08:36
domidumont1 joined
08:38
domidumont left
08:40
zeleiadi joined
|
|||
dalek | kudo/nom: 1dd95d4 | lizmat++ | src/ (2 files): Make 'use strict <foo bar>' give a better error |
08:43 | |
lizmat | afk for a bit& | 08:44 | |
08:50
bjz joined
08:54
hobbs left,
laouji__ joined
08:55
hobbs joined
08:57
laouji_ left
08:59
[Tux] joined
|
|||
dalek | kudo/nom: 589da72 | lizmat++ | src/Perl6/World.nqp: Don't use try if it's not needed |
09:03 | |
lizmat is off for some flea market hunting on king's day | 09:04 | ||
09:04
bjz left
|
|||
DrForr | Rather glad NLPW wasn't during King's Day this time 'round. | 09:05 | |
09:08
salv0 left
09:11
espadrine joined
09:12
darutoko left
09:13
darutoko joined
09:24
domidumont joined,
salv0 joined
09:27
zeleiadi left,
domidumont1 left
09:29
rurban joined
|
|||
RabidGravy | is there any particular reason that, e.g., Promise, uses nqp::lock, nqp::unlock directly rather than using Lock.protect() ? | 09:29 | |
jnthn | Performance tuning is the good answer now, but the historical one is that Promise came first. | 09:31 | |
masak | good antenoon, #perl6 | 09:32 | |
RabidGravy | er | ||
p | |||
erp | |||
masak | m: say "er" ~ "p" | ||
camelia | rakudo-moar 589da7: OUTPUT«erp» | ||
RabidGravy | :) | ||
masak | m: sub infix:<~->($big, $small) { $big.subst($small, "") }; say "erp" ~- "p" | 09:33 | |
camelia | rakudo-moar 589da7: OUTPUT«er» | ||
[ptc] | m: qqx{perl6 /tmp/not-existent.txt} | 09:35 | |
camelia | rakudo-moar 589da7: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub QX at src/RESTRICTED.setting:11 in block <unit> at /tmp/NFohEJ3iFP:1» | ||
09:35
bjz joined
09:36
yeahnoob left
|
|||
jnthn | o/ masak | 09:36 | |
masak | Perl 6 day today \o/ | 09:40 | |
I should probably start by looking at the RT queue | |||
notably #124321 | 09:41 | ||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124321 | ||
dalek | pan style="color: #395be5">perl6-examples: 7b0ad5d | paultcochrane++ | categories/shootout/fasta.p6: Correct filename in usage information |
09:43 | |
pan style="color: #395be5">perl6-examples: 33de77f | paultcochrane++ | categories/shootout/k-nucleotide.p6: Don't use tabs in output Correct example now that .map isn't flat After the change ecd3159 which stopped .map from flattening, this example stopped working. To have the equivalent functionality, one needs to use .for instead of .map. |
|||
jnthn | Calling .^make_pun is surely wrong | ||
FROGGS | but funny :D | ||
jnthn | It'll create one every time | ||
09:43
dalek joined,
ChanServ sets mode: +v dalek
|
|||
jnthn | .^inheritalize gets the pun | 09:44 | |
RabidGravy | dalek got exterminated? | ||
the irony | |||
FROGGS | uff, this autothreads the .ACCEPTS call: perl6 -e 'say "foo0½¼1bar" ~~ / <:Arabic("Latin" | "Common")>+ /' | ||
jnthn | Though maybe we should have a .^pun that does similar, and make inheritalize delegate to it. | ||
masak | +1 | 09:45 | |
ok, so that was easy. the problem is in... NativeCall, then? | |||
FROGGS | yes | ||
masak adds this to the ticket | 09:48 | ||
masak tries to reproduce the original problem, and also to make it go away with .^inheritalize | |||
yep, and yep. | 09:49 | ||
vendethiel | m: class A{has $.a;sub f {:$.a}}; say A.new(:5a).f.perl | 09:50 | |
camelia | rakudo-moar 589da7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fomgrrQnWpVariable $.a used where no 'self' is availableat /tmp/fomgrrQnWp:1------> 3class A{has $.a;sub f {:$.a7⏏5}}; say A.new(:5a).f.perl» | ||
vendethiel | m: class A{has $.a;method f {:$.a}}; say A.new(:5a).f.perl | ||
camelia | rakudo-moar 589da7: OUTPUT«:a(5)» | ||
masak | - typed.^make_pun; | ||
+ typed.^inheritalize; | |||
fixes it. | |||
vendethiel | .oO( he's taking away our puns! ) |
09:51 | |
masak | vendethiel: but note in the backlog that there's the possibility of adding a .^pun meta-method | ||
09:54
gcole joined,
gcole left
|
|||
jnthn | Yes, but the MOP could make it prettier to get right :) | 09:54 | |
09:54
andreoss left,
Alina-malina left
|
|||
masak | -Opretty | 09:54 | |
09:55
Alina-malina joined
|
|||
jnthn | masak: If you fancy doing the MOP patch, then move the logic in RolePuning.nqp's inheritlaize method into a pun method, and make inheritalize call pun | 09:56 | |
09:56
Alina-malina left
|
|||
nwc10 | [ptc]: are you killing dalek again? :-) | 09:56 | |
masak .oO( <hulk smash> Puny Role! ) :P | 09:58 | ||
we're gearing up for lunch here, so the fix'll have to be after that. | 10:02 | ||
but the path forward seems clear. | |||
FROGGS | m: say '0.0' ~~ 0 ^..^ 1 | 10:03 | |
camelia | rakudo-moar 589da7: OUTPUT«True» | ||
FROGGS | m: say 0.0 ~~ 0 ^..^ 1 | ||
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
jnthn | munch lunch then punch | ||
FROGGS | :o( | ||
m: say '1.0' ~~ 0 ^..^ 1 | 10:04 | ||
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
FROGGS | ? | ||
there is a bug, right? | |||
jnthn | m: say (+'0.0').perl | ||
camelia | rakudo-moar 589da7: OUTPUT«0.0» | ||
jnthn | m: say +'0.0' > 0 | ||
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
jnthn | Hm, and an odd one at that. | ||
m: say +'0.0' > 0e0 | |||
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
jnthn | m: say +'0.0' > 0.0 | ||
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
FROGGS | well, tbf the range code for .ACCEPTS is kinda hairy | 10:05 | |
but that also means that my colonpair unicode property patch is fine | 10:07 | ||
10:12
Alina-malina joined
10:14
lolisa joined
|
|||
FROGGS reported it as RT #124400 | 10:15 | ||
m: say '0.0' cmp 0 | |||
camelia | rakudo-moar 589da7: OUTPUT«More» | ||
timotimo | o/ | 10:18 | |
10:19
chenryn left,
dayangkun left
10:21
MARTIMM joined
10:26
domidumont left,
domidumont joined
|
|||
masak | FROGGS++ # RT #124440 | 10:33 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124440 | ||
10:33
eli-se left
|
|||
masak | (kind of missing from that bug report: expectations, Rakudo version) | 10:33 | |
though the expectations can be filled in by a reader who wants to hazard a guess, it's always good to be specific. | 10:35 | ||
10:36
mr-foobar left
|
|||
jnthn | *nod* | 10:37 | |
It's a tricky one since I *think* cmp is behaving as designed when being given two different types. | 10:38 | ||
10:48
gcole joined
10:50
chenryn joined
10:53
gcole left
10:57
eli-se joined
|
|||
masak | right. it's more obviously wrong with the infix:<~~>, because there a cast to the rhs type is kind of expected. | 10:58 | |
11:03
chenryn left
11:04
chenryn joined
11:22
eli-se left
11:26
raiph joined
|
|||
RabidGravy | does the Scheduler.cue({}, :every => 2) have a higher level abstraction? | 11:26 | |
(I can't find one) | 11:27 | ||
masak | RabidGravy: what kind of higher-level abstraction are you looking for? | 11:28 | |
RabidGravy | any really - you can get plain cue({}) and cue({}, in => 1) from Promise but every and times not | 11:29 | |
In the concurrency document I am trying to draw the comparison between the higher and lower level interfaces | 11:31 | ||
11:32
muraiki joined
|
|||
RabidGravy | every() for instance could be a method on Promise that returns a Supply that emits a promise for every execution of the code | 11:32 | |
(and times() similarly) | |||
timotimo | you can get a periodic supply to call your stuff for you | 11:33 | |
doc.perl6.org/routine/interval | 11:34 | ||
RabidGravy | ah, yes I had completely forgotten that, cheers | ||
stand easy | |||
all good then, I can stop worrying, but actually the thought experiment of how I might implement that is fruitful anyhow | 11:44 | ||
11:47
eli-se joined
11:56
domidumont left
11:57
gcole joined
12:03
domidumont joined
12:04
laouji__ left
12:05
colomon left
12:06
colomon joined
|
|||
[Tux] | <slik>Another 20% slowdown?</slik> | 12:10 | |
12:11
abraxxa left
|
|||
rjbs- | Does p6 have the equivalent of Python's for/else? | 12:12 | |
timotimo | rjbs-: i can never remember how exactly that works | ||
[Tux]: please keep in mind that there's currently a significant slow-down the more modules you have in your database | |||
[Tux] | it is *runtime* not startup time | 12:13 | |
two days ago 35.5 seconds, yesterday 41, today 49 | |||
12:14
chenryn left
|
|||
timotimo | good to know | 12:14 | |
[Tux] | testing again, might have hit a bad moment | ||
timotimo | but yeah ... that sucks :( | ||
12:14
raiph left
|
|||
[Tux] | 39 now | 12:14 | |
rjbs- | timotimo: The else block is called if the for loop was not ended early. | 12:15 | |
12:15
abraxxa joined,
rjbs- is now known as rjbs
|
|||
[Tux] | I kanda liked Davids proposal | 12:15 | |
12:16
rjbs left,
rjbs joined
|
|||
[Tux] | and/or zefram's contuniue/on_last/on_complete | 12:16 | |
12:16
raiph joined
|
|||
timotimo | [Tux]: ok, that's still bad, but at least doesn't seem like a new regression | 12:17 | |
[Tux] | indeed | 12:18 | |
github.com/Tux/CSV/blob/master/README.speed for the pro/regression since 201410 | |||
12:26
eli-se left,
MARTIMM left
12:28
eli-se joined
|
|||
[Tux] | error reporting is currently waaaaaaay of with the line number: | 12:33 | |
Attribute $!errors not declared in class Text::CSV | |||
at /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pm:1511 | |||
that should have been line 464 | |||
1511 is the first line *after* the class | |||
hoelzro | morning #perl6 | 12:37 | |
cschwenz | o/ hoelzro | 12:38 | |
hoelzro | o/ cschwenz | ||
FROGGS: do you have an idea on how compunit file naming could work differently in the future to support .so/.dll/etc files? | 12:39 | ||
I would like to help with that effort so that Linenoise is ready by the next release | 12:40 | ||
12:42
lolisa left
|
|||
FROGGS | hoelzro: can talk about that later? | 12:43 | |
hoelzro | FROGGS: sure, just ping me when you're available | 12:44 | |
FROGGS | k | 12:45 | |
thanks :o) | |||
hoelzro | no problem =) | 12:46 | |
masak | hello from a train! | 12:47 | |
hoelzro | o/ masak | 12:48 | |
moritz | \o | ||
nine | hoelzro: at the PQAH using a (numeric) folder per distribution and plain file names within that folder looked like the solution | ||
FROGGS | nine: that's at least my current favourite | 12:49 | |
though we should perhaps Punycode the filenames | |||
nine | Sounds like a sensible precaution | 12:50 | |
FROGGS | but taking care of MyDist/share and installing it into a sensible location is something that can be done in parallel to fixing the other issues | ||
hoelzro | that seems reasonable | 12:54 | |
if you punycode the filename, though, what happens for .so and .dll files, since it's the c library/OS that locates them, rather than the VM? | |||
FROGGS | hoelzro: well, they hopefully are ascii only... or we decide to not punycode stuff from share | 12:56 | |
moritz | I'd only punycode stuff that the VM loads | 12:57 | |
FROGGS | that would be bin/ and lib/ | 12:58 | |
moritz | lib/ | ||
do we ever load bin ourselves? | |||
FROGGS | well, we locate them via compunitrepos | ||
but that covers All The Things of a dist anyway | 12:59 | ||
moritz | which operation causes us to look for stuff in bin/? | ||
12:59
sqirrel left
|
|||
masak | ok, now let's try and spectest and fix #124321... | 12:59 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124321 | ||
FROGGS | running such a script | ||
moritz: like when you run the installed 'panda' | |||
moritz | FROGGS: and there's a wrapper involved somewhere? | 13:00 | |
FROGGS | it will look for a 'bin/panda' in the compunitrepos, and will run that | ||
aye | |||
13:00
felher joined
|
|||
moritz | eeks | 13:00 | |
FROGGS | so you can have multiple dists providing a panda binary/script | ||
moritz: when have you been since dec' 2013? | |||
moritz | when indeed? | 13:01 | |
or where, for that matter? | |||
FROGGS | no, I mean you are asking stuff that was discussed several times (and there exist advent posts about that topic) | ||
moritz | yes, my p6 involvement has been declining | 13:02 | |
FROGGS | thing is we need a way to support multiple versions of dists, which cover dists that provide executables | ||
masak knows the feeling :/ | |||
used to be a time I backlogged everything. everything! | 13:03 | ||
moritz | FROGGS: ok, good point | ||
masak: same here | |||
and then came kid no. 2 | |||
FROGGS | so we install a generic wrapper script, that does the same magic as a 'use' statement for modules | ||
or 3 :o) | |||
hoelzro | I think we're going to have to make NativeCall aware of the compunit repo stuff | 13:04 | |
FROGGS | hoelzro: I'd prefer a more general solution | ||
masak .oO( this problem requires... a more *general* solution. <mad laughter> ) | 13:05 | ||
hoelzro | FROGGS: what I mean by that is I think if we're going to store .so and .dll files at locations in the repository, we can't rely on the OS dynamic linker to be able to find them | ||
FROGGS | so if you compile a lib (to /share in your dist), you shall be able to do: sub mynative() is native(%?RESOURCE<share/mylib.so>) { ... } | ||
or something like that | |||
hoelzro | hmm, I think that would work | ||
depending on the linker impl | 13:06 | ||
FROGGS | yes, the OS will not look everywhere for libs, that's for sure | ||
moritz: sorry if my comment earlier was offending :S | 13:08 | ||
colomon | masak, moritz: I don’t think I ever backlogged everything. :) Do wish I had more time for p6, but then, right now I pretty much wish I had more time for everything. | ||
13:09
_mg_ left
|
|||
moritz | FROGGS: it wasn't | 13:10 | |
FROGGS | phwe | ||
phew* | |||
hoelzro | for the time being, maybe I should disable the linenoise check, or at least have a way to override it | ||
moritz | sometimes I'm just wondering myself where I've been | ||
FROGGS | hoelzro: why? does it hurt? | ||
masak | colomon: yeah, same. | ||
hoelzro | FROGGS: if you have Linenoise installed, you can't run the REPL at all | 13:11 | |
because Linenoise.pm can't find liblinenoise.so | |||
masak | colomon: it seems to be a repeating thing that I have a bunch of good ideas when I have absolutely no time to implement them. instead, I try to write things down. | ||
FROGGS | ups | ||
masak | spectest failure in t/spec/S17-channel/basic.t | ||
"Bad plan. You planned 17 tests but ran 16." | |||
passes if I run it directly, either with `perl6` or with `make` | 13:12 | ||
(oh, and the spectests were run with TEST_JOBS=4, so maybe that's a factor, too) | |||
13:14
cognominal joined
|
|||
masak | we have no NativeCall tests in t/spec ? | 13:15 | |
FROGGS | only in t | 13:17 | |
masak: it is not part of the language | |||
masak | oh! | 13:18 | |
where should the test for #124321 go? it does test for a bug in NativeCall. | |||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124321 | ||
masak | t/04-nativecall/04-pointers.t seems the perfect place for it. | 13:19 | |
FROGGS | yeah, think so too | 13:20 | |
DrForr | It's resolved? Yay. | ||
FROGGS | a one line fix IIRC | ||
masak++ | |||
DrForr | Yeah, ^.make_pun is repeating itself. | ||
masak | DrForr: about to write a test and then fix it. so not quite yet. | 13:21 | |
DrForr | Ah, okay. | ||
masak | I'm on a train, so if I drop out unexpectedly it's because the train has formed its own private little Internet all of a sudden. | ||
masak wonders if he's the Rakudo committed with the highest average velocity per commit | 13:22 | ||
DrForr | Depends. Are you on the Eurostar? | ||
FROGGS | hmmm, has jnthn already committed from a plain yet? | 13:24 | |
moritz | I'm pretty sure pmichaud has | 13:25 | |
masak | pointed question (no pun intended): | 13:29 | |
there are two occurrences of .make_pun in NativeCall.pm | |||
one in Pointer, one in CArray | |||
both of them are in a ^parameterize method | |||
13:29
Possum joined
|
|||
masak | are both wrong? (defaulting to "yes", but want to double check) | 13:29 | |
i.e. should both be replaced by a call to .^inheritalize ? | 13:30 | ||
FROGGS | masak: very likely yes | 13:31 | |
masak: because I used CArrays as a preset for Pointers | 13:32 | ||
masak | FROGGS: are you savvy enough to produce a failing test case, similar to the minimal one in rt.perl.org/Ticket/Display.html?id=124321 but for CArray ? | ||
then I could add it to the test file. | |||
FROGGS | I can try | 13:34 | |
13:34
pyrimidine left,
pyrimidine joined
|
|||
masak | ++FROGGS | 13:35 | |
masak just realized he has to write some C code for this test | |||
13:36
andreoss joined
|
|||
FROGGS | m: use NativeCall; class Bug { sub rl_get_screen_size( Pointer[Int], Pointer[Int] ) is native( 'foo' ) { * }; method rl-get-screen-size( Pointer[Int] $r, Pointer[Int] $c ) { rl_get_screen_size( $r, $c ) } } | 13:36 | |
camelia | rakudo-moar 589da7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yrmE8kMqXOCalling rl_get_screen_size(Pointer, Pointer) will never work with declared signature (Pointer, Pointer)at /tmp/yrmE8kMqXO:1------> 3e( Pointer[Int] $r, Pointer[Int] $c ) { 7⏏5rl_get_scre…» | ||
andreoss | m: (1...10).rotor(3,2).perl.say | ||
camelia | rakudo-moar 589da7: OUTPUT«((1, 2, 3), (4, 5), (6, 7, 8), (9, 10))» | ||
andreoss | is it wrong? | ||
FROGGS | that's the example from the ticket | ||
masak | right. | 13:37 | |
moritz | andreoss: .rotor changed shortly after the release | ||
andreoss: and it's right that way by the new design docs | 13:38 | ||
masak | I'm currently trying to get a test to express this using eval_lives_ok -- since the error happens during the compile phase, that feels reasonable. | ||
moritz | andreoss: if you want the old (3 elemes with 2 overlap, you must say) | ||
andreoss | what is the name of old rotor method? | ||
moritz | m: say (1..10).rotor(3 => -2).perl | ||
camelia | rakudo-moar 589da7: OUTPUT«((1, 2, 3), (2, 3, 4), (3, 4, 5), (4, 5, 6), (5, 6, 7), (6, 7, 8), (7, 8, 9), (8, 9, 10))» | ||
moritz | andreoss: rotor | ||
andreoss | ok, thanks | ||
masak | having limited success so far. it gives a different error from within the eval_lives_ok :/ | 13:39 | |
FROGGS | masak: ahh, now I got ya... I shall write a test for CArray, not Pointer | 13:41 | |
masak | sorry if that was unclear :) | 13:42 | |
yeah, I think I got the Pointer case already. setbacks notwithstanding. | |||
FROGGS | m: use NativeCall; class Bug { sub foo-sub( CArray[int8] ) is native( 'foo' ) { * }; method foo-method( CArray[int8] $c ) { foo-sub( $c ) } } # masak | ||
camelia | rakudo-moar 589da7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S9mQ3TC8akCalling foo-sub(IntTypedCArray[int8]) will never work with declared signature (IntTypedCArray[int8])at /tmp/S9mQ3TC8ak:1------> 3 method foo-method( CArray[int8] $c ) { 7⏏5foo-sub( $c ) …» | ||
13:43
hobbs left
|
|||
masak | aha. I needed to `use NativeCall` inside of the eval. | 13:43 | |
FROGGS: thanks! | 13:44 | ||
FROGGS: you just won us another test today! :) | |||
FROGGS | \o/ | ||
masak | will commit these separately. | ||
yep -- this test captures it. | 13:45 | ||
(git stash -p) # like, seriously, ++ | |||
er | |||
(git stash -p)++ # like, seriously, ++ | |||
13:45
hobbs joined
|
|||
dalek | kudo/nom: 1c916bc | (Carl Masak)++ | / (3 files): Pointer.^parameterize made fresh puns every time It shouldn't -- this commit fixes that, with a regression test. Bug discovered by DrForr++. This takes care of RT #124321. |
13:48 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124321 | ||
masak | ok, I'm gonna close the ticket first, then fix all the rest. | 13:49 | |
(I also found a flaw in Str.indent that I want to address later. work begets more work.) | |||
13:50
xfix left
|
|||
colomon | masak++ | 13:51 | |
masak | coming back to Perl 6 and tinkering like this feels like therapy. | 13:52 | |
13:53
jdv79 left
|
|||
colomon | masak: absolutely yes | 13:54 | |
13:54
jdv79 joined,
dayangkun joined
|
|||
colomon | masak: sometimes it feels like the small stuff I manage to accomplish for p6 is the only positive thing I ever do with computers. :\ | 13:54 | |
13:55
dayangkun left,
dayangkun joined
|
|||
masak hugs colomon | 13:56 | ||
moritz | masak: that reminds me of my doc writing experience, where quite often I notice some imperfections and want to fix them instead of documenting them | ||
masak | moritz: in the RPG analogy, we're multiclass, I guess. | 13:57 | |
13:58
alini joined
|
|||
[Tux] | Files=21, Tests=19054, 56 wallclock secs ( 2.91 usr 0.17 sys + 144.75 cusr 1.63 csys = 149.46 CPU) | 13:58 | |
Result: PASS | |||
.oO( it'll be harder and harder to sneak new errors in without being detected ) |
13:59 | ||
moritz | masak: in the RPGs I've played, everybody eventually learned to fight :-) | ||
14:01
skids joined
|
|||
dalek | kudo/nom: 2ce3cda | (Carl Masak)++ | / (3 files): CArray.^parameterize made fresh puns every time It shouldn't -- this commit fixes that, with a regression test. Bug discovered while working commit 1c916bc62bffd4c921132fb4e04191dddb1a9cba. FROGGS++ confirmed that the code in CArray was based on Pointer, and provided the failing test case (FROGGS++). |
14:01 | |
14:02
_mg_ joined
|
|||
masak | [Tux]: I hope I remember to say this regularly, but -- the work you're doing with CSV is very important, and has found real bugs in Rakudo and noticeably increased quality in some of our processes. | 14:03 | |
[Tux]++ | |||
FROGGS | it is such an awesome feeling to remove the last fudge line from a test file by implementing something... | ||
14:04
eli-se left
14:12
skids left
14:13
skids joined
|
|||
moritz | FROGGS: oh yes | 14:13 | |
FROGGS | m: say "\x[1ea2]\x[5b4]def" ~~ m/\c[LATIN CAPITAL LETTER A WITH HOOK ABOVE,HEBREW POINT HIRIQ]/ | 14:16 | |
camelia | rakudo-moar 589da7: OUTPUT«False» | ||
cognominal | what is a pun in this context? | 14:17 | |
dalek | c: 76c3921 | (Jonathan Stowe)++ | lib/Language/concurrency.pod: start on Promises |
14:19 | |
c: a91940a | (Jonathan Stowe)++ | lib/Language/concurrency.pod: More promises |
|||
c: a75537b | (Jonathan Stowe)++ | lib/Language/concurrency.pod: largely done with Promises |
|||
masak | m: role R { method greet { say "OH HAI" } }; R.new.greet | ||
camelia | rakudo-moar 2ce3cd: OUTPUT«OH HAI» | ||
masak | cognominal: the role R acts as a class in order for us to be able to run .new on something | 14:20 | |
cognominal: that's punning. | |||
(I mildly dislike that in Perl 6, the word "punning" got to mean basically only this conversion. whereas in wider CS it refers to any implicit type conversion, for example from 0 to False.) | 14:21 | ||
FROGGS | there is not a single test for <:Foo($bar)> it seems :o( | 14:23 | |
cognominal | masak: so that is a reification of a role into a class so as to use like a class? | 14:24 | |
masak | cognominal: yes. | ||
cognominal: basically the role composing "into itself", or into an empty anonymous class, or how best to express it. | 14:25 | ||
cognominal | so it means only that sort of implicit conversion, from role to class? | ||
14:25
dayangkun left
|
|||
masak | in Perl 6 it only means that. in a wider, non-Perl 6 context, it can refer to any implicit conversion. | 14:26 | |
14:26
eli-se joined
|
|||
masak | see en.wikipedia.org/wiki/Type_punning | 14:27 | |
arnsholt | In C type-punning is a pointer a* being reinterpreted as a b* IIRC | ||
cognominal | pointer punning for the punter... | 14:29 | |
excuse my londonian French | 14:30 | ||
ShimmerFairy | Hm, I've gotten to a point where I need a sublist for a delimited block item (=begin item/=end item), and I have to say it feels incredibly weird that I have to put =item2 blocks *outside* the =begin item block | 14:31 | |
I'd rather be able to put an =item (not =item2) in the delimited item block. | 14:32 | ||
14:35
skids left
|
|||
masak | ShimmerFairy: that does sound a bit weird, yes. | 14:43 | |
and (if I may say so), insufficiently Damianesque. | 14:44 | ||
ShimmerFairy | masak: the =item2 and such variants are useful when you're not using delimited blocks, but in the case of delimited blocks it feels more sensible to have nesting =item blocks instead. | ||
(but even then, there _might_ be a weak argument that sublists make the parent list item inherently multi-paragraph, and thus requiring the delimited form and making =item2 etc. useless) | 14:46 | ||
dalek | kudo/nom: 71b0f06 | (Carl Masak)++ | src/Perl6/Metamodel/RolePunning.nqp: create RolePunning.pun method as outlined in the discussion at irclog.perlgeek.de/perl6/2015-04-27#i_10508709 |
14:51 | |
14:53
skids joined
|
|||
masak | ShimmerFairy: reminds me a bit about HTML5's new <header> element, vs the older <h1>, <h2> etc | 14:53 | |
ShimmerFairy | masak: if you think about it, one usually prefers sub level() { ... level(); ... } over sub level1() { ... sub level2() { ... sub level3() { ... } } } :P | 14:54 | |
masak | how to test that a thing does not warn? | 14:55 | |
ShimmerFairy: yes, I buy your argument. even not having fully soaked myself in the details of this case. | |||
ShimmerFairy | masak: to be fair, the level1() etc. version would probably be a macro levelN instead of a multitude of inner sub definitions | 14:56 | |
My parenthetical statement basically says "if you have a sublist, chances are the parent list item isn't _just_ a sublist, and has at least another block of text beforehand or something." | 14:58 | ||
masak | ShimmerFairy: I'm not smart enough at the moment to design things. maybe you could come up with a short description of how you would like the world to be -- like in a gist or something -- and then post that here on channel? | 15:03 | |
ShimmerFairy | sure, Pod isn't usually suitable for pure IRC, what with it being line-oriented and all :) | 15:04 | |
masak | that, too :) | 15:05 | |
15:06
raiph left
15:08
telex left
15:10
telex joined
|
|||
flussence | masak: <header> isn't a replacement for <h$n>, they've instead redefined <h1> to do that based on the section nesting depth | 15:17 | |
(<header> is one of those sectioning tags) | 15:18 | ||
15:18
domidumont left,
domidumont joined
15:19
Rounin left
|
|||
masak | flussence: yup. | 15:20 | |
flussence: I tried searching for it, but was unsuccessful: somewhere on the web is an algorithm where you can put in you HTML5 structure and see what actual section/heading structure that results in. | 15:21 | ||
(because apparently, with both <heading> and <h$N>, that's now necessary) | |||
15:24
raiph joined
|
|||
ShimmerFairy | masak: here, hopefully it's clear what my thoughts are :) gist.github.com/lue/7de4a42e001c84a5e34f | 15:24 | |
15:24
rindolf left
|
|||
masak | oh, it's you lue :) | 15:24 | |
didn't recognize you with that fairy. | |||
ShimmerFairy | :) | 15:25 | |
masak | ok, I read through your gist. | 15:26 | |
it would be useful to get TheDamian's reaction to this. | 15:27 | ||
I feel like your proposal is a good one if-and-only-if it doesn't clash with some other nice idea about POD/Pod that someone already had. | |||
like "no, items do not nest because <good reason>" | 15:28 | ||
15:28
zakharyas left,
tinyblak left
|
|||
masak | I agree that your expectations make more sense from, say, a HTML background. | 15:28 | |
ShimmerFairy | masak: sure, this only comes up because, after having a bunch of block items, I came to writing one that needs a sublist, and it felt soooo wrong to type =end item and then "oh by the way I'm not done, here's a sublist" | ||
15:29
domidumont left
|
|||
ShimmerFairy | masak: I suppose that's my issue in a nutshell: I don't want to say =end item until it actually ends :) | 15:29 | |
15:32
_mg_ left
|
|||
ShimmerFairy | Writing Pod lately has shown a few interesting issues in Pod::To::HTML and rakudo; right now I'm trying to see if unbusting the table parser won't be too hard :) | 15:32 | |
flussence | Pod, as it stands, feels closer to the mid-2000s perl6 design than what we have today. | 15:33 | |
ShimmerFairy | Yes, it feels like something that hasn't been touched upon much (it doesn't help that I've been ignoring that time I worked on turning the specs into Pod6, because I'm still hoping someone more able in maintaining something that important will come along :P) | 15:35 | |
masak | flussence: that is an interesting way to phrase it. | ||
15:35
eli-se left
|
|||
flussence | I guess the message I'm going for is: this doesn't wow people like the rest of the language, because the rest has had so much more effort poured into it | 15:37 | |
[Coke] | [Tux]++ (backscroll points for CSV++) | ||
ShimmerFairy | flussence: careful, you're starting to get me in a "what if I completely redesigned Pod" mood... :P | 15:39 | |
[Coke] | we unsurprisingly get a lot of that sort of thing in Perl 6. | ||
ShimmerFairy | (oh, to whoever is able to change the channel topic: feather will shut down permanently almost a month ago ☺) | 15:40 | |
15:40
sqirrel joined
|
|||
tony-o | yes it is | 15:40 | |
masak | flussence: right. Pod indeed doesn't wow me. and I have one big reason for that: | 15:41 | |
flussence: Markdown. | |||
15:42
rindolf joined
|
|||
ShimmerFairy | (come to think of it, =finish feels like a special case for people too lazy to write =end pod at the end of the file :P) | 15:42 | |
masak | there are so many ways in which Pod is not Markdown, and I kinda wish it were. | ||
ShimmerFairy: no, it's not the same. | 15:43 | ||
flussence | =finish is cat>>-friendly | ||
masak | ShimmerFairy: =finish stops the parser. | ||
15:43
tinyblak joined
|
|||
ShimmerFairy | which parser? The code part, or the whole thing (like the stuff after \end{document} in LaTeX)? | 15:44 | |
15:45
laouji left
|
|||
masak | ShimmerFairy: are you familiar with __END__ from Perl 5? | 15:45 | |
ShimmerFairy | as much as the rest of Perl 5, which is to say not at all :) | ||
(which is why I'm always frustrated when a part of the specs leaves something out because "it's the same in P5", incidentally) | 15:46 | ||
tony-o | why not just integrate markdown in pod style .. | ||
masak | ShimmerFairy: "The two control characters ^D and ^Z, and the tokens __END__ and __DATA__ may be used to indicate the logical end of the script before the actual end of file. Any following text is ignored." -- perldoc.perl.org/perldata.html#Special-Literals | ||
ShimmerFairy: __END__ and __DATA__ indicate the end of the program. no further parsing of Perl takes place after that. | 15:47 | ||
ShimmerFairy | wow, rakudo's pod table code is confusing | 15:51 | |
RabidGravy | to me pod in 6 feels like much more of a chore than in 5, it's not even like it's that much more verbose but a few bits here and a few bits there and it goes over the edge | ||
masak | ShimmerFairy: my point is, `=finish` is *not* equivalent to writing `=end pod` -- it's more equivalent to The Ultimate `=end` to end everything. | 15:52 | |
ShimmerFairy | Alright, I get that :) | ||
masak | I see some places where Pod attempts (and sometimes even succeeds) at being an improvement on POD. | ||
timotimo | oh my | 15:53 | |
masak | perhaps my biggest favorite is being able to attach Pod stuff to individual units of code. | ||
timotimo | current wordpress can be attacked via the comments function | ||
flussence | meep. | ||
RabidGravy | hahahaha | ||
timotimo | just looking at the comment while you're logged in as an administrator will execute code with your privs | ||
15:54
eli-se joined
|
|||
masak | oh, is_run seems to get me what I need for testing that something doesn't warn. | 15:55 | |
feels a bit heavy-handed, but it works. | |||
15:56
FROGGS left
15:57
alini left
|
|||
ShimmerFairy | masak: I can't seem to figure out the table processing code right now; should I file a rakudobug in this case? (I initially thought about bugging the person who wrote the code, but then I remembered we have a bug tracker ☺) | 16:00 | |
16:01
cschwenz left
|
|||
masak | ShimmerFairy: sorry, I missed the steps where you ended up in the table processing code. | 16:05 | |
ShimmerFairy: I thought you were talking about lists. | 16:06 | ||
ShimmerFairy | masak: separate issue. The way I write tables isn't being handled by rakudo correctly | ||
masak | oh, ok. | ||
ShimmerFairy | sample code: gist.github.com/lue/3256e0cc1b934e7cd513 | ||
masak | then please go ahead and file a rakudobug. | ||
the thing about =item etc. sounds like it rather belongs at github.com/perl6/specs/issues | 16:07 | ||
ShimmerFairy | masak: yeah. Though now I'm kinda itching to run with "make an updated S26". Just for fun though, no guarantees it would amount to anything :) | 16:08 | |
16:08
abraxxa left
|
|||
masak | I think any such venture would have to be an iterative thing. not a big "second system" thing. | 16:09 | |
but I agree it's worth doing. | |||
16:09
raiph left
|
|||
ShimmerFairy | masak: sure, I wouldn't pretend I've come up with the perfect solution :) | 16:09 | |
masak | actually, I take that back. maybe some parts of Pod as it stands today needs big jumps to improve instead of small ones. | 16:11 | |
16:11
gfldex joined
|
|||
masak | but I still doubt it'd be One Big Jump. | 16:11 | |
timotimo | masak: try CONTROL? | 16:17 | |
m: { warn "oh noes!"; CONTROL { say "control called" } } | 16:18 | ||
camelia | rakudo-moar 71b0f0: OUTPUT«control calledoh noes! in block <unit> at /tmp/pqdzIwV2ju:1Trying to unwind over wrong handler» | ||
masak | timotimo: oh, good point. | 16:19 | |
timotimo++ | |||
yep, that seems to do it. \o/ | 16:21 | ||
timotimo | yays | ||
16:24
sqirrel left
|
|||
masak discovers that there were already tests *in that file* using CONTROL | 16:26 | ||
timotimo | :) | 16:27 | |
16:32
dnmfarrell joined
|
|||
masak | ok, I have a fix for the .indent thing, too. | 16:34 | |
timotimo | i didn't know .indent was broken :S | ||
masak | not broken per se. | ||
timotimo | bugged, then :) | 16:35 | |
masak | I just felt it was a bit harsh on ws-only lines. | ||
timotimo | oh | ||
masak | this affects things like heredocs. | ||
timotimo | right, it should not warn if a line is only whitespace (and the wrong amount, at that) | ||
masak | right. | ||
too little, to be specific. | |||
timotimo | aye | ||
masak | there's prior art: vim de-indentation. | ||
timotimo | if there's too much, it ought to show up in the result of the heredoc, IMO | 16:36 | |
masak | anyway, I have it working, but I want to run through the spectests before committing. | ||
timotimo: yes, of course. | |||
timotimo | we are in violent agreement, then :) | ||
masak | so I'll push later tonight. | ||
now, detrain & | |||
16:38
amaliapomian joined
16:39
xfix joined,
xfix left,
xfix joined
16:41
diana_olhovik left
|
|||
TimToady | I am coming to the conclusion that having a method like .for that shares its name with a statement_control keyword is a probably a mistake, for a number of reasons | 16:45 | |
timotimo | mistake.for | ||
moritz | .oO( call it .each ) |
||
TimToady | it prevents having a listop 'for', and it induces a hobgoblin desire to have a "map" statement control, which doesn't work several ways | 16:46 | |
timotimo | don't we already have an .each that's supposed to work a bit like a junction? | ||
moritz | timotimo: I think so, yes | ||
TimToady | yes, but that's different | ||
timotimo | it can't be different if .each is both .for and .each :) | ||
TimToady | no, I'd rename it to .flatmpa | ||
.flatmap | |||
moritz | flatmpa sounds like a video codec | 16:47 | |
TimToady | then for the statement control corresponding to .map, use some other topicalizer, such as "over", which works for both statement control and statement modifier | ||
"mapping" would also work, but seems a bit clunkier | 16:48 | ||
"over" also has vague connotations of riding up over the mess down below | 16:49 | ||
the other alternative is to use some atrocity like 'mfor' | 16:50 | ||
which would have a bit of mnemonic value, at the expense of ugliness | 16:51 | ||
it's kind of a pity that 'over' doesn't start with 'm'... | 16:52 | ||
maybe I should look at all the m-words in the dictionary... | |||
timotimo | meh ... meep ... moo ... | 16:53 | |
TimToady | mangle...mung... | ||
timotimo | meow | ||
TimToady | maul... | 16:55 | |
these all seem too side-effecty... | 16:56 | ||
16:56
dakkar left
|
|||
timotimo | mash | 16:56 | |
TimToady | many reads more like a junction | 16:57 | |
timotimo | indeed | ||
TimToady | maraud :) | 16:58 | |
timotimo | marinade | ||
TimToady | maps, hmm | ||
timotimo stops playing word-association (or word-disassociation) | 16:59 | ||
TimToady | *.foo maps @list | ||
possible | |||
maps @list -> { ... } is a little odder | |||
and only works as a verb; as a noun, reads like there are multiple maps, instead of one (or gets read as 'mappings' perhaps) | 17:00 | ||
massage :) | 17:01 | ||
works on the control, but not the modifier... | |||
gfldex | why don't you grep '^m' /usr/share/dict/words | less ? | 17:02 | |
there are more then 4000 words to choose from | |||
TimToady | gfldex: what do you think I'm doing? | 17:04 | |
actual command: look m | grep '^m' | grep -v '........' | less | |||
(first grep to remove proper nouns) | 17:05 | ||
gfldex | without *nix Perl 6 would not be possible :) | 17:06 | |
TimToady | another alternative is to steal 'for' for the map equivalent, and come up with something else for flatmap | ||
(or force people to write 'for flat', if we want to be mean :) | 17:07 | ||
that would tend to confuse anyone coming from a flattening langauge though | |||
17:10
liztormato joined
|
|||
liztormato | TimToady: spread ? | 17:10 | |
17:10
smash joined,
perlvim joined
|
|||
b2gills | I'm less concerned for newcomers than for the Perl 6 experts, that is I want it consistent what ever that entails | 17:10 | |
m: say 'bow ties' ~~ Cool | 17:11 | ||
camelia | rakudo-moar 71b0f0: OUTPUT«True» | ||
17:13
liztormato left
|
|||
TimToady | m: say 'unicorns' ~~ Real | 17:14 | |
camelia | rakudo-moar 71b0f0: OUTPUT«False» | ||
17:14
espadrine left,
_mg_ joined
17:15
jepeway left
17:17
jepeway joined,
diana_olhovik joined
17:23
_mg_ left
|
|||
raydiak | morning #perl6 | 17:23 | |
colomon | o/ | 17:27 | |
TimToady | nothing good in the 'm's, alas | 17:28 | |
dalek | rl6-roast-data: 5bd2683 | coke++ | / (9 files): today (automated commit) |
17:31 | |
17:33
diana_olhovik left
|
|||
raydiak | doesn't help with the problem but it's kinda reassuring when the expert linguist has as much difficulty naming things as I do :) | 17:35 | |
17:37
diana_olhovik_ joined
|
|||
timotimo | the end point of ... doesn't smartmatch? | 17:41 | |
m: "a", { $_ ~ ("a".."z").pick } ... /foo/ | |||
camelia | rakudo-moar 71b0f0: OUTPUT«Unhandled exception: Method '!cursor_start' not found for invocant of class 'Str' at <unknown>:1 (/home/camelia/rakudo-inst-2/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295) from <unknown>:1 (<ephemeral file>::31) from src/gen/m-CORE.setting…» | ||
b2gills | In Promise.pm I noticed there are a few `$!status == Broken | Kept`, I wonder if they could/should be written as `?$!status` | ||
17:41
FROGGS joined
|
|||
moritz | b2gills: or $!status != Planned | 17:42 | |
timotimo | right; == doesn't junction-unfold at the moment :S | 17:43 | |
moritz | which might be a bit more self-documenting than !?$status | ||
timotimo | i may need a tiny bit of jnthntime to make that work properly again | ||
m: "a", { $_ ~ ("a".."z").pick } ... * ~~ /foo/ | 17:45 | ||
m: say "a", { $_ ~ ("a".."z").pick } ... * ~~ /foo/ | |||
camelia | rakudo-moar 71b0f0: OUTPUT«(timeout)» | ||
rakudo-moar 71b0f0: OUTPUT«a av avt avtt avttl avttlx avttlxf avttlxfs avttlxfse avttlxfsec avttlxfsecu avttlxfsecux avttlxfsecuxj avttlxfsecuxjc avttlxfsecuxjch avttlxfsecuxjchs avttlxfsecuxjchsb avttlxfsecuxjchsbe avttlxfsecuxjchsbeu avttlxfsecuxjchsbeuh avttlxfsecuxjchsbeuhe avtt…» | |||
17:48
perlvim left
|
|||
TimToady | timotimo: I have a fix, I think | 17:55 | |
we need a test too | 17:57 | ||
dunno if this rates an RT | |||
timotimo | aye, but i'll be AFK for a bit first :S | ||
(ideally it would be a test that doesn't tend to timeout camelia when run :P) | |||
[Coke] | getting several failures on all backends in S01-perl-5-integration/* | ||
FROGGS | hmmm, I don't | 17:58 | |
maybe the Inline::Perl5 support detection is wonky on OSX? | 17:59 | ||
TimToady | m: say "fom" ... /foo/ | ||
camelia | rakudo-moar 71b0f0: OUTPUT«Method '!cursor_start' not found for invocant of class 'Str' in block at src/gen/m-CORE.setting:22268 in block at src/gen/m-CORE.setting:10164 in block at src/gen/m-CORE.setting:10168 in method reify at src/gen/m-CORE.setting:10195 i…» | ||
[Coke] | Shouldn't even be running the tests, I don't install Inline::Perl5 | ||
I know I fixed that bug once... | |||
18:00
liztormato joined
|
|||
liztormato | [Coke]: fwiw, no problems with skipping Inline::Perl5 tests on OSX | 18:02 | |
[Coke] | yah, this is on p6c. | 18:03 | |
er, hack. | |||
OH. | |||
because t/harness was updated, not t/spec/test_summary | 18:04 | ||
so, on me. I'll fix it for the hackathon. | |||
timotimo | p6: say "hi" | ||
camelia | rakudo-moar 71b0f0: OUTPUT«hi» | ||
18:05
liztormato left
18:09
Peter_R joined
|
|||
dalek | kudo/nom: e6cdd26 | TimToady++ | src/core/operators.pm: in ... don't call Regex as a closure match |
18:09 | |
ast: b6a281d | TimToady++ | S03-sequence/misc.t: test for /foo/ endpoint |
|||
18:09
andreoss left
|
|||
TimToady | timotimo++ for finding easy bugs to fix :) | 18:10 | |
18:14
xfix_ joined
18:17
xfix left
18:24
dwarring joined
|
|||
dwarring | howdy | 18:35 | |
18:35
tinyblak left
|
|||
FROGGS | hi dwarring | 18:35 | |
dwarring | r: sub s(:@p) { say ("x",@p).join("|")}; s(:p("a", "b")); s(:p()) | ||
camelia | rakudo-{moar,jvm} 71b0f0: OUTPUT«x|a bx|» | ||
dwarring | gidday FROGGS | ||
18:36
tinyblak joined
|
|||
dwarring | ^^ @p stopped flattening over the last few days | 18:36 | |
moritz | .join did | ||
yoleaux | moritz: Sorry, this command is admin-only. | ||
dwarring | moritz: ah ok | 18:37 | |
moritz | dwarring: use join('|', "x", @p) or ("x", @p).flat.join('|') | ||
dwarring | moritz: thanks, will fix in CSS::Module | ||
moritz | m: say (1, <a b c>).join('|'); | 18:38 | |
camelia | rakudo-moar 71b0f0: OUTPUT«1|a b c» | ||
dalek | c: 9c384b6 | moritz++ | lib/Type/List.pod: List.join: mention that the method form does not flatten |
18:39 | |
18:40
tinyblak left
18:41
amaliapomian left,
krunen_ is now known as krunen
|
|||
TimToady | I think I'm coming to the conclusion that, in the overall scheme of things, it would be better if for does not flatten | 18:43 | |
18:45
mohij joined
|
|||
TimToady | and if we have a flattening for, that one should be slightly dehuffmanized, though 'for flat ...' is a bit too much dehuff | 18:45 | |
moritz | RabidGravy: I'm not too happy with the concurrency docs introducing low-level stuff first, when we want to encourage folks to use the composable, high-level features whenever possible | ||
18:45
xfix_ is now known as xfix,
xfix is now known as xfix_
|
|||
moritz | TimToady: I missed most of the IRC discussions so far; have you considered if prefix:<|> can be abused as a flattening operator? | 18:46 | |
TimToady | it's a bit limited, compared to 'flat' | 18:47 | |
and doesn't actually work in non-arg lists at the moment | |||
moritz | RabidGravy: also the concurrency docs shouldn't try to duplicate the API docs for the various types | ||
RabidGravy | moritz, entirely can be re-ordered I just did it in the order it makes sense to me | 18:48 | |
TimToady | m: say (1, |<a b c>).join('|'); | 18:52 | |
camelia | rakudo-moar e6cdd2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kFfFLhhWz3Arg-flattening | is only valid in an argument listat /tmp/kFfFLhhWz3:1------> 3say (1, |7⏏5<a b c>).join('|');» | ||
TimToady | for instance, it rejects it there | ||
RabidGravy | and I'm pretty certain it will bear at least a second pass with better examples but I'll just carry on with what I have right now. | 18:54 | |
18:54
MARTIMM joined
|
|||
TimToady | m: sub postfix:<_>(\list) { list.flat }; say (1, <a b c>)_.join('|'); | 18:54 | |
camelia | rakudo-moar e6cdd2: OUTPUT«1|a|b|c» | ||
lizmat nudges timotimo ever so lightly | 18:55 | ||
timotimo | oh yes | ||
i was about to play a "round" of disgaea, so the nudging was probably well in order :P | 18:56 | ||
raydiak has wondered for some time why prefix:<|> doesn't just do .flat outside of an arg list similar to prefixes @ and % and $ mapping to .list, .hash, and .item | 18:58 | ||
TimToady | .flat is not quite the same, insofar .flat will not successfully insert arguments into an argument list | ||
.flat tells a list to lose its inner parens, but it does nothing about the grouping of the list as a whole | 18:59 | ||
19:00
ecocode joined,
rindolf left
|
|||
TimToady | all functions and methods currently implicitly return a single argument, meaning there are implicit parens around any return | 19:00 | |
if you say "foo bar(), baz()" you are guaranteed to be passing 2 arguments to foo | 19:01 | ||
even if bar or baz return a list | |||
19:01
MARTIMM left
|
|||
TimToady | we're not gonna break that | 19:01 | |
there are only two ways to get around that currently, 1) declare a slurpy sig to bind to, or 2) use prefix:<|> | 19:02 | ||
.flat is not good enough | 19:03 | ||
raydiak | agreed it would be a different meaning outside of the arg list, though it would do what people intend in lists usually, I think...e.g. (1, |<a b c>) would work | ||
don't want the | for the flatmap though, personally, so I'm off on a tangent anyway | |||
TimToady | essentially it would translate to 'lose the implicit outer parcel' | 19:04 | |
lizmat | I guess post-GLR, that would be "lose the implicit outer list", right ? | 19:05 | |
19:05
yqt joined
|
|||
TimToady | yes, and it occurs to me that 'for flat' actually won't work, unless for strips the parcelizing/listing around what flat returns | 19:06 | |
lizmat | .oO( hoping to think outside of the Parcel here ) |
19:07 | |
[Coke] | m: say „old/sold/liquidated module“ # did this ever get impl? | ||
camelia | rakudo-moar e6cdd2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vJfillxvAfUnable to parse expression in low smart double quotes; couldn't find final '”' at /tmp/vJfillxvAf:1------> 3idated module“ # did this ever get impl?7⏏5<EOL> expecting any of:…» | ||
[Coke] | . o O (nope) | ||
dalek | c: 2bbb0e2 | (Jonathan Stowe)++ | lib/Language/concurrency.pod: Start with supplies |
||
c: 33ffe84 | (Jonathan Stowe)++ | lib/Language/concurrency.pod: More supply |
|||
c: 330d4c9 | (Jonathan Stowe)++ | lib/Type/List.pod: Merge branch 'master' of github.com:perl6/doc |
|||
geekosaur | looks like it tried? | ||
TimToady | it's just a smop, though having multiple stoppers might be a bit hard with the current design of the nibbler | ||
geekosaur: trouble is there are two cultures of final quotes there, split about 50/50 | 19:08 | ||
[Coke] | I'm ok if we don't support every combination. | 19:09 | |
19:09
koo6 joined
|
|||
TimToady | if you assume consistency, then you can say that using “ as a closer means you *aren't* using it for an opener, so you shouldn't treat it as nestable quotes | 19:09 | |
pmichaud | good afternoon, #perl6 | 19:10 | |
lizmat | pmichaud o/ | ||
nwc10 | pmichaud: congratulations to your team. | 19:11 | |
TimToady | m: say ““foo”” | ||
camelia | rakudo-moar e6cdd2: OUTPUT«“foo”» | ||
19:11
hobbs left
|
|||
pmichaud | nwc10: thanks. We had an excellent contest but a bit of a disappointing finish (not being selected for playoffs, despite having highest scores in our division) | 19:11 | |
19:12
rurban left
|
|||
TimToady | m: say „„foo”” | 19:12 | |
camelia | rakudo-moar e6cdd2: OUTPUT«„foo”» | ||
TimToady | anyway, I suspect the other can be made to work as well | ||
19:13
hobbs joined
|
|||
dalek | c: 1b5df49 | moritz++ | lib/Language/concurrency.pod: Clean up concurrency docs 1) move high-level APIs to the top (partially done) 2) use less speculative language ("would") 3) supply output along with examples 4) start with simpler examples 5) more links, including to external sources for general topics |
19:13 | |
masak | pmichaud! \o/ | ||
moritz | RabidGravy: ^^ please check if I resolved the conflicts correctly in the commit above | 19:14 | |
19:15
xfix_ left,
flussence joined
|
|||
masak | "but then what if he knew how I am when I know that I'm not what he thinks that he wants" -- my new favorite line from "Into The Woods" | 19:18 | |
who* | |||
RabidGravy | moritz, that's great matey, merged fine | ||
TimToady | masak: anapests are not just for limericks :) | 19:21 | |
nine | I've always found it strangely inconsistent that | can be used to flatten only in argument lists | ||
TimToady | though it could be argued that limericks are really amphibrachs | 19:22 | |
dalek | c: 8c07f04 | moritz++ | lib/Language/concurrency.pod: More Promise cleanup |
||
TimToady | "flat" is badly overloaded there | 19:23 | |
FROGGS | like my flat | ||
TimToady | it's a special interpolator right now, and has nothing to do with .flat | ||
moritz | RabidGravy: please write the docs in present tense (for consistency with rest of doc.perl6.org) | 19:24 | |
TimToady | m: say ((1,2,3),(4,5,6)).flat.perl # note that the outer parens are precisely the ones that .flat does not remove (or if it does, it puts them back :) | ||
camelia | rakudo-moar e6cdd2: OUTPUT«(1, 2, 3, 4, 5, 6)» | ||
TimToady | it's the job of | to remove those outer parens for an argument list, and maybe (we hope), when interpolating into any list | 19:25 | |
19:26
ecocode left
|
|||
TimToady | m: say ((1,2,3),|(4,5,6)).perl | 19:26 | |
camelia | rakudo-moar e6cdd2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZF5dC1OqxDArg-flattening | is only valid in an argument listat /tmp/ZF5dC1OqxD:1------> 3say ((1,2,3),|7⏏5(4,5,6)).perl» | ||
TimToady | m: say list((1,2,3),|(4,5,6)).perl | ||
camelia | rakudo-moar e6cdd2: OUTPUT«((1, 2, 3), 4, 5, 6)» | ||
TimToady | arguable those should be the same | 19:27 | |
dalek | c: 293c2ba | moritz++ | lib/Language/concurrency.pod: Concurrency: use present tense |
||
TimToady | m: say list((1,2,3),|((4,5,6))).perl | 19:28 | |
camelia | rakudo-moar e6cdd2: OUTPUT«((1, 2, 3), 4, 5, 6)» | ||
TimToady | m: say list((1,2,3),|(1,(4,5,6))).perl | ||
camelia | rakudo-moar e6cdd2: OUTPUT«((1, 2, 3), 1, (4, 5, 6))» | ||
TimToady | m: say list((1,2,3),|((4,5,6),)).perl | 19:29 | |
camelia | rakudo-moar e6cdd2: OUTPUT«((1, 2, 3), (4, 5, 6))» | ||
TimToady | possibly | is being overaggressive stripping two parens there | ||
dalek | kudo/nom: 735ab5f | lizmat++ | src/Perl6/World.nqp: Nothing in speculation about Devel::Trace |
19:30 | |
masak | anapests. I like. | ||
19:32
Rounin joined
|
|||
moritz | lizmat++ | 19:32 | |
19:37
telex left
19:38
telex joined
19:39
_mg_ joined,
tinyblak joined
|
|||
dalek | kudo/nom: 85a2654 | lizmat++ | src/Perl6/World.nqp: Check longnameness before extra parameterness |
19:39 | |
c: ad4585c | (Steve Mynott)++ | lib/Language/ (3 files): typos |
19:46 | ||
[Coke] | TimToady: you want a ticket for the weird quote combo? | ||
(with a test?) | 19:47 | ||
19:47
tinyblak left
|
|||
labster | m: use MONKEY_TYPING; | 19:47 | |
camelia | ( no output ) | ||
labster | shouldn't that have a warning? | ||
dalek | kudo/nom: 7f49dd6 | lizmat++ | src/Perl6/World.nqp: Simplify pragma handling further |
19:48 | |
TimToady | [Coke]: sure | ||
labster | A deprecation warning for the underscore form of MONKEY_TYPING | ||
lizmat | labster: well, that's compile time: the deprecated machinery isn't even there yet | ||
well, that's not true | |||
hmmm... | 19:49 | ||
TimToady | or maybe we could steal "foreach" back for the flattening, p5ish one... | 19:50 | |
lizmat | that feels ok for someone coming from p5 :-) | ||
TimToady | and flattening has more 'eaches' than non-flattening does :) | ||
PerlJam never uses "foreach" in P5 anymore. | |||
TimToady | funny thing is how many other languages have borrowed 'foreach'... | 19:51 | |
lizmat | fwiw, I used it all the time, because it felt more natural to me | ||
TimToady always kinda hated it :) | 19:52 | ||
lizmat | "for" always felt a bit like "given" to me | ||
I guess being ESL makes a difference | |||
TimToady | well, the loopy aspects came from C, not English | ||
not surprisingly, if I just change statement_control:<for> to have map semantics, the compiler blows up trying to compile Test.pm | 19:53 | ||
so the compiler is assuming flattening somewhere... | |||
lizmat feels a GLR bootstrap issue starting to form | 19:54 | ||
TimToady | I doubt it's that deep | ||
overall GLR is simplifying things, which tends to help with bootstraps | 19:55 | ||
19:55
dnmfarrell left
|
|||
TimToady | lunch & | 19:55 | |
masak | I know some people who make the destinction (either conceptually or on the keyword level) that `for` is C-style and `foreach` is new-style implicit/iterator. | 20:00 | |
PerlJam | those people are slightly crazy (or I am ;) | ||
colomon | masak: pretty sure that’s how I thought of it for a long time. | 20:01 | |
PerlJam | I actually probably thought the same back in the P4 days. But that only lasted until I learned that 'for' and 'foreach' were synonymous | 20:02 | |
RabidGravy | I've done a fair amount of 4gl and dbms procedure language where foreach is typically "iterate over some set of records" | 20:03 | |
but for is less typing so I'm cool with it | 20:04 | ||
PerlJam makes a 'forache' operator for his list of problems. | 20:05 | ||
20:06
darutoko left
|
|||
masak | PerlJam: you're right, there's no real basis to the distinction. | 20:08 | |
I'm curious, though. was the `foreach` form added together with the ability to loop over elements without an explicit index? | 20:09 | ||
in the Perl 5 lineage, I mean. | |||
20:11
_mg_ left
20:12
konsolebox left
|
|||
PerlJam | "for" and "foreach" have existed relatively unchanged since P4 to my knowledge. | 20:13 | |
masak | right. | 20:14 | |
20:14
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
masak | I have no basis for my guess, except that it *sounds* like `foreach` was invented because it goes well with the rest of the implicit/iteration loop header. | 20:15 | |
`foreach my $element (@stuff) { ... }` | |||
that "each" there kinda lifts the phrase a little. | |||
(totally unnecessary in Perl 6, of course, since the element goes with the block instead) | |||
timotimo | i think p4 (or 5) style foreach looks somewhat ugly | 20:16 | |
20:16
vendethiel left,
alini joined
|
|||
masak | sure, but that's mostly orthogonal. | 20:17 | |
and arguably there's a semantic ugliness that trumps the visual one. | |||
timotimo | i don't know anything about its semantics | 20:18 | |
PerlJam | masak: what semantic ugliness exactly? | ||
masak | the lexical `my $element` -- what's its scope? | 20:19 | |
20:19
aborazmeh left
|
|||
PerlJam | ok | 20:19 | |
masak | it's declared outside of the block, but is scoped to inside of it. | 20:20 | |
FROGGS | like: -> $foo { ... } | 20:21 | |
but the thing you are interating over is at least not in between | |||
iterating* | |||
timotimo | you mean like in "for foo in list: ... " like python does it? | 20:22 | |
masak | Perl 6 unifies block parameters and iteration variables in a way that Perl 5 doesn't (nor Python). | 20:24 | |
PerlJam | yeah, which means your aesthetics for Perl 5 are informed by Perl 6 :) | 20:25 | |
masak | that's an unfair counterargument -- just 'cus Perl 6 got it right :P | 20:26 | |
actually, I think when I said "semantic ugliness" I was really thinking about `else` blocks. | |||
if you declare a lexical in the `if (...)` expression, it's visible in the `else` block! | 20:27 | ||
labster | Woo, File::Find::Duplicates tests should be unbusted | ||
FROGGS | ohh, nice to know :o) | ||
masak | (and in the `elsif` blocks too, it seems) | ||
labster | that is nice to know | ||
PerlJam misses his chance to intentionally misunderstand masak and mention that python is the one with else blocks on foreach loops. ;) | 20:28 | ||
masak | yes, but it's a hack. | ||
PerlJam: I teach Python courses just so I can point out how horrible that is. | |||
DrForr | masak: Just saw the note, thanks, rebuilding so I can test :) | ||
masak | DrForr: I feel proud. :) but jnthn++ provided the vital clue. | 20:29 | |
DrForr | I should have said 'masak++ just saw...' :) | ||
masak | karma is opt-in ;) | ||
DrForr | I'm on other network with karmabots :) | 20:30 | |
labster | Do we have a karmabot? | 20:31 | |
DrForr | *networks | ||
FROGGS | labster: we had, ages ago :o) | ||
labster | I remember it, it in long days gone by. | ||
PerlJam | real karma doesn't need a bot :) | ||
labster | Well, the entire universe is a simulation, so we incremented a counter we just can't see :) | 20:32 | |
DrForr | There's a hotdog stand joke in there somewhere. | ||
20:32
beastd joined
|
|||
labster is forbidden from getting karma with a bot on Friday | 20:32 | ||
DrForr | Diskordian? (tyop intentional) | 20:33 | |
labster | Probably. Cabal Local #5. | 20:34 | |
timotimo is a discordian pope | |||
DrForr | Yep, that fixes the readline parameter bug. | 20:35 | |
dalek | p: 5e9f7b8 | FROGGS++ | src/ (7 files): implement unicode property pairs with explicit arguments Like in: "¼" ~~ /<:NumericValue(0 ^..^ 0)/ or "foo" ~~ /<:Block(/Latin/)>+/ |
||
labster | @people».pope(True) | ||
20:36
alini left
|
|||
masak | DrForr: \o/ | 20:36 | |
DrForr: if I ever give a 2048 talk about rakudobugs, I'll probably use that one as an example. | |||
labster | Can someone run the File::Spec::Case tests for me? I don't see a bug on my end, but smoke.perl6.org says its failing. | ||
20:36
beastd|2 joined,
alini joined
|
|||
timotimo | FROGGS++ | 20:36 | |
DrForr | w00t, I finally found an interesting bug :) | ||
dalek | kudo/nom: b6b180b | FROGGS++ | / (2 files): bump nqp rev for uniprop improvement |
20:37 | |
TimToady | hah, at make time there was only one 'for' that assumes flat and blows up compiling Test.pm; at test time there are more assumptions, of course | ||
timotimo | FROGGS: how useful is 0 ^..^ 0 actually? %) | ||
20:37
beastd left
|
|||
TimToady | I just used ^..^, but not with 0s | 20:37 | |
labster | .oO ( the bat operator ) | 20:38 | |
dalek | ast: 0aae938 | FROGGS++ | S05-mass/properties-script.t: run unicode property pair tests on moar |
||
FROGGS | eww | ||
typo >.< | |||
jercos | the operator gotham deserves, but not the one it needs right now. | ||
timotimo | 0 >..< 1 | 20:39 | |
TimToady | I used it in permutations, in fact, to replace a grep none($i) ^$n with 0 ..^ $i ^..^ $n | ||
labster | Or, alternatively, can someone point me to the repo that smoke.perl6.org uses, so I can add test failure reporting to the code? | 20:40 | |
TimToady | or rather, 0 ..^ $i, $i ^..^ $n | ||
timotimo | i was about to say: .. can chain?? | ||
masak | oh, good thing I ran the spectests on this .indent tweak -- it breaks some heredocs tests, it seems. | ||
FROGGS | m: say "f½シシ" ~~ / <:Block(*.say)>+ /' # it is also a nice way to inspect strings | ||
camelia | rakudo-moar 7f49dd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Bwgm8V_J96Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at /tmp/Bwgm8V_J96:1------> 3say "f½シシ" ~~ / <:Block7⏏5(*.say)>+ /' # it is also a nice way to  ex…» | ||
FROGGS | that will look cute it a bit | ||
masak | clearly ^..^ is the cute neko operator. don't know where you see a bat. | 20:42 | |
geekosaur | if it had whiskers it'd be a =^..^= cat | 20:43 | |
FROGGS | labster: are you talking about testers.perl6.org? | ||
TimToady thinks it's a kitsune | |||
FROGGS | ahh no | ||
labster: that's colomon++'s box | 20:44 | ||
colomon | actually it’s hackp6c.org | ||
err, hack.p6c.org | |||
labster | FROGGS ah, well, that works better than smoke.perl6.org | 20:46 | |
FROGGS | colomon: let's say it is your *black* box :o) | ||
labster: are hashed involed? testers.perl6.org/reports/40623.html | 20:47 | ||
labster | Wrong module FROGGS, I think I just fixed that one :) No hashes, just OS ordering being different. | 20:48 | |
FROGGS | ahh, heh | ||
20:53
rurban joined
|
|||
FROGGS | m: say "f½シシ" ~~ / <:Block(*.say)>+ / | 20:53 | |
camelia | rakudo-moar b6b180: OUTPUT«Basic LatinLatin-1 SupplementKatakanaHalfwidth and Fullwidth Forms「f½シシ」» | ||
labster | Nice! FROGGS++ | 20:56 | |
Apparently checking that two things are both true is not a good use for is() and isnt(), because smartmatching against false. | 20:57 | ||
20:59
tinyblak joined
|
|||
masak | 'night, #perl6 | 21:01 | |
labster | night masak | 21:02 | |
FROGGS | m: say (0x2000..0x2500)».chr.join('') ~~ m:g/<:NumericValue({+$_ ~~ 0^..*})>+/ | ||
camelia | rakudo-moar b6b180: OUTPUT«「⁴⁵⁶⁷⁸⁹」 「₁₂₃₄₅₆₇₈₉」 「⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅟ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂ」 「ↅↆↇↈ」 「①②③④⑤…» | ||
FROGGS | that's even quite fast | ||
m: say (0x2000..0x2500)».chr.join('') ~~ m:g/<:NumericValue({+$_ > 0})>+/ | 21:03 | ||
camelia | rakudo-moar b6b180: OUTPUT«「⁴⁵⁶⁷⁸⁹」 「₁₂₃₄₅₆₇₈₉」 「⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅟ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂ」 「ↅↆↇↈ」 「①②③④⑤…» | ||
21:04
raiph joined
|
|||
FROGGS | m: say (0..0xFFF0)».chr.join('') ~~ m:g/<:NumericValue({+$_ > 0})>+/ | 21:04 | |
camelia | rakudo-moar b6b180: OUTPUT«「123456789」 「²³」 「¹」 「¼½¾」 「١٢٣٤٥٦٧٨٩」 「۱۲۳۴۵۶۷۸۹」 「߁߂߃߄߅߆߇߈߉」 「१२३४५६७८९」 「১২৩৪৫৬৭৮৯」 「৴৵৶৷৸৹」 「੧੨੩੪੫੬੭੮੯」 「…» | ||
21:05
tinyblak left
|
|||
FROGGS | timotimo: run that in your shell... that makes for a good one-liner for your blog | 21:05 | |
gnight | |||
21:05
FROGGS left,
skids left
21:06
cognominal left
|
|||
timotimo | <3 | 21:06 | |
21:07
lizmat left
21:09
lizmat joined
21:10
cognominal joined
21:11
vendethiel joined
|
|||
itz | m: try { @files = dir("xxx"); CATCH{}} | 21:13 | |
camelia | rakudo-moar b6b180: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hFo8CVfs2JVariable '@files' is not declaredat /tmp/hFo8CVfs2J:1------> 3try { @files7⏏5 = dir("xxx"); CATCH{}} expecting any of: postfix» | ||
dalek | c: 4c6cfae | (Jonathan Stowe)++ | lib/Language/concurrency.pod: fmt |
||
c: b005b2c | (Jonathan Stowe)++ | lib/Language/concurrency.pod: Merge branch 'master' of github.com:perl6/doc |
|||
c: c243ac1 | (Jonathan Stowe)++ | lib/Language/concurrency.pod: Add Promise.vow |
|||
c: 17b3fbc | (Jonathan Stowe)++ | lib/Language/ (3 files): Merge branch 'master' of github.com:perl6/doc Conflicts: lib/Language/concurrency.pod |
|||
itz | m: try { my @files = dir("xxx"); CATCH{}} | ||
camelia | rakudo-moar b6b180: OUTPUT«Failed to get the directory contents of '/home/camelia/xxx': chdir failed: Unknown system error in method dir at src/gen/m-CORE.setting:18982 in sub dir at src/gen/m-CORE.setting:19301 in block <unit> at /tmp/u0g2A89sx3:1» | ||
labster | Rakudo doesn't want anyone to catch you looking in your XXX directory ^ | 21:14 | |
itz | :) | 21:15 | |
colomon | labster: sorry for the slow response | 21:17 | |
labster: this is what I get on hack: gist.github.com/colomon/421717d4832bc36f5681 | 21:18 | ||
21:21
muraiki left
|
|||
itz | star-m: try { my @files = dir("xxx"); CATCH{}} | 21:25 | |
camelia | ( no output ) | ||
21:27
bjz left
|
|||
itz | j: try { my @files = dir("xxx"); CATCH{}} | 21:27 | |
camelia | rakudo-jvm b6b180: OUTPUT«Failed to get the directory contents of '/home/camelia/xxx': nqp::opendir: unable to get a DirectoryStream in method dir at gen/jvm/CORE.setting:18742 in sub dir at gen/jvm/CORE.setting:19068 in block <unit> at /tmp/Q6aT0Ya5rC:1» | ||
lizmat has messed enough with the World and goes to bed | 21:29 | ||
21:30
rurban left
|
|||
raydiak guesses this has to do with try being fixed to enable 'use fatal' as designed | 21:37 | ||
itz | the new behaviour is correct then> | ||
raydiak | though I could be way off, b/c it seems to have more to do with the presence of the CATCH | ||
well no I don't think it's supposed to be fatal *ourside* the try | 21:38 | ||
but idk | |||
m: try { dir "foo" } | |||
camelia | ( no output ) | ||
raydiak | m: try { dir "foo"; CATCH {} } | ||
camelia | rakudo-moar b6b180: OUTPUT«Failed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error in method dir at src/gen/m-CORE.setting:18982 in sub dir at src/gen/m-CORE.setting:19301 in block <unit> at /tmp/asyZ2mNqbB:1» | ||
raydiak | I think that change or something affected by it is wrongish :) | 21:39 | |
itz | differently right! | ||
raydiak | yeah that too! | 21:40 | |
m: try { dir "foo"; CATCH { say "UH OH" } } | 21:41 | ||
camelia | rakudo-moar b6b180: OUTPUT«UH OHFailed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error in method dir at src/gen/m-CORE.setting:18982 in sub dir at src/gen/m-CORE.setting:19301 in block <unit> at /tmp/VgIhhxpin6:1» | ||
raydiak | m: CATCH { say "UH OH" }; try dir "foo"; | 21:42 | |
camelia | ( no output ) | ||
raydiak | m: CATCH { say "UH OH" }; try say dir "foo"; | 21:43 | |
camelia | ( no output ) | ||
raydiak | m: CATCH { say "UH OH" }; say try dir "foo"; | ||
camelia | rakudo-moar b6b180: OUTPUT«Nil» | ||
21:43
mohij left
|
|||
raydiak | note the lack of CATCH running at all when it's not in a try... | 21:44 | |
21:44
zeleiadi joined
|
|||
raydiak | oh wait that's just me being confused as usual :) | 21:44 | |
m: CATCH { say "UH OH" }; say dir "foo"; | |||
camelia | rakudo-moar b6b180: OUTPUT«UH OHFailed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error in method dir at src/gen/m-CORE.setting:18982 in sub dir at src/gen/m-CORE.setting:19301 in block <unit> at /tmp/wmspuLMV6N:1» | ||
raydiak | m: CATCH { say "UH OH" }; dir "foo"; | 21:46 | |
camelia | rakudo-moar b6b180: OUTPUT«Unhandled exception: Failed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:…» | ||
raydiak | guess that makes sense, CATCH only runs on fatal errors, not soft fails | 21:48 | |
21:50
dnmfarrell joined
|
|||
dnmfarrell | Ok I just pushed a new version of Pod::Perl5, AFAIK it parses 100% of Perl 5 pod, both inline and standalone docs. Let me know if you find any bugs :) | 21:53 | |
21:53
fhelmberger joined
|
|||
raydiak | itz: I think we were just using it wrong...S04 says a CATCH is like a given block, and if none of the switch cases match the failure (in $_), then it gets thrown...and "To ignore all unhandled exceptions, use an empty default case." | 21:56 | |
m: try { CATCH { default {} }; dir "foo" } | 21:57 | ||
camelia | ( no output ) | ||
raydiak | m: { CATCH { default {} }; dir "foo" } | ||
camelia | rakudo-moar b6b180: OUTPUT«Unhandled exception: Failed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:…» | ||
raydiak | m: { use fatal; CATCH { default {} }; dir "foo" } | ||
camelia | ( no output ) | ||
21:58
fhelmberger left
|
|||
raydiak | so an empty CATCH catches nothing, not everything :) | 21:59 | |
star-m: my @files = dir "foo" | 22:01 | ||
camelia | ( no output ) | ||
raydiak | m: my @files = dir "foo" | 22:02 | |
camelia | ( no output ) | ||
raydiak | m: my @files = dir "foo"; say @files | ||
camelia | rakudo-moar b6b180: OUTPUT«Failed to get the directory contents of '/home/camelia/foo': chdir failed: Unknown system error in method dir at src/gen/m-CORE.setting:18982 in sub dir at src/gen/m-CORE.setting:19301 in block <unit> at /tmp/HzX6kRrX2F:1» | ||
tony-o | are there logs for smoke.perl6.org anywhere? | 22:05 | |
22:10
lucasb joined
|
|||
labster | tony-o: no, but there are logs on testers.perl6.org | 22:14 | |
22:14
RabidGravy left,
vendethiel left
22:22
vendethiel joined
22:29
alini left
22:39
zeleiadi left
22:40
beastd|2 left
22:41
newbie joined,
newbie is now known as Guest61338
22:42
yqt left
22:43
Guest61338 left
22:46
vendethiel left
22:51
vendethiel joined
22:52
skids joined,
kaare_ left
22:53
eli-se left
23:04
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
|
|||
colomon | SpaceX rocket is going up… | 23:04 | |
23:04
adu joined
|
|||
jdv79 | are they attempting landing again? | 23:05 | |
no so thats not fun | 23:07 | ||
23:12
Rounin left
23:13
BenGoldberg joined
23:25
dnmfarrell left
|
|||
lucasb | m: class A { method foo() { 42 } }; say A.foo(:abc) | 23:35 | |
camelia | rakudo-moar b6b180: OUTPUT«42» | ||
lucasb | m: sub foo() { 42 }; say foo(:abc) | ||
camelia | rakudo-moar b6b180: OUTPUT«Unexpected named parameter 'abc' passed in sub foo at /tmp/PDK4fY4LEy:1 in block <unit> at /tmp/PDK4fY4LEy:1» | ||
lucasb | ^^ Subroutines don't like unexpected named parameters, but it's ok to pass them to methods? | 23:36 | |
23:36
vendethiel left
23:37
Zoffix joined
|
|||
lucasb | m: my @a = 1; say @a xx 10 :foo | 23:38 | |
camelia | rakudo-moar b6b180: OUTPUT«Unexpected named parameter 'thunked' passed in sub infix:<xx> at src/gen/m-CORE.setting:10946 in block <unit> at /tmp/WlIg6B_txF:1» | ||
lucasb | ^^ I was trying to understand why ":foo" became ":thunked" :) | ||
m: my @a = () xx *; say @a.elems | 23:41 | ||
camelia | rakudo-moar b6b180: OUTPUT«Inf» | ||
lucasb | m: my @a = () xx *; say @a[^10] | 23:42 | |
camelia | rakudo-moar b6b180: OUTPUT«(timeout)» | ||
23:43
skids left
23:44
Zoffix left
23:50
lucasb left
23:59
diana_olhovik_ left
|