»ö« 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:04
vendethiel left
00:15
vendethiel joined
00:28
laouji joined
00:36
vendethiel left
|
|||
dalek | ecs: 23147dd | TimToady++ | S32-setting-library/Containers.pod: ':partial' option for partial final rotor result |
00:39 | |
00:39
laouji left
|
|||
00:39
laouji joined
|
|||
dalek | kudo/nom: ea0b3f0 | TimToady++ | src/core/List.pm: new rotor implementation to play with |
00:40 | |
00:44
laouji left
|
|||
moritz | 12 | 00:48 | |
00:49
laouji joined
00:55
vendethiel joined
01:01
grettis left
01:18
vendethiel left
|
|||
TimToady | m: say ('a'..'z').rotor(2,3).perl | 01:22 | |
camelia | rakudo-moar ea0b3f: OUTPUT«($("a", "b"), $("c", "d", "e"), $("f", "g"), $("h", "i", "j"), $("k", "l"), $("m", "n", "o"), $("p", "q"), $("r", "s", "t"), $("u", "v"), $("w", "x", "y"))» | ||
TimToady | m: say ('a'..'z').rotor(5 => -1).perl | ||
camelia | rakudo-moar ea0b3f: OUTPUT«($("a", "b", "c", "d", "e"), $("e", "f", "g", "h", "i"), $("i", "j", "k", "l", "m"), $("m", "n", "o", "p", "q"), $("q", "r", "s", "t", "u"), $("u", "v", "w", "x", "y"))» | ||
TimToady | m: say ('a'..'z').rotor(5 => -1, :partial).perl | ||
camelia | rakudo-moar ea0b3f: OUTPUT«($("a", "b", "c", "d", "e"), $("e", "f", "g", "h", "i"), $("i", "j", "k", "l", "m"), $("m", "n", "o", "p", "q"), $("q", "r", "s", "t", "u"), $("u", "v", "w", "x", "y"), $("y", "z"))» | ||
TimToady | we'll lose those $'s when we GLR, I think | 01:24 | |
m: say ('a'..'z').rotor(5 => -1).map(*.<>).perl | |||
camelia | rakudo-moar ea0b3f: OUTPUT«(("a", "b", "c", "d", "e"), ("e", "f", "g", "h", "i"), ("i", "j", "k", "l", "m"), ("m", "n", "o", "p", "q"), ("q", "r", "s", "t", "u"), ("u", "v", "w", "x", "y"))» | ||
TimToady | will look more like that | 01:25 | |
m: .say for lol |('a'..'z').rotor(5 => -1).map(*.<>) | |||
camelia | rakudo-moar ea0b3f: OUTPUT«a b c d ee f g h ii j k l mm n o p qq r s t uu v w x y» | ||
TimToady | probably about time to think about the semantic shift of map etc. for the GLR too | 01:26 | |
01:26
dayangkun joined
|
|||
moritz | which semantic shift? | 01:27 | |
TimToady | .map not flattening, for instance | ||
meeting & | 01:28 | ||
01:32
Peter_R left
|
|||
moritz | m: say <a b c d e f g h>.rotor(3).join('|') | 01:32 | |
camelia | rakudo-moar ea0b3f: OUTPUT«a b c|d e f» | ||
moritz | m: say <a b c d e f g h>.rotor(3, :partial).join('|') | ||
camelia | rakudo-moar ea0b3f: OUTPUT«a b c|d e f|g h» | ||
moritz | m: say ('a'..'h').rotor(3, :partial).join('|') | 01:33 | |
camelia | rakudo-moar ea0b3f: OUTPUT«a b c|d e f|g h» | ||
01:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:34
Peter_R joined
|
|||
moritz | m: say ('a'..'h').rotor(2 => 1).join('|') | 01:35 | |
camelia | rakudo-moar ea0b3f: OUTPUT«a b|d e|g h» | ||
moritz | m: say ('a'..'h').rotor(3 => -1).join('|') | ||
camelia | rakudo-moar ea0b3f: OUTPUT«a b c|c d e|e f g» | ||
01:36
vendethiel joined,
grondilu left
|
|||
moritz | m: say ('a'..'h').rotor(2, 3).join('|') | 01:37 | |
camelia | rakudo-moar ea0b3f: OUTPUT«a b|c d e|f g» | ||
moritz | m: say ('a'..'h').rotor(1 => 1, 3).join('|') | ||
camelia | rakudo-moar ea0b3f: OUTPUT«a|c d e|f» | ||
moritz | m: say ('a'..'h').rotor(1 => 1, 3, :partial).join('|') | 01:38 | |
camelia | rakudo-moar ea0b3f: OUTPUT«a|c d e|f|h» | ||
moritz | m: say ('a'..'h').rotor(1 => 1, 3 => -1, :partial).join('|') | ||
camelia | rakudo-moar ea0b3f: OUTPUT«a|c d e|e|g h» | ||
dalek | c: 003d721 | moritz++ | / (2 files): List.rotor |
01:39 | |
moritz | masak++ # release | 01:40 | |
TimToady++ # speculating and implementing the new List.rotor | |||
Juerd | What's the real world use case for rotor? | 01:42 | |
dtscode | thanks raydiak psch | 01:47 | |
dalek | ast: 46452a1 | moritz++ | S32-list/rotor.t: List.rotor tests |
01:54 | |
kudo/nom: c44c52e | moritz++ | t/spectest.data: Run List.rotor tests |
01:55 | ||
moritz should try to sleep again | |||
ugexe | n-at-a-time for starters | 02:06 | |
colomon | or 1 2, 2 3, 3 4, 4 5 # I find this a very common pattern in my code | 02:18 | |
02:40
vendethiel left
|
|||
dtscode | i am loving perl 5 | 02:41 | |
perl 6 even | 02:42 | ||
02:55
vendethiel joined
02:59
noganex_ joined
03:02
noganex left
03:05
telex left
03:06
telex joined
|
|||
timotimo | 0, 1, 2; 1, 2, 3; 2, 3, 4; ... is perfect for linear cellular automata | 03:07 | |
03:08
raiph joined
|
|||
TimToady | the basic problem is that the real world cannot be predicted, so it's tough to come up with use cases, but this covers a large number of similar situations with an FPish solution rather than procedural | 03:12 | |
03:15
ShimmerFairy left
03:19
ShimmerFairy joined
03:20
Woodi left
03:21
Woodi joined
03:43
Ben_Goldberg left
03:45
vendethiel left
03:48
vendethiel joined
|
|||
skids | m: say (1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,1).rotor(5,-4).map: { ([+] $_.values) / 5 } # rolling everage. | 03:51 | |
camelia | rakudo-moar c44c52: OUTPUT«0.8 0 0.6 0 0.8 0 0.6 0 0.6 0 0.4 0 0.6 0 0.4 0 0.4 0 0.2 0 0.4 0 0.2 0 0.2 0 0.4 0 0.4 0 0.4 0 0.4 0 0.6 0» | ||
skids | There are probably a lot of DSP applications using sliding windows. | ||
raydiak | waitwait that's not right... | 04:02 | |
m: say (^4).rotor(2,0).perl | |||
camelia | rakudo-moar c44c52: OUTPUT«($(0, 1), $( ), $(2, 3), $( ))» | ||
raydiak | '$( )'? | ||
04:02
skids left
|
|||
TimToady | that's 2 => 0 now | 04:03 | |
or just 2 | 04:04 | ||
or are you wanting empty slices? | |||
m: say (1,0,1,1,1,0,1,0,1,0,1,0,0,0,1,0,0,1,0,1,0,1).rotor(5 => -4).map: { ([+] $_.values) / 5 } | 04:05 | ||
camelia | rakudo-moar c44c52: OUTPUT«0.8 0.6 0.8 0.6 0.6 0.4 0.6 0.4 0.4 0.2 0.4 0.2 0.2 0.4 0.4 0.4 0.4 0.6» | ||
raydiak | oh right | ||
TimToady | we should probably disallow negative integers | 04:06 | |
raydiak | agreed | 04:08 | |
04:10
vendethiel left
|
|||
raydiak | m: role foo { has $.foo; multi trait_mod:is<foo> ($r, :$foo!) { say $r }; }; grammar G { token a is foo { .* } }; | 04:11 | |
camelia | rakudo-moar c44c52: OUTPUT«use of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:2043Unhandled exception: No exception handler located for warn at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:print_ex…» | ||
04:12
vendethiel joined
|
|||
raydiak | am I doing something wrong, or are user-defined traits broken somewhere here? (in Grammar, on Regex, something like that) | 04:12 | |
m: role foo { multi trait_mod:is<foo> ($r, :$foo!) { }; }; sub a () is foo {}; # reduced | 04:24 | ||
camelia | rakudo-moar c44c52: OUTPUT«use of uninitialized value of type Any in string context in any at src/Perl6/World.nqp:2043Unhandled exception: No exception handler located for warn at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:print_ex…» | ||
04:33
vendethiel left
04:37
spider-mario left
04:39
spider-mario joined
04:43
vendethiel joined
04:45
mr-foobar joined
04:46
grettis joined,
kaare_ joined
04:47
dtscode left
04:50
aindilis left,
aindilis joined,
grettis left
04:52
nbdsp joined
|
|||
nbdsp | Greetings! Could someone advise please if STD.pm6 can be used for parsing Perl 6 code? When I try from command line: perl6 -Ilib -I. ./STD.pm6 parse ~/tst.pl6 - I receive an error: "Could not locate compile-time value for symbol P6." | 04:52 | |
yoleaux | 21 Apr 2015 21:37Z <jnthn> nbdsp: I did a quick MOP hack... gist.github.com/jnthn/d8c27741c7b0d25f340d | ||
TimToady | no, STD only works by translating itself to P5, and it's really only intended to be a prototype that we will eventually throw away | 04:54 | |
there are a number of ways in which rakudo has surpassed STD already | |||
nbdsp | Ah, thanks! | ||
.tell jnthn Regarding M.pm6 - very useful and instructive, thanks! | 05:03 | ||
yoleaux | nbdsp: I'll pass your message to jnthn. | ||
05:05
vendethiel left
05:12
aborazmeh left
05:19
vendethiel joined
05:28
Timbus left
05:34
raiph left
05:43
konsolebox joined,
konsolebox left
05:45
Psyche^ joined
05:46
konsolebox joined
05:49
Patterner left
06:03
dtscode_ joined,
dtscode_ left
06:06
diana_olhovik_ joined,
vendethiel left
06:10
ggoebel left
06:17
vendethiel joined,
konsolebox left,
konsolebox joined,
konsolebox left
06:18
konsolebox joined
06:19
konsolebox left
06:22
ggoebel joined
06:26
Timbus joined
06:35
Possum left
06:39
vendethiel left
06:42
gfldex joined,
domidumont joined
06:47
domidumont left,
RabidGravy joined
06:48
gfldex left,
domidumont joined,
FROGGS joined
06:49
Ven joined
06:53
rindolf joined
07:00
_mg_ joined
07:01
Rounin joined
|
|||
dalek | p: eec34ed | FROGGS++ | tools/build/MOAR_REVISION: bump moar frev for cp1252 support |
07:01 | |
p: 2dbb0ab | skids++ | / (2 files): Activate previously existing windows-1252 charset support |
07:02 | ||
p: 08d257a | FROGGS++ | / (2 files): Merge pull request #236 from skids/windows-1252 Activate previously existing windows-1252 charset support |
|||
kudo/nom: 9f840b7 | FROGGS++ | tools/build/NQP_REVISION: bump nqp/moar rev for cp1252 support |
|||
kudo/nom: 35ea31f | skids++ | src/core/Str.pm: Hook up windows-1252 charset support. This requires changes |
07:03 | ||
kudo/nom: 59f57a8 | FROGGS++ | src/core/Str.pm: Merge pull request #415 from skids/windows-1252 Hook up windows-1252 charset support. |
|||
nine | .tell colomon ah, yes, I do not handle overloading at all, yet. Maybe I should have a look at that soonish. | 07:09 | |
yoleaux | nine: I'll pass your message to colomon. | ||
07:13
vendethiel joined
07:15
bjz joined
07:26
spider-mario left
|
|||
jnthn | morning, #perl6 | 07:31 | |
yoleaux | 05:03Z <nbdsp> jnthn: Regarding M.pm6 - very useful and instructive, thanks! | ||
07:35
vendethiel left
07:44
darutoko joined
|
|||
RabidGravy | in Test, "use-ok" stands alone as having a hyphen instead of an underscore, is this for some reason I can't determine or just an accident of history? | 07:45 | |
07:45
cschwenz joined
07:46
vendethiel joined,
cschwenz left
|
|||
[ptc] | RabidGravy: no, it was desired to have all names in the Test module to use kebab-case instead of underscores | 07:47 | |
07:48
bjz left,
zakharyas joined
|
|||
[ptc] | RabidGravy: there's a PR waiting in the wings, but noone has bitten yet... | 07:48 | |
RabidGravy: the idea being to have constitent naming in Test.pm | 07:49 | ||
RabidGravy | right, I won't worry too much, but it probably want's to go in sooner rather than later so the deprecations have time to work through | 07:50 | |
[ptc] | we just have to convince one of the rakudo devs to apply the patch :-) | 07:53 | |
strange, I'm still getting 404 when trying to download the latest nqp and/or rakudo... | 07:55 | ||
07:55
konsolebox joined,
konsolebox left
|
|||
RabidGravy | github.com/rakudo/rakudo/pull/371 for reference | 07:55 | |
FROGGS | [ptc]: me too :o( | 07:56 | |
07:56
konsolebox joined
|
|||
RabidGravy | I think there should be some element of deprecation on the existing subs | 07:56 | |
FROGGS | m: say "rakudo-2015.04.tar.gz".chars; say "rakudo-2015.03.tar.gz".chars | 07:57 | |
camelia | rakudo-moar 59f57a: OUTPUT«2121» | ||
FROGGS | hmmm, so it is not an invisible char this time | ||
m: say "rakudo-2015.04.tar.gz".perl; say "rakudo-2015.03.tar.gz".perl | 07:58 | ||
camelia | rakudo-moar 59f57a: OUTPUT«"rakudo-2015.04.tar.gz""rakudo-2015.03.tar.gz"» | ||
FROGGS | m: say "rakudo-2015.04.tar.gz".ords; say "rakudo-2015.03.tar.gz".ords | ||
camelia | rakudo-moar 59f57a: OUTPUT«114 97 107 117 100 111 45 50 48 49 53 46 48 52 46 116 97 114 46 103 122114 97 107 117 100 111 45 50 48 49 53 46 48 51 46 116 97 114 46 103 122» | ||
FROGGS | so it is not the name | 07:59 | |
pmichaud: HALP! | |||
08:03
MARTIMM joined
|
|||
moritz | FROGGS: what URL do you get a 404 for? | 08:03 | |
FROGGS | moritz: rakudo.org/downloads/nqp/nqp-2015.04.tar.gz | 08:04 | |
moritz: and rakudo.org/downloads/rakudo/rakudo-....04.tar.gz | |||
masak | ohayo, #perl6 | 08:05 | |
FROGGS | hi masak | ||
moritz | FROGGS: it's a permission problem on the web server | ||
FROGGS: the file wasn't world readable | |||
FROGGS | moritz++ # you fixed it | 08:06 | |
[ptc] | RabidGravy: re: deprecation, yes that was the idea. | ||
08:07
rurban joined
|
|||
masak | did we resolve the permissions thing on the tarball yesterday? | 08:07 | |
I'm not fully backlogged yet. | |||
[ptc] | just now, I think | ||
FROGGS | masak: right now | ||
jnthn | I think moritz++ just did it :) | ||
masak | oh! moritz++ | 08:08 | |
FROGGS | though, we probably need a permanent solution | ||
[ptc] | now it goes! yay! | ||
moritz++ | |||
moritz | fwiw everyone who can scp packages to rakudo.org can also just log in there by ssh | ||
FROGGS | troo | ||
moritz | and run the appropriate chmod a+r command | ||
[ptc] | moritz: or maybe just use 'scp -p'? | 08:09 | |
then the modes are preserved | |||
assuming, of course, that the locally set modes are correct | |||
08:11
bjz joined
08:12
bjz left
08:13
konsolebox left,
bjz joined
|
|||
nine | No mention of Inline::Perl5 integration in the ChangeLog :/ | 08:15 | |
moritz | nine: the surest way to get something into ChangeLog is to add it there yourself | 08:16 | |
nine | moritz: which I'd have done had I known that | 08:17 | |
moritz | nine: you can still add it, and even add it to the announcement | 08:18 | |
nine: that way whoever writes the announcement for the next star release will have an easier time finding it | |||
08:18
pecastro joined
|
|||
dalek | p: 667a3f7 | paultcochrane++ | tools/build/Makefile-Moar.in: Ensure config.status and plain nqp binary are cleaned in realclean |
08:19 | |
08:19
bjz left
|
|||
FROGGS | moritz: though there won't be a star release this time most likely | 08:22 | |
moritz | FROGGS: yes, but a diligent release manager will summarize the changes from all compiler releases since the last star release | 08:23 | |
when there's one the next time | |||
FROGGS | ohh yes | ||
moritz | also, why did we say there likely won't be a star release? | 08:26 | |
ecosystem still too broken? | |||
FROGGS | moritz: because the current slowdown when modules are installed would make it unusable | 08:27 | |
you get a >2s startup time on fast machines, and it increases when you install additional stuff | |||
nine | I seem to be lacking a commit bit to rakudo | 08:29 | |
moritz | eeks. | ||
nine: have you submitted a CLA to TPF? | |||
08:29
itz joined
08:30
vendethiel left,
andreoss` joined,
andreoss` left
|
|||
moritz | this one here www.perlfoundation.org/contributor_..._agreement | 08:30 | |
08:30
andreoss` joined
|
|||
moritz | that's a prereq for getting a rakudo commit bit | 08:30 | |
[ptc]: ^^ same for you | |||
nine | moritz: I guess not. Can I email this thing? | 08:32 | |
08:32
itz_ left
|
|||
FROGGS | I sent it as a letter to Walnut, and emailed it in parallel | 08:33 | |
nwc10 | nine: it has to be signed. I don't know what the relevant bit of the US where TPF is domiciled considers to be acceptable for "signed" | ||
nine | I cannot remember when I sent a plain old letter. Could be a decade :) | 08:34 | |
08:37
cygx joined
|
|||
cygx | o/ | 08:37 | |
is it documented what you have to do to make your own Positional types work with for? | 08:38 | ||
moritz | I don't think so | 08:39 | |
but iirc you need to do Iterable, at least | |||
[ptc] | moritz: I'd already filled one out for Parrot in 2006. Do I need to do it again? | 08:40 | |
dalek | kudo/nom: 9e19470 | (Stefan Seifert)++ | docs/ (2 files): Mention Inline::Perl5 integration in ChangeLog and release announcement Thanks to moritz++ for pointing me there. |
||
kudo/nom: 7bc1a11 | moritz++ | docs/ (2 files): Merge pull request #416 from niner/nom Mention Inline::Perl5 integration in ChangeLog and release announcement |
|||
08:40
espadrine_ joined
|
|||
moritz | [ptc]: I'm not sure; Parrot Foundation forked off of TPF at some point | 08:41 | |
nine | moritz: oh, that's true for me, too. | ||
cygx | moritz: tried that, wasn't smart enough to make it work | ||
nine | moritz: thanks for merging | ||
moritz | nine: you're welcome | 08:43 | |
08:43
aborazmeh joined,
aborazmeh left,
aborazmeh joined
08:46
Ven left
|
|||
[ptc] | moritz: I think Parrot forked off sometime after I'd signed up. I'll have to check somehow | 08:47 | |
RabidGravy | I've just added deprecations to the original branch of github.com/rakudo/rakudo/pull/371 and sent a PR there, is that the right thing to do or just make a new PR including the original changes to nom? | 08:48 | |
moritz | [Coke]: could you please verify if TPF has CLAs for nine (Stefan Seifert) and [ptc] (Paul Cochrane)? Both would be old-ish (~2006). Thanks! | 08:49 | |
iirc [Coke]++ has access to the list | |||
RabidGravy | [ptc], you have incoming anyhow :) | ||
08:54
espadrine_ is now known as espadrine,
konsolebox joined
08:57
dakkar joined
09:04
coffee` left
09:07
vendethiel joined
|
|||
dalek | p: 5b982d7 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for uniname, spesh fixes. |
09:09 | |
kudo/nom: de40075 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for various MoarVM fixes. |
09:10 | ||
ast: 35b2288 | jnthn++ | S15-unicode-information/uniname.t: Tests for RT #124144 (uniname out of bounds). |
|||
ast: f687502 | jnthn++ | S05-metasyntax/longest-alternative.t: Test for RT #124333 (huge alternation SEGV). |
|||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124144 | ||
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124333 | |||
cygx | for now, I'm just doing a method iterator { self }; method reify($) { Parcel.new(gather { take @foo[$_] for ^+@foo }); } | 09:13 | |
it's probably all kinds of wrong | |||
lizmat | good *, #operl6! | 09:16 | |
backlogging now | |||
cschwenz: re irclog.perlgeek.de/perl6/2015-04-23#i_10492165 | |||
09:17
aborazmeh left
|
|||
lizmat | it's the meta info of a *distribution* that states which compunit in that distribution emulate another *compunit* | 09:18 | |
and the meta info is handled by the CompUnitRepo | |||
the CompUnitRepo.candidates just returns CompUnit objects | 09:19 | ||
if you create your own CompUnit object for a module that is emulated, you can load it directly | |||
similar to require in a way, I would think | |||
09:19
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
lizmat | anyway, that is what *I* think about it | 09:20 | |
OMV (opinions may vary) | |||
and yes, it's still NYI | 09:21 | ||
09:25
bjz joined
|
|||
lizmat | Juerd: re irclog.perlgeek.de/perl6/2015-04-24#i_10493374 , getting a stream of coordinates, mapping them to line drawing endpoints, would be one | 09:29 | |
09:30
vendethiel left
09:32
andreoss` left
|
|||
nine | lizmat: that's....a very good use case :) | 09:34 | |
dalek | kudo/nom: b34241d | lizmat++ | src/core/List.pm: Remove unneccesary unboxing |
09:40 | |
RabidGravy | right, off to the seaside | 09:43 | |
dalek | kudo/nom: b1c3101 | lizmat++ | t/spectest.data: Maybe it was slow in 2011, it's pretty fast now |
||
09:43
beastd joined
|
|||
nwc10 | RabidGravy: whitstable? | 09:47 | |
(IIRC, that used to be a value guess) | |||
09:47
RabidGravy left
|
|||
cygx is playing around with NativeCall | 09:49 | ||
perl6 -I. -Mlibc -e 'my $buf = libc::malloc(1024); my $file = libc::fopen("libc.pm6", "r"); loop { libc::puts(chomp $file.gets($buf) // last) }' | |||
dalek | kudo/nom: 27dfc5e | jnthn++ | src/core/Uni.pm: Implement Uni.codes. |
||
kudo/nom: 5615b7d | jnthn++ | src/core/Uni.pm: Implement array indexing on Uni. |
|||
kudo/nom: 7c89551 | jnthn++ | src/core/Uni.pm: Some missing :D on Uni methods. |
|||
nine | cygx: beware: NativeCall's simplicity is highly addictive :) | 10:00 | |
10:00
vendethiel joined
|
|||
dalek | kudo/nom: c7da6ce | jnthn++ | src/core/Uni.pm: .gist/.perl/.elems/.Numeric/.Int for Uni |
10:00 | |
kudo/nom: 7b5d9a7 | jnthn++ | src/core/Uni.pm: Implement Uni.Bool. |
10:06 | ||
cygx | nine: it is | ||
there are some warts, though | |||
dalek | ast: f4f5735 | jnthn++ | S15-nfg/long-uni.t: Test covering non-tiny Uni -> Str handling. All the other tests so far for NFG look at just a handful of codes; this covers dealing with longer strings and Uni buffers. |
||
ast: 588ebf6 | jnthn++ | S15-string-types/Uni.t: Some tests for various methods on Uni. |
|||
nine | cygx: yes, I'm very much looking forward to being able to pass a Buf from C to Perl 6 for example. | 10:07 | |
cygx: if you feel the documentation is lacking something, please mention it on the channel. I guess I could contribute a bit there. | |||
dalek | kudo/nom: f74477c | jnthn++ | t/spectest.data: Run S15-string-types/Uni.t on MoarVM. |
10:08 | |
cygx | nine: there's documentation ;) | 10:10 | |
I just read the source and tests | |||
nine | cygx: doc.perl6.org/language/nativecall | ||
10:11
coffee` joined
10:12
abraxxa left
10:13
japhb joined
10:14
anaeem1 joined,
abraxxa joined
|
|||
nine | What does "TBD" stand for? | 10:14 | |
Found in NativeCall docs | |||
Timbus | to be determined/decided? usually | 10:15 | |
masak | "to be done"? | ||
10:16
anaeem1 left
|
|||
cygx | "Too Bad, Dude" | 10:16 | |
Timbus | heh | ||
arnsholt | To be determined, probably | ||
masak .oO( Three Bad Dice ) | 10:17 | ||
[ptc] | hrm, doesn't turn up in S99-glossary.pod | ||
jnthn | .oO( Too Bloody Difficult ) |
||
[ptc] | .oO( Three Blind Dice ) |
10:18 | |
masak | [ptc]: it's not so p6-specific. but maybe it belongs there anyway. | ||
nine | If it means "to be determined" then there'd be no sense in me trying to document Buffer/Blob handling for NativeCall. | ||
[ptc] | masak: since "epic fail" is described in the glossary, then TBD probably belongs in there :-) | 10:19 | |
10:19
coffee` left,
aborazmeh left
|
|||
masak | agreed. | 10:19 | |
now I'm curious: how do you describe "epic fail"? :P | |||
[ptc] | hehe | 10:20 | |
vim specs/S99-glossary.pod | |||
cygx | anyway, what I was looking for a way to set the size of a CArray | 10:21 | |
10:22
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
dalek | kudo/nom: 5943fea | lizmat++ | src/Perl6/ModuleLoader.nqp: Make RAKUDO_MODULE_DEBUG output more consistent |
10:23 | |
lizmat | afk& | 10:24 | |
10:24
vendethiel left
|
|||
cygx | I also found it 'interesting' that nativecast acts as mechanism for dereference and pointer casts both | 10:25 | |
FROGGS | cygx: if you don't want to deref you can just do: +$pointer | 10:26 | |
nine | cygx: my $arr = CArray[Pointer].new; $arr[$size] = Pointer; I guess | 10:27 | |
10:27
vendethiel joined
|
|||
cygx | nine: what about arrays that originate on the C side? | 10:30 | |
so I wrote my own wrapper and can now do libc::calloc(10, 8).as(num64, :10elems) and get something Iterable | |||
nine | cygx: those are managed by C code and NativeCall neither knows their size, nor can it change the size. | 10:31 | |
cygx: that's described in the last paragraph of the Arrays section in the NativeCall docs | 10:32 | ||
FROGGS | cygx: even you "know" the size of the array in C, you cannot get this knowledge to Perl 6 without passing it explicitly as another argument | ||
10:32
laouji left
|
|||
cygx | sure, but if you store the size in case of managed arrays anyway, why not expose a way to set it explicitly to the programmer | 10:32 | |
FROGGS | that's why you often see: foo* my_function(something, &size) | 10:33 | |
cygx | because the C APIs in general include that information by necessity | ||
FROGGS | cygx: can you provide a concrete example? | 10:34 | |
10:34
abraxxa left
|
|||
cygx | FROGGS: I wrote a wrapper so I can now do stuff like my @carray := libc::calloc(10, 8).as(num64, :10elems); @carray[$_] = $_ for ^@carray; say [+] @carray; | 10:38 | |
10:38
[particle] joined
|
|||
cygx | it would have been nice if I could just have said @carray.set-size = 10 | 10:38 | |
10:38
[particle]1 left
|
|||
FROGGS | ahh | 10:39 | |
we might be able to make `$carray.elems = 42` work | |||
10:41
dayangkun left
10:43
abraxxa joined,
abraxxa left
|
|||
cygx | what I would have expected is for .new to take a size parameter, and the ability to adjust .elems at your own risk | 10:44 | |
the latter perhaps only if .elems has not previously been set | |||
CArrays with a defined .elems can then be made iterable | 10:45 | ||
10:45
lizmat left
10:46
coffee` joined
10:49
abraxxa joined,
abraxxa left
10:50
vendethiel left
10:52
andreoss` joined
|
|||
andreoss` | how do i get "length" of Junction? | 10:53 | |
cygx goes hunting for lunch | 10:54 | ||
andreoss` | also, is there a ruby's .methods analogue? | 10:55 | |
FROGGS | .^methods | ||
10:56
nbdsp left
|
|||
DrForr | jnthn++ # Just read the fix report. Nice to know I was right re: the UnicodeLetter. | 10:57 | |
andreoss` | m: sub how-many(Junction $x) { elems split /\,/, $x.perl }; say how-many any(1...10); | 11:00 | |
camelia | rakudo-moar 5943fe: OUTPUT«10» | ||
11:01
aborazmeh left
11:05
vendethiel joined
|
|||
jnthn | andreoss`: There's no convenient way, 'cus if you want to you're probably menat to be using a set instead... | 11:06 | |
m: sub how-many(Junction $j) { my $a; (-> Any { $a++ })($j); $a }; say how-many(1|2|3) # a robust way | 11:07 | ||
camelia | rakudo-moar 5943fe: OUTPUT«3» | ||
11:09
cognominal joined
|
|||
andreoss` | it's handy with how-many $s.mathch: any(@words); | 11:15 | |
11:17
colomon left
|
|||
andreoss` | m: sub how-many(Junction $j) { my $a; (-> Any { $a++ })($j); $a }; say how-may all(); | 11:21 | |
camelia | rakudo-moar 5943fe: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yZcTGFq8TEUndeclared routine: how-may used at line 1. Did you mean 'how-many'?» | ||
andreoss` | m: sub how-many(Junction $j) { my $a; (-> Any { $a++ })($j); $a }; say how-many all(); | ||
camelia | rakudo-moar 5943fe: OUTPUT«(Any)» | ||
andreoss` | m: sub how-many(Junction $j) { my $a = 0; (-> Any { $a++ })($j); $a }; say how-many all(); | ||
camelia | rakudo-moar 5943fe: OUTPUT«0» | ||
masak | re irclog.perlgeek.de/perl6/2015-04-24#i_10493553 -- agreed. we should probably disallow 0, too. | 11:24 | |
11:26
vendethiel left,
MARTIMM left
|
|||
moritz | why? | 11:27 | |
producing an empty list occasionally doesn't hurt, no? | |||
m: <a b c>.rotor(1, 0, 1).perl | 11:28 | ||
camelia | ( no output ) | ||
moritz | m: say <a b c>.rotor(1, 0, 1).perl | ||
camelia | rakudo-moar 5943fe: OUTPUT«($("a",), $( ), $("b",), $("c",), $( ))» | ||
11:28
vendethiel joined
11:35
abraxxa joined
|
|||
masak | hm, yes. as long as the thing as a whole progresses, I guess. | 11:37 | |
11:37
Ven joined
|
|||
masak | in that case, it could make sense to make negative ints just mean 0, a bit like inverted ranges mean "empty range"... perhaps? | 11:37 | |
moritz | m: say 4..1 | 11:45 | |
camelia | rakudo-moar 5943fe: OUTPUT«4..1» | ||
moritz | might be nice to have that warn "Range will always be empty" at compile time | ||
or mayabe not | |||
11:51
vendethiel left
11:53
vendethiel joined
|
|||
dalek | ast: 68891de | jnthn++ | S15-nfg/from-buf.t: Basic test that buf decode gives NFG string. |
11:55 | |
masak | moritz: for constant ranges? yes, definitely. | ||
moritz | masak: yes, only for constant ones | 11:56 | |
masak | moritz: because someone who writes a range of literals like that will almost certainly have the wrong expectations. | ||
11:58
lizmat joined
|
|||
hoelzro | morning #perl6 | 12:08 | |
since 2015.04 is out, is it now safe for me to merge my tab completion branch? | 12:11 | ||
FROGGS | hoelzro: yes it is | ||
hoelzro: I was about to do that after $work | 12:12 | ||
hoelzro | FROGGS: thanks, I'll go ahead and do it | ||
dalek | p: a4584d3 | hoelzro++ | / (6 files): Remove references to readlineint_fh This corresponds to recent changes in MoarVM, in the no-moar-linenoise branch. I haven't removed readlineintfh from the Parrot stage 0 stuff, because the tests are currently failing, and I don't want to bork Parrot worse than it already is. |
12:15 | |
p: e203813 | hoelzro++ | src/HLL/Compiler.nqp: Restore prompt to REPL |
|||
p: dbe889b | hoelzro++ | src/HLL/Compiler.nqp: Break reading of lines out into a helper method |
|||
p: f12e63a | hoelzro++ | tools/build/MOAR_REVISION: Bump MoarVM version |
|||
p: cf14f27 | hoelzro++ | src/HLL/Compiler.nqp: Preserve interactive eval context as an attribute of the compiler |
|||
p: 4b13834 | hoelzro++ | / (7 files): Merge branch 'no-readlineint' |
|||
Heuristic branch merge: pushed 19 commits to rakudo/nom by hoelzro | 12:17 | ||
masak | cognominal: no github.com/perl6/specs/commit/7068...bcf9a7R977 -- it's a pun on "historical reasons" | 12:25 | |
dalek | kudo-star-daily: 65ee33e | coke++ | log/ (2 files): today (automated commit) |
||
kudo-star-daily: e1ed816 | coke++ | log/ (2 files): today (automated commit) |
|||
rl6-roast-data: 7e037e1 | coke++ | / (9 files): today (automated commit) |
|||
12:26
beastd left
|
|||
masak | TimToady: re github.com/perl6/specs/commit/2314...e64d946e05 | 12:27 | |
TimToady: if negative gaps are allowed, isn't it possible for there to be several partial results at the end? | |||
hoelzro | eesh, panda help looks a little funky: gist.github.com/hoelzro/a55ce71fae0d42a8ad7d | 12:29 | |
Ven | "just use perl or awk" yeah, or `cat x | perl6 -ne '.say if $++ ~~ 250..260'` | 12:30 | |
hoelzro | I'm guesing is this from the compunit changes? | ||
cognominal | masak: oops, I will correct it on my next modifs batch | ||
I probably had the femen in mind at that time :( | 12:31 | ||
hoelzro | how does one get panda to install a .so built by your module? | ||
Ven | I can write this as `perl -nE 'say if 250..260'` though – that's using both "if LIT_NUM" and flipflops, hum | 12:32 | |
12:37
telex left
12:38
telex joined
|
|||
Ven | do we have any "bdd" or "tdd"-style test frameworks in perl6 (yet)? Thing like `expect(3).to-equal(4);` | 12:40 | |
[Coke] | moritz: I see one for ptc but not nine | ||
moritz | [Coke]: thanks | 12:41 | |
12:54
Ven left
12:55
molaf joined
12:56
vendethiel left
13:00
cygx left
|
|||
hoelzro | .tell Ven: no, but I have a name picked out if you want to use it | 13:03 | |
yoleaux | hoelzro: What kind of a name is "Ven:"?! | ||
hoelzro | .tell Ven no, but I have a name picked out if you want to use it | ||
yoleaux | hoelzro: I'll pass your message to Ven. | ||
13:03
vendethiel joined
|
|||
hoelzro | .tell Ven "Speculaas", if you want it | 13:04 | |
yoleaux | hoelzro: I'll pass your message to Ven. | ||
literal | prima | ||
psch .oO( specul as a service ) | 13:05 | ||
jnthn will soon find out what the initial NQP/Rakudo/spectest of his first attempt at enabling NFG for all strings/IO will be. :) | 13:06 | ||
moritz is sure it'll be exciting | 13:07 | ||
jnthn | uh, *impact | ||
Well, so far I know: NQP builds and passes all but 2 tests. | 13:08 | ||
Rakudo builds and passes sanity tests. | |||
Spectests in progress. | |||
moritz | that's already quite impressive | 13:09 | |
jnthn | Given every single byte coming into Moar is now going through the new normalization code path, this is an encouraging first result. :) | ||
Well, every byte that ends up being a string. | |||
timotimo | vendethiel: i saw a module like that | 13:14 | |
github.com/supernovus/PSpec/blob/m.../t/basic.t | 13:15 | ||
jnthn | 4 spectest files have regressions, 1 has passing TODOs. | ||
timotimo | do we have something like an idea for paths and filenames, btw? | 13:16 | |
13:16
andreoss` left
|
|||
timotimo | because normalizing things there will lead to pain ... lots of pain | 13:16 | |
lots and lots and lots of pain | |||
arnsholt | Yeah, on non-OS X Unix, it's gonna be a massive pain | 13:17 | |
NTFS and HFS+ don't care | |||
timotimo | IIRC, filesystems on linux basically let you store binary data in the file name as long as it doesn't contain \n or \0 or something like that? | 13:18 | |
jnthn | The oddest place I see fails is in S32-str/indent.t | ||
arnsholt | Unix filenames are just blobs of bytes. IIRC the exact characters outlawed depend a bit on the specific FS, but in general it's \0 and / and not much else I think | 13:19 | |
timotimo | ah, /, of course | ||
jnthn | Then, one of the NQP tests that fails is a regex one about \h | ||
arnsholt | \n is fine mostly (I think) | ||
timotimo | well, if we go ahead and try to put that into a Str, we'll end up not so happy | ||
and if we just always give the user a Blob, the user will end up not so happy | |||
and if we give the user Str except if we can't decode it, in which case we'll give the user a Blob, that'll make them happy until they stumble upon it in which case they'll be furious | 13:20 | ||
arnsholt | Yeah, filenames are gonna be tricky | ||
Especially since our strings are more or less NFC, and Unix filenames tend to be more like NFD (due to how people generally input accented characters) | 13:21 | ||
psch | \0 and / is POSIX, apparently | 13:22 | |
cdc | timotimo: \n is allowed on Linux (ext4) | ||
13:22
grondilu joined
|
|||
cdc | psch: I agree, only \0 and / | 13:22 | |
jnthn | m: say uniname 0x2000 | 13:23 | |
camelia | rakudo-moar 0914fc: OUTPUT«EN QUAD» | ||
jnthn | m: say uniname 0x2001 | ||
camelia | rakudo-moar 0914fc: OUTPUT«EM QUAD» | ||
jnthn | m: say Uni.new(0x2001) | ||
camelia | rakudo-moar 0914fc: OUTPUT«Uni:0x<2001>» | ||
jnthn | m: say Uni.new(0x2001).NFC | ||
camelia | rakudo-moar 0914fc: OUTPUT«NFC:0x<2003>» | ||
jnthn | m: say Uni.new(0x2000).NFC | 13:24 | |
camelia | rakudo-moar 0914fc: OUTPUT«NFC:0x<2002>» | ||
13:24
espadrine left
|
|||
jnthn | m: say uniprop 0x2000, 'Decomp_Spec'; | 13:24 | |
camelia | rakudo-moar 0914fc: OUTPUT«2002» | ||
jnthn | m: say uniprop 0x2001, 'Decomp_Spec'; | ||
camelia | rakudo-moar 0914fc: OUTPUT«2003» | ||
jnthn | Innerestin' | 13:25 | |
timotimo | huh, a single character that decomposes into a different character? | ||
jnthn | timotimo: Yeah, Unicode has various singletons | ||
Oh, I get I know where I need to fix it. | |||
*bet | |||
timotimo | somewhere we do 1-based count, where we should have 0-based counted? | 13:26 | |
jnthn | I suspect more that chr(...) does not provude a properly NFG'd string yet | ||
13:32
espadrine_ joined
|
|||
nwc10 | Python 3.0 was epic fail on (a) how it coped with filenames that weren't in the encoding it assumed that they would be (b) I/O performance. | 13:33 | |
3.1 fixec both, as I understand it | |||
curious how both of these topics appear on #perl6 within a few minutes | |||
arnsholt | Yeah, the filename thing is a hard problem I think | 13:34 | |
(Even though I do thing the HFS+/Windows view is more correct than the more traditional Unix filename position) | |||
13:35
raiph joined
|
|||
moritz | yes, Unix just say "here, have a bunch of bytes, as long as there's no \0 in it" | 13:35 | |
geekosaur | but you can't retrofit it onto existing unixlike systems, so there's no point in trying to pretend | ||
13:36
skids joined
|
|||
geekosaur | if you can't push the unicode layer into the filesystem drivers in the kernel, you can't rely on unicode in layers closer to userspace | 13:36 | |
arnsholt | Yeah, it's a really tricky backcompat problem | 13:37 | |
timotimo | the first step ought to be that getting a directory listing must give you things that let you get at the file as it is on disc | ||
normalization or things like that must not make file sunaccessible | |||
jnthn | It's a bit fiddly, but I suspect we can use synthetics to represent things that we got from the file system that don't fit into our stringy world view, and recover them on encode. | 13:40 | |
13:40
erdic joined
|
|||
jnthn | Down to 1 NQP test regression now after fixing chr | 13:41 | |
timotimo | that's not a bad idea at all! | ||
that'd be something that no other language "can" do | |||
language or language implementation | |||
nwc10 | timotimo: which, IIRC, Python 3.0 messed up - files became inaccessible | 13:42 | |
13:42
abraxxa left
|
|||
nwc10 | however, as I understand it, Perl 6 is taking a much simpler world view than Python 3. | 13:42 | |
timotimo | on the other hand, if we store file names in an NFG string, we'd have to be careful not to actually do normalization along with the synthetics we create for "wtf"-y filename data | ||
nwc10 | Perl 6 is "UTF-8, dammit" on STDIN, STDOUT, STDERR | 13:43 | |
whereas Python 3 tries to work out what your locale's encoding it | |||
is | |||
jnthn | OK, I'm also down to 2 Perl 6 spectest files with regressions. | ||
And both are explicitly Unicode related. | 13:44 | ||
nwc10 | oh, wow | ||
timotimo | python has this super annoying quality where encoding changes based on stdout.isatty | ||
leedo | timotimo: nodejs has the problem and no workaround, it's a bit ridiculous github.com/joyent/node/issues/2387 | ||
nwc10 | timotimo: oh, I didn't know that. So if you pipe the output of your script to cat, the output changes? | ||
(potentially) | 13:45 | ||
jnthn | S02-literals/quoting-unicode.t somehow runs one test too few, and S05-mass/named-chars.t fails 4 tests | ||
The NQP one is a fiddly csae | |||
It's about tell | |||
And when you're doing NFG, or any normalization really, you need to read some bytes ahead of where you're spitting out chracters you consider normalized, in case the the next thing is a combiner. | 13:46 | ||
13:47
vendethiel left
|
|||
jnthn | And we don't attempt to lie about how many bytes we've processed even if some of them didn't lead to you getting a grapheme yet. | 13:47 | |
timotimo | yes, lieing would be very problematic, especially if you have a file descriptor that can't seek | ||
jnthn | And I don't know what I want to try implementing said attempt to lie. | ||
*that I want | |||
Well, if you're doing a byte level thing (tell) and reading at char level, then I think you're probably asking for trouble | 13:48 | ||
timotimo | i say we put that in the faq and not test for tell when reading Str rather than Buf | ||
jnthn | Note that we don't let the fact we have IO buffers leak here | 13:49 | |
It's purely that the *character* decoder can't spit out a grapheme until seeing the next codepoint(s) | |||
jnthn analyzes the 2 spectest files | |||
13:51
vendethiel joined
13:52
Ven joined
|
|||
jnthn | hah | 13:53 | |
S02-literals/quoting-unicode.t is a funny one | |||
There's a huge hash of opener => closer | 13:54 | ||
13:54
muraiki joined
|
|||
jnthn | I think we run one test too few because somewhere in there, we have a singleton decomposition. | 13:54 | |
On an opener (and probably its closer) | |||
As a result, the two hash keys become equal NFG strings. | 13:55 | ||
timotimo | ... wat :S | ||
the opener and closer become the same character? | |||
that seems like madness | |||
jnthn | No | 13:56 | |
13:56
gfldex joined
|
|||
jnthn | Two opener/closer pairs become equal | 13:56 | |
timotimo | ooooh | ||
moritz | now that's a case where a test plan detected changed behaviors | ||
jnthn | Right :) | ||
13:57
rurban left
|
|||
jnthn | However, I think in this case the implementation wins :) | 13:57 | |
Thankfully it's easy to fix it for both NFG and non-NFG implementations by doing a list of pairs rather than a hash. | |||
13:58
Rounin left
|
|||
dalek | ast: d62cc3d | jnthn++ | S15-nfg/from-buf.t: De-confuse wording of a test. |
14:01 | |
ast: 1272df2 | jnthn++ | S02-literals/quoting-unicode.t: Make a test robust in the face of NFG. It had a hash of opener/closer pairs. However, in an implementation that does NFG, due to singleton decompositions in Unicode, two of the opener/closer pairs ended up equal after normalization, resulting in a hash with an element less and thus a test less being run. Use a list of pairs instead. |
|||
jnthn | OK, so my flicking the NFG switch is now only blocked by one spectest file (with 4 test fails) and one NQP test. :) | 14:02 | |
skids wonders if the GLR will include a Cat/Seq-ish thing. | 14:03 | ||
jnthn | Cat is pretty certainly post-6.0 | ||
timotimo | i heard Cat would be pretty post-.60 | ||
... | |||
moritz | it's not that hard to build it a Cat-y type | ||
but teaching the regex engine to work with it will be hard | 14:04 | ||
because it assumes all over the place that (1) you match against a str, really and (2) you know the number of chars of the thing you're matching against | |||
skids | Yeah. But at least now charsets will be solid the next time someone tries. | 14:05 | |
timotimo | yes, that will be difficult | 14:07 | |
i'm also interested in getting the regex engine working with lists of objects | 14:11 | ||
(is that what a Seq is?) | |||
skids | Seq was an old deprecated name for Cat, I think? | 14:12 | |
timotimo | ah | ||
skids | I rmember it getting purged, at least. | ||
14:13
vendethiel left
|
|||
jnthn | hoelzro: Did you test your REPL patches on Windows at al? | 14:13 | |
*all | |||
hoelzro | jnthn: ah crap, no I didn't =/ | ||
did I break everything on Windows? | |||
jnthn | hoelzro: ok, but don't panic yet, I have Moar/NQP version skew. | ||
hoelzro: I'm not sure, but gimme a moment... | 14:14 | ||
hoelzro | heh | ||
hoelzro crosses fingers | |||
14:14
gcole left
|
|||
jnthn | It could potentially also relate to the NFG bits I'm doing since I've touched I/O... | 14:14 | |
14:15
vendethiel joined
|
|||
jnthn | hoelzro: OK, now it hangs instead but that one may actually be my fault :) | 14:16 | |
The previous failure mode less so | |||
14:17
MARTIMM joined
|
|||
jnthn | hoelzro: Yes, that one is mine :) | 14:18 | |
(the hang) | |||
hoelzro | phew | ||
moritz | skids: Seq was a listy thing, iirc (an immutable List, or something like that) | ||
hoelzro | we'll see if it works after you fix that =) | ||
jnthn | Sure | ||
I didn't actually push the commits that cause the hang yet, fwiw | |||
jnthn is using rebase -i to keep those two back while pushing other fixes that they depend on :)) | 14:19 | ||
14:19
Ven left
|
|||
hoelzro | =) | 14:20 | |
my big issue with tab completion atm is that panda install doesn't install the shared library that Linenoise.pm depends on =/ | |||
I could've sworn that it used to | |||
timotimo | maybe before the magical eleven merge :S | 14:21 | |
froggs would be the one to ask here | 14:23 | ||
hoelzro | also interesting is the change in the output of 'panda help' | 14:24 | |
gist.github.com/hoelzro/a55ce71fae0d42a8ad7d | |||
although I suspect that'll be easy to fix | |||
timotimo | yes, that's annoying | 14:25 | |
it's about $*PROGRAM_NAME iirc | |||
hoelzro | makes sense | ||
timotimo | and the "wrapper script" possibly execs that program? i'm not sure | 14:26 | |
14:26
andreoss joined
|
|||
hoelzro | me neither | 14:26 | |
14:27
Ven joined
|
|||
andreoss | is there spoilers in perl6 pod? | 14:27 | |
timotimo | well, you can cat $(which panda) | ||
andreoss | *are | ||
14:27
_mg_ left
|
|||
hoelzro | ruh roh: www.isup.me/rakudo.org | 14:27 | |
timotimo | andreoss: every lower-case block name is free for you to use. which means you can =begin spoiler ... =end spoiler, but our converters (like the 2html one) won't understand it | 14:28 | |
14:29
gcole joined
|
|||
andreoss | timotimo: it should be adopted here examples.perl6.org/categories/euler...ic256.html | 14:30 | |
timotimo | for all the euler problems, aye? | ||
well, how do you actually output a spoiler to html "properly"? | |||
andreoss | yep | ||
mst | timotimo: rot13 | 14:32 | |
timotimo | do we generate two html files and a link from the first to the next, or do we output a bit of javascript along with the html? | ||
mst | timotimo: rot13, and optionally a javascript snippet to unrot | ||
timotimo | "unrot" %) | 14:33 | |
actually, we should abuse the property of rot13 that forwards is the same as backwards and give a javascript snippet to rot, so people will acknowledge we are smart enough to realize that there's no need for an unrot function | |||
andreoss | .spoiler { background: #000 ; foreground: #000 } | 14:34 | |
timotimo | so you have to select it to see stuff? | ||
andreoss | yes, no js needed | 14:35 | |
14:35
abraxxa joined,
abraxxa left
|
|||
hoelzro | oh, I see now | 14:36 | |
timotimo | perhaps there's pod block attributes that the to html converter turns into html classes or something? | ||
hoelzro | panda has CompUnit::Local::Installation do the installing | ||
timotimo | =begin block :htmlclass<spoiler> or something like that | ||
hoelzro | and that class mangles the names | ||
so the .so is there, it's just not called liblinenoise.so | |||
timotimo | yes, that was an important thing to do | ||
make rakudo itself responsible for installing stuff | |||
ah, yes, you can have a look at the manifest to find it (or search for it with the CompUnitRepo::* | 14:37 | ||
hoelzro | is the filename mangling necessary? | ||
14:38
vendethiel left
|
|||
hoelzro | so we need to either unmangle shared objects' names, or convince the dynamic object loaders to load from the mangled name | 14:38 | |
jnthn now has REPL unbusted with NFG stuff, and the same fix also dealt with the NQP regression. | 14:39 | ||
timotimo | we have to handle fiilenames somehow | ||
just giving them numbers isn't optimal | |||
but it's the easiest way to make things not conflict | |||
14:39
Ven left
|
|||
hoelzro | fair enough | 14:40 | |
skids | jnthn: time for a mic drop, then? | ||
timotimo | i'd prefer the original file names to at least be hinted at | ||
14:40
Ven joined
|
|||
hoelzro | same here; I'm used to being able to look at the source for a module easily with P5 or Python | 14:40 | |
jnthn | skids: I've one Rakudo spectest file still with regressions (4 tests failing) that I didn't investigate yet. | 14:41 | |
timotimo | we ought to have a commandline tool for that, too | ||
hoelzro | I suppose one could write a small tool to yield filenames given a query, though | ||
FROGGS | timotimo: we already have a solution for that btw | ||
hoelzro | hooray, he's here! | ||
14:41
_mg_ joined
|
|||
FROGGS | yes, just busy at $work :o( | 14:41 | |
14:42
vendethiel joined
14:44
_mg_ left
|
|||
hoelzro | =/ | 14:44 | |
timotimo | i don't know exactly what froggs' "that" refers to | 14:46 | |
FROGGS | that the installed scripts/modules are just numbered files on disk | 14:48 | |
this will change | |||
(probably) | |||
moritz | Life, Universe and Everything, I hope :-) | ||
timotimo | ah | ||
well, that's the easy-ish part :) | |||
ugexe | seems like authority/modulename/version/module.pm would be feasable if not ugly | 14:49 | |
timotimo | folders? | ||
not so sure about that, tbh | |||
hm, though ... having files that belong to the same module in one place would be nice | |||
ugexe | im interested in how you guys end up implemented supercedes, emulates, and friends | 14:50 | |
implementing^ | |||
hoelzro | supersede is impl'd? | 14:51 | |
14:51
_mg_ joined
|
|||
hoelzro is very out of touch, it seems | 14:51 | ||
ugexe | no | ||
hoelzro | oh, I misread =/ | ||
14:53
_mg_ left
|
|||
dalek | p: 9e2b706 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java: Don't unboxJava if it's not a JavaObjectWrapper. This fixes a ClassCastException leaking to the HLL when we call what() on a TypeObject. |
14:56 | |
psch | still getting "java.lang.System" or somesuch for WHAT after that | 14:57 | |
although maybe that's actually fine, because users should be able to see it's a Java object? | |||
14:57
jack_rabbit left
15:01
molaf_ joined
15:02
smannlymann joined
|
|||
psch | now maybe i can make all Java classes inherite from Mu, that could help with .DEFINITE and all those other methods we do things with... | 15:03 | |
15:03
vendethiel left,
molaf left
15:04
eli-se joined
|
|||
eli-se | good mornign! | 15:05 | |
15:05
RabidGravy joined
|
|||
psch | hey eli-se \o | 15:05 | |
timotimo | mood gorning! | ||
15:10
FROGGS left
15:12
domidumont left
15:13
zeleiadi joined,
abraxxa joined
15:15
vendethiel joined
15:23
diana_olhovik_ left
15:27
smannlymann left
15:39
eli-se left
15:40
vendethiel left
15:42
FROGGS joined
15:43
silug left
15:44
eternaleye left
15:45
eternaleye joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 3eb7e9d | paultcochrane++ | t/categories/rosalind.t: Start adding tests for the Rosalind examples |
15:47 | |
15:47
cognominal left
15:48
cognominal joined
15:49
cognominal left,
cognominal joined
15:52
zeleiadi left
15:54
Ven left
15:55
Ven joined,
vendethiel joined
15:58
xfix joined,
xfix left,
xfix joined
|
|||
jnthn | Hmm, I don't think this test is gonna work out under NFG: | 15:59 | |
ok("abc\x[5b4]\x[fd55]def" ~~ m/\c[HEBREW POINT HIRIQ,ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM]/, 'Multiple HEBREW POINT HIRIQ,ARABIC LIGATURE TEH WITH MEEM WITH JEEM INITIAL FORM'); | |||
Because the string ends up with NFG applied and so the two combiners go on the c | |||
Giving a synthetic. | 16:00 | ||
16:01
zakharyas left
|
|||
TimToady | well, looks like the test is wrong | 16:05 | |
m: say uniprop(0x5b4),' ',uniprop(0xfd55) | |||
camelia | rakudo-moar 0914fc: OUTPUT«Mn Lo» | ||
jnthn | TimToady: OK, if we agree on that then I can fix the tests :) | 16:06 | |
TimToady | the second isn't a combiner though | ||
jnthn | Oh | ||
I didn't check, just assumed :) | |||
First is enough for bustage | 16:07 | ||
TimToady | are the tests assuming you can tests any component of a combined char? | ||
*test | |||
rather than just the base char? | 16:08 | ||
or is there some arcane rule buried somewhere in a little-read Unicode document that prevents putting Hebrew marks on ASCII chars? | 16:09 | ||
and, I assume this is an NFC test, not an NFD test... | 16:10 | ||
also I assume this test came from the UC, not hand-rolled | 16:11 | ||
I mean, it's acting like it's expecting NFD semantics there | 16:12 | ||
jnthn | TimToady: There's a few tests that assume you can test any component of a combined char, yes. | 16:15 | |
TimToady: So basically, NFD | |||
Not sure on the history of the test; it's not one I've added. Guess it was generated though. | |||
tony-o | m: my sub r (int32 $a) { $a.say; }; r(4023233417); my int32 $r = 4023233417; $r.say; | ||
camelia | rakudo-moar 0914fc: OUTPUT«4023233417-271733879» | ||
16:16
andreoss left
|
|||
jnthn | tony-o: Sized native types only really work out in the context of native call and arrays so far. | 16:16 | |
tony-o | gotcha, thank you ^ | ||
timotimo | i wonder where exactly that needs work | 16:17 | |
16:18
vendethiel left
16:20
eli-se joined
|
|||
eli-se | hi | 16:21 | |
16:21
konsolebox left
|
|||
timotimo | ohai eli-se | 16:22 | |
dalek | ast: ecb4684 | jnthn++ | S15-nfg/concatenation.t: Tests for NFG closure under concatenation. |
16:28 | |
ast: f6a47d6 | jnthn++ | S15-nfg/from-file.t: Basic tests for I/O and NFG interaction. |
|||
16:28
vendethiel joined
|
|||
dalek | ast: e46e945 | jnthn++ | S05-mass/named-chars.t: Correct tests for NFG; todo 3 needing more review. |
16:30 | |
jnthn | Ah, damn, fixing things to be closed under concatenation seems to have had a lot of other fallout. | 16:31 | |
16:35
Ven left
|
|||
jnthn | Oh, actually, it's maybe not so awful. | 16:38 | |
It's fixed a lot of TODO'd tests. | |||
16:46
Ven joined
16:49
vendethiel left
16:56
vendethiel joined
16:57
andreoss joined
|
|||
andreoss | where i can get URI::Escape? panda doens't know about it. | 16:58 | |
16:59
dakkar left
|
|||
psch | andreoss: it belongs to URI, apparently, which is listed on modules.perl6.org | 17:00 | |
my panda locally seems busted, so i can't check if panda finds that | |||
otherwise, github.com/perl6-community-modules/uri/ | |||
andreoss | do i just copy it somewhere? | 17:01 | |
psch | you can «git clone» and do «panda install .» inside the git clone | ||
17:02
ssutch joined
17:04
Ven left,
japhb left
17:13
espadrine_ left
|
|||
dalek | pan style="color: #395be5">perl6-examples: 679528f | paultcochrane++ | categories/rosalind/sgra-grondilu.pl: Removed unnecessary List::Utils dependency |
17:13 | |
tony-o | tar xvf vim | 17:15 | |
oops | |||
jnthn | TimToady: Should .codes default to the number of codepoints in NFC or NFD? | 17:18 | |
TimToady | NFC, obviously the other one is .dodes :) | 17:19 | |
17:19
vendethiel left
|
|||
TimToady | or is it .codes and .coces... | 17:20 | |
maybe .codes is a bad name | |||
jnthn | OK, if NFC then I have another test to correct. | ||
dalek | p: 26dd621 | jnthn++ | src/QRegex/P6Regex/Actions.nqp: Always evaluate char ranges at codepoint level. There are some cases where building them with normalized strings leads to the range being reversed and similar. |
||
TimToady | well, maybe we should split it into two | ||
but up till now we've been biased towards NFC | |||
dalek | ast: 8ebb19c | jnthn++ | S02-types/unicode.t: Pick example that really is 2 NFC codes. |
||
jnthn | *nod* | ||
We can re-update the test later if needed :) | |||
TimToady | .oO( .coeds and .dudes ) |
17:22 | |
lizmat | fwiw, I find "codes" a poor hufmannized version of codepoints | 17:23 | |
andreoss | timotimo: it renders using Pod::To::Html, i didn't find a feature for adding HTML classes for POD node | ||
TimToady | .nfcs and .nfds? | ||
17:23
japhb joined
|
|||
lizmat | perhas .nfc-cp and .nfd-cp ? | 17:23 | |
TimToady | cp is opaque | ||
and means "copy" to many people | 17:24 | ||
lizmat | ok, then nfcs and nfds make the most sense to me | ||
perhaps then also nfgs ? | |||
TimToady | nah, those is chars :) | ||
lizmat | instead of graphs ? | ||
TimToady | I suspect graphs can go away | ||
jnthn | .graphs is in various tests, for these days is an alias for .chars | ||
Unless we do anything weird in the future :) | 17:25 | ||
Then I guess it stays like that and...yeah, can go :) | |||
lizmat | "Returns the number of graphemes in the string in a language-independent way." | ||
TimToady | that was pre-NFG | ||
Unix filenames are encoded in WTP-8 | |||
lizmat | I would vote to eliminate chars as well then | ||
TimToady | huh | 17:26 | |
lizmat | it is as confusing as "length", which we also banned | ||
TimToady | in favor of what? | ||
lizmat | nfgs | ||
jnthn | ...no. | ||
TimToady | they're just characters | ||
jnthn | .chars is at the right abstraction level for "characters" | 17:27 | |
yoleaux | " a b c e f g h i l n o r s t v | ||
jnthn | :P | ||
lizmat | .ngfs # just checking | ||
TimToady | see, you can't even speel it wright | ||
lizmat | hehe | ||
.nfgs | |||
also doesn't work :-) | 17:28 | ||
TimToady | we need to eat our own botsnacks | ||
synbot6 | om nom nom | ||
17:32
cygx joined
|
|||
labster | good morning, * | 17:33 | |
labster was finally excused from jury duty. | 17:34 | ||
TimToady | they let you off lightly, eh? | ||
17:35
domidumont joined
|
|||
dalek | kudo/nom: 224db5e | jnthn++ | src/core/Str.pm: Fix .codes on Moar, in preparation for NFG. |
17:35 | |
labster | 3 days in jury selection for a pretty minor attempted crime, ugh. | ||
cygx | some Proxy weirdness: gist.githubusercontent.com/cygx/99...w/proxy.p6 | 17:37 | |
is that something that should be fixed, or an unavoidable consequence of how containers are supposed to work? | |||
jnthn | Unavoidable. | ||
andreoss | timotimo: actually i'm wrong, it can get class from node's config | ||
jnthn | Though the 11 is kinda high; I suspect the codepath say goes through will get a looking at some time. | 17:38 | |
dalek | ast: ad5ec82 | jnthn++ | S05-mass/properties- (4 files): Unicode property test updates for NFG. This updates/eliminates a small number of tests that don't make sense under NFG. |
17:39 | |
labster | m: "foo\%\$".quotemeta.say | 17:40 | |
camelia | rakudo-moar 0914fc: OUTPUT«Method 'quotemeta' not found for invocant of class 'Str' in block <unit> at /tmp/UAMsbvphre:1» | ||
jnthn suspects it's approaching dinner time... | |||
eli-se | Are the static type checking rules of Perl 6 well-specified? | 17:42 | |
Or are they implementation-specific (which would be a programming nightmare). | 17:43 | ||
jnthn | eli-se: It's defined as "runtime at latest, compile time if we can be sure it'll never work at runtime" | ||
eli-se | That's a vague specification. | ||
jnthn | eli-se: Deliberately for now. | ||
eli-se | You can never be sure it'll never work at runtime in the general case | ||
that would require finding out whether a function will ever be called. | 17:44 | ||
m: sub f(Int $x) { }; sub g { f("a") } | |||
camelia | rakudo-moar 0914fc: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tvS7H6Yeb9Calling f(str) will never work with declared signature (Int $x)at /tmp/tvS7H6Yeb9:1------> 3sub f(Int $x) { }; sub g { 7⏏5f("a") }» | ||
eli-se | But it would work at runtime! | ||
jnthn | Yes, and that people like you nit-pick whatever we say is a large part of why we're not going to hurry to define it strongly. :) | ||
17:44
vendethiel joined
|
|||
jnthn | We can always mandate more in future versions of the Perl 6 language. | 17:45 | |
eli-se | Hmmm. | ||
Not if you're past 1.0.0. | |||
No, that'd break existing code. | |||
Without solving the halting problem you can't guarantee the lack of false negatives. | 17:46 | ||
labster | As a programmer, I'd rather catch that earlier rather than later. Otherwise I'm going to get some other programmer's function causing an error when I use it. | ||
Last thing I want to do is download a module and get a compile time error from it. | 17:47 | ||
eli-se | I wouldn't mind it happening to my own code, since I can fix it. But I can't fix third-party libraries. | ||
jnthn | The "use [language version]" directive can be used to commit more strongly if people worry about that kind of breakage. | ||
17:48
andreoss left
|
|||
eli-se | jnthn: reminds me of this quote: | 17:48 | |
XML files always start [with] <?xml version=“1.0”?>. This is great. Reading the first line of an XML file is like listening to the opening bars of Rachmaninoff’s third piano concerto. A sublime experience. All praise to the XML designers, hallowed be their names, give these guys some Turing prizes. | |||
(from joearms.github.io/2013/05/31/a-week...ixir.html) | |||
labster | Iä XML ftaghn! | ||
jnthn | eli-se: I said "can be", not "must be" | 17:49 | |
eli-se | yeah | ||
labster | On another topic: I'm starting to think a metacharacter for quotemeta really should mean a shell metacharacter, because it's no longer useful for regexes. | ||
dalek | ast: c418208 | lizmat++ | S05-mass/named-chars.t: Unfudge passing NFG tests |
17:50 | |
lizmat | jnthn++ | 17:51 | |
dalek | rl6-roast-data: cc3bf6b | coke++ | / (9 files): today (automated commit) |
||
jnthn | lizmat: Uh...wait... | ||
lizmat: I just fudged those ahead of a branch merge. | |||
Now they'll be busted post-merge. :) | 17:52 | ||
Though I'm too hungry to do the merges now, so...after dinner :) | |||
labster | Go get some food jnthn++ | ||
jnthn | btw, once I do merge we do get to unfudge plenty :) | 17:53 | |
bbl & | |||
labster | Shells use a not-quite standard group of metacharacters, but I'm suspect we can get away with backslashing ASCII characters not in 0..9A..Za..z | 17:56 | |
TimToady | labster: there is no quotemeta in P6 | 17:59 | |
labster | it's still in the specs somewhere. | 18:00 | |
S32-str/quotemeta.t exists | 18:01 | ||
TimToady | with a note from pm suggesting we kill it :) | ||
it's just a holdover from p5 anyway, and we have no decent definition of 'metacharacter' | 18:02 | ||
p6 regex don't need quotemeta | |||
labster | Which is why I was suggesting one. | ||
18:02
_mg_ joined
|
|||
labster | Shell metacharacter, rather than regex metacharacter. | 18:02 | |
TimToady | which shell? | ||
labster | .oO (everyone uses bash, right?) | 18:03 | |
TimToady | I think this is someone else's rathole, not ours | ||
and I think quotemeta should be shown the exit | |||
18:03
eli-se left
|
|||
labster | Fair enough. Though I do use it for shell if there are pipes, etc involved and I need to pass in some arbitrary data. This sounds like a good task for module-space, though. | 18:04 | |
I'll go ahead and unspec it. | 18:05 | ||
TimToady | well, shell programming is just an injection opportunity in disguise :) | ||
basically, *if* quoting metachars is the correct way to handle injections (and I don't think it is), then at minimum every language needs its own quotemeta | |||
masak | yes, it feels odd to keep -- or want to keep -- quotemeta, given that we solved the problem in Perl 6 that caused it to have to exist in Perl 5. | 18:06 | |
TimToady | and the solution is to know exactly what language you're parsing at every moment, not to pretend that a braid of languages is a single language | 18:07 | |
Perl 6 is not the only braided language, it's just one of the few to admit it is | 18:08 | ||
labster: thanks | 18:09 | ||
18:09
_mg_ left
|
|||
labster | Yay, I will accomplish a thing today. | 18:10 | |
tony-o | lol | ||
TimToady | I seem to not be getting any high-level backtraces for bind errors these days for some reason, which is a bit frustrating, given how much work I put into them a week or two ago... | 18:12 | |
dalek | ast: 50ac023 | labster++ | S32-str/quotemeta.t: quotemeta is finished (as was my jury duty) Unspecced due to the regex metacharacter problem being solved. |
18:16 | |
masak .oO( 12 angry quotemetas ) | |||
TimToady | .oO(convicted of jury injection) |
18:17 | |
18:17
abraxxa left
|
|||
labster | S02 has this section on qq//: If the character is non-alphanumeric, the backslash is silently removed, on the assumption that the string was backslashed using C<quotemeta()> or some such. | 18:23 | |
tempted to change that to: using metacpan.org/pod/Acme::Addslashes | |||
TimToady | "was backslashed in ignorance" maybe :) | 18:24 | |
18:25
mr-foobar left,
Rounin joined
|
|||
labster | ... "on the assumption that the string was backslahed by the cat using your keyboard" | 18:26 | |
18:28
eli-se joined
|
|||
eli-se | .botsnack | 18:28 | |
yoleaux | :D | ||
synbot6 | om nom nom | ||
FROGGS | hehe | 18:29 | |
dalek | ast: 2123b88 | lizmat++ | S05-mass/named-chars.t: Revert "Unfudge passing NFG tests" Uh...wait... I just fudged those ahead of a branch merge. |
18:32 | |
masak | I guess that commit message body was meant as a <jnthn> quote? | 18:33 | |
lizmat | masak: yes | 18:34 | |
I guess I should have quoted that | |||
PerlJam | Good day all. | 18:35 | |
yoleaux | 23 Apr 2015 22:56Z <TimToady> PerlJam: can you check the permissions on the tarball you uploaded? | ||
PerlJam hopes someone got to that ahead of me today | 18:36 | ||
lizmat | PerlJam o/ | ||
masak | lizmat: the commit comment makes more sense if you know it's a quote, yes ;) | ||
PerlJam | I've been busy dealing with a sick wife :( | ||
18:36
domidumont left
|
|||
masak | PerlJam: moritz++ fix'd it | 18:36 | |
18:37
domidumont joined,
rindolf left
|
|||
lizmat wishes curing sick wives was as easy as that | 18:37 | ||
masak | heh. | ||
FROGGS | m: my $foo = 'alpha'; say "bar" ~~ / <::($foo)>+ / # how hard can that one be? | ||
camelia | rakudo-moar 224db5: OUTPUT«===SORRY!===cannot stringify this» | ||
PerlJam | lizmat: me too. Mine has been sick for over a week now. But the Dr thinks he's nailed down what it is and how to fix it. (3rd time is the charm I hope) | 18:38 | |
lizmat | ++Dr | ||
PerlJam | masak: ooc, what was wrong with the permissions? | 18:40 | |
masak | PerlJam: no idea. I've been absent most of the day. | ||
PerlJam: just saw that it got fix'd. | |||
PerlJam | I'd guess they were too restrictive. I just noticed that my local copy needs more +r | 18:42 | |
FROGGS | and more cowbell | 18:43 | |
masak | too restrictive is consistent with the symptoms, yes | ||
FROGGS | world readable was missing | 18:44 | |
18:50
domidumont left
|
|||
lizmat | .oO( sometimes I wish I could specify an MMD candidate that would be selected on the truthness of a method on the object ) |
18:52 | |
use case: | |||
multi method pick(where self.infinite) { fail X::Cannot::Infinite.new(:action<.pick from>) } | 18:53 | ||
or can we do that already somehow ? | 18:54 | ||
perhaps on the value of an attribute: | |||
labster | m: ("foobar".comb Z "\x0338" .. * ).join.print # Acme::Addslashes as a one-liner | 18:55 | |
camelia | rakudo-moar 224db5: OUTPUT«f̸o̸o̸b̸a̸r̸» | ||
lizmat | multi method pick($!infinite: ) { fail... } | ||
18:55
raiph left
|
|||
lizmat | .u \x0338 | 18:56 | |
yoleaux | U+0030 DIGIT ZERO [Nd] (0) | ||
U+0033 DIGIT THREE [Nd] (3) | |||
U+0038 DIGIT EIGHT [Nd] (8) | |||
lizmat | .u x0338 | ||
yoleaux | No characters found | ||
lizmat | .u 0338 | ||
yoleaux | U+0338 COMBINING LONG SOLIDUS OVERLAY [Mn] (◌̸) | ||
labster | I think it's for arbitrary vulgar fractions | 18:58 | |
18:58
brrt joined
|
|||
FROGGS | m: class Foo { has $.bar; method baz (\SELF: $x where SELF.bar == 42) { } }; Foo.new( :bar(42) ).baz(111) | 18:59 | |
camelia | ( no output ) | ||
FROGGS | m: class Foo { has $.bar; method baz (\SELF: $x where SELF.bar == 42) { } }; Foo.new( :bar(43) ).baz(111) | ||
camelia | rakudo-moar 224db5: OUTPUT«Constraint type check failed for parameter '$x' in method baz at /tmp/6vG4WOTMRX:1 in block <unit> at /tmp/6vG4WOTMRX:1» | ||
FROGGS | though, you need a param... | ||
m: class Foo { has $.bar; method baz (\SELF: *%_ where SELF.bar == 42) { } }; Foo.new( :bar(43) ).baz | |||
camelia | rakudo-moar 224db5: OUTPUT«Constraint type check failed for parameter '%_' in method baz at /tmp/a1Q0bF0RRi:1 in block <unit> at /tmp/a1Q0bF0RRi:1» | ||
FROGGS | m: class Foo { has $.bar; method baz (\SELF: *%_ where SELF.bar == 42) { } }; Foo.new( :bar(42) ).baz | ||
camelia | ( no output ) | ||
FROGGS | works | ||
might now be a good idea, but it works | 19:01 | ||
lizmat | that feels like a dirty hack to me :-) | ||
something I might do in my own code, but not in the settings :-) | 19:02 | ||
FROGGS | aye | ||
19:03
raiph joined
|
|||
dalek | ecs/newio: 5d2e839 | labster++ | S (3 files): unspec quotemeta, fixes #89 |
19:05 | |
labster | oh, I was on newio... hmm. | 19:06 | |
lizmat | hehe | ||
labster | we going to merge that soon lizmat? | ||
skids | There's nothing at all dirty about constraints on invocants, as long as you were going to test for that at the top of every multi anyway. | ||
lizmat | labster: before Christmas, I would say | 19:07 | |
labster | hahaha | ||
masak | labster: maybe cherry-pick the commit over to master? | ||
labster | yeah, probably easiest, thanks. | 19:08 | |
lizmat | skids: completely agree, but the way that FROGGS showed, would be much more CPU intensive than just checking $!inifinite in each candidate | ||
19:09
eli-se left
|
|||
lizmat | actually, it would have to be self.infinite, but yeah | 19:09 | |
$!infinite // self.infinite I guess | |||
dalek | ecs: d251a6b | labster++ | S (3 files): unspec quotemeta, fixes #89 |
19:10 | |
labster | wow, github autocloses the issue for you, that's pretty cool. | 19:11 | |
masak | yup. | ||
DrForr | I'm a little surprised at whitespace behavior in gist.github.com/drforr/ae0b25f79928adf43f80 - Given that I'm matching against 'lexer' I wouldn't expect 'lexer ' to appear out of thin air. Changing grammarType to a token and adding explicit whitespace causes the extraneous space to go away, but at the cost of complexity. | 19:13 | |
Prety much my first time playing with actions as well, but it's the grammar I wonder about. | 19:14 | ||
19:19
mr-foobar joined
19:20
silug joined
19:21
telex left,
_mg_ joined
19:22
telex joined
|
|||
psch | m: say "a " ~~ rule { .$ }; say "a " ~~ rule { . $ }; | 19:24 | |
camelia | rakudo-moar 224db5: OUTPUT«「 」「a 」» | ||
19:24
yqt joined
|
|||
psch | DrForr: S05:375 roundabout explains it quite well i think | 19:24 | |
synbot6 | Link: design.perl6.org/S05.html#line_375 | ||
DrForr | Nod, reading. It just feels as if it's interfering with the matched text. | 19:25 | |
psch | m: say "lexer grammar" ~~ rule { ('lexer'|'parser')? 'grammar } | 19:26 | |
camelia | rakudo-moar 224db5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6OktBMwa1lUnable to parse expression in single quotes; couldn't find final "'" at /tmp/6OktBMwa1l:1------> 3~~ rule { ('lexer'|'parser')? 'grammar }7⏏5<EOL> expecting any of: sing…» | ||
psch | m: say "lexer grammar" ~~ rule { ('lexer'|'parser')? 'grammar' } | ||
camelia | rakudo-moar 224db5: OUTPUT«「lexer grammar」 0 => 「lexer」» | ||
dalek | kudo/nom: 1905fc1 | lizmat++ | src/core/List.pm: Don't use no bloody intermediate The win is in the noise range (about %1), but it simplifies the code, and that is a good thing, no? |
||
FROGGS | lizmat++ | 19:27 | |
DrForr | Hrm, wonder what I'm doing wrong in my code then, as your line looks like the behavior I'd expect. | 19:28 | |
19:28
brrt left
|
|||
psch | DrForr: sigspace :) | 19:28 | |
m: say "lexer grammar" ~~ rule { ( 'lexer' | 'parser' )? 'grammar' } | |||
camelia | rakudo-moar 224db5: OUTPUT«「lexer grammar」 0 => 「lexer 」» | ||
19:29
raiph left
|
|||
DrForr | Oh, good grief, it's significant in *there* too. /me takes a deep breath. | 19:29 | |
psch mostly treats sigspace as sig *everywhere*, even though that's not quite right | |||
masak | it's significant in most places. | ||
even before things like `+` | 19:30 | ||
psch | even after the opening brace | ||
oh | |||
no | |||
that's wrong i think? | |||
m: say " a" ~~ rule { . } | |||
camelia | rakudo-moar 224db5: OUTPUT«「 」» | ||
psch | yeah, it is | ||
phew :P | |||
DrForr | Right, so my formatting decisions are being made for me again. | 19:31 | |
psch | well, it's a waterbed | 19:32 | |
i strongly suspect there's good reasons for this particular configuration | 19:33 | ||
FROGGS | I like the way it is | ||
19:34
brrt joined
|
|||
FROGGS | I treat rules like sentences and tokens like words... and that's what I usually want | 19:34 | |
so when I don't want to have whitespace in something, it might be worth putting it into a token | |||
DrForr | I understand the reasoning behind it, it's just that the examples breezily declare that you can put whitespace where you like, then you go to intropect the objects a little more deeply and find the truth of the matter. I somewhat like ANTLR's notion of a separate channel for this, but understand why it's not done. | 19:37 | |
brrt | lizmat - not related to your change, but that nqp code declares a native i and then assigns (binds) a rand_I bigint, no? | 19:40 | |
psch | well, FROGGS++ approach could work for you i suppose | ||
e.g. «token GrammarType { 'lexer' | 'parser' }; rule GrammarAndTypeDecl { <GrammarType>? 'grammar' };» or something like that | |||
lizmat | brrt: good catch (i think) | ||
DrForr | I would kind of expect that I'd want to add explicit \s+ in order to capture the whitespace if you want to keep it around, but the decision's been made, probably 10+ years ago, so it's hard to complain now. | ||
TimToady | here's a pretty little program: rosettacode.org/wiki/Pascal_matrix_...ion#Perl_6 | ||
brrt | not sure though :-) | 19:41 | |
DrForr | psch: Yeah, I know I could do that pretty easily, and it'd probably reator a little bit mre nicely, but Im more of the mindset that explicit declaratin of tokens like that is more for the old lex/yacc separation, and if you're only going to need it for one term may as well throw it inline. | 19:42 | |
*refactor # this keyboard is *way* too mushy. | |||
19:44
FROGGS left
|
|||
DrForr | Hell, at that point I'd probably fall back to token LEXER {'lexer'} # &c and ... Eeh, I" just do that. | 19:44 | |
It just feels like my hand is being forced, is all. | 19:45 | ||
19:46
_mg_ left
|
|||
brrt | 'your branch is behind orign/nom in 396 commits' :-o | 19:46 | |
skids | m: my $t = now; class A { has $.bar is rw; multi method f ($self where { $self.bar }:) { }; multi method f ($self:) { } }; for 1..50000 { A.new(:bar($_ % 2)).f }; say now - $t | 19:47 | |
DrForr | Or just do it in the actions, I suppose. | ||
camelia | rakudo-moar 224db5: OUTPUT«3.17616355» | ||
skids | m: my $t = now; class A { has $.bar is rw; multi method f ($self:) { if $self.bar { } }; }; for 1..50000 { A.new(:bar($_ % 2)).f }; say now - $t | ||
camelia | rakudo-moar 224db5: OUTPUT«1.3872013» | ||
skids | Not awful. | ||
brrt | you know what is aweful? when you've downloaded some source and they decide to use CMake | 19:52 | |
s/aweful/awful/ | |||
TimToady | .oO(the CMake is a lie!) |
||
brrt | or any other extramagic make system | ||
'make is crossplatform, reliable, and parallel. let's replace it' | 19:54 | ||
dalek | kudo/nom: 5efcae8 | lizmat++ | src/core/List.pm: Make List.pick about 3% faster, brrt++ |
19:57 | |
brrt | hah, i was testing the opposite patch, using a native int :-) | ||
how do you speedtest it? | 19:58 | ||
lizmat | rand_I returns an Int | ||
and it needs a deconted Int | |||
TimToady | make is like C, not really portable, merely ubiquitous. | 19:59 | |
brrt | yes, but you can use nqp::mod_i(nqp::rand_i(), nqp::decont($elems)) - or at least that's what i'm testing | 20:00 | |
well, apparantly that's wrong :-) | 20:02 | ||
20:03
raiph joined
|
|||
itz | good timtoady interview in linux voice | 20:05 | |
brrt | itz: link perchance? | 20:06 | |
itz | it's a pay publication (although they give money back to open source community) | ||
I believe the material is made open after N months anyway | 20:07 | ||
brrt | ah ,ok, that's fair | ||
itz | N=9 | ||
www.linuxvoice.com/interview-damian-conway/ is opened now anyway | 20:08 | ||
brrt | portability is a finicky term anyway | 20:10 | |
because porting is ultimately work, and thus portability also depends on the amount of work or tuits that can be expended to do porting | 20:11 | ||
jnthn back :) | 20:14 | ||
cognominal | jnthn, is :ignoremark affected by NFG? I can't even imagine working without it | ||
* it working | |||
jnthn | cognominal: It's never been implemented yet | ||
20:15
eli-se joined
|
|||
jnthn | cognominal: But having done all of the NFG work I actually have a good idea how to implement it :) | 20:15 | |
cognominal | but someday, I guess my unmodified statment will be true. | ||
jnthn++ | |||
christmas everyday with you | 20:16 | ||
20:16
darutoko left
|
|||
jnthn read the 'clog from the pub and saw nobody yelped about the upcoming revision bumps for NFG | 20:17 | ||
So, let's do it :) | |||
itz | hmm the rakudo annoucement didn't make www.nntp.perl.org/rss/perl.perl6.announce.rdf | ||
labster | yep, do it | ||
lizmat | itz: rakudo compiler releases are not supposed to shoiw up there, noe? | 20:19 | |
jnthn | .oO( relax, don't do it, when you want to NFC it... ) |
||
dalek | kudo/nom: 7fe6f1b | lizmat++ | src/core/List.pm: Make List.pick(*) about 7% faster |
||
itz | lizmat: but parrot still does! | 20:20 | |
lizmat | fwiw, I'm on your side with this, but this is what pmichaud jnthn TimToady decided long ago, afaik | 20:21 | |
item #16 in release guide: | |||
To avoid public confusion with Rakudo Star releases, we now publish | |||
compiler release announcements ONLY to [email@hidden.address] | |||
(We may restart widespread announcements of compiler releases | |||
once they are known, or we may begin publishing a single | |||
announcement for both.) | |||
brrt | Internal error: invalid thread ID in GC work pass | 20:22 | |
:-o what | |||
lizmat | itz: git blame puts this with pmichaud in 2010 | 20:23 | |
20:23
colomon joined
|
|||
itz | is there an rss feed of [email@hidden.address] | 20:23 | |
lizmat | I don't know | ||
brrt is going to try this all again | |||
20:24
xfix left
|
|||
labster | lizmat: can we safely remove nqp::istype(number, Whatever) from line 209 in the other pick candidate? | 20:26 | |
lizmat | labster: good point, am working on an eager * candidate, will take care of that :-) | ||
20:33
mr-foobar left
|
|||
dalek | kudo/nom: 0a7825f | lizmat++ | src/core/List.pm: Don't need the Whatever check anymore, labster++ |
20:34 | |
p: 63f0545 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for much NFG work. |
20:35 | ||
20:36
muraiki left
|
|||
dalek | ast: 907e841 | jnthn++ | S15-nfg/regex.t: Todo a (recently added) test we bogusly passed. |
20:38 | |
itz | thats odd I get no hits on google for "Announce: Rakudo Perl 6 compiler, Development Release #87 ("Vladivostok")" and two on duckduckgo | 20:40 | |
"none dare call it conspiracy" :-) | |||
lizmat | itz: how many hits for 5.21.9 ? | 20:42 | |
perl 5.21.9 that is | |||
itz | that looks ok | 20:43 | |
TimToady | obviously we're not suffiently mobile friendly | 20:45 | |
*fic | 20:46 | ||
dalek | kudo/nom: e459701 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for Moar/NQP NFG work. With this, NFG is enabled for all Str. |
||
lizmat | jnthn++ :-) | ||
[Coke] | jnthn++! | ||
brrt | :-D | 20:47 | |
lizmat: fairly sure your last commit breaks rakudo for me | |||
lizmat | ? | 20:48 | |
brrt | moarkudo that is | ||
but.... | |||
nine | As far as Google is concerned, being mobile friendly seems to be just having a <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||
brrt | let's experiment a bit further :-) | ||
lizmat | brrt: what do you mean with "break" | ||
build ? | |||
specific test ? | 20:49 | ||
brrt | building core setting dies with an invalid thread id error | ||
jnthn | lizmat: As just discussed with brrt++ on #moarvm, it's probably a Moar GC issue that got tripped that's likely not related to the content of your patch. | ||
brrt | yes, that is possible too :-) | ||
dalek | ast: ea19778 | jnthn++ | S15-nfg/from-file.t: Fudge UTF-16 file/NFG tests. So we can run the passing UTF-8 ones in "make spectest". The UTF-16 ones actually run into writing a buf16 to a file being NYI! |
20:50 | |
lizmat | FWIW, it builds ok for me on OS X | ||
dalek | kudo/nom: 14f6344 | jnthn++ | t/spectest.data: Enable a range of new S15-nfg tests on MoarVM. |
||
20:50
Alina-malina left
|
|||
dalek | ast: 2be99bc | jnthn++ | S (5 files): Unfudge a bunch of NFG tests for rakudo.moar. |
20:51 | |
[Coke] keeps trying to get a stresstest kicked off and then sees one more commit and stops and tries again. :) | 20:52 | ||
lizmat fetches the NFG goodness, builds and spectests | |||
jnthn | lizmat: It builds fine for me too, fwiw. :) | 20:53 | |
brrt | very latest builds fine for me as well | 20:54 | |
bug masked once more | |||
timotimo | going to build it here, too | ||
cognominal | NFG does not stand for "not for good" unlike in "For I have set my face against this city for harm and not for good, declares the LORD:" | ||
brrt | and commit 7fe6f1bdde8f7f5f2a95d04ce235ec25397a45a5, what about that one? | 20:57 | |
[Coke] | jnthn: t/spec/S29-conversions/ord_and_chr.rakudo.moar (Wstat: 0 Tests: 257 Failed: 0) TODO passed: 257 | ||
brrt | that fails reliably under make | ||
dalek | ast: 7ab7759 | jnthn++ | S15-string-types/Str.t: Correct a .ord test, unfudge on rakudo.moar. We've decided that we won't leak synthetic codepoints out, since it'll prevent us from ever doing any scheme other than process-global if any code in the wild comes to rely on them comparing accross strings. |
||
jnthn | [Coke]: That's in my review queue; will get to it in a moment | 20:58 | |
[Coke]: I wasn't immediately sure the test was correct. | |||
brrt | fwiw, i do agree that this is a moarvm issue :-) | ||
lizmat | clean test for me + 1 flapper (which I'm working on: t/spec/integration/advent2013-day14.t | 20:59 | |
DrForr | Just in passing, if anyone's booking for YAPC::NA at this late date, Royal Garden Hotel has a deep discount on b.com. | ||
dalek | ast: 79a7dc0 | jnthn++ | S02-types/unicode.t: Toss some tests relying on out-dated design. Str is always NFG now, and we have Uni and Buf for the other levels. Removing the tests as we have others that cover these issues in line with current design and more extensively. |
21:01 | |
brrt | i'm off for tonight | ||
sorry for scaring you all | 21:02 | ||
timotimo | cya brrt | ||
21:02
brrt left
|
|||
lizmat | good night brrt | 21:02 | |
.oO( too late ) |
|||
dalek | ast: 8b86ef3 | jnthn++ | S29-conversions/ord_and_chr.t: Fix test description; unfudge for rakudo.moar. |
21:04 | |
jnthn | [Coke]: Turns out the test was OK but the description was imprecise. :) | ||
21:04
MARTIMM left
21:05
skids left
|
|||
[Coke] | .... UGH. now I will always hear "brrt" as ernie from sesame street. "hey, brrt" | 21:05 | |
t/spec/S32-str/words.t has a #?rakudo 2 skip 'graphemes NYI' that can be unskipped. | 21:09 | ||
jnthn | hm, thought I did that one... | ||
[Coke] | maybe I'm a commit or two behind. whoops. | 21:10 | |
jnthn | oh no, that was capitalize.t | ||
I wonder why I missed it | |||
oh, they're skip, not todo. | |||
[Coke] | I just ran autounfudge to find those. | ||
jnthn | :) | 21:11 | |
dalek | ast: cce24c2 | jnthn++ | S32-str/words.t: Unfudge 2 NFG tests on Moar; [Coke]++. |
||
labster | jnthn++ finally NFG, [Coke]++ test herding as usual | 21:12 | |
timotimo | how does autounfudge work, anyway? | ||
jnthn | Time for some rest... Enjoy the graphemes! :) o/ | 21:20 | |
lizmat | jnthn: good night | 21:22 | |
21:22
rurban joined
|
|||
lizmat | conventional wisdom has it that a while {} should be faster than a gather {} ? | 21:22 | |
21:23
RabidGravy left
21:26
grondilu left
21:29
flussence left
|
|||
timotimo | it should, at the moment | 21:29 | |
after the GLR, something that could "automatically be rewritten" from a gather to a while would also be fast | |||
lizmat | well, I'm trying to create an eager version of List.pick(*) with a while{}, but it's like 4x slower :-( | 21:31 | |
than the one with gather { take-rw } | |||
timotimo | wow | 21:32 | |
lizmat | the odd thing is that somehow it's in MMD dispatching | ||
21:32
raiph left
|
|||
jdv79 | DrForr: are you doing Ryal Garden? | 21:32 | |
timotimo | o_O | ||
jdv79 | *Royal | ||
lizmat | because when I put the *same* code in the :eager variant, it's *still* 4 x slower | 21:33 | |
psch .oO( R'lyeh Garden ) | |||
21:35
RabidGravy joined
|
|||
timotimo | srsly, wat? | 21:35 | |
lizmat | ok, maybe not the same version after all, just double checked that | 21:36 | |
PerlJam | lizmat: what's the code look like? | ||
lizmat | working on a gist | 21:37 | |
with timing info | |||
21:38
cygx left
|
|||
timotimo | thanks | 21:39 | |
i have an eye for performance ... by which i mean i basically only look at performance aspects of things. not necessarily means i'm any good at it | |||
labster | premature optimization is a large part of complier building | 21:41 | |
PerlJam wonders how many eyes timotimo is in possession of. | |||
lizmat | gist.github.com/lizmat/943197fa55834eef4c66 | 21:42 | |
labster | in soviet russia the eyes have it for performance | ||
lizmat | the eager version is actually more than 20 times as slow | ||
timotimo | are you sure you want nqp::unbox_i? | 21:44 | |
wait. what am i thinking? | |||
lizmat | yeah, because it is an Int | ||
timotimo | + nqp::bindpos($picked,nqp::unbox_i($i),nqp::atpos($picked,nqp::unbox | ||
here the line got cut off | |||
PerlJam wonders how expensive nqp::bindpos is | |||
timotimo | possibly by a pager? | 21:45 | |
lizmat | gist updated | 21:46 | |
that one is actually the same as in the non-eager version | |||
PerlJam | lizmat: This is List.pick ? | 21:47 | |
lizmat | yeah | ||
PerlJam | lizmat: in my copy on disk, that second nqp::bindpos isn't there. | ||
lizmat | PerlJam: this is an extra candidate | 21:48 | |
that candidate I didn't push yet | |||
PerlJam | so, it's there in both your eager and non-eager versions? | ||
lizmat | the non-eager Whatever candidate is in nom | 21:49 | |
the eager one is only in the gist | |||
the reason I'm chasing this is that I have a theory that async stress flakiness is caused by gather / async interaction | 21:50 | ||
since earliest does a @actions.pick(*) | |||
I thought I'd try a version that would not use gather to randomize what to do next in earliest | 21:51 | ||
eli-se wants parallel AWK | |||
lizmat | and see whether that would reduce / remove the flakiness (purely as a data-point, really) | ||
21:51
colomon left,
eli-se left
|
|||
timotimo | lizmat: did you --profile that yet? | 21:52 | |
lizmat | good point :-) | ||
way fewer JIT compiled frames | 21:54 | ||
1 garbage collection vs none | 21:55 | ||
hmmm... didn't we have a way to profile here >? | |||
timotimo | well, if there were fewer frames all in all, that'd not be an issue | 21:56 | |
we do have it | |||
prof-m or something | |||
lizmat | but then I would have to push :( | ||
timotimo | yes :( | ||
lizmat | in any case, you don't see anything odd about the code, do you ? | 21:57 | |
timotimo | well, i'd unbox_i one time less | ||
for $i and for $elems | |||
lizmat | but they'r Int | 21:58 | |
not int | |||
timotimo | well, yeah | ||
lizmat | elems has to be Int because of nqp::rand_I | ||
I mean $i | |||
timotimo | but if you unbox_i them twice, you could just unbox them once and store the unboxed result in a temporary variable | 21:59 | |
mhm | |||
dalek | kudo-star-daily: b460844 | coke++ | log/ (2 files): today (automated commit) |
||
[Coke] | timotimo: autounfudge takes each fudge marker, and tries to unskip/untodo them. it removes each fudge in isolation, tests the file, and if it works, adds a diff to a patch in progress. | 22:00 | |
you then need to manually go through the generated diff because somethings are iffy. | |||
22:02
yqt left
|
|||
timotimo | oh | 22:02 | |
neato | |||
22:03
molaf_ left
|
|||
lizmat | timotimo: the unboxing didn't affect the profile significantly | 22:03 | |
timotimo | OK | 22:04 | |
and you say the inside of the while is almost exactly the same as in the non-eager version? | |||
lizmat | the eager one as deopts (0.83%), the non-eager one none | ||
the eager one has 1 garbage collection, the non-eager one none | |||
the eager one has 25319 cal frames, the non-eager one 9706 | 22:05 | ||
that's probably our CPU difference explained | |||
timotimo | ouch | 22:06 | |
how the hell ... | |||
the gather/take must be inlined by spesh | |||
lizmat | yeah indeed | ||
timotimo | and for some reason the simpler while loop doesn't | 22:07 | |
perhaps it's something to do with lexicalrefs and such? | |||
can you grab a MVM_SPESH_LOG for that and cut out the before/after sections of the pick method for me? | |||
lizmat | maybe first check what happens with a MVM_SPESH_DISABLE=1 ? | 22:08 | |
dalek | ast: 33fc3d4 | labster++ | S16-filehandles/io_in_for_loops.t: added tests for RT #122963 IO::Handle.lines doesn't properly count .ins |
||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122963 | ||
timotimo | ok | 22:09 | |
22:09
cognominal left
22:10
cognominal joined,
cognominal left
|
|||
lizmat | with MVM_SPESH_DISABLE=1, the difference in frames is 176614 (eager) vs 10618 (non-eager) | 22:10 | |
so spesh already did its best, it would seem | 22:11 | ||
(from 176614 to 25319) | |||
timotimo | wow | ||
labster | O.O | 22:12 | |
timotimo | hm, so "gather while" is more like a function call into a closure, and the while itself is likely OSR'd and has no closure? but that doesn't mean it ought to be slower | 22:13 | |
lizmat | forcing a backtrace inside the while does not reveal any reification madness | 22:14 | |
timotimo | right, while should compile into a simple-ish goto thingie | 22:15 | |
labster | oh cool, I actually can mark tickets as resolved now. RT is so arcane, you never know what's going to happen. | ||
timotimo | %) | 22:16 | |
lizmat | if I just do the rand_I and the elems = elems - 1, it is already slower than the non-eager one | 22:22 | |
so it is definitely not the bindpossing | 22:23 | ||
22:26
espadrine_ joined
|
|||
PerlJam | so the looping itself is slower? | 22:27 | |
22:27
RabidGravy left
|
|||
lizmat | even if the while loop just has elems = elems - 1, it is slower | 22:27 | |
it feels to me this code is triggering something at a low level | 22:28 | ||
running spectest now: if clean, then I'll commit anyway | 22:34 | ||
it is only activated with the :eager named param, and nobody is doing that yet | 22:35 | ||
it'll give at least people an easier way to look at this strange issue | |||
timotimo: an idea: could it be that the while is creating a new (set of) frame(s) for each iteration ?? | 22:37 | ||
22:38
yqt joined,
flussence joined
22:40
espadrine_ left
22:41
skids joined
22:44
beastd joined
22:45
Ben_Goldberg joined
|
|||
dalek | rakudo/nom: 40a4241 | lizmat++ | src/core/List.pm: | 22:48 | |
rakudo/nom: Make a faster List.pick(*,:eager) version | |||
rakudo/nom: | |||
rakudo/nom: Well, that was the idea. Turns out the eager version is about 20x *slower*. | |||
rakudo/nom: Added here for further research. | |||
22:48
dalek left,
dalek joined,
ChanServ sets mode: +v dalek,
yqt left
|
|||
lizmat | sorry dalek, the commit: github.com/rakudo/rakudo/commit/40...d2c9bdc9d2 | 22:49 | |
.tell jnthn why is while slower than gather while ??? github.com/rakudo/rakudo/commit/40...d2c9bdc9d2 | |||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | and with that, I bid #perl6 a good night | 22:51 | |
22:57
Ben_Goldberg left
22:59
colomon joined
23:00
andreoss joined
23:04
rmgk is now known as Guest98033,
rmgk_ joined,
Guest98033 left,
rmgk_ is now known as rmgk
|
|||
timotimo | could perhaps be in a branch instead? | 23:06 | |
23:08
lizmat left
|
|||
timotimo | lizmat: in general, every invocation (even just stepping into a frame that hasn't been inlined) will create a new BOOTCode :( | 23:08 | |
23:15
krakan left
|
|||
timotimo | we recently lost a bit of our capability to inline blocks at the QAST stage because suddenly we have lexicalrefs and lexicals | 23:15 | |
but our code gen can't access a lexicalref or localref with "lexical" or "local" scope yet | 23:16 | ||
i'm working on that, and i'm part way there, but it seems like jnthn will have to figure out what's needed for the rest of the way to working code | |||
then we'll get lexical-to-local-lowering again which will unblock many inlinings | |||
23:17
krakan joined
|
|||
andreoss | how to refer closure within itself? &?ROUTINE points to outer sub. pastebin.com/eigBA3Pz | 23:17 | |
of course if it's not assigned to variable | 23:18 | ||
23:19
kaare_ left
|
|||
TimToady | &?BLOCK | 23:19 | |
psch | m: { &?BLOCK.perl.say } | 23:21 | |
camelia | rakudo-moar 40a424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oI4pfPAsE4Undeclared routine: &?BLOCK used at line 1» | ||
psch | m: -> { &?BLOCK.perl.say }() | ||
camelia | rakudo-moar 40a424: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ji1VrB9HuGUndeclared routine: &?BLOCK used at line 1» | ||
psch | fwiw, i'd have expected it to work as well | ||
std: -> { &?BLOCK.perl.say }() | |||
camelia | std 28329a7: OUTPUT«ok 00:00 141m» | ||
psch | apparently NYI | ||
23:22
Vlavv_ left
|
|||
timotimo | yeah, nyi | 23:23 | |
feel free to do something about it ;) | |||
psch | i might take a look tomorrow | ||
not promising anything :P | |||
timotimo | psch: are you interested in writing a test or two for me? | 23:24 | |
psch | but i've been staring at JavaHOW MOP stuff for a good portion of the last two days and not making any headway | ||
so something different could be nice | |||
timotimo: what kind of test? | |||
timotimo | rt.perl.org/Ticket/Display.html?id=124331 ← this isn't working, but in S03-metaop/hyperop.t there's tests that look almost exactly the same and those do work! | ||
actually ... | |||
psch | timotimo: i talked to you about that 2 or 3 days ago | 23:25 | |
timotimo | it coul dbe related to not sinking the hyperop so it's not doing anything? but hyper is supposed to be hyper, not lazy | ||
psch | timotimo: my understanding is that the RHS doesn't get thunked and thus you're substracting 0 | ||
for elems 1 to 3 | |||
m: my @sizes = 100, 110, 120, 130; @sizes >>+=>> @sizes[0]; say @sizes # easier to see with + | 23:26 | ||
camelia | rakudo-moar 40a424: OUTPUT«200 310 320 330» | ||
psch | m: my @sizes = 100, 110, 120, 130; @sizes >>+=>> @sizes[0]<>; say @sizes # for comparison | ||
camelia | rakudo-moar 40a424: OUTPUT«200 210 220 230» | ||
psch | or maybe "doesn't get thunked" is a bit wrong here | ||
the array elem container gets thunked, the contents don't, if that makes sense | |||
(might also have been more than 2 or 3 days ago, i'm not quite sure) | 23:27 | ||
read that as "i can rationalize why it happens like it does", not as "i think it should happen as it does" though :) | 23:28 | ||
i'm not really sure what i think should happen there; on the one hand it makes sense not to have to do anything special, but what if i want to use the container and not the value? | 23:29 | ||
and on the other hand, it's the first actual use for <> (or .decont or zen slice or w/e) aside from Str interpolation that i came across | |||
23:30
Rounin left
|
|||
psch | timotimo: does that make any sense to you? | 23:31 | |
23:34
Vlavv_ joined
|
|||
timotimo | um | 23:53 | |
the right hand side doesn't need to be th... ooooooooh! | |||
now i get it! | |||
i hadn't read what you wrote "back then" | 23:57 | ||
psch | no worries | 23:59 | |
i'm mostly glad that i seem to start groking this whole container stuff a bit better :) | |||
timotimo | \o/ | ||
feel free to write that into the bug report and close it | |||
psch | i don't have bugadmin rights | ||
but i can dump the clog there, sure |