»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
richi238 Hi 01:50
if there is a subtype special_list and i want to know the exact where clause
is there a way to print it?
say special_list.WHAT doesn't tell enough info 01:51
geekosaur I think all it has at that point is compiled code, and there's nothing equivalent to perl 5's B::Deparse yet 01:52
richi238 geekosaur: I see, thanks 01:58
timotimo i think at some point we actually installed the code for a where clause in some place and made it be printed out 02:01
but i can't remember what that was exactly
dalek osystem: 2706026 | (Zoffix Znet)++ | META.list:
Add Test::When

Selectively run tests based on the environment and installed modules and C libs
02:38
Sgeo Why do unhandles Failures have to blow up on touching them? Why not turn that into the function that did that also Failing? 02:59
geekosaur "Calling methods on unhandled failures propagates the failure. The specification says the result is another Failure, in Rakudo it causes the failure to throw." 03:00
geekosaur and the answer might be that keeping track of the path of such a transited Failure might be painful *and* might happen long after the initial Failure... 03:01
s/might happen/it might eventually throw/ 03:03
BenGoldberg One possible partial solition: first, create a subclass of Failure, Failure::Propagated. Next, add a FALLBACK method to Failure, which creates and returns a new instance of that subclass. Failure::Propagated would have a attribute, $.failure-origin, which contains the original Failure. 03:47
Sgeo "If the divisors are given as a lazy list, runs until the remainder is 0. Otherwise, returns one more item in the result than the number of given divisors." 04:44
docs.perl6.org/routine/polymod
Wait, does it literally check that? Like Perl 6 code can detect whether a list is lazy or not?
Sgeo Apparently yes it can. That's creepy 04:49
Sgeo is from Haskell-land where there's no real difference, except that infinite lists take infinitely long to tell you their size 04:50
jdv79 why wouldn't or couldn't it detect laziness? 04:55
jdv79 plus i thought the real distinction was about infinite vs not 04:56
Zoffix Sgeo, you think that's creepy? Check this out: 05:13
m: say (-∞..∞).elems
camelia rakudo-moar e39ce3: OUTPUT«Inf␤»
Zoffix :)
Sgeo What would .elems give on a list containing every real number? ;) 05:14
m: say 0 ~~ (-∞..∞) 05:15
camelia rakudo-moar e39ce3: OUTPUT«True␤»
Sgeo I don't know why I was thinking Perl6 would do the dumb thing there 05:16
Zoffix Isn't that what my eval above does?
Sgeo Zoffix, I thought it would be every integer, not every real
m: say 0.5 ~~ (-∞..∞)
camelia rakudo-moar e39ce3: OUTPUT«True␤»
Zoffix m: say π ~~ (-∞..∞)
camelia rakudo-moar e39ce3: OUTPUT«True␤»
Zoffix m: say 1+i10 ~~ (-∞..∞)
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wmds8PaFeQ␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at /tmp/wmds8PaFeQ:1␤------> 3say 1+i10 ~~7⏏5 (-∞..∞)␤»
Sgeo m: say (-∞..∞)[0] 05:17
camelia rakudo-moar e39ce3: OUTPUT«-Inf␤»
Sgeo m: say (-∞..∞)[∞]
camelia rakudo-moar e39ce3: OUTPUT«Cannot coerce Inf to an Int␤ in block <unit> at /tmp/RXMHMjECh9 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/RXMHMjECh9 line 1␤␤»
Zoffix I forget how to write complex numbers
Sgeo m: say (1+i10) ~~ (-∞..∞)
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DfSo24yHK7␤Undeclared routine:␤ i10 used at line 1␤␤»
Sgeo m: say (1+10i) ~~ (-∞..∞)
camelia rakudo-moar e39ce3: OUTPUT«True␤»
Sgeo That's, um. 05:18
Zoffix m: say (1+10i) ~~ (5..∞)
camelia rakudo-moar e39ce3: OUTPUT«False␤»
Zoffix :o
m: say @(5.5..10) 05:20
camelia rakudo-moar e39ce3: OUTPUT«(5.5 6.5 7.5 8.5 9.5)␤»
Zoffix m: say @((5.5+i10)..10)
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7cwcr2b5Ja␤Undeclared routine:␤ i10 used at line 1␤␤»
Sgeo Maybe (-∞..∞) should contain every computable number, but not any non-computable numbers, so if you do $noncomputable ~~ (-∞..∞) you get False 05:21
Zoffix m: say @((5.5+10i)..10)
camelia rakudo-moar e39ce3: OUTPUT«Complex objects are not valid endpoints for Ranges␤ in block <unit> at /tmp/DnZG7K_oZL line 1␤␤»
Sgeo I wonder if that can be twisted into a halting oracle somehow
My guess is that it's not even sensible to have $noncomputable... wait, it is. hmm 05:22
(Some structure effectively stating that it's Chaitin's constant or something)
Zoffix if Complex objects can't be endpoints for Ranges then say (1+10i) ~~ (-∞..∞) should be false, since .. operator increases each item by 1, and if you can't start with a Complex, you can't get to a point where increments by 1 will lead you to 1+10i being inside that range 05:23
</pedantry>
Sgeo m: say 0.5 ~~ (-2..2)
camelia rakudo-moar e39ce3: OUTPUT«True␤»
Zoffix hmmm 05:24
Sgeo m: (-2..2)[0]
camelia ( no output )
Sgeo m: say (-2..2)[0]
camelia rakudo-moar e39ce3: OUTPUT«-2␤»
Sgeo m: say (-2..2)[1]
camelia rakudo-moar e39ce3: OUTPUT«-1␤»
Zoffix That's kinda bugging me, 'cause:
Sgeo m: say (-2..2)[1]
camelia rakudo-moar e39ce3: OUTPUT«-1␤»
Zoffix m: say @(-2..2)
camelia rakudo-moar e39ce3: OUTPUT«(-2 -1 0 1 2)␤»
Sgeo m: say (-2..2)[1].5
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/abQ4WnD65r␤Malformed postfix call␤at /tmp/abQ4WnD65r:1␤------> 3say (-2..2)[1].7⏏055␤»
Sgeo m: say (-2..2)[1.5]
camelia rakudo-moar e39ce3: OUTPUT«-1␤»
Sgeo blinks
Zoffix 1.5 gets coerced into Int, which is 1 05:25
m: say 0.5 ∈ (-2..2) 05:26
camelia rakudo-moar e39ce3: OUTPUT«False␤»
Sgeo Is there a texas version of that operator? 05:27
Zoffix m: say 0.5 (elem) (-2..2)
camelia rakudo-moar e39ce3: OUTPUT«False␤»
Zoffix docs.perl6.org/language/unicode_texas 05:28
Sgeo TY
oops ty
Zoffix There are texas versions of everything.
azawawi hi 06:33
RabidGravy GOO MONIN 07:31
brrt \o RabidGravy 07:34
masak goo monin, #perl6 07:46
moritz \o 07:51
masak ostensibly Perl 6 day today, though I might need to leech some of it to deadline-related $work :/ 07:54
stmuk submits perl6 to YAPC 08:17
(EU) 08:18
talk even .. need coffee 08:27
RabidGravy concludes that whatever claims the GtkBuilder documentation about "being helpful to dynamic languages" they actual meant "how the python binding wanted to do it" 08:29
nine are you surprised?
RabidGravy not really, but if they had gone one step further and passed the widget name to the callback of "gtk_builder_connect_signals_full" we'd be golden 08:36
masak I finally figured out how to draw SVG comfortably with Perl 6 09:47
lots of named subs producing paths and SVG fragments, lots of heredocs; put it all together in the end into a small heredoc drawing the whole SVG scene
make the heredocs of the qq variety, and then interpolate exclusively in {} blocks 09:48
dalek k-simple/glade-app-supply: 3a4a4c8 | (Slobodan Mis􏿽xCC􏿽x8Ckovic􏿽xCC􏿽x81)++ | / (3 files):
Simplistic GTK::Simple::GladeApp

  * loads `$*PROGRAM`.glade
  * shows `mainWindow`
  * connects signals to `handle-signal(Str)`
10:06
k-simple/glade-app-supply: bacabad | RabidGravy++ | / (3 files):
Merge branch 'glade-app' of github.com/slobo/gtk-simple into slobo-glade-app
k-simple/glade-app-supply: cd859ad | RabidGravy++ | / (2 files):
Very basic Builder handling with supply on signal

Based on #16
The actual end-state would be more like each "handler" having an individual supply, and that would be able to receive an actual Perl object.
RabidGravy sorry for the spam there should have squished slobo's stuff first 10:17
RabidGravy right anyway off out to the supermarket 10:25
konobi howdy all... anyone know if there are any experiments with perl6 and nginx integration around? 10:49
nine konobi: in what way would they be integrated? 11:03
konobi nine: openresty.org/download/agentzh-ngi...als-en.pdf 11:04
psch m: my @a = 2, 2, 1, 1, 1, 1, .5, .5, .5, .5, .5, .5, .5, .5; say [eqv] @a.permutations[^10] # uhh
camelia rakudo-moar e39ce3: OUTPUT«True␤»
psch m: my @a = 2, 2, 1, 1, 1, 1, .5, .5, .5, .5, .5, .5, .5, .5; say @a.permutations[^3]
camelia rakudo-moar e39ce3: OUTPUT«((2 2 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5) (2 2 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5) (2 2 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5))␤»
konobi nine: openresty and nginx_lua are a really interesting read
lots of interesting fp ideas 11:06
psch hm, so it probably starts shuffling identical elements at the end around
so, yeah, just gross misuse on my part vOv 11:07
it's probably way too slow for what i want to use it for anyway
aim was to get any combination of any number of each of 2, 1, 0.5 that sums to 4, but i'm clearly starting from the wrong end... :) 11:08
psch ...that's not accidentally something NP-hard that i'm trying there, is it? :/ 11:15
psch curses spotty math knowledge *shakes fist* 11:17
llfourn Use of uninitialized value of type Instant in string context 11:37
Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in any load_module at src/Perl6/World.nqp line 1185
^ this is with RAKUDO_MODULE_DEBUG=1 11:38
it goes along with: "Missing or wrong version of dependency"
which triggers with this particular lib when trying to run the second time (after precompiling) 11:39
psch hm, antipairs can't produce non-string-key'd hashes :/ 11:56
[Coke] (texas versions of everything) except one thing. 12:10
moritz the cursor variable? 12:20
[Coke] Aye 12:26
AlexDaniel *ding ding ding ding* Attention! ⚠⚠⚠ 12:49
AlexDaniel say hello to our new bot 12:49
it works like this
bisect: exit 1 if (^∞).grep({ last })[5] // 0 == 4 # RT 128181
bisectable AlexDaniel: (2016-03-18) github.com/rakudo/rakudo/commit/6d120ca
AlexDaniel bisect: for ‘q b c d’.words -> $a, $b { }; CATCH { exit 0 }; exit
bisectable AlexDaniel: (2016-05-17) github.com/rakudo/rakudo/commit/2801780
AlexDaniel woah, that's wrong
bisect: for ‘q b c d’.words -> $a, $b { }; CATCH { exit 0 }; exit 1 12:50
bisectable AlexDaniel: (2016-03-01) github.com/rakudo/rakudo/commit/1b6c901
AlexDaniel that's right
so, basically I have built rakudo for every commit since v6.c
moritz woah. 12:50
AlexDaniel 1000 commits, averaging for about 50 seconds per build on my setup
less than a day + writing the bot itself
oh, and you can specify the starting points, if you want 12:51
bisect: good=v6.c bad=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # RT 128181
bisectable AlexDaniel: (2016-03-18) github.com/rakudo/rakudo/commit/6d120ca
AlexDaniel but it defaults to v6.c and HEAD
tadzik wow
RabidGravy OoOOOoooh
tadzik this is fantastic
moritz AlexDaniel: does it first check if the first and last commits are actually good and bad?
AlexDaniel moritz: nope 12:52
moritz: but look
bisect: exit 1
bisectable AlexDaniel: (2015-12-25) github.com/rakudo/rakudo/commit/07fecb5
AlexDaniel bisect: exit 0
bisectable AlexDaniel: (2016-05-17) github.com/rakudo/rakudo/commit/2801780
AlexDaniel moritz: that should be obvious, I guess
moritz AlexDaniel: ah yes, thanks
psch AlexDaniel: how would that have helped with e.g. the .grep thing you mentioned recently?
'cause i'm not seeing it, honestly :/ 12:53
oh, that's an example
yeah ok i do get it now sorry :P
was thinking in terms of "throw code in", not "write code that tests what you want to check for"
llfourn Cooooool
AlexDaniel psch: it's a regular git bisect 12:54
exit 1 if bad, exit 0 if good, exit 125 if you want to skip it
psch AlexDaniel: yeah, i just didn't pay enough attention, no worries :)
AlexDaniel ah, by the way, there are about 20 commits that are skipped because no perl6 executable was generated
AlexDaniel that's alright I guess 12:55
moritz AlexDaniel: have published the sources of the bot?
AlexDaniel moritz: not yet, but I will in an hour or so 12:56
AlexDaniel moritz: ideally it would be great if it was integrated into camelia, but I don't know if anybody is willing to build rakudo for every commit 12:56
nine if it can be automated, why not? 12:57
moritz AlexDaniel: how much disk space does it need?
nine What's the storage requirements?
psch fwiw, i think it's seperate enough of a service to not put it into camelia vOv
AlexDaniel nine: 30 gb or so
nine reasonable
though that's just about half a year's worth of commits :)
AlexDaniel well, it is possible to compress every build
then it is reduced like 6 times or so 12:58
but then it gets a little bit slower
masak AlexDaniel: wow. kudos on the new bot.
AlexDaniel++
nine Are those only the installed files or are the source and git repos included?
AlexDaniel nine: no, just the install
also, does anybody know how to move installed rakudo into another directory? 12:59
moritz indeed, AlexDaniel++
AlexDaniel: not supported, afaict
AlexDaniel because I attempted to do it, but screwed it up, and ended up rebuilding all 1000 commits again
hoelzro o/ #perl6 13:00
AlexDaniel moritz: I don't think that disk space is a problem, but CPU time probably is. I have no idea what kind of servers you guys have 13:01
bisectable: help
bisectable AlexDaniel: Like this: bisect: good=v6.c bad=HEAD exit 1 if (^∞).grep({ last })[5] // 0 == 4 # RT 128181
AlexDaniel ok
moritz four i7-2600 13:02
model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
should be fine 13:03
hoelzro it looks like releases are just named after the $year.$month, and no longer PM groups - is that the case? 13:05
timotimo that's right 13:06
AlexDaniel moritz: Intel(R) Xeon(R) CPU E3-1245 V2 @ 3.40GHz here
AlexDaniel oh, it is with SSD, that counts as well 13:07
hoelzro ok, thanks for the sanity check timotimo
AlexDaniel by the way, I am not doing anything smart yet. That is, every commit I download and build nqp and moar from scratch… haha! 13:08
perlpilot hoelzro: There are too many releases and not enough PM groups :)
hoelzro =) 13:08
moritz and too much stress coming up with release names
hoelzro heh, I'm feeling stressed enough already 13:10
perlpilot yeah, naming things is one of the 2 hard things in computer science. Why did we ever put that as part of the release pipeline?
hoelzro I need to figure out what to do about rt.perl.org/Public/Bug/Display.html?id=128069 - any ideas?
perlpilot special-case NaN.Rat and Inf.Rat? 13:13
moritz m: say NaN.Rat == NaN
camelia rakudo-moar e39ce3: OUTPUT«Cannot coerce NaN to a Rat␤ in block <unit> at /tmp/fzyI33dIqH line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/fzyI33dIqH line 1␤␤»
moritz bisect: try { NaN.Rat == NaN; exit 0 }; exit 1 13:14
bisectable moritz: (2016-05-02) github.com/rakudo/rakudo/commit/949a7c7
moritz bisect: try { say NaN.Rat == NaN; exit 0 }; exit 1
bisectable moritz: (2016-05-02) github.com/rakudo/rakudo/commit/949a7c7
moritz hoelzro: either revert the commit above, or find a way to fix it 13:15
or ask lizmat for input when she shows up again
AlexDaniel moritz: well… wow
sjn and write a test? :)
moritz AlexDaniel++ # *very* useful tool :-)
hoelzro ok, thanks perlpilot & moritz
mst now I want a signal like variable that starts off in a state of 'not yet a number' so we can have a NyaN type 13:16
timotimo AlexDaniel: impressive work
hoelzro I'll see what liz has to say - if it's simple for me to pull off when others are offline, I'll fix; otherwise I'll revert
moritz hoelzro: seems like lizmat TODOed the tests, see commit 61e65a493704467d94834357dc175c41ab0692aa in roast
sjn mst: and it should have a concatenation method, NyaN.cat
moritz if that was a conscious decision, maybe we should do the same in the 6.c-errata branch 13:17
hoelzro ok
moritz++ good advice
masak hey, guess what `sub foo($x) { constant u = $x; say u }; foo(5); foo(42)` does. :) 13:21
try to guess without running it
mst ... I tried, I'd /msg'ed camelia, I was wrong 13:22
jnthn I'd guess (Any)\n(Any)\n :)
masak jnthn: you're close
perlpilot that's what I would have guessed too
(Any any)
jnthn Oh, (Mu) of course.
masak right :) 13:23
I'm wondering if there's a way to get a warning in there for that case
where the compiler can detect that a runtime value is trying to be assigned to a compile-time constant
basically an assignment "against the flow of time"
there are probably other cases too, involving BEGIN etc
jnthn Yeah...some simple cases we can likely discover 13:24
masak \o/
jnthn And it's hard to imagine you'd do them on purpose.
masak right, that's my point
hoelzro moritz: upon further reflection - is TODOing 6.c-errata really the best move? 2016.05 should pass the same tests that 2016.04 did, right? 13:27
AlexDaniel uh, let's try something evil 13:31
bisect: exit 125
alright, don't do that :D 13:32
bisectable AlexDaniel: (2016-04-20) github.com/rakudo/rakudo/commit/60550d1
AlexDaniel nvm the result, I killed it manually
b2gills perlpilot: I would suspect the reason for named releases may have come from Parrot doing named releases, and at one point in time they were in the same repository 13:33
b2gills bisectable should probably fail early if both endpoints have the same exitval 13:36
moritz hoelzro: hence, ask lizmat 13:40
hoelzro: or if you can't get hold of her early enough, revert the commit 13:41
hoelzro ok 13:42
[Coke] lizmat was looking for feedback. 13:43
whoops, wrong issue.
AlexDaniel b2gills: yes, sure. Well, pull requests are welcome (I did not publish it yet though)
b2gills: and I'll do that myself if it becomes a real problem 13:44
[Coke] the issue on the ticket was that we don't know what the right behavior is, only that it changed.
b2gills Since NaN isn't a Rat, and .Rat should return a Rat, NaN.Rat shouldn't return NaN, but that is exactly what it does in 6.c ( and unfortunately it is tested in ROAST ) 13:46
hoelzro well, I guess that's why the branch is -errata, right? 13:48
anyway, as the release manager for this month, it is my solemn duty to inform you all that there's a *release* tomorrow!
mst RELEASE THE HOUNDS 13:49
hoelzro so please don't break things today =)
hoelzro .oO( let slip the dogs of Perl ) 13:49
Zoffix AlexDaniel, what's your superbot written in?
AlexDaniel Zoffix: perl5 Bot::BasicBot
Zoffix: yeah… :/ 13:50
Zoffix AlexDaniel, ah :) good. It's just I'm blowing up IRC::Client and redesigning it from scratch. Glad you didn't use it. 13:51
bisectable, bisect: exit 1 if 10.polymod(lazy 2, 2) eqv (0, 1, 2); exit 0 13:53
bisectable Zoffix: Sorry, it is too private here
Zoffix wat
AlexDaniel oh well! 13:54
the point is, it does not reply to private messages
Zoffix: just bisect:, without “bisectable,”
Zoffix bisect: exit 1 if 10.polymod(lazy 2, 2) eqv (0, 1, 2); exit 0
Ah
bisectable Zoffix: (2016-05-17) github.com/rakudo/rakudo/commit/2801780
mst AlexDaniel: it ... can
well, could
Zoffix Hm.. That's a weird commit it returned. 13:55
AlexDaniel Zoffix: yes because
bisect: exit 0
bisectable AlexDaniel: (2016-05-17) github.com/rakudo/rakudo/commit/2801780
Zoffix Oh
It should probably detect when all it found is HEAD 13:56
AlexDaniel ok sounds like I'd have to implement some extra checks
nine new code meets reality...an old story :)
Zoffix :D
AlexDaniel++ the bot's really neeat 13:57
b2gills no battle plan survives contact with the enemy
AlexDaniel mst: by that you mean that it should be allowed? I don't trust restricted setting very much, so if someone is going to run some scary things then at least do it in public :) 13:58
mst AlexDaniel: nah 13:59
AlexDaniel: just that the underlying code could do it, I misunderstood what you were saying
hoelzro commute & 14:02
masak ok, another one ;) 14:18
guess what this one does, without running it first: `sub foo($x = $x) { say $x }; foo()`
timotimo i expect Any
mst ideally, a small gnome exits the monitor and hits you with a mallet 14:19
timotimo alternatively, it could throw an error about $x not being defined?
jnthn I prefer the gnome, tbh... :P
Could be Mu again
Zoffix ran it and was unexpectedly surprised :) 14:20
jnthn, but is it expecting a Mu? :)
jnthn Oh...I guess we enforce a check on the default value :) 14:21
So it may well by a type check fail too :)
jnthn didn't run it, and is trying to remember what code we generate :)
perlpilot timotimo: but $x is defined. 14:26
timotimo m: my $a = $a; say $a 14:27
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uL37GRRjBA␤Cannot use variable $a in declaration to initialize itself␤at /tmp/uL37GRRjBA:1␤------> 3my $a = $7⏏5a; say $a␤ expecting any of:␤ term␤»
Zoffix perlpilot, defined by what?
perlpilot Zoffix: by you, the programmer :) As soon as you declare a variable, it's available for use immediately, even before the end of the statement 14:29
timotimo: I'd expect something like that if there were no other $a in scope at that point.
masak jnthn: yes, it's a type check fail. at runtime. 14:30
perlpilot timotimo: and if there was an $a in scope, I'd expect a warning
Zoffix perlpilot, oh, I thought you were replying to "i expect Any"
m: say Any.defined
camelia rakudo-moar e39ce3: OUTPUT«False␤»
Zoffix m: sub foo($x = $x) { say $x }; foo()` 14:31
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vffEKC4npA␤Bogus postfix␤at /tmp/vffEKC4npA:1␤------> 3sub foo($x = $x) { say $x }; foo()7⏏5`␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statem…»
Zoffix m: sub foo($x = $x) { say $x }; foo()
camelia rakudo-moar e39ce3: OUTPUT«Type check failed in binding $x; expected Any but got Mu (Mu)␤ in sub foo at /tmp/aSLfrWb2eo line 1␤ in block <unit> at /tmp/aSLfrWb2eo line 1␤␤»
b2gills m: sub foo( Mu $x = $x) { say $x }; foo()`
camelia rakudo-moar e39ce3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BtgEnKLV3C␤Bogus postfix␤at /tmp/BtgEnKLV3C:1␤------> 3sub foo( Mu $x = $x) { say $x }; foo()7⏏5`␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ st…»
b2gills m: sub foo($x = $x) { say $x }; foo()
camelia rakudo-moar e39ce3: OUTPUT«Type check failed in binding $x; expected Any but got Mu (Mu)␤ in sub foo at /tmp/oTCFiFEDxA line 1␤ in block <unit> at /tmp/oTCFiFEDxA line 1␤␤»
b2gills m: sub foo( Mu $x = $x) { say $x }; foo()
camelia rakudo-moar e39ce3: OUTPUT«(Mu)␤»
jnthn masak: Yup, parameters end up with Mu in the static lexpad, and the lookup ends up finding that :) 14:32
daxim where are version numbers documented? perl6 -e 'v6;' # compiles
timotimo m: say v999
camelia rakudo-moar e39ce3: OUTPUT«v999␤»
timotimo doc.perl6.org/type/Version
daxim oh, it's its own type
AlexDaniel is there any up to date version of this? howcaniexplainthis.blogspot.com.ee/...ts-do.html 14:33
some parts of it are true, like about dalek and masak, but other parts not so much
tadzik oh, phenny :) 14:34
I'm curious about zaslon's name etymology
gregf_ m: sub foo(Mu $x = 100) { say [$x, $x.^name] }; <10 bar 1/2>.map({ foo($_) }) 14:41
camelia rakudo-moar e39ce3: OUTPUT«[10 IntStr]␤[bar Str]␤[1/2 RatStr]␤»
timotimo you could .map(&foo) instead of .map({ foo($_) }) 14:42
gregf_ oh - so & is for global subs 14:44
mst subs are lexical
no such thing as global subs AFAIK
timotimo the closest thing to "global subs" is "subs that are in the core setting" 14:45
gregf_ m: sub foo(Mu $x = 100) { say [$x, $x.^name] }; <10 bar 1/2>.map(&foo); CORE::.keys.grep({ /foo/ })
camelia rakudo-moar e39ce3: OUTPUT«[10 IntStr]␤[bar Str]␤[1/2 RatStr]␤»
timotimo gregf_: you're missing a "say" in there in order to get any result
geekosaur & refers to a sub by name instead of trying to call it immediately 14:45
gregf_ ok 14:46
m: sub foo(Mu $x = 100) { say [$x, $x.^name] }; &foo.^name.say
camelia rakudo-moar e39ce3: OUTPUT«Sub␤»
llfourn nine: ping 15:48
llfourn .tell nine I think RT #128156 has something to do with one of your commits on the 13th. rt.perl.org/Public/Bug/Display.html?id=128156 15:50
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128156
yoleaux llfourn: I'll pass your message to nine.
nine llfourn: pong
yoleaux 15:50Z <llfourn> nine: I think RT #128156 has something to do with one of your commits on the 13th. rt.perl.org/Public/Bug/Display.html?id=128156 15:51
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128156
llfourn :)
nine llfourn: ah, yes. I actually was a bit surprised that no issues at all have come up since the merge. 15:53
llfourn nine: I only hit it when I started developing one of my rather large projects again. I don't think module installation or anything is affected :) 15:54
nine llfourn: t/spec/S10-packages/precompilation.t contains some precomp tests
llfourn nine: sweet. I wonder if I can translate what I put in the RT into that file... 15:56
nine I hope so :)
llfourn I wonder if we have a platform independent way of doing a touch. I suppose writing an empty string will do it. 15:57
nine I have an idea about what's going on 16:18
timotimo good start
nine I've probably been at the same point half a year ago. Only the solution I came up with then is just not good enough. 16:21
Seems like a Boolean just doesn't carry enough information for deciding whether to recompile or not
mst nine: you need a dailywtf multi-value boolean then 16:25
nine exactly!
llfourn Technically p6 Bools can have three values, Undefined, True or False :^) 16:26
mst CREATE TYPE boolean AS SQLish;
AlexDaniel m: my Bool $x is default(False); say $x 16:28
camelia rakudo-moar dfac26: OUTPUT«False␤»
nine Well defined, undefined and Failure seems to cover it better 16:30
And indeed it fixes llfourn++'s test :) 16:32
dalek k-simple/glade-app-supply: d686374 | RabidGravy++ | / (2 files):
Allow specifying specific Supply attribute for handler

Part of #16
llfourn :) # nine++
gregf_ m: my Bool $flag = Undefined; 16:40
camelia rakudo-moar dfac26: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9iUU49pu_l␤Undeclared name:␤ Undefined used at line 1␤␤»
geekosaur the type object acts as "undefined" 16:45
nine m: my Bool $flag; say defined $flag;
camelia rakudo-moar dfac26: OUTPUT«False␤»
gregf_ ah - ok 16:50
m: my Bool $flag = Nil;
camelia ( no output )
gregf_ m: sub foo($x) { my Bool $y = $x; }; foo(Nil) 16:55
camelia ( no output )
gregf_ that works, but for some reason when used with a map it coerces to Any :|
m: sub foo($x) { say $x.^name; my Bool $y = $x; }; [ Nil ].map(&foo)
camelia rakudo-moar c59e4d: OUTPUT«Any␤Type check failed in assignment to $y; expected Bool but got Any (Any)␤ in sub foo at /tmp/PPW1klwFTA line 1␤ in block <unit> at /tmp/PPW1klwFTA line 1␤␤»
RabidGravy we must be doing something right if people want us to back-port our modules github.com/Perl6-Noise-Gang/Audio-...I/issues/6 ;-) 17:03
AlexDaniel bisectable: source 17:05
bisectable AlexDaniel: github.com/perl6/bisectbot
AlexDaniel moritz: ↑
timotimo does anything speak against running bisectable on hack? 17:06
AlexDaniel timotimo: ¯\_(ツ)_/¯ 17:07
timotimo: honestly, I have no idea what hack is
timotimo p6c.org
moritz AlexDaniel: thanks!
AlexDaniel timotimo: “Be reasonable in your resource usage.” – I think it is much easier if I just handle on my server 17:09
[Coke] AlexDaniel: please don't use v6.c as the starting version: use 2015.12
AlexDaniel it*
[Coke] v6.c was a mistake and will go away at some point
AlexDaniel [Coke]: OK
[Coke] danke.
(mistake) I mean only as a tag on rakudo repo. :) 17:10
llfourn timotimo: it will need a space to fit the builds 17:10
AlexDaniel timotimo: unless someone is willing to actively work on it. But in that case you'd have to rebuild this thousand of commits
llfourn 30gb I think was said earlier
AlexDaniel yes, but it can be improved
how much space do you have there?
timotimo collect.p6c.org/ - click on hack, then on df 17:11
AlexDaniel lots of space there :)
timotimo: so what do you think? Should I move it there? 17:13
timotimo it should be fine to copy the builds onto the server, eh? 17:17
AlexDaniel timotimo: well, if you manage to have exactly the same path, then yes 17:18
timotimo oh, well
that's a good point
AlexDaniel timotimo: it is currently in /home/bisectable/git/bisectable which is pretty reasonable
timotimo though our precomp is relocatable by now at least :)
yeah, we can have a "bisectable" user on hack 17:19
AlexDaniel timotimo: alright. Then I'll probably do some pre-2015.12 builds and once I'm done with my thesis (in like, er, 2 weeks) I'll move it to hack. If you wont change your mind by then, of course 17:24
timotimo cool 17:25
raiph m: sub foo($x) { say $x.^name; my Bool $y = $x; }; ( Nil ).map(&foo) # gregf_: [...] is an array constructor; arrays put elements in Scalar containers; Scalar containers have a default default of Any; putting a Nil in such a container produces Any; so [Nil] immediately becomes [Any] 18:05
camelia rakudo-moar c59e4d: OUTPUT«Nil␤»
raiph .tell gregf_ [Nil] becomes [Any]; see irclog.perlgeek.de/perl6/2016-05-20#i_12517566 18:08
yoleaux raiph: I'll pass your message to gregf_.
arnsholt <3 QuickCheck 18:13
Just saved me from a lot of head-scratching algebra twiddling 18:16
dalek k-simple: 7f51c31 | RabidGravy++ | META6.json:
Add a proper version
18:22
k-simple: df20ddf | RabidGravy++ | lib/GTK/Simple.pm6:
Attempt to add version to the deprecations
dalek c: b500414 | (Aleks-Daniel Jakimenko-Aleksejev)++ | htmlify.p6:
“precomile” → “precompile” (@tbrowder++)
18:55
c: 208197f | (Aleks-Daniel Jakimenko-Aleksejev)++ | / (52 files):
No more trailing whitespace (EVERYWHERE!)
c: cfc5152 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/subscripts.pod:
Fixed mixed tabs and spaces in one of the code examples

Perhaps we should replace all tabs with spaces? This will eliminate all such occurances of mixed indentation styles.
Zoffix New post: Perl 6 Hands-On Workshop: Weatherapp (Part 1): perl6.party/post/Perl-6-Hands-On-Wo...pp--Part-1 19:08
perlpilot Zoffix++
timotimo zoffix has the HOW, i should really get with the program and start work on the TPS reports 19:09
travis-ci Doc build passed. Aleks-Daniel Jakimenko-Aleksejev 'Fixed mixed tabs and spaces in one of the code examples 19:11
travis-ci.org/perl6/doc/builds/131778678 github.com/perl6/doc/compare/7b411...c5152f7db6
mst timotimo: in triplicate 19:21
timotimo aye
jdoege Hi. I'm just starting to experiment with Perl 6 and I am seeing some odd behavior. Doing basic file munging, just reading a file line by line and writing it to a new file, a temp file of some sort is being created. Is this expected? 19:47
AlexDaniel jdoege: what's the name of that file? 19:48
jdoege Then, if I try to 'less' or 'tail' the file I am writing, it kills the run with an error: Failed to write bytes to filehandle: operation not supported on socket
The file was named:~gvfPPGQ.tmp 19:49
perlpilot jdoege: show your code?
(use gist or pastebin or something please)
jdoege OK. JAS.
jdoege gist.github.com/jdoege/1debfa44457...02b6ff7092 19:50
Run like: ./Vx4.pl6 --mapfile=channelmap.txt --patfile=patfile.txt --outfile=result 19:52
perlpilot So ... I'm going to guess that something else is going on 19:54
jdoege: I guess that gist is an abbreviated version of your program and not the real thing? 19:55
jdoege Nope. That's the whole thing.
I am going step by step. First read, then write, then work on the mission code. 19:56
ugexe precomp creates .tmp files 19:57
jdoege patfile is fairly large. 375MB
The temp file contained the same data as the result file.
nine ugexe: the script doesn't load any modules
jdoege And it was erased when the job exited.
perlpilot well ... all I can give you is ... yep, that's some strange behavior. 19:58
AlexDaniel jdoege: I have just checked your code with inotify, I can't see any temp file
perlpilot jdoege: Are you sure one of those files isn't a Unix socket? 19:59
jdoege I think it is accessed via a samba mount.
I'll try running it in a local directory.
perlpilot ah, that might do it (but rakudo would have no control over it) 20:00
MadcapJake how do you use the Iterator role without the Positional role?
nine MadcapJake: those two are fairly unrelated? 20:01
perlpilot MadcapJake: why do you ask? 20:02
psch m: my $x = Seq.new(class :: does Iterator { method pull-one { rand } }.new); for @$x { .say; last if $++ > 10 }
camelia rakudo-moar c59e4d: OUTPUT«0.571905974997209␤0.498088993579892␤0.41445895277352␤0.754383784210024␤0.926543542363107␤0.716141134170113␤0.227902881089729␤0.800703696170079␤0.53152387144962␤0.601427892132322␤0.0279277438688608␤0.943730805909535␤»
psch ...don't even need @ in the for i think
MadcapJake You have to wrap it in a sec?
Seq*
psch MadcapJake: well, you can of course .pull-one yourself :) 20:03
MadcapJake right, that's what I mean, how can you use it "as an iterator" or "where you'd use an iterator"
psch MadcapJake: i'd say that's with wrapping it in a Seq. you really want a sequence of values, the iterator just produces that sequence 20:04
MadcapJake Kind of seems silly that you'd need to do anything more than integrate the role to use it like one, tbh...
psch mind, i'm not really deep into all that code, just explaining how i understand it
i think jnthn++ still has a gist somewhere that explains it in depth
nine MadcapJake: maybe we just use the terms slightly differently from what you expect?
jdoege perlpilot: Thanks for looking (and asking questions). It appears it is due to the mount. No issue running locally.
MadcapJake nine: I'm talking about the Iterator and Positional roles provided standard 20:05
jdoege TY all.
perlpilot jdoege: samba (CIFS) mounts are almost always evil IMHO :)
MadcapJake If you use the Iterator role all it's doing is making sure you declare a pull-one method, but it won't actually work in control flow positions without wrapping it inside a Seq 20:06
nine MadcapJake: exactly! You seem to expect Iterator to be the thing understood by control flow like it is in maybe Python or C#. That's the part that's just not true in Perl 6, while an Iterator is an Iterator. 20:07
psch MadcapJake: sounds to me like you want something Iterable, not an Iterator
MadcapJake psch: o_O huh?
nine psch++
MadcapJake: control flow uses Iterables. Iterables provide Iterators for iteration 20:08
psch m: say Iterable ~~ Iterator; say Iterator ~~ Iterable
camelia rakudo-moar c59e4d: OUTPUT«False␤False␤»
MadcapJake nine: but why make the distinction there? Seems a trivial extra step that serves no purpose
psch m: say Seq ~~ Iterable; say Seq ~~ Iterator
camelia rakudo-moar c59e4d: OUTPUT«True␤False␤»
perlpilot MadcapJake: an iterator is the thing that does the iteration, not a thing to be iterated.
MadcapJake oi vey :P
psch semantic satiatiteration /o\ 20:09
nine MadcapJake: some languages just mush those two different concepts together
perlpilot MadcapJake: It's a similar distinction with Supply. You've got Supply and Supplier. 20:11
MadcapJake ok so, if one wanted to create a custom iterator, you'd need to either create a custom Iterable-roled class or use Seq.new 20:12
nine m: my @a = 1, 2, 3; my $i1 = @a.iterator; my $i2 = @a.iterator; say $i1.pull-one; say $i1.pull-one; say $i2.pull-one; 20:13
camelia rakudo-moar c59e4d: OUTPUT«1␤2␤1␤»
nine MadcapJake: that's ^^^ why Iterables must be different from Iterators 20:14
perlpilot nine++ 20:15
MadcapJake ok that falls into place with how perlpilot described it as like a Supplier/Supply
💡 It makes sense now, thanks nine, psch, perlpilot! 20:17
AlexDaniel how to piss everyone off: submit a bug report about perl 6 docs on RT. Moreover, do that in perl5 queue. 20:18
timotimo uh oh 20:21
that's a bad miss
[Coke] AlexDaniel: if that's real, tell me the ticket # 20:23
AlexDaniel [Coke]: #128174
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128174
AlexDaniel it was already moved
[Coke] tony c already moved it 20:24
heh
[Coke] AlexDaniel: updated, rejected, ticket opened on perl6 doc 20:27
JustinHitla here I am 20:28
[Coke] .seen JustinHitla
yoleaux I saw JustinHitla 20:28Z in #perl6: <JustinHitla> here I am
[Coke] so you are.
JustinHitla I use that code: "printf("--> seq: %-8x ack: %-8x\n",$seq,$ack_seq);" it prints something like: "<-- seq: 5f23e87c ack: 19214aaa", is there a way to make it look like "<-- seq: 5f-23-e8-7c ack: 19-21-4a-aa" ? 20:29
[Coke] m: "5f23e87c".split(2).join("-").say 20:30
camelia rakudo-moar c59e4d: OUTPUT«5f-3e87c␤»
[Coke] m: "5f23e87c".split(2,*).join("-").say
camelia rakudo-moar c59e4d: OUTPUT«5f-3e87c␤»
[Coke] m: "5f23e87c".comb(2).join("-").say
camelia rakudo-moar c59e4d: OUTPUT«5f-23-e8-7c␤»
[Coke] ^^
JustinHitla and where that code should go ?
[Coke] comb(int) is "split into chunks that are int long", then you stitch them back together with join 20:31
JustinHitla allright
[Coke] m: printf("---> %s ack" , "5f23e87c".comb(2).join("-")) 20:32
camelia rakudo-moar c59e4d: OUTPUT«---> 5f-23-e8-7c ack»
[Coke] or make a sub if you're going to reuse it. ymmv. 20:32
JustinHitla is it possible to do it like: $temp=34023423; $temp.hex().comb(2).join("-") ? 20:34
so first make it into hex and then split and join
m: $test=123123; say $test.hex() 20:35
camelia rakudo-moar c59e4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fMB5HV7_CN␤Variable '$test' is not declared␤at /tmp/fMB5HV7_CN:1␤------> 3<BOL>7⏏5$test=123123; say $test.hex()␤»
psch m: say 34023423.base(16)
camelia rakudo-moar c59e4d: OUTPUT«20727FF␤»
JustinHitla m: $test=1596188797; say $test.base(16) 20:36
camelia rakudo-moar c59e4d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5jKldFp1ZR␤Variable '$test' is not declared␤at /tmp/5jKldFp1ZR:1␤------> 3<BOL>7⏏5$test=1596188797; say $test.base(16)␤»
JustinHitla m: say 1596188797.base(16)
camelia rakudo-moar c59e4d: OUTPUT«5F23E87D␤»
arnsholt People's opinions about Open Source are weird. "Someone made this library I depend on, therefore they are now morally obliged to keep on developing it for me forever."
psch m: no strict; $test=1596188797; say $test.base(16) 20:36
camelia rakudo-moar c59e4d: OUTPUT«5F23E87D␤»
JustinHitla arnsholt: its like: "I once walked on that side walk therefore they are now morally obliged to keep on fixing it for me forever" 20:37
arnsholt Pretty much, yeah 20:38
smls m: say ("08" .. "12").List 20:39
camelia rakudo-moar c59e4d: OUTPUT«(08 07 06 05 04 03 02 18 17 16 15 14 13 12)␤»
smls # o_0 Please tell me that this^^ is a bug and not some "too smart for its own good" feature.
timotimo smls: if you have strings, you get strings behavior
.. is not a coercive operator
smls but how is that string behavior?
psch m: say ("08" .. 12).List 20:40
camelia rakudo-moar c59e4d: OUTPUT«(08 09 10 11 12)␤»
timotimo for strings of the same length, you get a per-character range
psch m: say (08 .. "12").List
camelia rakudo-moar c59e4d: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6.␤ Please use 0o8 if you mean that.␤ at /tmp/xGnutCVsnn:1␤ ------> 3say (087⏏5 .. "12").List␤(8 9 10 11 12)␤»
smls oooh.
timotimo one is 0..1, the other is 8..2
psch m: say (8 .. "12").List
camelia rakudo-moar c59e4d: OUTPUT«(8 9 10 11 12)␤»
timotimo if that's not well documented, we should do that
JustinHitla m: say ("08" .. 12).Sort
camelia rakudo-moar c59e4d: OUTPUT«Method 'Sort' not found for invocant of class 'Range'␤ in block <unit> at /tmp/P0eMQAKTzi line 1␤␤»
smls that seems like a weird behavior, but ok
JustinHitla m: say ("08" .. 12).sort() 20:41
camelia rakudo-moar c59e4d: OUTPUT«(08 09 10 11 12)␤»
psch m: say "aa" .. "ff"
camelia rakudo-moar c59e4d: OUTPUT«"aa".."ff"␤»
psch m: say ("aa" .. "ff").List
camelia rakudo-moar c59e4d: OUTPUT«(aa ab ac ad ae af ba bb bc bd be bf ca cb cc cd ce cf da db dc dd de df ea eb ec ed ee ef fa fb fc fd fe ff)␤»
JustinHitla actually why ".List" gives such weird list "08 07 06 05 04 03 02 18 17 16 15 14 13 12" ?
timotimo i told you :) 20:42
JustinHitla because "08" is a string and 12 a number, I only now noticed
timotimo m: .say for "ag".."ca"
AlexDaniel m: say qqww<hello world test>
camelia rakudo-moar c59e4d: OUTPUT«ag␤af␤ae␤ad␤ac␤ab␤aa␤bg␤bf␤be␤bd␤bc␤bb␤ba␤cg␤cf␤ce␤cd␤cc␤cb␤ca␤»
rakudo-moar c59e4d: OUTPUT«(hello world test)␤»
smls Wouldn't it have been simpler to just let .. call .succ repeatedly until it reaches the endpoint?
I mean, we don't allow counting down using 3..1 either 20:43
[Coke] m: say "08".succ
camelia rakudo-moar c59e4d: OUTPUT«09␤»
timotimo m: .say for 3..1
camelia ( no output )
psch m: say "z".succ
camelia rakudo-moar c59e4d: OUTPUT«aa␤»
psch m: say "az".succ
camelia rakudo-moar c59e4d: OUTPUT«ba␤»
smls m: say ("08", *.succ ... "12") 20:44
camelia rakudo-moar c59e4d: OUTPUT«(08 09 10 11 12)␤»
smls ^^ basically, that is what I expected "08".."12" and "08"..."12" to do
moritz reaching the endpoint won't always happen
smls so?
especially with the ... operator, that can happen a lot already 20:45
moritz when we tried it for ranges, it surprised quite many people
smls m: say ("08" ... "12").List 20:46
camelia rakudo-moar c59e4d: OUTPUT«(08 07 06 05 04 03 02 18 17 16 15 14 13 12)␤»
smls ^^ Same with the sequence op though
smls moritz: As for the range op, it could check if the endpoint will be reached, and return the empty list if not 20:47
As it already does for numbers
psch m: say (1..NaN).List
camelia rakudo-moar c59e4d: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …»
smls psch: I meant the 5..2 case 20:48
psch smls: that's not "if it can be reached", it's explicitely a "are we higher than the endpoint" check
m: say 1 > NaN 20:49
camelia rakudo-moar c59e4d: OUTPUT«False␤»
moritz smls: how would the range operator determine whether the endpoint will be receached?
*reached
smls It knows how .succ works :P
But I guess would break with subclassing or monkey-typing... 20:50
moritz or user-defined types, for that matter
smls Well, this whole behavior is special-cased for Str isn't it?
moritz ah right, I forgot 20:51
RabidGravy ye gods! libusb can go to bed without any supper right away 20:53
smls I still think that at least the ... operator would have been better off blindly calling .succ if given a LHS that is not a list of numbers
But oh well
psch m: say "A"..."a" 20:54
camelia rakudo-moar c59e4d: 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 Z [ \ ] ^ _ ` a)␤»
psch m: say "Z".succ 20:55
camelia rakudo-moar c59e4d: OUTPUT«AA␤»
psch smls: so that ^^^ should be an infinite list of all capital letter strings instead?
smls yes
of course you wouln't use it with that end-point :) 20:56
psch m: say ("A".."a").List # this too i suppose
camelia rakudo-moar c59e4d: 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 Z [ \ ] ^ _ ` a)␤»
psch well, i disagree vOv
smls Well, .. being more magical and more determined to reach its endpoint is more justified i guess. 20:57
Since it wants to be a "range" 20:58
AlexDaniel I thought that #128174 could not be any funnier, but I was wrong
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128174
smls AlexDaniel: oops, looks like I was ninja's by [Coke]++ 20:59
mst AlexDaniel: trout.me.uk/facepaw.jpg
smls *'d
AlexDaniel mst: yea 21:02
smls: well not exactly, you was the first one to open a bug report in perl6/doc/issues 21:03
hoelzro is t/spec/S06-advanced/wrap.rakudo.moar failing for anyone else? 21:06
just want to make sure it's not just me
jnthn hoelzro: Was good on my run earlier today when I made the Moar release 21:07
psch hoelzro: looks fine here
hoelzro the heck
hoelzro tries on a different machine
psch This is Rakudo version 2016.04-210-gc59e4dc built on MoarVM version 2016.04-134-g9879233
hoelzro on master, or 6.c-errata for roast?
psch ah, yeah 6.c-errata fails 21:08
Failed test: 59
hoelzro ok, whew 21:09
I'm not crazy!
I tracked it down to e239f6e
mscha Say I've got an enum (enum CoinFace <heads tails>). How do I get a list of all the possible values (CoinFace::heads, Coinface::tails)? 21:27
ugexe there is a PR that removes part of that commit that was giving me odd test failures that weren't actually failures. maybe its related github.com/rakudo/rakudo/pull/770 21:28
psch m: enum CoinFace <heads tails>; say CoinFace::.keys; say CoinFace.pick(*); say CoinFace.^enum_value_list 21:29
camelia rakudo-moar c59e4d: OUTPUT«(heads tails)␤(tails heads)␤(heads tails)␤»
psch mscha: i think there might be at least one more way, but i can't think of it... :) 21:30
ugexe ah nope, its breaking for the same reason the original subtest changes broke github.com/rakudo/rakudo/commit/35...a34042dc6a
mscha m: enum CoinFace <heads tails>; dd CoinFace::.keys; dd CoinFace.pick(*); dd CoinFace.^enum_value_list
camelia rakudo-moar c59e4d: OUTPUT«("heads", "tails").Seq␤(CoinFace::tails, CoinFace::heads).Seq␤(CoinFace::heads, CoinFace::tails)␤»
psch yeah, they don't do exactly the same 21:31
mscha psch: thanks. keys won't work (gives strings, not enum values), pick isn't what I need (random order), but ^enum_value_list does the trick.
psch m: enum CoinFace <heads tails>; say CoinFace.pick(*).sort(*.value) 21:32
camelia rakudo-moar c59e4d: OUTPUT«(heads tails)␤»
psch ;)
still, asking the HOW about the actual list is probably the cleanest :)
sortiz \o #perl6 21:36
timotimo m: enum CoinFace <heads tails>; dd CoinFace::.values; dd CoinFace::.enums 21:43
camelia rakudo-moar c59e4d: OUTPUT«(CoinFace::heads, CoinFace::tails).Seq␤Method 'enums' not found for invocant of class 'Stash'␤ in block <unit> at /tmp/2nqWQEZdHs line 1␤␤»
timotimo m: enum CoinFace <heads tails>; dd CoinFace::.values; dd CoinFace::.enum
camelia rakudo-moar c59e4d: OUTPUT«(CoinFace::heads, CoinFace::tails).Seq␤Method 'enum' not found for invocant of class 'Stash'␤ in block <unit> at /tmp/bZkq1Au2Ts line 1␤␤»
timotimo m: enum CoinFace <heads tails>; dd CoinFace::.values; dd CoinFace::.pairs
camelia rakudo-moar c59e4d: OUTPUT«(CoinFace::heads, CoinFace::tails).Seq␤(:heads(CoinFace::heads), :tails(CoinFace::tails)).Seq␤»
mscha CoinFace::.values is a bit nicer than CoinFace.^enum_value_list. :) 21:49
psch m: enum CoinFace <heads tails>; say CoinFace.enums
camelia rakudo-moar c59e4d: OUTPUT«Map.new((:heads(0),:tails(1)))␤»
psch i actually kinda dislike that, 'cause it doesn't actually return the enums 21:50
but idk, having that *also* return a list of the enum values would probably be a few too many ways to do it :) 21:51
smls yeah, that should be called .Map not .enums :P
ugexe star-m: enum CoinFace <heads tails>; say CoinFace.enums
camelia star-m 2016.01: OUTPUT«heads => 0, tails => 1␤»
psch star-m: enum CoinFace <heads tails>; say CoinFace.enums.WHAT
camelia star-m 2016.01: OUTPUT«(Hash)␤»
psch that was RT #128138
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128138
smls psch: I meant the name of the method/coercer 21:52
psch smls: i was just refering to returning a Hash in star
+it
but yeah, i'd agree 21:53
smls m: my @a = 1..Inf; say @a; say { @_ }(@a) 21:54
camelia rakudo-moar c59e4d: OUTPUT«(timeout)[...]␤» 21:55
smls ^^ jnthn: Does passing a lazy array to a slurpy parameter, force it to be eager by design?
smls S06 suggests it would remain lazy 21:55
(but was probably written before the GLR)
sortiz m: my @a = lazy 1..Inf; say @a; 21:56
camelia rakudo-moar c59e4d: OUTPUT«[...]␤»
smls yeah, it's only when it's passed to a slurpy block/routine parameter that it hangs 21:57
m: my @a = 1..Inf; say @a[5]; say { @_[5] }(@a)
camelia rakudo-moar c59e4d: OUTPUT«6␤6␤»
smls Huh, so it doesn't hang when you just index it, but does hang when you say/gist it? 21:58
psch m: my @a = 1..Inf; say @a[5]; say { @_[6] }(@a)
camelia rakudo-moar c59e4d: OUTPUT«6␤7␤»
psch maybe it's actually the implicit return that eagers it?
psch m: my @a = 1..Inf; say @a; { say @_ }(@a) 21:58
...maybe not :)
camelia rakudo-moar c59e4d: OUTPUT«(timeout)[...]␤» 21:59
psch it's kinda weird though that partly vivifying it changes the behavior 22:00
ugexe m: sub foo(*@a is raw) { say @a; }; my @a = 1..Inf; foo(@a)
camelia rakudo-moar c59e4d: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 …»
smls So `is raw` allows it to stay lazy? 22:01
TimToady sitting at John Wayne
sortiz m: my @a = 1..Inf; sub foo(@_) { say @_ }; foo(@a); 22:02
camelia rakudo-moar c59e4d: OUTPUT«[...]␤»
sortiz m: my @a = 1..Inf; sub foo { say @_ }; foo(@a); # vs
camelia rakudo-moar c59e4d: OUTPUT«(timeout)» 22:03
ugexe not slurpy
TimToady you maybe (+@a) there instead 22:04
*want
smls with +@a it hangs too
TimToady m: sub foo(+@a) { say @a.is-lazy; }; my @a := 1..Inf; foo(@a) 22:08
camelia rakudo-moar c59e4d: OUTPUT«True␤»
sortiz m: my @a = 1..Inf; sub foo(+@_) { say @_.is-lazy; say @_ }; foo(@a) 22:09
camelia rakudo-moar c59e4d: OUTPUT«True␤[...]␤»
TimToady I used := there
smls TimToady: I get the same result with = and *@a 22:10
.is-lazy returns True, but .gist hangs
So I guess it's a .gist bug?
sortiz m: my @a = 1..Inf; sub foo { say @_.is-lazy; say @_ }; foo(@a) 22:11
camelia rakudo-moar c59e4d: OUTPUT«True␤[...]␤»
TimToady m: sub foo(+@a) { say @a,; }; my @a := 1..Inf; foo(@a)
camelia rakudo-moar c59e4d: OUTPUT«(timeout)»
smls sortiz: Oh wow, so calling .is-lazy before the .gist, makes the .gist work 22:12
sortiz Yep!
smls But .gist is the first thing you call, it hangs
*if
ok, will RT 22:13
sortiz m: my @a = 1..Inf; sub foo { my $no-sink = @_.is-lazy; say @_ }; foo(@a) 22:14
camelia rakudo-moar c59e4d: OUTPUT«[...]␤»
sortiz m: my @a = 1..Inf; sub foo { my $no-sink = @_.?not-lazy; say @_ }; foo(@a)
camelia rakudo-moar c59e4d: OUTPUT«(timeout)» 22:15
ugexe m: sub foo(**@a) { say @a; }; my @a := 1..Inf; foo(@a)
camelia rakudo-moar c59e4d: OUTPUT«[1..Inf]␤»
ugexe but again, not slurpy 22:16
Zoffix Haha. Check out the #1 item on HN: news.ycombinator.com/ 22:22
Damn, I'm a genius. 22:23
diakopter lolz how u do dat
Zoffix It's nice. Get more people exposed to P6 22:24
sortiz m: my @a = 1..Inf; sub foo(*@b) { my $no-sink = @b.is-lazy; say @b }; foo(@a); # slurpy with a test 22:26
camelia rakudo-moar c59e4d: OUTPUT«[...]␤»
psch Zoffix: i noticed the tag "Isoteric", and a reference to "DUBUG.txt"
Zoffix psch, hm? 22:27
psch Zoffix: in the article itself
Zoffix psch, well, yeah. I'm just not following what point you're making :)
psch just wondering if that was intentional, i suppose 22:28
Zoffix psch, ah, I just now spotted the two typos :P
No, it wasn't intentional. I just need to start using a spellchecker when I write stuff :P
sortiz Zoffix, just dropped to #2 ;) 22:29
Zoffix :)
Zoffix psch++ fixed. Thanks. 22:33
AlexDaniel “Unicode has stubbornly refused to become Turing complete.” yeah. Meh. 22:36
:)
AlexDaniel and yeah, I've always loved how git exposes all that crap 22:38
timotimo i think that's just because git always calls into less 22:39
TimToady signs off due to running out of 60 min free WiFi access soonish... 22:56