japhb IOninja: ack, thank you. 00:01
IOninja m: say 'ß T' ~~ m:i/T/ 00:04
camelia False
TimToady japhb: also, if you have your own slangs, they may need some fixing since last release 00:11
(the kind where you mix into %*LANG<MAIN>, not mere operator definitionss, which are fine) 00:12
travis-ci Rakudo build failed. Jonathan Worthington 'Run S17-procasync/nonexistent.t' 00:55
travis-ci.org/rakudo/rakudo/builds/208965807 github.com/rakudo/rakudo/compare/f...777b112367
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
naxieAlDle u: ☺ 04:01
unicodable6 naxieAlDle, U+263A WHITE SMILING FACE [So] (☺)
naxieAlDle u: { .chr.fc.chars > 1 }
unicodable6 naxieAlDle, U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
naxieAlDle, U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE [Ll] (ʼn)
naxieAlDle, 80 characters in total: gist.github.com/0b2631ffb617ab3864...2b8e4903f2
naxieAlDle (thing is, when you give unicodable some query that returns a couple thousands characters, it craps out trying to gist it) 04:04
nine [6~/win 10 06:27
samcv u: { .chr.fc.chars > 1 } 07:14
pls unicodeable
unicodable6 samcv, U+00DF LATIN SMALL LETTER SHARP S [Ll] (ß)
samcv, U+0149 LATIN SMALL LETTER N PRECEDED BY APOSTROPHE [Ll] (ʼn)
samcv, 80 characters in total: gist.github.com/27ec3adcd1d3116741...910d37f79f
[Tux] This is Rakudo version 2017.02-214-gcb4147624 built on MoarVM version 2017.02-35-gdc40845b 07:21
csv-ip5xs 2.825
test 12.399
test-t 5.030 - 5.114
csv-parser 12.662
samcv u: { .chr.fc.chars > 2 } 07:27
unicodable6 samcv, U+FB03 LATIN SMALL LIGATURE FFI [Ll] (ffi)
samcv, U+FB04 LATIN SMALL LIGATURE FFL [Ll] (ffl)
nine .tell llfourn It's Perl6;:Actions::instantiated_type! This gives us 2 options for avoiding the static reference to the stub: prevent the stub from entering the SC and making it a "generic" type (($type.HOW.archetypes.generic). Or we extend the check in instantiated_type to a third option.
yoleaux2 nine: I'll pass your message to llfourn.
samcv u: { .chr.fc.chars > 3 }
unicodable6 samcv, Found nothing!
nine Introducing a new PackageStubHOW seems to be the cleanest option, Extending PackageHOW to make it optionally generic may be the easiest one. 07:56
samcv nice, I have a prototype that fixes the fold case issue and correctly handles when the haystack expands 07:58
only problem is it crashes 40% of the time and the 60% it works fine. will have to track that down
\o/ yeah it passes all the tests i had written 08:01
nine samcv++ 08:03
samcv working with both needles and haystacks that have special foldcase characters in them so woo 08:04
llfourn nine: from reading comments in Archetypes.nqp it sounds like generic is appropriate enough. 08:07
yoleaux2 8 Mar 2017 20:41Z <nine> llfourn: Tried to find out where the QAST::WVal(Cat( is coming from, without success :/
07:27Z <nine> llfourn: It's Perl6;:Actions::instantiated_type! This gives us 2 options for avoiding the static reference to the stub: prevent the stub from entering the SC and making it a "generic" type (($type.HOW.archetypes.generic). Or we extend the check in instantiated_type to a third option.
llfourn nine++ investigations 08:08
do we even have to extend package? Couldn't we just use GenericHOW? 08:10
llfourn gives it a shot 08:15
samcv seems the answer to my MVM crash was adding a MVMROOT. not 100% fixed or even understand totally how MVMROOT works but progress 08:21
llfourn GenericHOW won't work because it doesn't have a stash 08:28
nine exactly 08:46
But giving PackageHOW a $!generic which defaults to 1 should be all we need
llfourn defaults to 0 I guess and then add is_generic override method 08:53
nine: that won't work actually: look at instantiated type it directly checks the archetypes 09:05
or at least we'd have to change that too
(errr looking back an hour later yes -- defaults to 1) 09:46
wait no 0 09:47
llfourn should take a break
jnthn nine: PackageStubHOW sounds a little odd in so far as packages already are stubby (that you can re-open them any time is what makes them different from modules) :) 10:00
llfourn jnthn: just StubHOW better? 10:01
jnthn llfourn: I didn't quite figure out what the problem is yet :)
llfourn ah. we want require Pod::To::Text; to insert a stub package into the lexical scope which gets replaced by the class later. 10:02
m: require Pod::To::Text; Pod::To::Text.new 10:03
camelia You cannot create an instance of this type (Text)
in block <unit> at <tmp> line 1
llfourn it's because the Pod::To::Text reference gets resolved at compile time as the stub package
jnthn Hmmm
llfourn and at runtime when we want to replace it, it's too late. 10:04
jnthn m: class A::B::C { }; my \x = A::B; class A::B { }; say x.HOW.^name 10:05
camelia Perl6::Metamodel::PackageHOW
jnthn Is this not a golf of the same thing?
samcv hmm Inline::Perl5 is failing for me
llfourn that is the same thing
but I wasn't aware of that being a problem with constants too :o 10:06
jnthn :-) 10:08
So maybe the solution is to just ever make a compile-time reference to something that resolves to PackageHOW, 'cus it can be replaced at any point. 10:09
*just *NEVER* make
Then we'd fix both cases, perhaps
And maybe more things
nine jnthn: would be very fine with me :) 10:15
jnthn I don't immediately see the downsides 10:16
If there are any
llfourn I just tried it. It worked *gasp*. 10:27
jnthn :)
jnthn likes solutions that don't involve adding more things :-)
llfourn if $is_generic || nqp::isnull(nqp::getobjsc($type)) || istype($type.HOW,$pkg) { # is this right? 10:28
in the check for whether we should do runtime lookup
jnthn What's $pkg
llfourn %*HOW<package>
jnthn Then yeah, looks right
llfourn (good point)
jnthn Hm, %*HOW survived TimToady's braidery... 10:29
llfourn but for HOW long...
jnthn Dunno, but they're lexically effective and affect the meaning of the language, so they prolly belong in there 10:30
llfourn \o/ passes spectest and everything! 10:37
nine Epic team work :) 10:44
llfourn nine: Yep. ++'s all around. PR with github.com/rakudo/rakudo/pull/1034 10:54
Geth roast: b7f83a8a34 | LLFourn++ | S11-modules/require.t
We can now stop using indirect lookups for require'd symbols
llfourn and tests using the literal required class names ^ 10:55
Geth rakudo/nom: 4fce405763 | LLFourn++ | 2 files
Fix multiple requires & require clobbering pre-existing pacakges

Fixes:
  ```
class Test::Foo { }; { require Test; say Test::Foo } require This; require This::And::That;
  ```
10:58
rakudo/nom: e73ff23e2e | LLFourn++ | src/Perl6/Actions.nqp
Make lookups for PackageHOW things happen at runtime

Fixes our problems with require stubs **and** fixes the following:
  `class A::B::C { }; my \x = A::B; class A::B { }; say x.new`
rakudo/nom: 030c4c58e3 | niner++ | 2 files
Merge pull request #1034 from LLFourn/require-fix-2017

Fix multiple requires & require clobbering pre-existing pacakges
llfourn hmmm should probably also test that ^
roast: 0ea6c6b408 | LLFourn++ | S12-class/namespaced.t
Test stub packages later defined as classes updating references
11:08
llfourn m: class A::B::C { }; constant \x = A::B; class A::B { }; say x.new 11:10
camelia You cannot create an instance of this type (A::B)
in block <unit> at <tmp> line 1
llfourn ^ that still won't work though :\
IOninja it's still using an old commit though?
llfourn IOninja: yeah there was no point in me m: ing there 11:11
IOninja m: class A::B::C { }; constant \x = A::B; class A::B { }; say x.new 11:12
camelia You cannot create an instance of this type (A::B)
in block <unit> at <tmp> line 1
IOninja NOW it still won't work :)
llfourn how do you tell when camelia updates herself? 11:13
IOninja +camelia │ rakudo-moar 030c4c: <-- it has sha in the output
Also...:
huggable: camelia
huggable IOninja, Camelia updates every 20m at 8, 28, and 48 minutes of the hour
jnthn llfourn: I'd not expect it to work with constant
llfourn Wow. I literally never noticed that.
jnthn Constants are computed at BEGIN time, so you get whatever value was effective then 11:14
llfourn jnthn: yeah neither did I, just noting it :)
jnthn OK :)
timotimo naxieAlDle: the "u: { .chr.fc.chars > 1 }" example makes me thing we might want to teach unicodable to output an extra piece of information along with each line. like in this case what it fcs to each time 12:11
naxieAlDle m: say 0x10FFFF
camelia 1114111
naxieAlDle timotimo: well, that will make it die consistently :)
timotimo i didn't see what makes it die 12:12
naxieAlDle I don't remember exactly. There was an issue with JSON::Fast (it was broken for some inputs), and JSON::Tiny just cannot handle a piece of data that large 12:13
in a long term I want to make it dump the data into a plain file directly, and then serve that with a webserver myself 12:14
to avoid this JSON hell altogether
timotimo what part uses json to move stuff around? 12:15
naxieAlDle this one: github.com/zoffixznet/perl6-Pasteb...ist.pm6#L2 12:16
timotimo can you dump a value that b0rks it when running to-json on it? 12:17
even though i'm not the one who wrote that part of JSON::Tiny, i may still be able to fix it
naxieAlDle timotimo: JSON::Tiny doesn't break, that's why it is using it. This is related: github.com/zoffixznet/perl6-Pasteb...68b8faad53 12:18
timotimo sorry
i meant JSON::Fast of course
naxieAlDle timotimo: and this is the ticket for ::Fast: github.com/timo/json_fast/issues/16
timotimo oh 12:19
that bug seemed so academic and uninteresting and harmless
hm, it doesn't escape nullbytes? but it has an explicit entry in its .subst
naxieAlDle u: \
unicodable6 naxieAlDle, U+005C REVERSE SOLIDUS [Po] (\)
timotimo m: "hello\0world\0".subst("\0", "\\u0000").say 12:20
camelia hello\u0000world␀
timotimo perl6 -Ilib -e 'use JSON::Fast; say to-json "\0"' 12:21
"\u0000"
naxieAlDle timotimo: yes, interesting
timotimo wanna write a correct & fast escaper for control characters for me? 12:22
naxieAlDle timotimo: have no idea how to do it fast
timotimo ugh :)
certainly not with regex, i'd say
actually, trans should be somewhat fast. 12:23
naxieAlDle timotimo: if I recall correctly, there was another issue with combining characters
timotimo ugh :)
naxieAlDle timotimo: "̅" is supposed to be a string containing just the combiner alone 12:24
timotimo ah, yeah
how do we get that?
naxieAlDle timotimo: but perl 6 has a different opinion, which is probably right… but other json parsers disagree :)
timotimo is that for parsing json?
or does to-json F that up? 12:25
naxieAlDle tries to remember when this issue popped out
lizmat re RT #130963 , perhaps we should allow a named parameter to Array.^paramerize, like Array[:default(Nil)] ?
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130963
timotimo i might want to work on the Uni level rather than the Str level to make from-json correct 12:26
naxieAlDle timotimo: this is the ticket: github.com/moritz/json/issues/25
u: u+0000 u+0000 u+0000 u+0000 12:29
unicodable6 naxieAlDle, U+0000 <control-0000> [Cc] (control character)
naxieAlDle, 4 characters in total: gist.github.com/846f083ce4ea9ca00c...c477c4d9a3
naxieAlDle u: u+0000 u+0000 u+0022 U+005C 12:30
unicodable6 naxieAlDle, U+0000 <control-0000> [Cc] (control character)
naxieAlDle, 4 characters in total: gist.github.com/dbd93d73a5e9e41c0b...7b7e802766
naxieAlDle ah
right
u: ̅test
unicodable6 naxieAlDle, Found nothing!
naxieAlDle u: ̅∞×
unicodable6 naxieAlDle, U+221E INFINITY [Sm] (∞)
naxieAlDle, U+00D7 MULTIPLICATION SIGN [Sm] (×)
naxieAlDle nope… I don't know then :) 12:31
timotimo oh, also: when you .perl.EVAL a string starting with a combining character, it won't round-trip, i'd expect. it won't parse at all, probably
naxieAlDle timotimo: but generally, I don't think I've seen any issues with unicodable when Pastebin::Gist switched to Tiny, except that it is so slow that it simply cannot manage to gist so many lines 12:32
timotimo why are "many lines" a problem? isn't it just a string?
maybe JSON::Tiny needs a faster escaping function, too
naxieAlDle .subst .subst .subst .subst :) 12:33
timotimo does it handle the control characters properly, then?
yeah, .subst with one-character needles sucks
naxieAlDle if I recall correctly, .trans wasn't any faster
timotimo when was that tested?
i recall liz made it much better at some point
naxieAlDle timotimo: 3 months ago: github.com/timo/json_fast/commit/d...60067f6ec6 12:34
timotimo: but whatever I know now, could very well be wrong today. So feel free to play with it :) 12:35
timotimo that's not .trans 12:36
that's just using constant strings instead of single-literal regexes
which, yeah, is loads faster. i would have expected far more than 2x, tbh
naxieAlDle yes, but at the time I suggested .trans, and I think it wasn't changed because it didn't bring any increase
timotimo oh
ok, i understand that
i'm working on from-json losing lone combiners, btw 12:37
naxieAlDle nice!
timotimo m: say '"̅"'.Uni
camelia No such method 'Uni' for invocant of type 'Str'
in block <unit> at <tmp> line 1
timotimo hmm, how best to do this ... 12:38
naxieAlDle timotimo: fwiw, this is the function that is used by unicodable: github.com/perl6/whateverable/blob...p6#L59-L68
timotimo: you can try converting the whole range (0..0x10FFFF) using it… and then see what happens with JSON modules :)
timotimo i'll definitely be losing codepoint-level information 12:39
i should be using utf8-c8 all in all, i'd say?
naxieAlDle I guess.
timotimo hm. 12:40
i'll have to figure out how best to deal with all of it 12:41
do i deal with the characters it creates to deal with non-encodable utf8? i think json requires properly encoded utf8?
naxieAlDle 🤷 12:42
timotimo really, JSON::Fast should be working on Uni level from the start 12:43
oh lord 12:59
i'll also have to deal with combining characters after escape sequences
burgh. this sucks. 13:02
IOninja .tell MasterDuke IIRC you fixed this ticket. Were any tests added? Would you please close it? rt.perl.org/Ticket/Display.html?id...et-history 13:53
yoleaux2 IOninja: I'll pass your message to MasterDuke.
timotimo perl6 -Ilib -MJSON::Fast -e 'say from-json(q{"̅haha"}).perl' 14:16
"\\u0305haha"
not quite, but almost!
perl6 -Ilib -MJSON::Fast -e 'say from-json(q{"̅haha"}).perl' 14:18
"\x[305]haha"
better.
oh, huh, i'm getting an ascii decode error 14:22
IOninja This type constraint look bogus: github.com/rakudo/rakudo/blob/nom/...ture.pm#L6 15:12
m: dd WHAT &infix:<+>.signature.count
camelia Int
IOninja We rebind it to an Int somewhere along the way
github.com/rakudo/rakudo/blob/nom/....nqp#L1405 15:13
Here is where rebind happens: github.com/rakudo/rakudo/blob/nom/...2102-L2108 15:15
timotimo now it properly escapes control characters 15:41
IOninja t/spec/S17-supply/interval.t flopped on me 15:43
timotimo i wonder how much slower i made it ;( 15:44
jnthn IOninja: It probably uses sleep, so will be vulnerable to it
IOninja Ah
ZOFVM: Files=1228, Tests=132837, 122 wallclock secs (21.07 usr 3.60 sys + 2342.88 cusr 272.80 csys = 2640.35 CPU) 16:21
Geth rakudo/nom: 032b283d5a | (Zoffix Znet)++ | src/core/operators.pm
Make infix:<∘> fake out original routine's .count and .arity

  - Mix in a role that provides faked out .count and .arity values
   that match those of the RHS's Callable; jnthn++ for the tip
  - Makes composed routines usable in grep, map, infix:<∘>, and any
   others that change behaviour based on given Callable's .count
   or .arity
  - Fixes RT#130891: rt.perl.org/Ticket/Display.html?id=130891
16:37
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130891
roast: 270dcf82f2 | (Zoffix Znet)++ | S03-operators/composition.t
Test infix:<∘> and infix:<o> keep RHS's .arity and .count

RT#130891: rt.perl.org/Ticket/Display.html?id=130891 Rakudo fix: github.com/rakudo/rakudo/commit/032b283d5a
16:39
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130891
timotimo does somebody want to exercise JSON::Fast a little bit? 16:49
Geth rakudo/nom: dde3407d38 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm
Make sure IO::Path.split *always* closes its file-handle

By slurping the file, and then using Str.split. This actually may make it about 10% faster (at the expense of higher memory usage). It also makes it work for all of the parameters that Str.split accepts.
16:55
rakudo/nom: f91bf4f00c | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm
Make sure IO::Path.split *always* closes its file-handle

By slurping the file, and then using Str.split. This actually may make it about 10% faster (at the expense of higher memory usage).
17:13
lizmat Oops, that should have been .words :-( 17:14
timotimo ah, that's why! :)
lizmat got my Terminal to crash 5x before I could enter the commit message
without crashing
and then the last time I forgot to s/split/words/ 17:15
grrrr
IOninja is slightly confused about such changes
Like were I to add them to the IO Action Plan, they'd be in the "for 6.d" section.
lizmat IOninja: ??
why ?
I see this as a bug fix, no?
IOninja 'cause behaviour changed :) I dunno. If someone's code was passing an encoding option to open it no longer works. 17:16
lizmat ah, ok, good points
IOninja Well, I originally was fine with changing anything that doesn't break 6.c-errata right now. But I know people voiced concernes when rakudo.org/2017/02/26/advance-notic...t-changes/ went out that perhaps stuff like this should be deferred to 6.d even if the changes dpnt 17:17
'don't break 6.cerrata... simply because many of the tests are poor 17:18
Geth rakudo/nom: ed8d581265 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm
Need to keep params to open, so reverting this version
IOninja So in my notes I currently add anything that changes behaviour without maintining backwards-compattible support for doing under 6.d.PREVIEW pragma so the change would be only in 6.d 17:19
lizmat afk& 17:22
IOninja: leaving IO::Path.split/words in your caring hands :-) 17:23
really afk&
IOninja Alright :)
TimToady IOninja: if your patch copies the RHS's incoming signature, does it copy the LHS's return type? 17:25
IOninja TimToady: nope
It doesn't copy the signature, it mixes a role that lies about .arity and .count
TimToady maybe it could lie about .of then 17:26
IOninja OK
TimToady 'course, maybe we'll want to know purity someday as well...dunno where it stops...well, I do know, but don't want to reinvent Haskell 17:28
IOninja :)
Geth rakudo/nom: cb149a836e | (Zoffix Znet)++ | src/core/operators.pm
Make infix:<∘>/infix:<o> fake .of

Take it from LHS and fake it on the returned block
17:52
roast: f31eeabab5 | (Zoffix Znet)++ | S03-operators/composition.t
Test infix:<∘>/infix:<o> fake .of

Rakudo fix: github.com/rakudo/rakudo/commit/cb149a836e
17:53
TimToady and yes, the intent was to put %*HOW into the braid eventually too, just lacking in round tuition 17:54
Geth rakudo/nom: f9294c3837 | (Zoffix Znet)++ | src/core/operators.pm
Add `my` to FakeSignature infix:<∘>'s role
18:36
roast: fe3b86e171 | usev6++ | 2 files
Adjust fudging for JVM
19:20
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make sure IO::Path.split *always* closes its file-handle 20:36
travis-ci.org/rakudo/rakudo/builds/209425405 github.com/rakudo/rakudo/compare/0...e3407d38a8
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
IOninja Command failed (status 32768): git clone github.com/perl6/nqp.git nqp 20:39
Geth rakudo/nom: 68a40f7d95 | TimToady++ | src/Perl6/Actions.nqp
propagate purity up through meta-meta asts

We can do this because, by and large, operators must be predeclared or the metaops wouldn't recognize them in the first place. (The setting violates this in spots while bootstrapping, but doesn't happen to run afoul the "useless use" checks that depend on it.)
Previously, Zxx simply assumed that no one in their right mind would use that with side effects on the left. Now, since xx isn't pure, it allows them.
20:40
TimToady doubtless that fixes a bug report of two, but I'm going to go eat lunch now...
IOninja \o/ 20:41
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make sure IO::Path.split *always* closes its file-handle 21:22
travis-ci.org/rakudo/rakudo/builds/209433504 github.com/rakudo/rakudo/compare/d...1bf4f00c53
buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
MasterDuke IOninja: i did part of the work of making sure case-insensitive comparisons use fc instead of uc/lc, samcv is working on the rest 22:29
yoleaux2 13:53Z <IOninja> MasterDuke: IIRC you fixed this ticket. Were any tests added? Would you please close it? rt.perl.org/Ticket/Display.html?id...et-history
MasterDuke i believe she's already written some tests, i'll try to add some more 22:31
Geth roast: 40c7c4b37b | (Daniel Green)++ | S03-operators/repeat.t
Test that creating too large strings throws

For rt.perl.org/Ticket/Display.html?id=127971
23:17