MasterDuke_ m: subset uint15 of uint16 where 0 < * <= 32775; my uint15 $b = 1 00:41
camelia Type check failed in assignment to $b; expected uint15 but got Int (1)
in block <unit> at <tmp> line 1
MasterDuke_ m: subset uint15 of uint16 where 0 < * <= 32775; my uint16 $b = 1; my uint15 $c = $b 00:42
camelia Type check failed in assignment to $c; expected uint15 but got Int (1)
in block <unit> at <tmp> line 1
MasterDuke_ i guess that's all just part of native uints not really working
but i've actually run into it while doing some coding for fun 00:44
timotimo today i learned that you can right-click-copy, right-click-paste partitions across disks in gparted and it'll clone stuff for you, and you can resize it as well directly afterwards 00:53
MasterDuke_ sounds convenient 00:57
Zoffix is having trouble finding good hacking music today :(* 02:40
.tell dogbert17 if you're interested. Got a segfault with some of my code; possibly something to do with native typed attributes: zef update; zef install Testo; cd $(mktemp -d); git clone github.com/zoffixznet/perl6-IO-Dir .; git checkout 70f8502; perl6 t/01-operation.t 03:10
yoleaux Zoffix: I'll pass your message to dogbert17.
Zoffix .tell dogbert17 actually it was trying to read a close dir handle. Filed as: rt.perl.org/Ticket/Display.html?id=131301 03:16
yoleaux 03:11Z <skids> Zoffix: yeah that module is really bitrotten, and won't be worked on again until RT#126819 is resolved.
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126819
yoleaux Zoffix: I'll pass your message to dogbert17.
Zoffix m: say (1,).Seq ~~ (1,).Seq 03:33
camelia False
Zoffix m: say (1,) ~~ (1,) 03:34
camelia True
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=131302 03:38
lizmat Files=1192, Tests=58580, 188 wallclock secs (11.57 usr 4.43 sys + 1092.96 cusr 111.08 csys = 1220.04 CPU) 05:57
yoleaux 12 May 2017 22:56Z <Zoffix> lizmat: FWIW the ba0581d75b fix now gives False for cases that are, say `Int āˆ‹ Int`; Perhaps Set:U.Set should return set(Set) as it does for other type objects?
lizmat .tell Zoffix well, I guess that boils down to: is Set.Set Set or set(Set) ? 05:58
yoleaux lizmat: I'll pass your message to Zoffix.
Geth rakudo/nom: 407bce1dc2 | (Elizabeth Mattijsen)++ | 13 files
Handle QuantHash:U coercion differently

This should fix some issues with set operators (RT ##131300).
Before this, Set.Set would return Set. Now it returns set(Set). So instead of not coercing a QuantHash type object, we now coerce it into a defined QuantHash object with the type object as its member.
This is consistent with e.g. Int.Set, which already coerced to set(Int).
08:19
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131300
lizmat ???????? # just because I can 08:48
Geth rakudo/nom: 50d5ac3276 | (Elizabeth Mattijsen)++ | src/core/set_operators.pm
Revert "Partial fix for RT #131300"

The partial fix was wrong. That should teach me to not commit anything when tired after a long day and an evening out.
This reverts commit ba0581d75bdd560ec81c0528f22e574107f05420.
09:07
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131300
tadzik Zoffix: ping 09:10
ugexe Zoffix: RakudoPrereq test fails on osx (testers.p6c.org/reports/145831.html needs a few minutes until it shows up) 09:23
passes on linux however
dogbert17 m: say 1 āˆˆ (SetHash) ?? "present" !! "not present" 09:38
camelia not present
dogbert17 this used to be 'Invocant of method 'Set' must be an object instance of type 'SetHash', not a type object of type 'SetHash'. Did you forget a '.new'?'
ugexe Zoffix: er, the test report didn't get all the info you would need on the failure. see instead: gist.github.com/ugexe/5d2ced2d4612...d8af89adbd 09:39
lizmat m: 1 āˆˆ SetHash # golfed 09:46
camelia WARNINGS for <tmp>:
Useless use of "āˆˆ" in expression "1 āˆˆ SetHash" in sink context (line 1)
lizmat m: say 1 āˆˆ SetHash # golfed more silently
camelia False
dogbert17 cool, so the new behaviour makes sense 09:49
lizmat yeah, think so 09:55
m: dd Set.Set
camelia set(Set)
lizmat m: dd set().Set
camelia set()
[TuxCM] This is Rakudo version 2017.04.3-238-g50d5ac327 built on MoarVM version 2017.04-64-g6d5ea042 10:09
csv-ip5xs 2.493
test 12.472
test-t 4.215 - 4.221
csv-parser 12.756
dogbert17 m: say bag(<a a b c a d>) (-) bag(<a a b c c>) == bag(<a d>) # hmm 10:14
camelia P6opaque: get_boxed_ref could not unbox for the representation '20' of type Scalar
in block <unit> at <tmp> line 1
AlexDaniel mch: say bag(<a a b c a d>) (-) bag(<a a b c c>) == bag(<a d>) # hmm 10:15
committable6 AlexDaniel, Ā¦2015.12: Ā«TrueĀ» Ā¦HEAD(50d5ac3): Ā«P6opaque: get_boxed_ref could not unbox for the representation '20' of type Scalarā¤ in block <unit> at /tmp/TEGGspRhMN line 1ā¤ Ā«exit code = 1Ā»Ā»
AlexDaniel bisect: say bag(<a a b c a d>) (-) bag(<a a b c c>) == bag(<a d>) # hmm
bisectable6 AlexDaniel, Bisecting by exit code (old=2015.12 new=50d5ac3). Old exit code: 0
AlexDaniel, bisect log: gist.github.com/ea9b1f5cafac02e57b...2d3eb01b8c
AlexDaniel, (2017-05-11) github.com/rakudo/rakudo/commit/78...1a591b1550
AlexDaniel commit: 788e6de6dc6^,788e6de6dc6 say bag(<a a b c a d>) (-) bag(<a a b c c>) == bag(<a d>) # hmm
committable6 AlexDaniel, Ā¦788e6de6dc6^: Ā«TrueĀ» Ā¦788e6de: Ā«P6opaque: get_boxed_ref could not unbox for the representation '20' of type Scalarā¤ in block <unit> at /tmp/AWnAlMSsyj line 1ā¤ Ā«exit code = 1Ā»Ā»
AlexDaniel dogbert17: ticket it 10:16
dogbert17 will do, just my luck that lizmat decided to take a nap, that's was her computer says anyway :-)
guess she wants a ticket as well 10:17
AlexDaniel of course :)
dogbert17 I was investigating this broken example in the docs: 'bag(<a a b c a d>) (-) bag(<a a b c c>) = bag(<a d>)' 10:18
AlexDaniel I wonder what is 20
jnthn A representation ID 10:19
It could be a code-gen bug
But given a load of code is written with nqp:: ops, it's most likely a missing nqp::decont
Not quite sure why it puts the 20 there instead of P6bigint...maybe thinko in the error generation code 10:20
Oh, or maybe we only have the ID there
Zoffix . 10:21
yoleaux 05:58Z <lizmat> Zoffix: well, I guess that boils down to: is Set.Set Set or set(Set) ?
Zoffix tadzik: pong
ugexe: that looks like your Linux Rakudo version is not the same as OSX version
It's kinda ironic the module I made to avoid buggy Rakudos fails tests because it's hitting a Rakudo bug :P 10:25
tadzik Zoffix: I was wondering why does github.com/perl6/modules.perl6.org...ker.pm#L17 return 10:26
just to not do the GET, or does the return value matter? 10:27
ugexe Zoffix: happens on 2017.04.3 on either system
dogbert17 AlexDaniel: done, RT #131303 10:28
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131303
Zoffix ugexe: OK that makes more sense :) Pushed a fix that I'm pretty confident fixes the issue
AlexDaniel .tell lizmat you may be interested: RT #131303 10:29
yoleaux AlexDaniel: I'll pass your message to lizmat.
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131303
Zoffix tadzik: yes, it returns to avoid the GET; since if we were able to fetch the meta in the first place and URL mathes, then it's correct. That return should probably be `return 1`, since we did not fail the meta check. Although its value is currently unused, I usually use the truthy/falsy returns to indicate success/failure even if currently unused: 10:33
github.com/perl6/modules.perl6.org...ist.pm#L57
AlexDaniel .tell samcv hello! I've just noticed that I had this ticket bookmarked for some reason RT #128875. Looks exactly like something you may be interested in :) 10:34
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=128875
yoleaux AlexDaniel: I'll pass your message to samcv.
samcv hey
yoleaux 10:34Z <AlexDaniel> samcv: hello! I've just noticed that I had this ticket bookmarked for some reason RT #128875. Looks exactly like something you may be interested in :)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=128875
samcv will look.
Zoffix m: dd Array.Array
camelia [Array,]
Zoffix m: dd Array.List
camelia (Array,)
AlexDaniel m: dd Array.list
camelia (Array,)
samcv I'm having a problem using NativeCall under Sabyon (gentoo based) it seems to be trying to open a dummy readline lib file
tadzik Zoffix: alrighty, thanks 10:35
jnthn samcv: Maybe it's trying to load a linker script or some such?
samcv i guess gentoo's libraries are complex
jnthn (Which won't work well)
samcv yeah it is jnthn
anyway we can do anything. the file has the name of the actual .so in the text
tadzik Zoffix: I move things around and exposed problems with dists on the webui in the 'problems' branch, if you want to take a look :)
it moves some stuff from Source.pm to METAChecker as well 10:36
jnthn Yeah, it'll need to be pointed at the real .so instead I guess
samcv i'm trying to think how this can be solved for gentoo type distros
other than manually doing it
Zoffix .tell lizmat I think Set.Set makes sense to be set(Set) because we do that already for List.List, Array.Array, Bag.Bag, and Mix.Mix; I think that's all the things that can contain themselves (all by themselves)? So basically there *is* a meaning for the coercer to return a proper Set I can call methods on, so it makes sense to do that instead of just returning the type object that makes stuff hang and 10:38
yoleaux Zoffix: I'll pass your message to lizmat.
jnthn Manually being looking in the file and then hardcoding that?
Zoffix can't call many methods on
.tell lizmat can't call many methods on
yoleaux Zoffix: I'll pass your message to lizmat.
jnthn I guess linker scripts are text files so we could "interpret" simple ones...
Though that may be icky :) 10:39
samcv yeah i mean. i will check into it. the files i've seen have a refernce to the real .so in the thing 10:40
h/o gotta bring my website back up :o 10:42
Zoffix tadzik: TIP. Add the new routes you added to site tips; so people know about them. The tips are 1-per-line, and you have to escape your markup, if needed: github.com/perl6/modules.perl6.org...e-tips.txt 10:43
tadzik oh, right :)
jnthn Yeah, afaiu linker scripts can do all kinds of magic but we probably only need to handle a tiny subset of it to be useful
ugexe Zoffix: confirmed it works on osx now 10:50
samcv brb gonna reboot the server...
eek. no wonder. my ipv6 addresses aren't showing up anymore.. 10:52
nginx wouldn't start
jnthn, this is the libreadline.so file fyi cry.nu/p/m1c1/ 10:59
so looks like GROUP has .so's and there can be more than one. but if we find that section it should be at least not too hard to do it. 11:03
AlexDaniel dogbert17: as you can see, she is not asleep :) 11:05
dogbert17 lizmat: we found a bug for you :) 11:07
ah, now I got the mail with her comment 11:09
samcv AlexDaniel, RE that RT .o0( i always thought the code for :i:m in nqp looked like it didn't work... hehe ) 11:10
dogbert17 at least the broken examples on the SetBagMix page have been fixed
samcv hadn't poked that section yet
put it on my list to categorize tomorrow 11:11
AlexDaniel \o/
dogbert17 the amount of code examples on the SetBagMix page is quite limited, perhaps I should add a few 11:13
dogbert17 decides to do that after lunch 11:15
Geth rakudo/nom: 4c813666df | (Elizabeth Mattijsen)++ | 2 files
Actually decontainerize when changing (Bag|Mix)Hash

This fixes RT #131303, dogbert17++ for spotting
11:26
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131303
dogbert17 lizmat++ 11:40
lizmat so how do we do this in Perl 6: 12:17
yoleaux 10:29Z <AlexDaniel> lizmat: you may be interested: RT #131303
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131303
yoleaux 10:38Z <Zoffix> lizmat: I think Set.Set makes sense to be set(Set) because we do that already for List.List, Array.Array, Bag.Bag, and Mix.Mix; I think that's all the things that can contain themselves (all by themselves)? So basically there *is* a meaning for the coercer to return a proper Set I can call methods on, so it makes sense to do that instead of just returning the type object that makes stuff hang and
10:38Z <Zoffix> lizmat: can't call many methods on
lizmat m: require Test; ok 1
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
ok used at line 1
lizmat m: require Test; ::("ok") 1 12:18
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3require Test; ::("ok")7ā5 1
expecting any of:
infix
infix stopper
statement end
statement modifier
sā€¦
Zoffix m: require Test <&ok>; ok 1
camelia ok 1 -
lizmat ah
ok
Zoffix++
m: require Test; ::("ok")(1) 12:19
camelia No such symbol 'ok'
in block <unit> at <tmp> line 1

Actually thrown at:
WARNING: unhandled Failure detected in DESTROY. If you meant to ignore it, you can mark it as handled by calling .Bool, .so, .not, or .defined methods. The Failure was:
ā€¦
lizmat m: require Test; ::("&ok")(1) 12:20
camelia No such symbol '&ok'
in block <unit> at <tmp> line 1

Actually thrown at:
in block <unit> at <tmp> line 1
lizmat just checking :-)
Zoffix m: require Test; ::("Test::EXPORT::DEFAULT::&ok")(1) 12:22
camelia ok 1 -
Zoffix m: require Test; Test::EXPORT::DEFAULT::ok(1) 12:23
camelia ok 1 -
Zoffix ZOFVM: Files=1242, Tests=135556, 113 wallclock secs (22.47 usr 3.20 sys + 2355.60 cusr 131.13 csys = 2512.40 CPU) 13:16
Geth rakudo/nom: aa72bdefe4 | (Zoffix Znet)++ | src/core/IO/Path.pm
[io grant] Remove dir's :absolute and :Str; make up to 23% faster

  - Remove `:absolute` argument and control absoluteness fully via invocant
  - Remove `:Str` argument; a performance hack is sole reason for this arg
   - Anyone in dire need of it can use IO::Dir module
  - Neither arg is roasted, documented, or appears to be ecosystem-used
  - Fix JVM bug of not accounting invocant's absoluteness when creating
... (7 more lines)
13:17
roast: 98917dcaeb | (Zoffix Znet)++ | S32-io/dir.t
[io grant] Test IO::Path.dir's absoluteness behaviour

Per impl in github.com/rakudo/rakudo/commit/aa72bdefe4
13:18
pink_mist [Tux]: are you HMBRAND on cpan? your Text-CSV release was caught by at least 2 different perl5 monitoring solutions as a perl5 dist :/ 13:55
[Tux]: it seems you missed putting things in the Perl 6 directory, if I'm not misunderstanding various comments from others (I've no idea myself) 14:00
tadzik pink_mist: fwiw, I did the same for Acme::Meow, and it was kinda intentional, and andk-approved to see if pause will react correctly or not 14:01
nine pink_mist: it really was a test of how PAUSE would react, because it's supposed to handle Perl 6 dists correctly. ANDYK approved of the test and is currently fixing PAUSE
s/ANDYK/ANDK/g 14:02
Zoffix Yeah, in PAUSE you need to choose "Perl 6" in target directory from the dropdown
pink_mist aha, got it
Geth nqp: a695300ae9 | (Elizabeth Mattijsen)++ | src/HLL/Compiler.nqp
Revert "Allow for extra config info to be shown from HLL"

We should change the subclass Perl6::Compiler, rather than mess with HLL::Compiler.
This reverts commit 736835d80aff12494991137564a966d1c3dd456c.
14:05
lizmat Zoffix pink_mist I disagree 14:06
PAUSE *should* put a Perl 6 distro in the Perl6 directory automatically
otherwise we allow the user of PAUSE to do the wrong thing 14:07
Zoffix lizmat: yeah, if it can. I was describing the current process as I last used it. 14:08
Anyone really good with bit shift stuff? Can you check if we have some problems with bitshifting uint32 types? There's this issue, but I can't repro any concrete problems: github.com/grondilu/libdigest-perl6/issues/18 14:09
Ah, a spesh bug 14:19
MasterDuke_ huh, wasn't that a recent breakage for libdigest? i didn't think spesh was touched recently? 14:23
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=131306 14:27
MasterDuke_: it wasn't but rakudo changes exposed it
MasterDuke_ ah, i just read the issue thread 14:31
timotimo uh oh, spesh does bit ops wrong? 14:34
is it really spesh, or just jit? 14:35
Zoffix timotimo: no idea. I don't know the difference 14:40
MVM_SPESH_DISABLE=1 fixes the bug
timotimo and MVM_JIT_DISABLE=1? 14:41
because disabling spesh also disables the jit
Zoffix MVM_JIT_DISABLE=1 still has the bug 14:45
c: ef29bb9f41aa5d~1 use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x 14:48
committable6 Zoffix, Ā¦ef29bb9f41aa5d~1: Ā«27071659120799ā¤27071659120799Ā»
Zoffix And looks like it's solely the NEW moarvm right shift off that caused it, 'cause if I do the Rakudo's fix above the bug isn't there (when using old MoarVM op) 14:49
s/off/op/;
This one: github.com/MoarVM/MoarVM/commit/36...785187ddfe 14:50
Geth rakudo/nom: cbff7110eb | (Elizabeth Mattijsen)++ | 2 files
Change Perl6::Compiler rather than HLL::Compiler

This bumbs NQP_REVISION to make sure we get the original, unadulterated HLL::Compiler.verbose-config method.
14:51
rakudo/nom: 83b7acd265 | (Elizabeth Mattijsen)++ | src/core/Compiler.pm
Run the Perl6::Compiler.verbose-config when sinking

Providing a runtime way to trigger "perl6 -V" output. This probably needs some bikeshedding still.
Zoffix Actually, no. If I checkout pre-fix MoarVM, it still has that bug :S 14:56
timotimo spesh doesn't actually do anything to bitshift ops
is the bug still there when you set only MVM_SPESH_INLINE_DISABLE? 14:58
which number is the wrong one, now? one that ends in 6? 14:59
Zoffix c: ef29bb9f41aa5d~1 say $*VM.version; use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x
MasterDuke_ no bug with INLINE_DISABLE
committable6 Zoffix, Ā¦ef29bb9f41aa5d~1: Ā«v2017.04.56.g.8.ad.18.b.84ā¤27071659120799ā¤27071659120799Ā»
Zoffix timotimo: yeah, the short one 15:00
Right answer is 27071659120799
ok, so ^ no bug there, but if I build 2017.04 MoarVM, I get the bug
I suspect this might be some nqp changes...
c: ef29bb9f41aa5d say $*VM.version; use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x
committable6 Zoffix, Ā¦ef29bb9: Ā«v2017.04.56.g.8.ad.18.b.84ā¤27071659120799ā¤27071659120799Ā»
Zoffix uhhhh 15:01
timotimo well, if it's a spesh bug it will only appear if you run the code multiple times
Zoffix bisect: use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x
bisectable6 Zoffix, Bisecting by output (old=2015.12 new=83b7acd) because on both starting points the exit code is 0
Zoffix I am. I'm running it 1000 times
timotimo oh
bisectable6 Zoffix, bisect log: gist.github.com/0f933bff181e59e9c9...37e7cdd436
Zoffix, (2017-05-10) github.com/rakudo/rakudo/commit/64...68243f0115
timotimo there is
right
Zoffix Oh, I was looking at the wrong op all this time
brb 15:02
Check it: 15:08
m: use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x
camelia 27071659120799
235679
Zoffix Bug, eh?
m: use fatal; use nqp; sub rotr(uint32 $n, uint32 $b) { nqp::bitshiftr_I(nqp::decont($n), nqp::unbox_i($b), Int) +| $n +< (32 - $b) }; say rotr 1652322944, 18; my $x; for ^1000 { $x = rotr 1652322944, 18 }; say $x
camelia 27071659120799
27071659120799
Zoffix No bug :)
timotimo fixed your readdir crash bug just now btw 15:09
Zoffix sweet 15:10
timotimo grabs all latest nqp and rakudo 15:13
Zoffix tries to refocus on IO 15:14
Geth roast: 00f6420096 | (Zoffix Znet)++ | S32-io/io-handle.t
Spec value of IO::Handle.encoding on unopened handle
15:25
Zoffix ZofBot: sing it with me \o\ |o| /o/ www.youtube.com/watch?v=0GMFT9Dph8M 15:57
ZofBot Zoffix, (Contextual variable searches do; $*PID will eventually locate $PROCESS::PID if not hidden by an inner callframe's $*PID
tadzik ...wat 16:05
Geth roast: 71eebc77f3 | (Zoffix Znet)++ | S32-io/io-spec-unix.t
[io grant] Test IO::Spec::Unix.extension
16:12
Zoffix m: $PROCESS::PID = 42; sub foo { say $*PID }; foo; { my $*PID = 72; foo } 16:15
camelia 42
72
Zoffix Beat my head for a bit about this: 16:16
m: $PROCESS::PID = 42; sub foo { say $*PID }; foo; my $*PID = 72; foo
camelia (Any)
72
Zoffix wonder if it's a DITWIDT or should warn
TimToady
.oO(twinges? tickles? twerks?)
16:21
Zoffix :) 16:25
dogbert17 TimToady: did your cap repair succeed or did you (F)ry everything? 16:28
lizmat Zoffix: feels wrong to me 16:31
Zoffix m: my $x = 72; { sub foo { say $x }; foo ; my $x = 42; say $x } 16:35
camelia (Any)
42
Zoffix Affects this case too
TimToady should probably get the "already bound to outer symbol" warning 16:37
m: my $x = 72; { say $x; my $x = 42; say $x }
camelia 5===SORRY!5=== Error while compiling <tmp>
Lexical symbol '$x' is already bound to an outer symbol;
the implicit outer binding must be rewritten as OUTER::<$x>
before you can unambiguously declare a new '$x' in this scope
at <tmp>:1
------>ā€¦
TimToady like that one 16:38
dogbert17: got the 5v line work, but the 12v line is still like 9Ā±3v, so thinking I need to replace the main cap too 16:39
*working
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=131307 16:41
dogbert17 TimToady: I guess you have an ESR meter 16:42
TimToady well, I can just watch it finding random voltages for a while :) 16:43
anyway, it seems like too much AC is leaking through somehow 16:44
Geth rakudo/nom: 85230d0603 | (Elizabeth Mattijsen)++ | 3 files
Streamline verbose configuration reporting

  - perl -V now sorts its output
  - moved all of the logic for -V to Perl 6 land
  - new Compiler.verbose-config method returns hash by default
  - will nqp::say it when passed a :say
  - removes the $*SAY-ADDITIONAL-CONFIG-INFO abomination
  - and the Compiler.new.sink abomination
16:45
dogbert17 caps are not very good at stopping AC though :) 16:46
AlexDaniel ā€œPiping several commands is easyā€ our docs say. Except when you forget to .close the pipe between your processes 17:01
lizmat dinner& 17:02
AlexDaniel what do you think? Is it my misunderstanding, or is it a bug? github.com/perl6/whateverable/commit/96ccddccd
Zoffix Is there a way for it to auto-detect when to close a pipe? 17:03
AlexDaniel well, if the process over, sure enough it's time to close it? I'm not sure how it works internally 17:04
geekosaur if the process is over there can still be unread data. in general you can make things that autoclose so simple cases are simpler, but you end up making complex cases impossible 17:14
sufficiently clever compile time analysis could say "you have a dangling pipe end you never do anything with, did you forget to either close it or use it?" 17:15
...usually.
oh, this is one you use, you read, yopu just forgot to close? (looking at commit msg in other channel) 17:16
that one is a bit more annoying, but one could probably set a flag on the handle at creation time saying "autoclose after EOF is read"... provided you aren't on an old system where it's not possible to distinguish nonblocking read with no data from EOF 17:17
but I don't think rakudo can be built on such systems 17:18
(for historical reasons I think POSIX still allows that though...)
Zoffix man this WannaCry thing is crazy gist.github.com/rain-1/989428fa550...6efbc0b168
Zoffix wonders if he'll still have work to go to on Tuesday :) 17:19
AlexDaniel I'm still waiting for this kind of thing for linux 17:29
get your files encrypted, run around in panic trying to find your backups, search the internet for a way to decrypt it without paying anythingā€¦ sounds like a lot of fun :) 17:30
Zoffix AlexDaniel: I'm sure there'll be some when it's market share will be more than a pimple on a flee 17:31
AlexDaniel Zoffix: well yes, maybe, butā€¦ 17:32
nine Actually there already are ones for Linux. Or at least one. But it demands a ridiculously high sum because Linux users seem to have the money.
AlexDaniel if you manage to infect something, what are the chances that it is some server?
Zoffix I dunno, pretty good? 17:33
AlexDaniel nine: what's the name?
Zoffix HeartBlead anyone? It doesn't need to be an infection
nine AlexDaniel: sorry, don't know anymore
AlexDaniel maybe en.wikipedia.org/wiki/Linux.Encoder.1
Zoffix And really, this is more about people using ancient, unsupported software than anything else. 17:34
My home box isn't affected, but 3 other Windows boxes I checked even had Windows updates turned off and didn't receive anything since 2015 -_-
Hm, IO::Handle.flush is untested... wonder how I'm supposed to test it :/ Since IIRC we don't currenly buffer anything? 17:40
guess I'll see what sort of thing Perl 5 buffers and do a test to cover that case and when we start buffering we'll write more tests. 17:41
geekosaur used to be everything by the same rules as C (so you will find older programs setting $| for sockets); eventually sockets started defaulting nonbuffered because buffering is almost always wrong 17:46
that said I was under the impression that buffering is transparently managed by libuv (and currently there is no mechanism in either moarvm or rakudo to change it) 17:47
Zoffix oh
there's IO::Handle.flush that uses nqp::flushfh op
I think I'll go the other way and un-document it and leave it unspecced... 17:48
geekosaur yeh, I think that call is the sole interface to libuv buffering
you can't do the equivalent of C's setvbuf :/ 17:49
(and NativeCall does not help as it does not tell *libuv* what to do)
Zoffix ZOFFLOP: t/spec/S11-modules/nested.t 18:10
Geth rakudo/nom: b43ed18f50 | (Zoffix Znet)++ | 2 files
[io grant] Make IO::Handle.flush fail with typed exceptions
roast: 4495615281 | (Zoffix Znet)++ | S32-io/io-handle.t
[io grant] Test IO::Handle.flush
18:11
Zoffix m: .skip xx 10000 and .head.say with grep *.is-prime, ^āˆž 18:23
camelia Method 'pull-one' must be implemented by Iterator because it is required by roles: Iterator.
in block at <tmp> line 1
in block <unit> at <tmp> line 1
BenGoldberg One reason why it's not possible (in the general case) to know when to automatically close a pipe is that the process might have spawned a child of it's own, and that grandchild process might have a copy of the read end of the pipe. 18:29
AlexDaniel BenGoldberg: you mean the write end? 18:31
or hmā€¦
????
well, all I know is that my code was broken, and I see no easy way to prevent myself from doing the same mistake again 18:32
I'm stupid, I know, but you probably can't fix thatā€¦
I have created a doc issue to make the situation a bit better: github.com/perl6/doc/issues/1304 18:33
but documenting the trap doesn't really solve the problemā€¦
????
Zoffix Well... programmers do need do a bit of thinking. We can't eliminate it entirely :) 18:34
You work with IO::Handles; it's your job to ensure to close them, if relying on GC taking care of that isn't an option 18:35
ZofBot: blame the user for everything! 18:37
ZofBot Zoffix, and shouldn't add short method to Mu
geekosaur suggests 'perldoc perlipc'. some things CANNOT be fixed in the language. the programmer must deal; the computer will never be able to do so 18:38
not via the language, not via the OS, not via magical fairies
IPC is rife with these 18:39
AlexDaniel cries in the corner
Zoffix wonders when the traps page will be large enough to be published as a standalone book :) 18:44
ZOFVM: Files=1242, Tests=135559, 114 wallclock secs (22.22 usr 3.20 sys + 2379.55 cusr 126.34 csys = 2531.31 CPU)
AlexDaniel Zoffix: I don't see many contributions to it
it's just me creating issuesā€¦
Zoffix I added constants precompilation recently to it 18:48
AlexDaniel \o/ 18:49
is this one outdated? docs.perl6.org/language/traps#BUIL..._arguments 18:51
because you can do TWEAK now
Zoffix probably 18:52
s/probably/definitely/;
dammit 18:54
I copied that link while I had a CD key for a game in my copypaste buffer and I need it now and I've no idea how to make steam tell it to me again, 'cause I said "don't show again" :( 18:55
AlexDaniel sorry!
no clipboard manager?
Zoffix Ah, there's "CD KEY" link on the game's page
Clipboard manager?
Never heard of 'em. Also, this is windows 18:56
MasterDuke_ Zoffix: there are 3rd-party clipboard managers for windows 18:57
BenGoldberg Windows managers exist for windows: ClipboardFusion, Ditto, ClipCube, Ethervane Echo, ShapeShifter, Save.me, ...
Just a random few :)
AlexDaniel interestingly, I never needed oneā€¦ but I also don't have a trash bin :) 18:59
(you press Delete and poof! The file is gone)
Zoffix reads 6guts.wordpress.com/2017/05/12/loo...t-funding/ 19:16
And I recall snide replies to AlexDaniel on bdfoy's grant, about there being tons of money at TPF and everyone should just apply :/ 19:17
moritz speaking of that project, was there a schedule for it? 19:28
Zoffix moritz: there were, but it wasn't funded
moritz Zoffix: ah right, I actually meant the kickstarter 19:29
Zoffix I vaguelly recall summer being somewhere around the time, but I don't see any specific timelines on the Kickstarter page
Ah, "Final e-version: "ESTIMATED DELIVERY 19:30
Jun 2017
"Print book only, fulfilled by O'Reilly: Jun 2017" 19:31
And looking at April's working copy of the book, I'd say Jun is overly optimistic; maybe Sept or so 19:33
ugh. wish I didn't look at it
try { chdir $*SPEC.catfile( $*HOME, @*ARGS[0] ) }
if $! { put $! }
MasterDuke_ m: say \(1) ~~ :(Str(Int)) 19:34
camelia True
MasterDuke_ m: say \(1) ~~ :(Str(int))
camelia False
Zoffix And several other convoluted examples with dumb handling of Failures 19:35
AlexDaniel nah, it's ok, looks fine here 19:36
AlexDaniel doesn't have the access
MasterDuke_ m: say \(1) ~~ :(Int(int))
camelia False
MasterDuke_ m: say \(1) ~~ :(Int(Int))
camelia True
MasterDuke_ m: say \(1) ~~ :(int(int))
camelia False
MasterDuke_ m: say \(1) ~~ :(int(Int))
camelia False
Zoffix AlexDaniel: no regular user code should have a $*SPEC in it 19:37
timotimo wonders if nier: automata's soundtrack is good for coding
AlexDaniel Zoffix: what code? No code!
Zoffix AlexDaniel: the one I pasted above
timotimo Zoffix: failures r rly hard
MasterDuke_ m: say \(1) ~~ :(int)
camelia True
MasterDuke_ m: say \(1) ~~ :(Int) 19:38
camelia True
Zoffix In fact, catfile doesn't handle nul bytes, so unless chdir coerces to IO path somewhere along the way that code has a security bug in it
s: &chdir
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/b43e...rs.pm#L134
Zoffix s: $*CWD, 'chdir', \('foo') 19:39
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/b43e...th.pm#L414
Zoffix Nah, it's fine.
timotimo is $*SPEC tested explicitly in roast? 19:42
Zoffix Oh yeah
timotimo mhm
we don't really tell people that $*SPEC isn't meant for user code 19:43
or do we?
Zoffix But it's all low-level bits, so unless you're writing your own IO module, you shouldn't use it.
We didn't, but do now.
Well, and all pre-IO-grant IO docs were kinda meh and sparse and I think used $*SPEC too. I'm still working on improving them but the end goal is to have $*SPEC only as a "you're making your own IO lib" thing and everything else is handled by IO::Path 19:44
One exception is splitting/joining path into/from path bits. You can join with just .join('/') and IO::Path will do the right thing with it, but it's still kinda iffy and splitting... *shrug*. I've seen one usage of that in the ecosystem, but I don't know what the actual problem being solved was. It might've been solvable by just calling the .add method instead of splitting/joining 19:46
ugexe splitting paths is often used to find some common substring/path-part between X number of paths 19:49
Zoffix What for? 19:55
ugexe usually to keep some relative path structure while extending its parent some number of levels with the common prefix 20:04
i used to do it when we had to handle blib/lib and lib
except it could be anything, just neccesarily blib 20:06
just not^
pmurias /&foo/ should be illegal? 21:00
Geth nqp/master: 4 commits pushed by pmurias++ 21:02
rakudo/nom: 4298dd5e2c | (Stefan Seifert)++ | tools/install-dist.pl
Support building the dist in install-dist.pl
21:05
pmurias not sure if I should make / & a & a/ throw an error or get rid of the todo test for that 21:11
jnthn m: / & a & a/ 21:14
camelia ( no output )
jnthn m: say 'a' ~~ / & a & a/
camelia Nil
jnthn m: say 'a' ~~ / a & a/
camelia Nil
jnthn m: say 'a' ~~ / a && a/
camelia ļ½¢aļ½£
jnthn m: say 'a' ~~ /&& a && a/
camelia ļ½¢aļ½£
jnthn Hm, curious
/&a&a/ is pretty odd, in that the first & falls under the same rule that lets you put a lone | before an alternation in order to let things line up nicely 21:15
But that only is allowed at the start of a group (or top level)
And I susepct the &b later is swallowed up by the variable rule since it's a longer token 21:16
(And there isn't an LTM competition at the start, thus why the first & is handled the way it is)
I thougth that & compiled the same as && though, so not sure why the difference
pmurias jnthn: so /& a & a/ should be legal and works as /a & a/? 21:24
jnthn pmurias: I believe so, yes 21:26
The grammar intentionally, iirc, matches a lone |, ||, &, and && at the start of a statement 21:27
pmurias m: say('a' ~~ / a && a /) 21:28
camelia ļ½¢aļ½£
pmurias m: say('a' ~~ / a & a /)
camelia Nil
pmurias nqp-m: say('a' ~~ / a & a /)
camelia a
ugexe buffer 2 21:31
Geth nqp: a5f1b80080 | pmurias++ | 5 files
Remove TODO regex test

A null regex to the left of & seems to be legal.
21:32
dogbert17 does anyone know what nqp::setelems does? 22:05
AlexDaniel dogbert17: you mean, besides this? github.com/perl6/nqp/blob/master/d...n#setelems 22:07
timotimo well, i can point you to the code inside moarvm 22:09
dogbert17 AlexDaniel++, I was thinking of documenting Buf.reallocate which looks like this 'method reallocate(Buf:D: Int $elements) { nqp::setelems(self,$elements) }' 22:10
timotimo VMArray.c:448 and MultiDimArray.c:698
(and buf is a VMArray on the inside)
dogbert17 timotimo: thx, is it then safe to assume that if the VMArray is enlarged, the 'new' elements are set to zero? 22:11
timotimo should be, yeah
hm 22:12
arrays can have a type for the slots
somehow "is default" has to work
i guess it's set to null so that existspos returns 0 for that part?
dogbert17 interesting 22:13
I'll cobble something together which you can rip to shreds later :) 22:14
timotimo documentation's fine
one important thing to know about moarvm's dynamic arrays is that they don't shrink, ever. 22:16
dogbert17 so what happens to the seemingly freed space then? 22:20
timotimo it's just memory that can be re-used at any point by adding more entries to the array 22:21
dogbert17 is there a way to clear the Buf, i.e. set all elements to a defult value, e.g. zero 22:24
timotimo yeah, setelems to 0 and back
dogbert17 but then we're in nqp land aren't we? 22:25
m: my $buf = Buf.new([1, 2, 3, 4, 5]); say $buf; $buf.reallocate(3); $buf.reallocate(6); say $buf; 22:27
camelia Buf:0x<01 02 03 04 05>
Buf:0x<01 02 03 04 05 00>
timotimo then just assign Empty
dogbert17 my $buf = Buf.new([1, 2, 3, 4, 5]); say $buf; $buf = Empty; say $buf.WHAT; # obviously not like this 22:29
m: my $buf = Buf.new([1, 2, 3, 4, 5]); say $buf; $buf = Empty; say $buf.WHAT; # obviously not like this
camelia Buf:0x<01 02 03 04 05>
(Slip)
timotimo haha 22:32
no, it has to be an array assignment
m: my $buf = Buf.new([1, 2, 3, 4, 5]); say $buf; @$buf = Empty; say $buf.perl
camelia Buf:0x<01 02 03 04 05>
Cannot modify an immutable Seq
in block <unit> at <tmp> line 1
MasterDuke_ that looks like the ghost array behavior from a couple days ago
timotimo oh, oops
that's not how i expected tthat 22:33
m: my @buf := Buf.new([1, 2, 3, 4, 5]); say @buf; @buf = Empty; say @buf.perl
camelia Buf:0x<01 02 03 04 05>
Cannot modify an immutable Buf
in block <unit> at <tmp> line 1
MasterDuke_ wouldn't you expect that reallocating down and then back up would put 0s?
timotimo i don't understand what i'm doing wrong there
m: say (@(Buf.new(1, 2, 3, 4)) = Empty) 22:34
camelia Cannot modify an immutable Seq
in block <unit> at <tmp> line 1
MasterDuke_ nqp: my @a := nqp::list_i(0, 2, 4, 6); nqp::setelems(@a, 2); for @a { say($_) }; say("reset @a"); nqp::setelems(@a, 4); for @a { say($_) } 22:41
camelia 0
2
reset @a
0
2
4
6
MasterDuke_ what was it that was just fixed? 22:42
dogbert17 2016.12 behaves the same 22:44
MasterDuke_ m: my @a = ^4; @a.pop; @a[5] = 99; say @a 22:45
camelia [0 1 2 (Any) (Any) 99]
MasterDuke_ c: 2017.04 my @a = ^4; @a.pop; @a[5] = 99; say @a
committable6 MasterDuke_, Ā¦2017.04: Ā«[0 1 2 3 (Any) 99]Ā»
MasterDuke_ ah, that was it
ok. so is is expected that nqp::setelems keeps values around? 22:48
timotimo that is kind of bad 22:49
could crash when GC has happened in between making it small and making it big
nqp: my @a := nqp::list_i(0, 2, 4, 6); nqp::setelems(@a, 2); for @a { say($_) }; say("reset @a"); nqp::force_gc(); nqp::setelems(@a, 4); for @a { say($_) } 22:50
camelia 0
2
reset @a
0
2
4
6
timotimo oh, list_i
that doesn't have that problem, of course
nqp: my @a := nqp::list(0, 2, 4, 6); nqp::setelems(@a, 2); for @a { say($_) }; say("reset @a"); nqp::force_gc(); nqp::setelems(@a, 4); for @a { say($_) } 22:51
camelia 0
2
reset @a
0
2
4
6
MasterDuke_ set_elems() does call set_size_internal(), which in turn does call zero_slots()
timotimo why doesn't that crash?
nqp: my @a := nqp::list(0, 2, 4, 6); nqp::setelems(@a, 2); for @a { say($_) }; say("reset @a"); nqp::force_gc(); nqp::force_gc(); nqp::setelems(@a, 4); for @a { say($_) } 22:52
camelia 0
2
reset @a
0
2
4
6
MasterDuke_ why would it?
nqp: my @a := nqp::list(); nqp::setelems(@a, 2); for @a { say($_) }; 22:53
camelia
MasterDuke_ nqp: my @a := nqp::list_i(); nqp::setelems(@a, 2); for @a { say($_) };
camelia 0
0
timotimo because the slots in the list point at objects, but the slots that are "outside" the valid region aren't visited by the gc 22:54
so they should point at memory in invalid places
nqp: my @a := nqp::list(nqp::rand_n(1), nqp::rand_n(1), nqp::rand_n(1), nqp::rand_n(1)); nqp::setelems(@a, 2); for @a { say($_) }; say("reset @a"); nqp::force_gc(); nqp::force_gc(); nqp::setelems(@a, 4); for @a { say($_) } 22:55
camelia (signal SEGV)0.632658301795547
0.275444088306517
reset @a
0.632658301795547
0.275444088306517
timotimo there you go
we should really be nulling these slots when resizing the array
i think i'll go to bed early today 22:56
MasterDuke_ so is there some sort of 'off by n' error in set_size_internal and/or zero_slots
timotimo yeah 22:59
we need to grab "elems" before we resize the thing
hmm
we sort of do
i'd have to step through it or something, but i'll go to bed early today, which is ... now? 23:02
MasterDuke_ later... 23:03
timotimo good luck with this :) 23:05
your mission, should you choose to accept it ... :)
are you a bad enough dude to zero the slots? 23:06
MasterDuke_ we'll see. also trying to implement a VM in perl 6 23:07
timotimo a perl6 vm in perl6? :)
MasterDuke_ which i don't think i've ever done before
heh, i'm not certifiable 23:08
but no, just started this challenge.synacor.com/
timotimo neat. 23:10
MasterDuke_ friend of mine did it in rust, so now i have to show how much better perl 6 is 23:11
timotimo i hope you find a few things to improve in moar and rakudo along the way :) 23:12
but not too much :D
MasterDuke_ well, i tried to make a uint15 subset of uint16, but that doesn't work. showed the error here earlier 23:14
timotimo right 23:15
MasterDuke_ m: subset uint15 of uint16 where 0 <= * <= 32775; my uint15 $a = 1
camelia Type check failed in assignment to $a; expected uint15 but got Int (1)
in block <unit> at <tmp> line 1
MasterDuke_ seems like a bug to me 23:16
timotimo do we do subsets of natives at all? anywhere?
MasterDuke_ but i don't know if subsetting natives is even allowed
m: subset uint15 of uint16 where 0 <= * <= 32775; my uint16 $a = 1; my uint15 $b = $a 23:18
camelia Type check failed in assignment to $b; expected uint15 but got Int (1)
in block <unit> at <tmp> line 1
MasterDuke_ i would think it should either work or error when i try to create the subset of the native type 23:19
a quick grep in roast shows nothing for subset of native types 23:21
timotimo perhaps an NYI exception would be in order 23:22
can you find anything in perl6-all-modules?
MasterDuke_ nothing there either 23:23
timotimo good
so nobody found a way to make it work
MasterDuke_ i'll rakudobug it so it doesn't slip through the cracks 23:25
any thought's on whether it should or shouldn't be allowed? 23:26
timotimo it'd be cool if we could 23:27
it might be a SMOP
MasterDuke_ i don't think i have any idea how subsets are currently implemented 23:28
timotimo look at SubsetHOW is my guess 23:30
(if that exists?)
also i expect the signature lowerer has a little bit for that kind of thing
MasterDuke_ RT #131310 23:34
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131310