»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
jercos amusingly that information is actually sent along with every message camelia sends... but most clients don't show that >.> 00:07
timotimo i am glad my client hides that for regular messages 00:11
raydiak geekosaur: ha ha guess I deserved that :) never really could get in to the social network thing in truth though 00:14
geekosaur turns out to be too autistic for twitter/facebook/tumblr, so even less able to get into them 00:15
00:16 kurahaupo1 joined
raydiak near as I can tell they're mostly terrible terrible things so we're probably better off this way :) 00:17
00:20 beastd left 00:21 bin_005 left 00:22 bin_005 joined 00:26 bin_005 left 00:28 bin_005 joined 00:32 bin_005_c joined 00:33 bin_005 left 00:35 kurahaupo1 left 00:40 kurahaupo1 joined 01:17 larion left 01:19 BenGoldberg joined 01:38 bin_005_c_x joined 01:39 bin_005_c left 01:46 ilbot3 left 01:48 ilbot3 joined 01:50 bin_005_c_x left 01:51 bin_005_c_x joined, bin_005_c_x left 01:54 telex left 01:56 telex joined 01:59 kurahaupo1 left
hoelzro camelia: whois 02:05
er, duh
dalek albot: 4a18f52 | Mouq++ | lib/EvalbotExecuter.pm:
Use the GitHub gist API
02:13
Mouq I brought that up last time camelia was fixed, but figured I'd see if GitHub changed again 02:14
yoleaux 5 Jun 2015 22:13Z <lizmat> Mouq: #125312 can be closed
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125312
Mouq Cool
02:19 vendethiel left 02:20 amurf joined 02:25 amurf left 02:35 rmgk is now known as Guest63661, rmgk_ joined, Guest63661 left, rmgk_ is now known as rmgk, noganex joined, chenryn joined 02:38 noganex_ left 02:39 silug joined 02:42 gagalicious joined, bjz left 02:47 bjz joined 02:49 chenryn left
hoelzro oh, nice Mouq 03:15
03:26 lizmat left, lizmat joined
dalek kudo/nom: 2ea7d3c | Mouq++ | src/Perl6/Optimizer.nqp:
"$foo.bar += 1234" should only call $foo.bar once

Besides being more correct, is also much faster, since we're calling the
  (potentially high-load) function half as often.
  timotimo++ for assistance
03:33
lizmat good night, #perl6! 03:44
colomon o/
lizmat (jet lag is taking its toll)
03:47 jack_rabbit joined
Mouq 'night lizmat 03:47
03:53 SevenWolf joined, chenryn joined 04:10 amurf joined 04:11 chenryn left 04:12 chenryn joined 04:14 amurf left 04:17 xinming_ left, llfourn joined 04:22 BenGoldberg left 04:27 chenryn left 04:28 molaf_ joined
skids (and of course, this would be the first day in ages I need camelia to take gists...) 04:28
04:30 chenryn_ joined 04:32 molaf left 04:35 chenryn_ left 04:40 bin_005 joined 05:08 kaare_ joined 05:10 chenryn_ joined 05:14 chenryn_ left 05:38 SevenWolf left 05:46 Patterner joined 05:50 Psyche^ left 05:57 bin_005_y joined 05:58 bin_005 left
gagalicious if i do... print STDERR "my comment"; other than the current STDoutput on my screen... is it going anywhere else? any specific log file? 06:06
ugexe could if you wanted it to 06:07
something like $*ERR := class { print { "somefile.err".IO.spurt($_) } } 06:08
method print^
06:14 llfourn left 06:25 diana_olhovik_ joined 06:28 kurahaupo1 joined 06:43 maettu1 left 06:44 skids left, maettu joined 06:50 vendethiel joined 06:55 cognominal joined 07:00 bin_005_y_j joined 07:01 bin_005_y left 07:12 Foxcool joined 07:20 dolmen joined 07:25 nebuchadnezzar joined 07:27 RabidGravy joined 07:34 vendethiel left 07:37 dolmen left 07:43 rurban joined 07:46 llfourn joined
dalek c: 118f72b | Mouq++ | bin/p6doc:
Change $*OS to $*DISTRO.name. Fixes #88
07:47
07:47 amurf joined 07:49 espadrine joined 07:51 domidumont joined 07:52 amurf left 07:53 tinyblak joined 07:59 domidumont left 08:01 jaffa4 joined 08:06 espadrine_ joined 08:07 espadrine left 08:09 rurban left 08:11 espadrine joined, espadrine_ left 08:12 kurahaupo1 left 08:15 Ven joined 08:18 flaviusb left, darutoko joined 08:35 jack_rabbit left 08:37 espadrine_ joined 08:38 espadrine left 08:42 rnr joined 08:46 rnr left 08:52 Ven left
_itz surely $*DISTRO.is-win should be renamed $*DISTRO.is-fail? :) 09:08
09:09 Ven joined 09:14 gfldex joined
jnthn Only if you flip the meaning :P 09:15
jnthn isn't too fond of all the recent "somebody didn't like zero-arg X so we banned it" 09:16
It'll mean we end up with a list of things that complain and another bunch that don't 09:17
Mouq m: say [min] 09:18
camelia rakudo-moar c2a57e: OUTPUT«Inf␤»
jnthn Which is one of those dreaded "lists to remember" that we're trying to avoid in Perl 6.
Mouq (old camelia)
jnthn I could only barely buy the argument for await; for take/min/max I'm really not sure 09:19
Anyway, suspect we need a TimToady++ ruling :)
Mouq tries to figure out how to get TextMate to think of .pm files as p6
Er 09:20
s/TextMate/Atom
I don't even know how my brain did that
jnthn Brains are weird. :)
dalek ast: e225997 | usev6++ | S05-metasyntax/regex.t:
Add test for RT #125302
09:21
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125302
Ven m: say min;
camelia rakudo-moar c2a57e: OUTPUT«Inf␤»
Ven Mouq++ # 2ea7d3c 09:23
09:26 Ven left 09:29 larion joined
Woodi hallo #perl6 :) 09:29
09:30 vendethiel joined
Woodi I realy do not understand that OS -> DISTRO migration... we are *such* forward looking ? :) 09:30
how I can instruct my perl6 to say "Linux" ? 09:32
_itz I did think the use of the word DISTRO (which seems quite linux specific) was odd in general OS classification 09:33
bartolin m: say $*KERNEL.name.tc
camelia rakudo-moar c2a57e: OUTPUT«Linux␤»
Woodi bartolin: ok. now instructing kernel tu say "Windows" is weird :) 09:34
bartolin *g*
Woodi and OS is just two, very established letters... 09:35
09:36 AlexDaniel joined
dalek ast: f4fb60e | jnthn++ | S03-junctions/misc.t:
Correct tests that could never possibly work.

Resolves RT #124842.
09:36
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124842
09:39 Sqirrel left
bartolin Woodi: I seem to remember that there was a lengthy discussion about $*DISTRO, $*KERNEL and $*OS quite a while ago. I don't remember any details, though. looking at the logs atm ... 09:42
Woodi: ah, seems to start here (and continues for a few days): irclog.perlgeek.de/perl6/2014-05-10#i_8705472 09:43
09:44 bin_005_y_j left, bin_005_y_j_x joined
bartolin Woodi: that's my search request irclog.perlgeek.de/perl6/search/?ni...p;q=distro 09:45
09:45 domidumont joined
Woodi checking 09:45
dalek kudo/nom: 8363bbd | jnthn++ | src/ (2 files):
Don't autothread Junction type object.
ast: 140767b | jnthn++ | S03-junctions/misc.t:
Tests for not auto-threading Junction type object.

It should just be a regular dispatch fail.
09:46
09:49 Sqirrel joined 09:52 vendethiel left
Woodi so, hmm... TimToady was trolling us ? :) 09:58
dalek kudo/nom: 57ab27a | jnthn++ | src/Perl6/ (2 files):
Implement quietly { ... }.
09:59
kudo/nom: 13af7e3 | jnthn++ | t/spectest.data:
Run S04-statements/quietly.t.
Woodi but things are a bit more complicated then I thinked...
dalek ast: ad0906b | jnthn++ | S32-basics/warn.t:
Unfudge RT #124768 (quietly was NYI).
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=124768
10:09 lasse joined 10:10 lolisa joined
Mouq jnthn: That test… "'quietly does not surpress warnings';" wut 10:10
Oh, looks like a copypasto 10:11
10:11 rindolf joined
jnthn heh, I didn't read the description, just the code :P 10:11
You fixing, or should I? :)
Mouq Go ahead, I'm delving into atom to try to fix something trivial :P 10:12
Also jnthn++
dalek ast: eaa9001 | jnthn++ | S32-basics/warn.t:
Fix thinkos and typos; Mouq++.
10:17
10:26 Ven joined 10:31 diana_olhovik_ left 10:33 smls joined, uncleyear left 10:34 uncleyear joined
Mouq Figured it out. If anyone else wants the iffy Perl 6 syntax highlighting on .pm files by default in Atom, add atom.grammars.grammarsByScopeName["source.perl6"].fileTypes.push("pm") 10:40
to ~/.atom/init.coffee
Actually, going with .push("pm", "t") 10:42
dalek ecs: 6e1c9d4 | jnthn++ | / (5 files):
Update design docs for how Str/NFG has worked out.

Of note, the StrLen and StrPos types are gone, and Str only works at grapheme level; as per S15 we have Uni and its subtypes for working at codepoint level, and Buf for working at bytes level.
10:48 smls left, smls joined
masak afty, #perl6 10:51
jnthn o/ masak 10:55
10:55 spider-mario joined, bin_005_y_j_x left 10:56 Ven left, Ven_ joined
dalek ast: e54c762 | jnthn++ | S02-types/declare.t:
Toss StrPos/StrLen type existence tests.
10:57
ast: 70bbf2d | jnthn++ | S32-str/ (3 files):
Further StrPos/StrLen test cleanup.

This eradicates all mention of them from the spectest suite, now they are gone from the design docs.
tadzik 'evening 10:58
jnthn o/ tadzik 10:59
10:59 uncleyear left 11:00 uncleyear joined, cognominal left 11:01 smls_ joined 11:02 smls left 11:05 Sqirrel left
dalek ast: 472834a | jnthn++ | S02-types/declare.t:
Toss tests for now-gone string-related types.
11:06
11:06 smls joined 11:07 smls_ left
dalek ast: d9ebe60 | jnthn++ | S02-types/declare.t:
There is no Module type.

This is a confusion of object/meta-object level. Modules get ModuleHOW as a meta-object.
11:09
11:09 Sqirrel joined
masak just as there is no Class type. 11:09
jnthn Yeah, there wasn't a test for that though :) 11:10
masak .oO( we confuse things, and HOW ) :P
jnthn :D
jnthn clsoed all the RT tickets related to those tests too 11:11
11:14 smls_ joined, smls left 11:18 smls joined 11:19 smls_ left 11:25 amurf joined 11:26 uncleyear left 11:27 smls left, smls joined, uncleyear joined
masak hey, what's up with the variable names in S02-types/declare.t ? 11:29
11:29 amurf left 11:31 vendethiel joined
Mouq masak: Looks like some are Lojban? 11:35
Ven_ masak: seems like they're coming from github.com/perl6/roast/commit/bcc6...36f275978b
11:37 uncleyear left, uncleyear joined, smls left, smls_ joined
Mouq Yeah, they're all lojban except for some foos, bars, and "igeda" 11:39
llfourn is there a way of doing MyClass.add_method( $methname, multi method {}) without using EVAL ... It seems I cannot make an anonymous multi method 11:42
11:43 smls_ left
llfourn and mutli method $methname() {} doesn't work obviously 11:43
11:43 smls_ joined 11:44 smls_ left 11:47 _mg_ joined
jnthn Multi methods are added with .^add_multi_method iirc 11:49
11:49 smls joined
jnthn And you can give it a name, but write "anon multi method foo() { }" 11:50
To prevent it getting installed anywhere
llfourn I was just using .add_method(my method foo() {}) 11:51
can't seem to find add_multi_method 11:52
11:52 uncleyear left
llfourn doc.perl6.org/type/Metamodel::Class...dContainer 11:52
smls TimToady: Coming back to the Amb example on rc, it looks like you cheated quite a bit :P, what with relying on the current hyper ordering in Rakudo...
11:52 uncleyear joined
smls write-up of the details: gist.github.com/smls/1484e13b89490e218ddc 11:52
maybe calling next in an Xop used to do something different, so that example used to work even without the cheating reordering? 11:54
it doesn't now, though.
jnthn It's in MultiMethodContainer rather than MethodContainer
llfourn jnthn: Ahh ok thanks. Taking a look now. Doesn't appear on docs other than in the does section doc.perl6.org/type/Metamodel::ClassHOW 11:56
Ven_ m: class A { my method a {1}; }; say A.new.a
camelia rakudo-moar c2a57e: OUTPUT«Method 'a' not found for invocant of class 'A'␤ in block <unit> at /tmp/V3_TFpMUIe:1␤␤»
Ven_ m: class A { my method b {1}; method a { self.b } }; say A.new.a
camelia rakudo-moar c2a57e: OUTPUT«Method 'b' not found for invocant of class 'A'␤ in method a at /tmp/5F4LdVBQoC:1␤ in block <unit> at /tmp/5F4LdVBQoC:1␤␤»
12:00 _mg_ left
jaffa4 jnthn: hi jnthn, some nbody test does not perform well 12:03
yoleaux 4 Jun 2015 10:28Z <timotimo> jaffa4: i found it a bit strange that you were using hashes for the bodies in your nbodies translation
jaffa4 jnthn: do you know about that? 12:04
Mouq m: say "\q:to/obf/wut"␤lol␤obf 12:05
camelia rakudo-moar c2a57e: OUTPUT«lol␤wut␤»
timotimo o/ 12:09
flussence hmm, maybe updating rakudo right before I go travelling offline all day isn't such a good idea... gist.github.com/flussence/48610fb98d732b4d1e86 12:10
timotimo jaffa4: did you see the gist where i did a bunch of changes to your nbody file? 12:14
masak lol, I blogged! strangelyconsistent.org/blog/when-i...sing-blame 12:17
kind of a surprise post. spur of the moment.
12:18 rindolf left, smls_ joined 12:19 smls left
rjbs <3 exhaustive match checking -so- -much- 12:19
12:19 uncleyear left
masak oh! I meant to include the phrase "barbaric development practices of the 20th century" somewhere... :) 12:20
oh well.
12:20 uncleyear joined 12:23 smls_ left
Ven_ masak: "Don't get me wrong. NaN is there for a reason, and I'm not clamoring for its removal. " I don't think you'd be alone in battle :) 12:28
and yeah -- exhaustive pattern matching checks is nice, but impractical in many cases.
One good example is scala: it can check for exhaustiveness, but only if the classes are "sealed" (which means they can't be extended from another *file*) 12:29
masak no arguments about impracticality.
Ven_ (the reason is that, well, you distribute precompiled JARs. that's also the java/scala compiler can't do full-blown optimization) 12:30
masak mostly just claiming that the situations where it *is* practical are a slowly growing collection (as people understand their domains and the constraints better), and that it's increasingly reckless not to get on this wave and ride it. 12:31
12:31 Celelibi joined
Ven_ (scalaJS, on the other hand, can do that) 12:33
12:33 RabidGravy left
masak the IEEE 754 case of smaller/equal/larger/NaN *is* a "sealed class". 12:37
Ven_ masak: it definitely is.
masak so are many other such cases.
there's a wonderful paper about what IntelliJ can do nowadays with nullness analysis: meta2014.pereslavl.ru/papers/2014_K...Values.pdf
Ven_ so, what, should the compiler check for every use of "<" or ">" or "==" and emit a warning if it can't detect a check for "NaN" around it :)? 12:38
masak same kind of idea. run through all the cases, in intelligent ways.
flussence
.oO( use pedantic; )
12:38 diana_olhovik joined
masak Ven_: not saying the compiler need to anything. might be an external tool. but yeah, *something* should do some pattern matching and find these things so that we humans don't have to. 12:38
Ven_ masak: considering it's Perl6, the "other tools" need at least as much info as the compiler :) 12:39
12:39 |Tux| left
masak *nod* 12:39
Ven_ problem is, you'd need to "sacrifice" precompilation to do that, it seems 12:41
actually...
say I have Ven::Base, and extending it are classes Ven::A and Ven::B. I "pattern match" on it in my `multi sub f`. but then – *someone* else extends it with Masak::C. what should the compiler do? error on `f`? 12:43
12:44 uncleyear left
masak I'm not so interested in solving that particular problem, when it's done with subclassing. 12:44
actual enums, however...
note that not even Perl 6 has a mechanism to re-open and extend an enumeration. :) 12:45
12:45 uncleyear joined
masak (I've checked.) :) 12:45
Ven_ (or at least, not a mechanism designed to do that *g*)
12:45 Ven_ left, tinyblak left 12:46 tinyblak joined
flussence I tried re-rebuilding rakudo just now, and panda triggered a completely different error to that gist I posted above: «Method 'from' not found for invocant of class 'Mu' in block at ./rebootstrap.pl:33» ...and that line's only doing a simple split(/\s/). 12:47
12:50 ggoebel joined, tinyblak left
flussence this is on 32-bit FWIW, but I also couldn't install Linenoise on 64-bit just now either. guess it's just one of those days... 12:51
jaffa4 timotimo: yes 13:00
13:06 ggoebel left 13:07 ggoebel joined 13:10 uncleyear left, uncleyear joined 13:14 khisanth_ joined, amurf joined 13:15 smls joined 13:17 Khisanth left 13:19 amurf left 13:20 smls_ joined 13:21 smls left 13:24 Ven joined 13:25 smls_ left 13:33 smls_ joined
smls_ What would I have to change the 'return' statement to here, to make it not blow up? gist.github.com/smls/1d6cf6af547f7f7cfba5 13:33
Or is parsing using custom non-regex grammar methods not properly supported yet? 13:34
13:34 Emeric joined 13:37 Emeric left 13:38 uncleyear left 13:39 uncleyear joined 13:40 smls_ left, smls joined, domidumont left 13:46 tinyblak joined 13:47 smls_ joined, smls left
timotimo it's sooo waaarm here 13:48
masak heh. I wanted to write a tweet about how Perl more than any other language I know offers the developer unparalleled freedom in how to lay out code to enhance the *message* and *purpose* of the program. 13:57
13:58 smls joined
masak but I couldn't fit that into a tweet in a way that didn't sound like random fanboi squealing. 13:58
13:58 smls_ left
moritz masak: maybe it is random fanboi squealing :-) 13:58
masak: maybe it is *thoughtful* fanboi squealing :-) 13:59
masak I guess so :) 14:00
the feeling was brought on by looking at this snippet of code that I wrote a while back: github.com/masak/maze-making/blob/...em#L16-L35
I can't think of another language that can express the same thing as nicely. 14:01
Perl 5, kind of. with s///ge. gets a bit noisier.
14:03 uncleyear left
masak the code takes a 24-bit bitstring, and turns it into a string depicting a maze, with walls present where there are 1s in the bitstring, and absent where there are 0s. 14:03
14:03 jaffa4 left, jaffa4 joined, uncleyear joined 14:04 smls left, smls_ joined
masak heredocs, and then .=subst (with a block arg), allow me to write the code as *the picture of an actual labyrinth* such that it will be printed. 14:05
as opposied to, say, lots of small fragments of labyrinth scattered throughout the code that then get concatenated according to some rules. 14:06
ooh, though I see a simplification that I missed back then. I could have made the wall a parameter of a lexical sub, and then made `$pos` a `state` variable. 14:07
I do believe `state` things reset at outer block re-entry, yes? 14:08
14:08 molaf_ left
masak m: for ^3 { sub foo { say $++ }; foo; foo } 14:08
camelia rakudo-moar c2a57e: OUTPUT«0␤1␤0␤1␤0␤1␤»
masak yep.
TimToady++ # thought of this years ago :) 14:09
haha, now I suddenly remember when I first came across the last section of S04, "When is a closure not a closure"...
I read it, and went "o...kay..." 14:10
:P
nowadays it doesn't feel all that bad. but that just means I've been fairly thoroughly corrupted by the compiler writer's mindset. 14:11
masak .oO( "we go slightly mad so you won't have to!" ) :P
smls_ Is there a behavrioral difference between a 'state' variable declared inside a scope, and a 'my' variable declared in its parent scope? 14:15
pretty much the same, no?
plus the "is only initialized once per clone" 14:16
geekosaur behavioral should be the same, but visibility/encapsulation of functionality differs
smls_ how?
masak smls_: you can't see the `state` variable outside the function.
geekosaur because the my is visible in the parent scope? 14:17
smls_ right
masak smls_: but implementation-wise, you're spot on. that's close to how it is implemented.
geekosaur so you have a namespace leak and potential bug if somehting uses the my inappropriately
in the parent scope
(the encapsulation part being based on this: you are leaking an internal state and opening yourself to something poking it from outside) 14:18
masak right. it's all about scope and intent.
14:29 domidumont joined 14:32 espadrine_ left 14:34 uncleyear left 14:35 skids joined, uncleyear joined 14:36 Ven left
timotimo Mouq: thank you for going ahead and pushing the patch; i was going to +1 it for you, but i was tired and distracted and everything yesterday 14:40
lizmat good *, #perl6! 14:42
masak m: say (NaN .. NaN)[1024]
camelia rakudo-moar c2a57e: OUTPUT«NaN␤»
timotimo hello, lizmat
lizmat m: say @*INC[0]
camelia rakudo-moar c2a57e: OUTPUT«file#/home/camelia/.perl6/2015.05-29-gc2a57ec/lib␤»
masak m: say (NaN .. NaN)[2000]
camelia rakudo-moar c2a57e: OUTPUT«NaN␤»
lizmat ok, so camelia is still not updated
masak \o, lizmat
14:43 FROGGS joined
lizmat masak o/ 14:44
timotimo i can try to figure out what's wrong with camelia 14:48
i have access to the server
but i don't know why there's rakudo1 and rakudo2 checkouts
dalek kudo/nom: 1c068dd | lizmat++ | src/core/Any.pm:
Revert "Make bare min/max/minmax fail"

Un-ban bare min/max/minmax. After having slept on it, I had my doubts about it as well. Mind you, a bare take/take-rw as a shortcut for taking Mu, still does not make sense to me, so I've kept them banned.
timotimo and i'm not allowed to fetch there
ah, it swaps between rakudo1 and rakudo2 every time 14:52
uh oh 14:54
lizmat .tell jnthn having tossed StrPos/StrLen, shouldn't StrPosRef be tossed as well from core ?
yoleaux lizmat: I'll pass your message to jnthn.
skids FWIW, I *intentionally* do non-exhaustive case statements more often than trying to do exhaustive things, so I'd probably end up ignoring the output of a tool that looked at all my given/where statements or whatnot. 14:55
14:56 uncleyear left
smls_
.oO( use strict 'given'; )
14:57
skids It would be more useful on a per-given basis.
But might be the halting problem in any case.
smls_ well, you can always add default {die} on a per-given basis ;)
14:58 uncleyear joined, Ven joined
smls_ but I think masak's concerm was more about cases where the programmer did *not* think of the fact that there might be additional edge cases. 14:58
timotimo nine: by doing stuff in camelia's home as timo, i may have broken some stuff, can you give me the rights to sudo to camelia or perhaps put my public key in there? 14:59
15:00 diana_olhovik left
dalek kudo/nom: 2807e85 | lizmat++ | docs/ChangeLog:
Mention quietly, jnthn++
15:04
timotimo lizmat: take without an argument makes sense if you're just using gather/take for coroutines 15:05
lizmat timotimo: could you elaborate, because I don't see it right now :-) 15:06
timotimo if you just don't care about the values that get put into the resulting list
though in that case you may want to take Empty instead
so that it doesn't grow the resulting list
skids One coud 'take ()' for that though. 15:07
Oh, I type too slow.
timotimo probably?
15:08 rindolf joined
lizmat yeah, something like that :-) 15:08
timotimo taking Mu, though ... not terribly sure about that 15:09
lizmat perhaps a bare take should be a take () then
skids Well, take is close to next, so there's a possibility for similar interactions with labels if it ever gets respecced.
timotimo in general, if your target list is being iterated, wouldn't "take ()" cause reify to immediately resume your iterator, though? 15:10
skids Though I guess it is dynamic.
15:11 domidumont left 15:12 RabidGravy joined
skids timitimo: ()-collapse happens during flatten. 15:15
timotimo OK 15:16
skids I'm actually not clear on how that impacts iteration. 15:17
15:21 PotatoGim^Home joined, PotatoGim^Home left 15:22 PotatoGim^Home joined
skids m: .perl.say for ((),1); my @f <== ((),1); .perl.say for @f; 15:23
camelia rakudo-moar c2a57e: OUTPUT«()␤1␤1␤»
15:23 PotatoGim^Home left 15:26 wollmers joined, uncleyear left
dalek c: 2ed40df | paultcochrane++ | lib/Type/Hash.pod:
Descripe looping over hash keys and values
15:27
15:27 telex left, uncleyear joined
wollmers m: $v = 0 +| (1 +< 2);sprintf("%08b",$v); 15:27
camelia rakudo-moar c2a57e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/F7sJ12aokv␤Variable '$v' is not declared␤at /tmp/F7sJ12aokv:1␤------> 3<BOL>7⏏5$v = 0 +| (1 +< 2);sprintf("%08b",$v);␤»
wollmers m: my $v = 0 +| (1 +< 2);sprintf("%08b",$v); 15:28
camelia ( no output )
15:28 telex joined
wollmers m: my $v = 0 +| (1 +< 2);say sprintf("%08b",$v); 15:28
camelia rakudo-moar c2a57e: OUTPUT«00000100␤»
wollmers m: my $v = 0; $v = $v +| (1 +< 2);say sprintf("%08b",$v); 15:29
camelia rakudo-moar c2a57e: OUTPUT«00000100␤»
15:31 AndChat|228864 joined 15:33 AndChat|228864 left 15:34 JimmyZ_ joined 15:35 Ven left, uncleyear left, uncleyear joined
lizmat jnthn++ masak++ # blog posts 15:36
15:44 xinming joined
lizmat breakfast and sightseeing& 15:46
raydiak g'morning #perl6 15:49
15:51 mr-foobar left, uncleyear left 15:52 uncleyear joined
timotimo o/ 15:53
15:54 wollmers left
raydiak how's it going timo? 15:54
timotimo it's going all right
dalek osystem: 6c17537 | (David Farrell)++ | META.list:
Added App-jsonv
15:55
15:58 espadrine_ joined 16:06 Ven joined 16:13 Sqirrel left 16:16 wollmers joined
timotimo just very distracted 16:17
how are you, raydiak?
aside from your car getting damaged again?
16:17 uncleyear left 16:18 skids left, uncleyear joined 16:19 Sqirrel joined
raydiak heh well I thought that was the bad part, but the worse part was it turns out I lost my wallet in the process of wrangling with tires at a gas station air pump 16:28
someone returned it last night, it had no money in it by then, but I was mostly just thankful to get my ID and stuff like that back 16:29
thinking today I might not leave home and fix the bitrot in my corner of the ecosystem, less likely to lose or destroy something :) 16:31
moritz and if you do, you can always git revert or git reset --hard :-)
raydiak heh yes that's exactly what's called for today, I think :) 16:34
wollmers m: my uint64 $z = +^0;say $z.lsb,' ',$z.msb;
camelia rakudo-moar c2a57e: OUTPUT«0 0␤»
wollmers m: my uint64 $z = +^0;say sprintf("%064b",$z); 16:35
camelia rakudo-moar c2a57e: OUTPUT«00000000000000000000000000000000000000000000000000000000000000-1␤»
16:35 Emeric joined 16:36 jaffa4 left
wollmers Does the 'u' in uint mean unsigned? 16:36
It's not defined in the specs.
raydiak yes it does 16:37
wollmers But it does not behave so. 16:38
TimToady it behaves as if it's defined in the specs but has bugs :) 16:41
m: my uint64 $z = +^0; say $z 16:42
camelia rakudo-moar c2a57e: OUTPUT«-1␤»
TimToady that's just a bug
raydiak it's at design.perl6.org/S02.html#Native_types 16:43
TimToady m: my uint64 $z = 2**64 - 1; say $z
camelia rakudo-moar c2a57e: OUTPUT«-1␤»
TimToady looks like on the boxing side 16:44
FROGGS when assigning to a native we loose the information about (un)signedness
TimToady m: my uint8 $z = 255; say $z
camelia rakudo-moar c2a57e: OUTPUT«-1␤»
16:44 uncleyear left
TimToady FROGGS: the compiler knows it's unsigned, so it should unbox to unsigned 16:45
er, box
16:45 uncleyear joined 16:49 silug left
FROGGS TimToady: irclog.perlgeek.de/perl6/2015-04-09#i_10414425 16:51
16:52 amurf joined
FROGGS both issues are connected to each other... 16:52
m: my num32 $a = 42e0; say $a # as a reference
camelia rakudo-moar c2a57e: OUTPUT«0␤»
wollmers TimToady: So it's not recommended to use integers as bitvectors? 16:53
TimToady smls_: X is not a hyper, and is completely ordered because it handles lazy lists
smls_ TimToady: I was refering to the >> in sub amb 16:54
replace it with a .map() and the code no longer prints the correct result
same when switching some words
TimToady okay, >> is a hyper, I'll grant you :) 16:55
smls_ :P 16:56
TimToady is just doing a cursory backlog before driving off toward Utah...
16:56 Emeric left, diana_olhovik_ joined, amurf left
TimToady after driving to LA and back over the last two days, so a bit strange in the head 16:56
well, the arrow of causation might be reversed there... 16:57
raydiak it's a strange place, to be sure... 16:58
17:01 wollmers left 17:09 uncleyear left, uncleyear joined 17:14 rindolf left 17:16 FROGGS left 17:19 espadrine_ left 17:20 rindolf joined 17:21 Ven left 17:22 espadrine_ joined, Peter_R joined 17:31 JimmyZ_ left 17:33 rindolf left 17:35 uncleyear left 17:36 uncleyear joined 17:42 Sqirrel left 17:43 Sqirrel joined 17:44 davido_ joined, llfourn left 17:47 diana_olhovik_ left 17:48 Ven joined 17:51 Ven left
masak finds the irclog.perlgeek.de/perl6/2015-06-05#i_10709045 discussion 17:56
I don't know if anyone's expressed this wish before, but I would be very OK with 1/0 (two Ints) giving the "Division by zero" error, whereas any introduction of Num would yield Inf as a result instead. 17:57
(as per IEEE 754)
that's the way Java has it. I used to be annoyed by the inconsistency, but that was before I understood that Inf is an IEEE 754 value.
18:00 pnu left, ggherdov left, chansen_ left
TimToady P6 tends to err on the side of preserving the concept, and determining the outcome of the concept's use lazily 18:00
arguably 1/0 is how you write Inf in Rat
masak since Inf is meant to be, um, polyamorous^Wamphibian^WI don't remember the word, there's even an argument that 1/0 as Ints should yield Inf, instead of an error.
18:01 uncleyear left 18:02 uncleyear joined, rindolf joined
moritz but what can we do with a Rat.new(1, 0) that we can't with an X::Math::DivideByZero.new(1) ? 18:04
masak m: say 1/0 * 0 18:05
camelia rakudo-moar c2a57e: OUTPUT«Earlier failure:␤ Divide by zero␤ in block <unit> at /tmp/t4rZ2vZSMx:1␤␤Final error:␤ Type check failed in binding; expected 'Int' but got 'Failure'␤ in any bind_error at src/vm/moar/Perl6/Ops.nqp:224␤ in block <unit> at /tmp/t4rZ2vZSMx:1…»
masak m: say Rat.new(1, 0) * 0
camelia rakudo-moar c2a57e: OUTPUT«Earlier failure:␤ Divide by zero␤ in block <unit> at /tmp/ddy42o2cKR:1␤␤Final error:␤ Type check failed in binding; expected 'Int' but got 'Failure'␤ in any bind_error at src/vm/moar/Perl6/Ops.nqp:224␤ in block <unit> at /tmp/ddy42o2cKR:1…»
TimToady moritz: dispatch to a Rat operation 18:06
m: say Rat.new(1,0).nude
camelia rakudo-moar c2a57e: OUTPUT«1 0␤»
TimToady like that one :)
18:07 khisanth_ is now known as Khisanth
TimToady as I said, I prefer to preserve concepts as long as possible, because overall it produces better error messages to understand why something went wrong 18:08
for instance, maybe the failure here would be improved by "Attempt to divide 1 by 0", since the numerator might actually be useful information 18:09
masak +1
also, "Attempt to divide 1 by -0", when applicable. 18:10
m: min 18:12
camelia ( no output )
masak jnthn++ # 6guts.wordpress.com/2015/06/05/tha...-and-more/ 18:19
TimToady masak: Rat is unsigned in the denominator though
18:19 chansen_ joined
masak jnthn: "auto-geneated" -> "auto-generated" typo 18:19
TimToady: oh, right.
18:20 FROGGS joined 18:22 uncleyear left, uncleyear joined
masak re irclog.perlgeek.de/perl6/2015-06-06#i_10710194 18:22
I realized on the way home from the train station
that `state` is what you get if you (a) realize that functions are kind of object-like and closure semantics is kind of encapsulation-like and (b) observe people using closures for encapsulation, and take pity in them. 18:23
geekosaur pretty much, yes 18:25
masak put differently, class : sub :: has : state 18:26
dalek kudo/nom: ac720ed | lizmat++ | src/core/Exception.pm:
Put in plumbing to mention denominator in N/0 fail
18:27
lizmat this breaks some tests in t/spec/S03-operators/arith.t that are overeager in testing message
wil fix those when I get back from some more sightseeing (unless someone beats me to it)
&
18:29 ggherdov joined 18:30 uncleyear left, pnu joined, uncleyear joined 18:31 uncleyear left, uncleyear joined 18:32 yqt joined
nwc10 jnthn: auto-geneated method 18:33
:-)
18:33 Timbus joined
moritz a method that's automatically made neat? 18:34
I like that.
jnthn Typos. They're in my genes... 18:36
yoleaux 14:54Z <lizmat> jnthn: having tossed StrPos/StrLen, shouldn't StrPosRef be tossed as well from core ?
jnthn .tell lizmat No, despite the name overlap, that's something completely different
yoleaux jnthn: I'll pass your message to lizmat.
18:37 SevenWolf joined, bin_005 joined
jnthn Fixed the typo, thanks :) 18:37
bartolin good evening, #perl6 18:43
I've found some NullPointerExceptions: 18:44
j: Match.new.perl
camelia rakudo-jvm c2a57e: OUTPUT«java.lang.NullPointerException␤ in block <unit> at /tmp/XmJDyQAHeY:1␤␤»
bartolin j: Match.new eqv 42
camelia rakudo-jvm c2a57e: OUTPUT«java.lang.NullPointerException␤ in block <unit> at /tmp/KXIN8_NQto:1␤␤»
bartolin do you think, the following patch is sensible? 18:45
github.com/usev6/rakudo/commit/55f...7d35689efc
(it gave me a clean spectest)
or would it be better to introduce a special case for jvm with '#?if jvm', maybe? 18:48
jnthn I'd prefer that patch as is 18:49
Rather than #?if
bartolin great, I'll create a PR then
18:53 bin_005 left, bin_005 joined, FROGGS left 18:54 uncleyear left 18:55 AlexDaniel left, uncleyear joined, uncleyear left, uncleyear joined 19:08 nys joined 19:16 btyler left 19:22 rindolf left 19:24 AlexDaniel joined 19:27 uncleyear left
vendethiel TimToady: wanted to ask you if you commented on the "sub f(:$a(match)){}" form to match on named parameters values? 19:27
19:28 uncleyear joined
TimToady I think I wondered at the time whether it'd make more sense to have a Pair ($a,$b) kind of form that could also apply to Rat or Complex 19:36
vendethiel ah, interesting
TimToady otoh that wouldn't make the argument non-named, so there's a disconnect 19:37
19:38 diana_olhovik_ joined
TimToady anyway, I don't see why :a(42) shouldn't work 19:38
vendethiel nice :) 19:39
TimToady basically, the inside is just another parameter, with optional type and variable, I think
where "42" is just one of those very skinny types I keep mentioning :) 19:40
19:41 lolisa left 19:44 larion left 19:47 larion joined, uncleyear left 19:48 uncleyear joined 19:49 kaare__ joined 19:52 diana_olhovik_ left 19:53 kaare_ left
AlexDaniel m: my $x = 5; my $y = 0; my $z = 6; say 1/$x + 2/$y + 3/$z; 19:57
camelia rakudo-moar c2a57e: OUTPUT«Divide by zero␤ in block <unit> at /tmp/T916zvMn45:1␤␤»
AlexDaniel what is "block <unit>" ?
is it possible to make it generate more precise error messages in this case? 19:58
jschulz "Divide by zero" is very precise in my opinion 19:59
jnthn And unit is the outermost scope of the program, which is addressable through the pseudo-package UNIT too. 20:00
So it's precise in that way too.
AlexDaniel jschulz: sure, but where did it happen? 20:01
20:01 quester joined
jnthn It told you a file name and line number too. 20:01
AlexDaniel sure! But sometimes calculations are longer than something divided by something
maybe I'm asking for too much, that's possible :) 20:02
jschulz AlexDaniel: you should validate the data before you divide
if $y > 0 then ... ;-) 20:03
AlexDaniel :)
hm, what if I write it across many lines 20:05
say 1/$x
+ 2/$y
+ 3/$z;
arguably it says a wrong line number... 20:06
quester Hi. After I updated rakudo-m and panda this morning and rebootstrapped panda, $ panda --version failed with "Missing or wrong version of dependency 'INTERNAL ERROR: Execution of block eliminated by optimizer' (from 'Tiny.pm')"... 20:08
TimToady masak: arguably, the error is considering NaN to match the :D there
quester The fix turned out to be to recompiled the two .pm files in JSON/Tiny, cd rakudo/install/share/perl6/lib/JSON; perl6 --optimize=3 --target=mbc --output=Grammar.pm.moarvm Grammar.pm; same thing for Actions.pm... 20:09
Would anyone know if this just me, or is there a bug somewhere in the panda installation scripts?
moritz wonders if panda using JSON::Tiny for bootstrapping, and then installing JSON::Tiny again might be a cause of problems 20:10
jnthn TimToady: You're not going to win that argument. :P
20:10 rurban joined
jnthn quester: That error should never show up, so something's certainly wrong. 20:10
20:11 jschulz is now known as bloonix
jnthn oh wait, what... 20:11
That error is totally bogus too
As in, it shows a random string rather than the filename it's meant to
20:11 darutoko left
jnthn What on earth... 20:11
quester: There's likely some buy somewhere in installation stuff, but the error reporting there is off too 20:12
quester <jnthn>: The "Missing or wrong..." error only appears if I use perl6 --optimize-3... and not for levels 0 through 2.
20:13 davido_ left
quester is thinking of blowing away rakudo and panda and rebuilding both from scratch to see if that helps 20:14
20:15 davido_ joined
jnthn Worth a try... 20:15
20:15 rurban left, smls joined
quester is rebuilding 20:16
20:17 uncleyear left
jnthn gets some rest & 20:17
20:18 uncleyear joined, smls_ left 20:28 cognominal joined 20:29 amurf joined 20:34 amurf left 20:35 cdc left 20:37 _mg_ joined
quester notices that on a clean reinstall site/lib/JSON/Tiny/Actions.pm.moarvm and Grammar.moarvm are automatically created, fixing my original problem 20:39
20:39 uncleyear left, uncleyear joined
quester .tell jnthn Nevermind, a clean install did fix it. (Although that was a pretty weird error message...) Thank you very much. 20:40
yoleaux quester: I'll pass your message to jnthn.
20:41 llfourn joined 20:43 _mg_ left 20:46 llfourn left
flussence m: say 59632/73188 20:52
camelia rakudo-moar c2a57e: OUTPUT«0.814778␤»
masak 'night, #perl6 20:53
20:53 _itz left
flussence I found an old 2015.03 installation on one of my boxes, that 73188 is its peak RSS for -e 'say $*VM'. 20% less RAM in 2 months, not bad :) 20:53
quester .tell lizmat Hi, I just did a panda install Inline::Perl5 and all of the tests failed with "Can't locate Filter/Simple.pm". Installing the perl5 module Filter::Simple fixed the tests. Perhaps it should be documented as a prerequisite? -- BTW, thanks lizmat++ FROGGS++ niner++! 20:54
yoleaux quester: I'll pass your message to lizmat.
20:55 kaare__ left 21:02 bin_005 left 21:06 diana_olhovik joined 21:11 espadrine_ left 21:12 uncleyear left 21:13 uncleyear joined 21:14 uncleyear left, uncleyear joined 21:20 bin_005 joined
flussence m: say 46964/59632 # and ooc, here's current HEAD 32b vs 64b numbers for the above one-liner too 21:25
camelia rakudo-moar c2a57e: OUTPUT«0.787564␤»
21:35 dolmen joined 21:39 diana_olhovik left 21:40 uncleyear left 21:41 uncleyear joined
cognominal m: say Nil.[0] 21:43
camelia rakudo-moar c2a57e: OUTPUT«Nil␤»
cognominal m: say Nil[0]
camelia rakudo-moar c2a57e: OUTPUT«===SORRY!===␤Cannot find method 'parameterize'␤»
cognominal ok. makes sense
21:45 uncleyear left, uncleyear joined 21:48 dolmen left
timotimo po/ 21:48
er
i meant to
o/
raydiak \o 21:49
21:50 quester left
timotimo o/ 21:54
smls created another rosetta task to show off Perl 6's awesomeness: rosettacode.org/wiki/Convert_second...ion#Perl_6 21:57
raydiak neat... smls++ 22:00
timotimo looks good 22:01
rosettacode.org/wiki/Rosetta_Code/R...ity#Perl_6 - someone could maybe ... ? :) 22:02
22:05 uncleyear left, uncleyear joined 22:12 itz joined 22:15 rurban joined 22:18 cognominal left 22:19 amurf joined 22:20 uncleyear left, uncleyear joined 22:23 amurf left 22:26 lasse left
smls TimToady++ for this humorous entry: rosettacode.org/wiki/Respond_to_an_...all#Perl_6 22:29
;) 22:30
22:30 llfourn joined 22:31 uncleyear left 22:32 uncleyear joined 22:35 llfourn left 22:36 btyler joined 22:45 uncleyear left, uncleyear joined 22:55 cognominal joined 22:59 mr-foobar joined 23:12 bin_005 left, tinyblak_ joined, tinyblak left 23:14 mr-foobar left 23:17 tinyblak_ left, tinyblak joined 23:18 tinyblak_ joined, rurban left
timotimo cannot invoke all these null objects ... 23:19
23:20 vendethiel left
timotimo and the stack trace is super unhelpful, too 23:20
23:20 tinyblak_ left 23:22 tinyblak left 23:24 RabidGravy left 23:26 ShimmerFairy left 23:40 ShimmerFairy joined
TimToady .tell jnthn I'm not worried about that particular list-to-remember, because nobody will bother to remember which functions will tell me I'm an idiot right off the bat, and which will let me flail about and figure out I'm an idiot slowly. It's really just another "this can't possible work, and we can tell so at compile time". 23:41
yoleaux TimToady: I'll pass your message to jnthn.
23:45 smls left, BenGoldberg joined
timotimo TimToady: last time i checked the rc-forest-fire benchmark didn't burn down trees properly; right now it's failing with "cannot invoke null object", but do you remember it working recently at all? 23:49
TimToady I had it working a month or so ago, but my copy doesn't work now either 23:58
timotimo same error output?