»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by masak on 28 November 2015.
timotimo computer is back! 00:02
dalek c: 809fde6 | ab5tract++ | doc/Type/Hash.pod:
Make the example work for more than two instants
00:03 kid51 joined 00:06 cpage_ joined
lizmat jdv79: three letters SW7 00:06
it was nice, it was 3D, it had a lot of action, and felt like a re-imagination of SW4 to me 00:07
timotimo i sure hope my blog post text isn't gone now ... 00:09
it's still there \o/ 00:12
lizmat :-)
timotimo hm, i didn't check exactly how far our sized and signedness support for lexicals and such has come 00:15
m: my int8 $foo = 10000; say $foo;
camelia rakudo-moar cfb1f3: OUTPUT«16␤»
timotimo ah, neat.
m: my int8 $foo = -1; my uint8 $bar = -1; say $foo; say $bar;
camelia rakudo-moar cfb1f3: OUTPUT«-1␤255␤»
00:17 davercc` joined 00:18 kid51 left 00:19 kid51 joined 00:20 rurban_ left
timotimo .u two 00:20
yoleaux U+0012 DEVICE CONTROL TWO [Cc] (␒)
U+001E INFORMATION SEPARATOR TWO [Cc] (␞)
U+0032 DIGIT TWO [Nd] (2)
ab6tract m: my $x = 'hitchhikers'; my %answers := :{ $x => 42 }; for %answers.keys -> $k is rw { $k = 'not-' ~ $k } 00:21
camelia rakudo-moar cfb1f3: OUTPUT«Parameter '$k' expected a writable container, but got Str value␤ in block <unit> at /tmp/5kYyd3vXvc:1␤␤»
timotimo .u three
yoleaux U+0013 DEVICE CONTROL THREE [Cc] (␓)
U+001D INFORMATION SEPARATOR THREE [Cc] (␝)
U+0033 DIGIT THREE [Nd] (3)
timotimo oh lord.
how many of those are there ...
m: (128 .. 0x1000).grep( .uniname ~~ / DIGIT / ).map( .chr.say ) 00:22
camelia rakudo-moar cfb1f3: OUTPUT«Method 'uniname' not found for invocant of class 'Any'␤ in block <unit> at /tmp/FbmBulbwSl:1␤␤»
ab6tract so .keys doesn't seem to fully respect object hashes...
timotimo m: (128 .. 0x1000).grep( .&uniname ~~ / DIGIT / ).map( .chr.say )
camelia rakudo-moar cfb1f3: OUTPUT«Cannot call uniname(Any); none of these signatures match:␤ (Str:D $str)␤ (Int:D $code)␤ in block <unit> at /tmp/zsI0FOPjdh:1␤␤»
timotimo huh, what am i doing wrong here?
m: (128 .. 0x100).grep( * < 20)
camelia ( no output )
timotimo m: (128 .. 0x100).grep( * < 20).say
camelia rakudo-moar cfb1f3: OUTPUT«()␤»
timotimo m: (128 .. 0x100).grep( * < 2000).say
camelia rakudo-moar cfb1f3: OUTPUT«(128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191…»
timotimo m: (128 .. 0x100).grep( *.uniname ).say
camelia rakudo-moar cfb1f3: OUTPUT«(130 131 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195…»
flussence m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).map( .chr.say ) 00:23
timotimo m: (128 .. 0x100).map( *.uniname ).say
camelia rakudo-moar cfb1f3: OUTPUT«Method 'chr' not found for invocant of class 'Any'␤ in block <unit> at /tmp/OpeNS4z5OV:1␤␤»
rakudo-moar cfb1f3: OUTPUT«( BREAK PERMITTED HERE NO BREAK HERE NEXT LINE (NEL) START OF SELECTED AREA END OF SELECTED AREA CHARACTER TABULATION SET CHARACTER TABULATION WITH JUSTIFICATION LINE TABULATION SET PARTIAL LINE FORWARD PARTIAL LINE BACKWARD REVERSE LINE FEED SINGLE SHIF…»
timotimo oh, duh
thank you, flussence :)
flussence I got it wrong the other day too :)
00:23 protium left
timotimo i was operating on the completely wrong $_ 00:23
i feel really tired and i must finish that blog post :)
m: (128 .. 0x1000).grep( *.&uniname ~~ / DIGIT / ).map( .chr.say )
camelia rakudo-moar cfb1f3: OUTPUT«WhateverCode object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/1WW15xDpwT:1␤Method 'chr' not found for invocant of class 'Any'␤ in block <unit> at /tmp/1WW15xDpwT:1␤␤»
timotimo %)
m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).map( .chr.say )
camelia rakudo-moar cfb1f3: OUTPUT«Method 'chr' not found for invocant of class 'Any'␤ in block <unit> at /tmp/1gwqf29BIJ:1␤␤»
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).map( *.chr.say ) 00:24
camelia rakudo-moar cfb1f3: OUTPUT«٠␤١␤٢␤٣␤٤␤٥␤٦␤٧␤٨␤٩␤۰␤۱␤۲␤۳␤۴␤۵␤۶␤۷␤۸␤۹␤ݳ␤ݴ␤ݵ␤ݶ␤ݷ␤ݸ␤ݹ␤ݺ␤ݻ␤ݼ␤ݽ␤߀␤߁␤߂␤߃␤߄␤߅␤߆␤߇␤߈␤߉␤०␤१␤२␤३␤४␤५␤६␤७␤८…»
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DIE / }).map( *.chr.say )
camelia ( no output )
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DICE / }).map( *.chr.say )
camelia ( no output )
timotimo where them die at
.u dice
yoleaux No characters found
timotimo .u die
yoleaux U+2680 DIE FACE-1 [So] (⚀)
U+2681 DIE FACE-2 [So] (⚁)
U+2682 DIE FACE-3 [So] (⚂)
timotimo there they are
00:24 raiph left
timotimo m: say +⚂ 00:24
camelia rakudo-moar cfb1f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dmFiSBa72B␤Prefix + requires an argument, but no valid term found␤at /tmp/dmFiSBa72B:1␤------> 3say +7⏏5⚂␤ expecting any of:␤ prefix␤»
timotimo m: say +"⚂"
camelia rakudo-moar cfb1f3: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5⚂' (indicated by ⏏)␤ in block <unit> at /tmp/KW6A8aJ2nd:1␤␤Actually thrown at:␤ in block <unit> at /tmp/KW6A8aJ2nd:1␤␤»
timotimo ah, symbol/other doesn't do it
too bad :)
flussence m: say '⚀'.unival 00:25
camelia rakudo-moar cfb1f3: OUTPUT«NaN␤»
timotimo m: say ٦ + ݺ
camelia rakudo-moar cfb1f3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ABhEg0IOda␤Undeclared routine:␤ ݺ used at line 1␤␤»
timotimo oh, damn!
i forgot the unicode consortium didn't put values to them
m: (128 .. 0x1000).grep({ .uniname ~~ / DICE / }).map( *.uniprop ).Bag.say 00:26
camelia rakudo-moar cfb1f3: OUTPUT«bag()␤»
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DICE / }).map( *.uniprop ).say
camelia rakudo-moar cfb1f3: OUTPUT«()␤»
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).map( *.uniprop ).say
camelia rakudo-moar cfb1f3: OUTPUT«(Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Lo Lo Lo Lo Lo Lo Lo Lo Lo Lo Lo Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd Nd …»
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).map( *.uniprop ).Bag.say
camelia rakudo-moar cfb1f3: OUTPUT«bag(Lo(11), Nd(160), No(17))␤»
00:26 lsm left
timotimo which of those do we accept for numbers? probably only Nd? 00:26
m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).grep( *.uniprop eq 'Nd' ).join.say 00:27
camelia rakudo-moar cfb1f3: OUTPUT«1632163316341635163616371638163916401641177617771778177917801781178217831784178519841985198619871988198919901991199219932406240724082409241024112412241324142415253425352536253725382539254025412542254326622663266426652666266726682669267026712790279127922793…»
timotimo haha
m: (128 .. 0x1000).grep({ .uniname ~~ / DIGIT / }).grep( *.uniprop eq 'Nd' ).map( *.chr ).join.say
camelia rakudo-moar cfb1f3: OUTPUT«٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨੩੪੫੬੭੮੯૦૧૨૩૪૫૬૭૮૯୦୧୨୩୪୫୬୭୮୯௦௧௨௩௪௫௬௭௮௯౦౧౨౩౪…»
timotimo m: say ৪ + ૪
camelia rakudo-moar cfb1f3: OUTPUT«8␤»
timotimo good
m: (128 .. 0x1000).grep({ .uniname ~~ / SUPERSCRIPT / }).grep( *.uniprop eq 'Nd' ).map( *.chr ).join.say
camelia rakudo-moar cfb1f3: OUTPUT«␤»
00:27 hankache left
timotimo m: (128 .. 0x1000).grep({ .uniname ~~ / SUPERSCRIPT / }).map( *.uniprop ).Bag.say 00:27
camelia rakudo-moar cfb1f3: OUTPUT«bag(Mn(2), No(3))␤»
timotimo wow, that's really not many, he? 00:28
m: (128 .. 0x1000).grep({ .uniname ~~ / SUPERSCRIPT / }).map( *.chr ).join.say
lucasb tomorrow you will wonder who created this huge backlog :)
camelia rakudo-moar cfb1f3: OUTPUT«²³¹ٰܑ␤»
dalek c: cc397c0 | ab5tract++ | doc/Type/Hash.pod:
Document in-place editing of hash values
timotimo i'm good at skipping my own crap. but do you want me to do this stuff locally?
that'd probably be better
geekosaur there's also /query
lucasb timotimo++, I'm just kidding :)
ab6tract timotimo: i usually cut myself off at 5 consecutive camelias :) 00:29
lizmat ab6tract: keys are always supposed to be ro
timotimo good point, yeah 00:31
oh hey lizmat, you're still awake, too
how's your flu tonight? 00:32
00:32 firstdayonthejob left
lizmat today was the first day we went out of the door... to the cinema, at 22:15 00:33
still not 100%, :-(
TEttinger m: say ٦ + ٧ + ٨
camelia rakudo-moar cfb1f3: OUTPUT«21␤»
00:33 ab6tract left
lizmat TEttinger: isn't there a factor 2 missing? :-) 00:34
TEttinger m: say ٦³ + ٧ + ٨
camelia rakudo-moar cfb1f3: OUTPUT«231␤»
TEttinger so ٦ is 6 00:35
timotimo i can't help but think people are going to use this as a reason to say perl6 is stupid.
TEttinger stupid LIKE A FOX 00:36
ShimmerFairy timotimo: honestly, I think it'd be dumb if we supported unicode variable/function/etc. names, but not unicode numbers (which is why I put in the digit support in the first place) :)
timotimo ShimmerFairy: don't get me wrong. i kind of love it, personally.
00:36 davercc joined
ShimmerFairy Yeah, I just wanted to mention the positive about it :) 00:37
timotimo .u -
yoleaux U+002D HYPHEN-MINUS [Pd] (-)
timotimo is "HYPHEN-MINUS" retconned? %)
00:38 lsm joined
lizmat good night, #perl6! 00:38
timotimo gnite and get well soon, lizmat :)
TEttinger FEEL AFFLUENT AND FLUENT RATHER THAN FLUISH SOON... 00:39
_nadim night all 00:40
Juerd Welterusten 00:41
00:41 lucasb left 00:42 cpage_ left, ShimmerFairy left 00:48 cpage_ joined 00:51 ShimmerFairy joined
dalek kudo-star-daily: 9721109 | coke++ | log/ (8 files):
today (automated commit)
00:54
00:57 koo8 left
grondilu off topic but livetream for spaceX launch in half-hour is starting: www.youtube.com/watch?v=O5bTbVbe4e4 00:58
01:02 yeahnoob joined 01:05 grondilu left, grondilu joined
timotimo cool 01:08
i'll hopefully be in bed sleeping by that time
but ... will not likely make that
01:10 raiph joined
[Coke] just got an error doing a make install. 01:11
01:21 lsm left 01:23 adu joined, lsm joined 01:25 lsm left 01:26 lsm joined 01:27 protium joined 01:30 woodruffw left, lsm left 01:31 woodruffw joined 01:33 Brian__ joined, Brian__ left, ellybelly left, bdmatatu joined
timotimo p6weekly.wordpress.com/2015/12/22/...e-release/ - post publisherized! 01:34
01:36 [Sno] joined 01:38 sno left
grondilu holy crap they did it 01:39
timotimo wow 01:40
it landed
grondilu the Falcon 9 landed
timotimo and it's upright
01:46 molaf_ joined, lsm-desktop joined, molaf left 01:48 psy_ joined 01:49 psy_ left, psy_ joined
timotimo okay, now off to bed 01:51
gfldex .tell timotimo the monkeyness of EVAL was weekly forgotten 02:05
yoleaux gfldex: I'll pass your message to timotimo.
02:08 vendethiel joined 02:09 bdmatatu left 02:10 molaf__ joined 02:12 molaf_ left
diakopter cool, yeah [OT] falcon 9 landing youtu.be/MFN1jcFgJfw 02:16
02:18 zhi joined 02:21 cpage_ left, xpen joined 02:22 cpage_ joined 02:31 vendethiel left 02:36 zengargoyle left 02:37 rhr left 02:38 rhr joined, rurban1 left 02:39 kaare_ joined 02:57 rhr left 02:58 rhr joined 03:01 cpage_ left 03:13 zengargoyle joined 03:22 noganex_ joined 03:23 kid51 left 03:24 noganex left 03:26 asdf-man joined 03:29 asdf-man left 03:36 protium left 03:39 cpage_ joined, kaare_ left 03:57 molaf__ left 04:00 zhi left 04:05 n0tjack joined 04:06 CQ2 joined 04:08 CQ left, CQ2 is now known as CQ 04:10 n0tjack left, yqt left 04:16 AndyDee left 04:18 psy_ left, adu left 04:20 AndyDee joined 04:24 xpen left 04:33 BenGoldberg_ joined 04:37 quester joined 04:38 xpen joined
quester yoleaux .botsnack 04:38
04:50 adu joined, adu left
skids Hrm. This one's going to be hard to golf. Under some certain combination of concurrent constructs, Proc::Async, and Test, a script that uses Test hangs. 05:03
skids thinks he'll leave that one till later.
probably MONKEY-SEE-NO-EVAL related.
05:14 BenGoldberg_ left 05:39 khw left
TimToady et al. in SoCal 05:41
05:53 raiph left 06:00 skids left
uruwi is Template::Mojo not fixed yet...? 06:17
TimToady doesn't look lik eit 06:19
06:22 darutoko joined
uruwi Technically I can start developing now! 06:42
06:46 labster joined 06:48 pierre-vigier left, labster left 06:56 geraud left, pierre-vigier joined 06:58 n0tjack joined 07:00 pierre-vigier left, pierre-vigier joined 07:01 pierre-vigier left 07:03 n0tjack left, uruwi left 07:05 uruwi joined 07:09 pierre-vigier joined 07:13 FROGGS joined 07:19 ellybelly joined 07:20 ellybelly left, ellybelly joined 07:23 pierre-vigier left 07:25 pierre-vigier joined, pierre-vigier left 07:28 xpen left
[Tux] test 50000 23.593 23.481 07:30
test-t 50000 13.948 13.836
csv-parser 50000 51.062 50.950
07:36 xpen joined
raydiak good evening, #perl6 07:40
just rakudobrewed, and panda seems broken due to missing Shell::Command 07:41
07:41 vividsnow left 07:42 mohae left
nine raydiak: can you give me details? 07:43
raydiak sure, what kind of details? 07:44
nine The full error message would be a start 07:46
raydiak any invocation of panda gives gist.github.com/anonymous/24eb0adbc81ce4a0a238 07:47
07:48 [Sno] left
dalek kudo/nom: e19dab5 | usev6++ | t/spectest.data:
Do not run UDP tests on JVM (NYI)
07:48
kudo/nom: 73d193b | FROGGS++ | t/spectest.data:
Merge pull request #647 from usev6/spectest_udp_jvm

Do not run UDP tests on JVM (NYI)
nine And perl6 -MShell::Command -e '' # gives you the same? 07:49
raydiak I deleted ~/.rakudobrew/moar-nom and started it recompiling before I thought to mention the problem here, so I can let you know in a couple minutes when it's done if it's still broken :) 07:51
nine It may have sufficed to just run panda's bootstrap.pl ;) 07:52
El_Che I noticed precomp generating false warning when developing a module (when the source is changed): gist.github.com/nxadm/1726865fe240719ae7d7
07:53 silug left
raydiak nine: already tried that, didn't help 07:53
El_Che even when you don't delete .precomp, the first run of the program (when not in a row) gives the warning: Use of uninitialized value %ENV of type Any in string context
nine El_Che: can you get the exact location of that message with --ll-exception? 07:54
El_Che ok
nine: identical output
it doesn't look like an exception, the program runs fine 07:55
07:57 hartenfels left
El_Che it's weird. If I run it in a series, only the first runs has it. If I wait a few minutes, the first time after that gives the warning. 07:57
ow, it's certainly related to 'run'
my $proc = run ~$.bin, ~$.file_left, ~$.file_right, :out; my $diff = $proc.out.slurp-rest; 07:58
commenting the run line out makes the warning disappear 07:59
nine El_Che: do you access %*ENV anywhere before that? 08:01
raydiak nine++ : that seems to have fixed it, I guess it was just something to do with recent changes and trying to rakudobrew over a rather old version...thanks for the help though :) 08:02
nine raydiak: glad it works for you now :) 08:03
08:04 lustlife joined 08:05 CIAvash joined 08:12 rurban joined 08:13 [Sno] joined 08:15 silug joined
nwc10 stmuk: Well, this was an "install party" so it seemed "on topic". And, for some reason (not planned) I have 2 bottles. Well, had. 08:17
08:19 km3 joined 08:24 firstdayonthejob joined 08:28 RabidGravy joined
_nadim Good morning all 08:29
RabidGravy morning!
08:38 luiz_lha joined 08:39 luiz_lha is now known as Guest94351 08:43 Guest94351 left 08:45 luiz_lah joined
dalek ast: ec013cb | usev6++ | S10-packages/precompilation.t:
Fix typo: test newly created array @precompiled2
08:45
08:47 stmuk left 08:48 luiz_lah is now known as luiz_lha 08:49 CIAvash left 08:53 rurban_ joined, CIAvash joined 08:54 rurban left, stmuk joined 08:55 mre joined 09:01 dakkar joined 09:10 labster joined
El_Che nine: no. 09:14
09:16 jdrab_ left
RabidGravy I asked thiis a long time ago, but I forgot the answer, how do I find whether a system is 32 or 64 bits (in a program) 09:16
I thought it was $?BITS but no
m: say $?BITS
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AoHnQIqjDE␤Variable '$?BITS' is not declared␤at /tmp/AoHnQIqjDE:1␤------> 3say 7⏏5$?BITS␤»
nine RabidGravy: oh, that's trivial! my constant $?BITS = do { my int $a = 0x1ffffffff; nqp::iseq_i($a,8589934591) ?? 64 !! 32; } 09:19
RabidGravy Oh yeah I'm looking at the code for that right here ;-) But I thought it was exposed somewhere 09:21
El_Che sorry nine, I was doing an intervention. Db is aan indexing now :)
lizmat m: say $*KERNEL.bits
camelia rakudo-moar 73d193: OUTPUT«64␤»
El_Che nine: you get the same behaviour when using run in the repl, btw
lizmat RabidGravy: ^^^ 09:22
RabidGravy :) see I knew someone else would remember ;-) cheers lizmat
lizmat moarn! 09:23
RabidGravy strangely though
m: use nqp; my constant $?BITS = do { my int $a = 0x1ffffffff; nqp::iseq_i($a,8589934591) ?? 64 !! 32; }; say $?BITS
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lEJ5Xjqk38␤Constants with a '?' twigil not yet implemented. Sorry. ␤at /tmp/lEJ5Xjqk38:1␤------> 3qp::iseq_i($a,8589934591) ?? 64 !! 32; }7⏏5; say $?BITS␤»
RabidGravy so how does that code in Int even work?
nine Maybe it's just allowed in the setting 09:24
lizmat only core settings are allowed to do $?FOO
at least until 6.c
RabidGravy ah okay
lizmat fwiw, the implementation of bits is now: $!bits //= $.hardware ~~ m/_64|w|amd64/ ?? 64 !! 32;
perhaps nine's code would be better ? 09:25
nine lizmat: it's not mine :) I found it in Int.pm
lizmat interesting
RabidGravy it's used for calculating the Range of an Int 09:26
nine Also those are answers to different questions: $*KERNEL.bits tells you if the operating system is 64 or 32 bits while $?BITS tells you what your rakudo supports. You could run a 32 Bit rakudo on a 64 Bit OS 09:27
lizmat hmmm... I vaguely remember some discussion about whether or not to expose $?BITS
RabidGravy m: use nqp; my constant MyInt = do { my int $a = 0x1ffffffff; nqp::iseq_i($a,8589934591) ?? int64 !! int32; }; say MyInt 09:28
camelia rakudo-moar 73d193: OUTPUT«(int64)␤»
RabidGravy that's sorta kinda what I want
lizmat RabidGravy: isn't that just "int" ? 09:29
RabidGravy is it? that would be lovely
nine int should be the platform int IIRC 09:30
lizmat afaik, "int" is defined as the platform int
hmm....
m: say int.Range
camelia rakudo-moar 73d193: OUTPUT«-9223372036854775808..9223372036854775807␤»
lizmat would be different on a 32bit build
RabidGravy I'm sure I had difficulty with it in a native binding before, but I'll try it and see 09:31
(what's a core dump among friends ;) 09:32
lizmat :-)
afk for a few hours&
09:32 cuonglm joined
cuonglm Hi, anyone get error when installing rakudo from source with the latest git? 09:34
I got this error pastebin.com/3DiUSMn5 09:35
It seems that `tools/build/install-core-dist.pl` did not looking up the right destination dir
nine cuonglm: please remove your install/share/perl6 directory and run make install again. It's a one time issue caused by a change of versioning of the CORE dist 09:37
09:39 brrt joined
cuonglm :nine I used stow to manage /usr/local 09:40
09:40 rindolf joined, quester left
nine stow? 09:41
brrt good hi #perl6 09:42
yoleaux 21 Dec 2015 15:02Z <RabidGravy> brrt: fixed LibraryCheck with v0.0.5
brrt RabidGravy++
are LPW2015 videos online yet
cuonglm :nine It's GNU stow
:nine Anyway, it worked now, remove my /usr/local/stow/perl6/share then make install again 09:43
:nine So every time version in CORE dist changed, I must do this action? 09:44
nine cuonglm: no, this one time only. We didn't change just the version but the way the version gets generated. Unfortunatly the new versions are lower than the old ones.
09:45 labster1 joined
cuonglm :nine Yeah, thanks for the information. 09:45
09:45 labster left 09:47 labster joined 09:49 nwc10 left 09:50 labster1 left 09:52 yeahnoob left 09:54 cuonglm left 09:56 xinming left
uruwi Strangely, on 64-bit platforms int is 64-bit on Linux but 32-bit on Windows 10:02
Or maybe it's because I was testing it on 2015.09 for Windows
dalek blets: 2854610 | lichtkind++ | docs/appendix-b-grouped.txt:
fix whitespace
nine uruwi: there are different models for what int should be on a 64 bit system. And I seem to remember that this is indeed a difference between Linux and Windows 10:03
uruwi m: my int $a = 2**63-1; ++$a; say $a;
camelia rakudo-moar 73d193: OUTPUT«-9223372036854775808␤»
brrt yes, windows is evil
nine uruwi: en.wikipedia.org/wiki/64-bit 10:04
uruwi That works on one line, but if I type each line individually on the REPL, the second line chokes the program
moritz uruwi: natives in the REPL are a known problem
RabidGravy uruwi, nine that's fine, what I'm doing is unlikey to work on windows anyway :) 10:07
10:07 xinming joined
masak good antenoon, #perl6 10:08
RabidGravy good 10ish GMT masak 10:09
10:09 bitman joined
brrt good sometime masak 10:10
10:11 thomax joined, bitman left 10:17 rindolf left
dalek blets: 71ca088 | lichtkind++ | docs/appendix-b-grouped.txt:
testing new navigation for index B
10:20
blets: e648d95 | lichtkind++ | docs/appendix-b-grouped.txt:
next bunch of set ops
10:21 labster left
_nadim Hmmm! why can't I camm a sub X? X1 is fine 10:26
call a sub X
10:28 M-Illandan1 left, eternaleye left
RabidGravy there's an X operator 10:29
m: sub X { } say X
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OXNjBmbtnu␤Strange text after block (missing semicolon or comma?)␤at /tmp/OXNjBmbtnu:1␤------> 3sub X { }7⏏5 say X␤ expecting any of:␤ infix␤ infix stopper␤ statemen…»
RabidGravy m: sub X { }; say X 10:30
camelia rakudo-moar 73d193: OUTPUT«(X)␤»
RabidGravy or rather
m: say X.perl
camelia rakudo-moar 73d193: OUTPUT«X␤»
RabidGravy m: say X.WHAT
camelia rakudo-moar 73d193: OUTPUT«(X)␤»
RabidGravy m: sub X() { }; say X() 10:31
camelia rakudo-moar 73d193: OUTPUT«Method 'shortname' not found for invocant of class 'Perl6::Metamodel::CoercionHOW'␤ in block <unit> at /tmp/QlUWPk7py1:1␤␤»
nine m: sub X($a) { $a }; say X(1) 10:32
camelia rakudo-moar 73d193: OUTPUT«Cannot invoke this object␤ in block <unit> at /tmp/U2pOFhEt0l:1␤␤»
_nadim I just stumbled on it, not calling things X, I tried to find the operator X, X, and then had to dig in the long (but goody) list of operators 10:33
10:36 espadrine joined, riatre left 10:37 RabidGravy left
gfldex .tell timotimo please ignore me, i'm visually challenged 10:38
yoleaux gfldex: I'll pass your message to timotimo.
timotimo gfldex: sure
yoleaux 02:05Z <gfldex> timotimo: the monkeyness of EVAL was weekly forgotten
10:38Z <gfldex> timotimo: please ignore me, i'm visually challenged
_nadim Can someone please remind me (again) how I can return a reference? sub my_sub { my %h ; .... ; return %h, 42} (%h,$i) = my_sub ; 10:39
timotimo i just woke up for this
nine _nadim: &my_sub
_nadim nine: thanks, and the explanation for this ugliness is?
10:42 M-eternaleye joined
_nadim well that actually makes no difference! 10:43
gfldex _nadim: you can return anything but a reference
there may be reasons to return an explicit capture in some cases tho 10:44
_nadim that's what I thought but I get odd number of elements, 2 secs
llfourn m: sub my_sub { return { a => 'b'}, 42 }; my (%h,$i) := my_sub(); %h.say; $i.say #crosses fingers 10:45
camelia rakudo-moar 73d193: OUTPUT«a => b␤42␤»
llfourn is that what you wanted _nadim?
10:46 cibs left
nine _nadim: oh, sorry, I misunderstood your question 10:47
_nadim m: sub my_sub {my %h = a => 1 ; %h, 42} ; my (%h, $i) = my_sub() ;
camelia rakudo-moar 73d193: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/gtJBEp3mcf:1␤␤»
_nadim nine: :)
FROGGS the %h will gobble the stuff
m: sub my_sub {my %h = a => 1 ; %h, 42} ; my ($h, $i) = my_sub();
camelia ( no output )
FROGGS m: sub my_sub {my %h = a => 1 ; %h, 42} ; my ($h, $i) = my_sub(); say $h
camelia rakudo-moar 73d193: OUTPUT«a => 1␤»
FROGGS _nadim ^^ 10:48
timotimo maybe we should warn when we see something like (%h, $i) = ... ?
_nadim anything that doesn't force me to change sigil?
nine timotimo: and (@a, $i) = ...
llfourn _nadim: the reason it errored in your last example was because you didn't use :=
timotimo yeah
_nadim Argggg! 10:49
and I knew that
gfldex a slurpy has to be at the end of a parameter list
timotimo well, it's not really a slurpy
FROGGS m: sub my_sub {my %h = a => 1 ; %h, 42} ; my (%h, $i) := my_sub(); say %h
camelia rakudo-moar 73d193: OUTPUT«a => 1␤»
timotimo slurpyness only works on signature binding
FROGGS so yeah, we should warn and hint at these two options 10:50
timotimo in this case it's just regular assignment that breaks things
_nadim I was a bit proud that I finally used := for something yesterday and now it bites me back
gfldex binding is hard
10:52 cibs joined, M-Illandan joined
timotimo when trying to wake up i had the excellent idea for a toy language named "SnoozePL" 10:53
you get a barrage of random statements and all you can do is snooze them or execute them
so it's more like a interactive programming experience
gfldex is that the language electronic sheep deam in? 10:54
uruwi Hmm, even having a terminal-like character grid in the browser poses a big problem.]
timotimo i wouldn't recommend dreaming in that language
uruwi: hum? 10:55
uruwi all fun and games until you want to display Japanese
(was going to use unicodetiles.js for frontend)
10:55 crux left
uruwi at least it works in dom mode 10:57
timotimo i have kind of no clue what you're talking about 10:58
uruwi Now I'm considering a still text-based, but having stuff like tables interface
TEttinger uruwi: rot.js ?
uruwi I planned on a text-based RPG
timotimo text-based RPG: easy. text-based JRPG: really difficult! 10:59
uruwi TEttinger: I looked at it, but I just need a way to display things as most of the work will be in Perl 6
10:59 cibs left
TEttinger ah ok 10:59
timotimo: sounds like Tinder: the PL 11:01
swipe left or right
uruwi at least this works imgur.com/x11ALpc, but I'm worried about how much space English text will take then 11:02
11:02 rindolf joined
timotimo hehe 11:02
"what kind of statement do you like?"
uruwi (as I also plan on supporting multiple languages)
timotimo you're using double-width ascii? 11:03
actually, compared between the japanese and english characters it looks like the ascii is quad-width
11:04 cibs joined
uruwi Well, it's not supposed to be double-width; that's just how it looks once you put fullwidth characters in DOM mode 11:05
in WebGL or canvas display, half the character gets cut off.
Plus all the space between the lines; I'm afraid that UT won't work. 11:06
lizmat m: class A { }; sub A { say "foo" }; A # the problem is not limited to X
camelia rakudo-moar 73d193: OUTPUT«WARNINGS for /tmp/qLVdu97Ftf:␤Useless use of constant value A in sink context (line 1)␤»
lizmat we should probably warn on creating a sub with the name of a class in scope 11:07
uruwi At least not for anything outside a map interface, so the HTTP protocol will be more complex.
lizmat m: { class A { } }; sub A { say "foo" }; A # and class being our by default, makes things more complicated
camelia rakudo-moar 73d193: OUTPUT«WARNINGS for /tmp/FpkouGVDea:␤Useless use of constant value A in sink context (line 1)␤» 11:08
uruwi Or resort to extreme methods such as having the server send JS for the client to execute
lizmat m: { my class A { } }; sub A { say "foo" }; A # only if you make the class lexical, are we ok
camelia rakudo-moar 73d193: OUTPUT«foo␤»
timotimo m: my class A { }; sub A { say "urgh" }; A 11:09
camelia rakudo-moar 73d193: OUTPUT«WARNINGS for /tmp/Ub7wPkEmrB:␤Useless use of constant value A in sink context (line 1)␤»
timotimo mhm mhm
11:10 administrator joined 11:11 administrator is now known as Guest79423
jnthn There was already an xmas RT or two on the type vs. sub distinction; the answer was the type wins. 11:11
yoleaux 21 Dec 2015 16:15Z <pmurias> jnthn: why is isbig_I checking for the value fitting in 32bits when long is 64bits on the jvm?
jnthn Meaning A() where A is a type will consistently produce a coercion type 11:12
lizmat but shouldn't we at least warn when someone is creating a sub with the same name as a class in a scope ?
timotimo well, it can still be reached with &A
lizmat hence the warn :-) 11:13
jnthn There already *is* a warning on the mistaken usage.
lizmat well, ok, maybe not...
jnthn But also
lizmat anyways, good noon, jnthn :-)
timotimo do we have something that turns warnings off if you know what you're doing?
jnthn Subs/methods get lowercase names by standard coding conventions.
timotimo yup, goon nood, dood!
jnthn And types uppercase (aside from natives)
11:16 czester joined, czester left 11:17 czester13 joined
FROGGS o/ 11:17
11:18 cibs left, cibs_ joined
czester13 hi, I have one question .. what should be value of 'enc' parameter of 'slurp' function to allow 'cp1250' encoding? 11:21
11:23 cibs_ left, cibs joined 11:25 cibs left
lizmat czester13: have you tried :enc<cp1250> ? 11:25
11:26 km3 left
FROGGS czester13: windows-1252 11:26
timotimo also, it might not be implemented yet on moarvm ...
lizmat FROGGS: 1252 ?
FROGGS there is no shortcut for cp1250 yet
ohh, hups
11:26 firstdayonthejob left
FROGGS well, windows-1252 is the only we have implemented 11:26
11:27 AlexDaniel joined
AlexDaniel m: my Int $x = Inf; 11:27
camelia rakudo-moar 73d193: OUTPUT«===SORRY!===␤Cannot find method 'value'␤»
FROGGS czester13 / lizmat: look: github.com/rakudo/rakudo/blob/nom/...#L236-L257
11:28 firstdayonthejob joined, Guest79423 left
lizmat FROGGS: should we add cp1250 as an alias for windows-1250 at least ? 11:28
11:28 cibs joined
AlexDaniel m: say Int.Range 11:29
camelia rakudo-moar 73d193: OUTPUT«-Inf..Inf␤»
FROGGS lizmat: that won't help if we do not support 1250 at all
AlexDaniel perhaps it should say -Inf^..^Inf ?
czester13 FROGGS: ok, thanx for info :)
lizmat AlexDaniel: well, that would perhaps convey better that we can't put an Inf into a bigInt 11:30
FROGGS czester13: perhaps you can slurp in a byte buffer and extend Encode for your needs... github.com/sergot/perl6-encode
11:30 kid51 joined
FROGGS lizmat: the design docs state that Int should be able to store Inf 11:31
11:33 brrt left
timotimo oh, yeah. i remember lots of talk about that, FROGGS 11:34
AlexDaniel timotimo: was there any final decision?
11:35 andreoss joined 11:36 lucasb joined
lizmat before Christmas, no Inf in Int 11:36
timotimo i'm not sure. i remember there being serious worries it can be done without running into implementation problems?
lizmat after Christmas, who knows, but chances are not good, afaiu
thomax do we get perl 6.christmas? 11:39
11:40 regreg joined
AlexDaniel thomax: you can write a letter to Santa :) 11:41
11:41 ZoffixWin joined
ZoffixWin .u ૪ 11:41
yoleaux U+0AEA GUJARATI DIGIT FOUR [Nd] (૪)
ZoffixWin m: ૪૪૪ + 42
camelia rakudo-moar 73d193: OUTPUT«WARNINGS for /tmp/GylQwEjmWF:␤Useless use of "+" in expression "૪૪૪ + 42" in sink context (line 1)␤»
thomax i did 15 yrs ago. 11:42
ZoffixWin hm, weird.
AlexDaniel ZoffixWin: weird what? Looks like it works
lizmat m: say ૪૪૪ + 42
camelia rakudo-moar 73d193: OUTPUT«486␤»
AlexDaniel thomax: good! Then there is a high chance that we will get it this year :) 11:43
lizmat assuming gujarati numerics are decimal ?
ZoffixWin AlexDaniel: ah, right
timotimo: ^^ looks like your Weekly is wrong. It's not just for single digits.
m: say ٦1٥٠3 + ٤६੬៩ - ৭۹੧
camelia rakudo-moar 73d193: OUTPUT«65381␤»
timotimo oh?
OK, perhaps it only applies to categories that don't map exclusively to 0-9 11:44
like roman numerals
AlexDaniel .u ٤
yoleaux U+0664 ARABIC-INDIC DIGIT FOUR [Nd] (٤)
11:44 administrator joined
AlexDaniel .u Ⅳ 11:45
yoleaux U+2163 ROMAN NUMERAL FOUR [Nl] (Ⅳ)
11:45 administrator is now known as Guest19112
AlexDaniel [Nd] [Nl] 11:45
lizmat m: say Ⅳ + Ⅳ
camelia rakudo-moar 73d193: OUTPUT«8␤»
lizmat m: say ⅣⅣ
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Ek_fgPKzeh␤Bogus postfix␤at /tmp/Ek_fgPKzeh:1␤------> 3say Ⅳ7⏏5Ⅳ␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement mod…»
AlexDaniel which means, um, no idea. Numeric digit, numeric letter?
ZoffixWin That makes sense since I don't think "ⅣⅣ" is a valid number 11:46
lizmat numeraL
AlexDaniel oh well, let's see 11:47
stmuk twitter.com/despair .. The "Windows" section of every open-source project's "how to compile and install" file: 11:48
AlexDaniel m: say join ‘’, (0..0x1FFFF ==> grep { .uniprop ~~ m/‘Nl’/ })».chr
camelia rakudo-moar 73d193: OUTPUT«ᛮᛯᛰⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂↅↆↇↈ〇〡〢〣〤〥〦〧〨〩〸〹〺ꛦꛧꛨꛩꛪꛫꛬꛭꛮꛯ𐅀𐅁𐅂𐅃𐅄𐅅𐅆𐅇𐅈𐅉𐅊𐅋𐅌𐅍𐅎…» 11:49
AlexDaniel m: say join ‘’, (0..0x1FFFF ==> grep { .uniprop ~~ m/‘Nd’/ })».chr
camelia rakudo-moar 73d193: OUTPUT«0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨੩੪੫੬੭੮੯૦૧૨૩૪૫૬૭૮૯୦୧୨୩୪୫୬୭୮୯௦௧௨௩௪௫௬௭௮௯౦౧…»
AlexDaniel actually, not too many!
Full: ᛮᛯᛰⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂↅↆↇↈ〇〡〢〣〤〥〦〧〨〩〸〹〺ꛦꛧꛨꛩꛪꛫꛬꛭꛮꛯ𐅀𐅁𐅂𐅃𐅄𐅅𐅆𐅇𐅈𐅉𐅊𐅋𐅌𐅍𐅎𐅏𐅐𐅑𐅒𐅓𐅔𐅕𐅖𐅗𐅘𐅙𐅚𐅛𐅜𐅝𐅞𐅟𐅠𐅡𐅢𐅣𐅤𐅥𐅦𐅧𐅨𐅩𐅪𐅫𐅬𐅭𐅮𐅯𐅰𐅱𐅲𐅳𐅴𐍁𐍊𐏑𐏒𐏓𐏔𐏕𒐀 11:50
And: 0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨੩੪੫੬੭੮੯૦૧૨૩૪૫૬૭૮૯୦୧୨୩୪୫୬୭୮୯௦௧௨௩௪௫௬௭௮௯౦౧౨౩౪౫౬౭౮౯೦೧೨೩೪೫೬೭೮೯൦൧൨൩൪൫൬൭൮൯෦෧෨෩෪෫෬෭෮෯๐๑๒๓๔๕๖๗๘๙໐໑໒໓໔໕໖໗໘໙༠༡༢􏿽xE0
𐒠𐒡𐒢𐒣𐒤𐒥𐒦𐒧𐒨𐒩𑁦𑁧𑁨𑁩𑁪𑁫𑁬𑁭𑁮𑁯𑃰𑃱𑃲𑃳𑃴𑃵𑃶𑃷𑃸𑃹𑄶𑄷𑄸𑄹𑄺𑄻𑄼𑄽𑄾𑄿𑇐𑇑𑇒𑇓𑇔𑇕𑇖𑇗𑇘𑇙𑋰𑋱𑋲𑋳𑋴𑋵𑋶𑋷𑋸𑋹𑓐𑓑𑓒𑓓𑓔𑓕𑓖𑓗𑓘𑓙𑙐𑙑𑙒𑙓𑙔𑙕𑙖𑙗𑙘𑙙𑛀𑛁𑛂𑛃𑛄𑛅𑛆𑛇𑛈𑛉𑜰𑜱𑜲𑜳𑜴𑜵𑜶𑜷𑜸𑜹𑣠𑣡𑣢𑣣𑣤𑣥𑣦𑣧𑣨𑣩𖩠􏿽xF0
11:52 Psyche^ joined
timotimo stmuk: hah, never noticed the "0.0833 FT.", who came up with that? %) 11:52
AlexDaniel .u ½ 11:53
yoleaux U+00BD VULGAR FRACTION ONE HALF [No] (½)
AlexDaniel oh there's also No
11:53 TEttinger left
timotimo No. 11:54
№1
AlexDaniel yeah, No. Not gonna paste it here, enough unicode spam
11:54 ZoffixWin left
AlexDaniel “timotimo i can't help but think people are going to use this as a reason to say perl6 is stupid.” yes. Though one day they will probably get over it 11:55
hmmm so does it mean that I can copy any part of that and camelia will eat it? 11:56
m: say ൭൮൯෦෧෨෩෪෫෬෭෮෯๐๑๒๓๔๕๖๗๘๙໐໑໒໓໔໕໖໗໘໙༠༡༢༣༤༥༦༧༨༩၀၁၂၃၄၅၆၇၈၉႐႑႒႓႔႕႖႗႘႙០១២៣
camelia rakudo-moar 73d193: OUTPUT«7890123456789012345678901234567890123456789012345678901234567890123␤»
11:56 Psyche^_ left
AlexDaniel m: say +join ‘’, (0..0x1FFFF ==> grep { .uniprop ~~ m/‘No’/ })».chr 11:56
camelia rakudo-moar 73d193: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5²³¹¼½¾৴৵৶৷৸৹୲୳୴୵୶୷௰௱௲౸౹౺౻౼౽౾൰൱൲൳൴൵༪༫༬༭༮༯༰༱༲༳፩፪፫፬፭፮፯፰፱፲፳…»
timotimo ah, it has the superscripts
AlexDaniel ah that's a wrong one 11:57
m: say +join ‘’, (0..0x1FFFF ==> grep { .uniprop ~~ m/‘Nd’/ })».chr
camelia rakudo-moar 73d193: OUTPUT«1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456…»
AlexDaniel yeeaaaaaaaah
timotimo yeah, thanks obama^Wcamelia 11:58
11:58 smash joined
AlexDaniel Nd is “Number, decimal digit”. Nl is “Number, letter” and No is “Number, other” 11:59
so I guessed it right
and you can only use these things as digits if they are decimal digits, totally makes sense
by the way, I remember somebody here liked dashes 12:01
m: say join ‘’, (0..0x1FFFF ==> grep { .uniprop ~~ m/‘Pd’/ })».chr
here is a special category for dashes!
camelia rakudo-moar 73d193: OUTPUT«-֊־᐀᠆‐‑‒–—―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-␤»
AlexDaniel
.oO( let's allow all of them in variable names! )
12:03 Skarsnik joined
Skarsnik Hello 12:03
lucs It's me
lucasb Oh hai 12:04
12:07 Begi joined
thomax m: ⠎⠁⠽⠀⠄⠠⠓⠑⠇⠇⠕⠀⠠⠸⠺⠲⠄ 12:09
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VCoia9VyEe␤Bogus statement␤at /tmp/VCoia9VyEe:1␤------> 3<BOL>7⏏5⠎⠁⠽⠀⠄⠠⠓⠑⠇⠇⠕⠀⠠⠸⠺⠲⠄␤ expecting any of:␤ prefix␤ term␤»
AlexDaniel timotimo: “Rakudo now understands × and ÷ operators” it also understands ∞ 12:12
m: say ∞
camelia rakudo-moar 73d193: OUTPUT«Inf␤»
thomax m: say ⠼⠃⠉+⠼⠙⠃;
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/hFQzsZyAAD:1␤------> 3say7⏏5 ⠼⠃⠉+⠼⠙⠃;␤Bogus postfix␤at /tmp/hFQzsZyAAD:1␤------> 3say 7⏏5⠼⠃⠉+⠼⠙⠃;␤ expecting any of:␤ infix␤ …»
thomax m: say :⠼⠃⠉"+"⠼⠙⠃"; 12:13
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/HjEFB_5xCv:1␤------> 3say7⏏5 :⠼⠃⠉"+"⠼⠙⠃";␤Confused␤at /tmp/HjEFB_5xCv:1␤------> 3say :7⏏5⠼⠃⠉"+"⠼⠙⠃";␤ expecting any of:␤ colon …»
AlexDaniel m: say bool.Range
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/90S6N9TliK␤Undeclared routine:␤ bool used at line 1␤␤»
thomax no braille support yet?
AlexDaniel .u ⠼ 12:14
yoleaux U+283C BRAILLE PATTERN DOTS-3456 [So] (⠼)
FROGGS Script, other?
AlexDaniel thomax: Braille is a symbol, not a number
thomax: that's according to unicode
pochi m: sub foo(Int $a) { say "the integer is $a" }; foo(False)
camelia rakudo-moar 73d193: OUTPUT«the integer is False␤»
pochi this can't be right?
thomax but it has digits? 12:15
Skarsnik Bool being enum (so Int) is an issue, yes
FROGGS m: say False.^mro
camelia rakudo-moar 73d193: OUTPUT«((Bool) (Int) (Cool) (Any) (Mu))␤»
pochi ok, but it's not supposed to be like that?
AlexDaniel pochi: I don't think that it is supposed to be like that… 12:16
FROGGS Bool is supposed to be an enum
AlexDaniel m: sub foo(Int $a) { say "the integer is {+$a}" }; foo(False)
camelia rakudo-moar 73d193: OUTPUT«the integer is 0␤»
FROGGS well, it kinda makes sense
since this always worked
pochi m: sub foo(Int $a) { say "the integer is $a" }; foo("5")
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xKrXa0266H␤Calling foo(Str) will never work with declared signature (Int $a)␤at /tmp/xKrXa0266H:1␤------> 3oo(Int $a) { say "the integer is $a" }; 7⏏5foo("5")␤»
pochi then that should work too? 12:17
Skarsnik It's an issue that Bool could match Int
FROGGS pochi: why? a string is not an Int
AlexDaniel pochi: ah no, that should not
Skarsnik What was the motive to have Bool an enum?
FROGGS m: say Str.^mro
camelia rakudo-moar 73d193: OUTPUT«((Str) (Cool) (Any) (Mu))␤»
AlexDaniel pochi: basically if you use + in front of it then it will kinda cast to Int
pochi so much for type safety?
AlexDaniel pochi: in other words, Bool is always safe in such respect
FROGGS m: sub foo(Int() $a) { say "the integer is $a" }; foo("5") # pochi: you can coerce it
camelia rakudo-moar 73d193: OUTPUT«the integer is 5␤»
lucasb I think things like 'sub f(SuperClass() $x) {...}; f(SubClass.new)' are confusing 12:18
FROGGS m: sub foo(Int() $a) { say "the integer is $a" }; foo("5foo") # pochi: only with valid numbers
camelia rakudo-moar 73d193: OUTPUT«Cannot convert string to number: trailing characters after number in '035⏏5foo' (indicated by ⏏)␤ in sub foo at /tmp/If1791OYs2:1␤ in block <unit> at /tmp/If1791OYs2:1␤␤Actually thrown at:␤ in sub foo at /tmp/If1791OYs2:1␤ in block <…»
lucasb people expect SubClass to be coerced to SuperClass
FROGGS lucasb: aye
pochi but I didn't expect bool to be subclass of int ...
FROGGS lucasb: I tripped over that too
uruwi I'm a bit confused about sockets. If I have only one client, I can just call .accept once, right?
FROGGS pochi: it is an eNUMERation though
Skarsnik For me, Bool should not match the Int type 12:19
pochi explicit conversion is fine, but implicit?
sounds scary to me
FROGGS Skarsnik: and I'd like to be able to specify that I want to accept Int, and not its subtypes in a signature
AlexDaniel pochi: but hey, you can pass any enum thingy into that, as far as I can see
FROGGS pochi: there is no implicit conversion
Skarsnik m: say True ~~ Numeric; 12:20
camelia rakudo-moar 73d193: OUTPUT«True␤»
Skarsnik It should not work ~~
FROGGS let Larry judge I'd say (in case he has not already)
AlexDaniel m: enum Bool <Cat Dog>; sub foo(Int $a) { say "the integer is $a" }; foo(Cat) 12:21
camelia rakudo-moar 73d193: OUTPUT«the integer is Cat␤»
AlexDaniel meh
Skarsnik lol 12:22
uruwi m: enum Bool <Cat Dog>; sub foo(Int $a) { say "the integer is {$a.Int}" }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is 0␤»
AlexDaniel m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is $a" }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is Cat␤»
uruwi m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is {$a.Int}" }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is 0␤»
AlexDaniel m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is {+$a}" }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is 0␤»
AlexDaniel m: enum Animal <Cat Dog>; sub foo(Int() $a) { say "the integer is $a" }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is Cat␤»
AlexDaniel ouch
uruwi m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is $a" }; foo(Dog)
camelia rakudo-moar 73d193: OUTPUT«the integer is Dog␤»
uruwi m: enum Animal <Cat Dog>; sub foo(int $a) { say "the integer is $a" }; foo(Dog)
camelia rakudo-moar 73d193: OUTPUT«the integer is 1␤»
uruwi m: enum Animal <Cat Dog>; sub foo(Int:D $a) { say "the integer is $a" }; foo(Dog) 12:23
camelia rakudo-moar 73d193: OUTPUT«the integer is Dog␤»
uruwi I'm a bit confused about sockets. If I have only one client, I can just call .accept once, right?
AlexDaniel "is $a"?
uruwi m: enum Animal <Cat Dog>; sub foo(Int:D $a is Int) { say "the integer is $a" }; foo(Dog)
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/d5BG80tBW2␤Can't use unknown trait 'is ' in a parameter declaration.␤at /tmp/d5BG80tBW2:1␤ expecting any of:␤ rw␤ readonly␤ copy␤ required␤ raw␤ le…»
uruwi m: enum Animal <Cat Dog>; sub foo($a is Int) { say "the integer is $a" }; foo(Dog)
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/D3vcU95FmI␤Can't use unknown trait 'is ' in a parameter declaration.␤at /tmp/D3vcU95FmI:1␤ expecting any of:␤ rw␤ readonly␤ copy␤ required␤ raw␤ le…»
uruwi m: enum Animal <Cat Dog>; sub foo($a) { say "the integer is $a" }; foo(Dog) 12:24
camelia rakudo-moar 73d193: OUTPUT«the integer is Dog␤»
uruwi m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is $a" }; foo(Dog)
camelia rakudo-moar 73d193: OUTPUT«the integer is Dog␤»
thomax m: enum Bool <Cat Dog>; sub foo(Int $a) { say "the integer is " ~ $a*1 }; foo(Cat)
camelia rakudo-moar 73d193: OUTPUT«the integer is 0␤»
uruwi TMTOWTDI, indeed.
AlexDaniel thomax: haha, that might be a bit too explicit :D
FROGGS you are not surprised that you can do math with enums, right?
uruwi m: enum Animal <Cat Dog>; sub foo(Int $a) { say "the integer is $a" }; foo(Dog + Dog)
camelia rakudo-moar 73d193: OUTPUT«the integer is 2␤»
uruwi m: enum Animal <Cat Dog Rabbit>; sub foo(Int $a) { say "the integer is $a" }; foo(Dog + Dog) 12:25
camelia rakudo-moar 73d193: OUTPUT«the integer is 2␤»
AlexDaniel FROGGS: personally I'm surprised that it is stringified into Dog
lucasb
.oO( camelia, also available in your nearest /query window )
uruwi m: enum Animal <Cat Dog Rabbit>; say Dog + Dog;
camelia rakudo-moar 73d193: OUTPUT«2␤»
uruwi m: enum Animal <Cat Dog Rabbit>; say Dog + Dog - Rabbit;
camelia rakudo-moar 73d193: OUTPUT«0␤»
FROGGS AlexDaniel: string interpolation calls .Stringy on it
uruwi m: enum Animal <Cat Dog Rabbit>; say (Dog + Dog).Animal;
camelia rakudo-moar 73d193: OUTPUT«Method 'Animal' not found for invocant of class 'Int'␤ in block <unit> at /tmp/iAdpWzXRXg:1␤␤»
FROGGS and an enum stringifies to its name
uruwi m: enum Animal <Cat Dog Rabbit>; say Animal(Dog + Dog);
camelia rakudo-moar 73d193: OUTPUT«Rabbit␤»
timotimo why do people keep saying "wtf, bool is an int?" :( 12:26
thomax m: enum Animal <Cat Dog Rabbit>; say (Dog + Dog - Rabbit).Animal;
camelia rakudo-moar 73d193: OUTPUT«Method 'Animal' not found for invocant of class 'Int'␤ in block <unit> at /tmp/CU6bH456aL:1␤␤»
AlexDaniel FROGGS: I understand, but it's all is just kinda weird… I was expecting an int and now boom! It stringified into Dog…
FROGGS if enums would not be a subclass anymore, how do you want to OR flags together?
AlexDaniel FROGGS: I agree that it makes sense, but it is going to be a pitfall for sure
nine uruwi: you can /msg camelia m: say "foo"; # for playing around
uruwi m: enum Animal <Cat Dog Rabbit>; say Animal(Dog + Dog - Rabbit);
camelia rakudo-moar 73d193: OUTPUT«Cat␤»
timotimo subclass means "where you expect an A, every B will work, too if B is A"
and Bool is Int
so everywhere that expects an Int, a Bool works, too
Skarsnik But it does not feel right 12:27
FROGGS Skarsnik: the other way around would defeat subclassing
nine Skarsnik: it may not feel right but it will be very usefull when communicating with systems that use 0 and 1 for boolean values (like databases) 12:28
Skarsnik I get the idea of being able to do math with enum. but it should not match for Int signature
AlexDaniel and imagine perl6critic: “It seems like you are using $a (which is Int) inside double quotes. You should be using {+$a} instead!”
timotimo should we disallow subclassing Int completely?
because people expect every Int to stringify to the value as decimal digits 12:29
Skarsnik And I was not able to make enum work with NC value. I had to match again MY_VALUE_OF_ENUM.value
AlexDaniel timotimo: or… there could be a special numeric stringification?
Skarsnik so I don't get the point x) 12:30
FROGGS Skarsnik: enums and NC work pretty well together... can you show your problem in a one liner? 12:31
thomax the current debian rakudo version is 2014.07-4
Skarsnik hm
timotimo thomax: wow, that's not even from the last 12 months :(
Skarsnik for stable
thomax unstable 12:32
AlexDaniel 2015.09-2 in unstable
timotimo that's quite a bit more reasonable
thomax oh, but than the packet version isn't updated
uruwi m: say Instant.new(1) 12:33
camelia rakudo-moar 73d193: OUTPUT«Cannot make a Instant object using .new␤ in block <unit> at /tmp/YbHG2LwJOM:1␤␤»
thomax oh, my fault, just saw the stable 12:34
12:36 jczeus joined
Skarsnik m: my int32 $a = 42; enum piko (HELLO, NYO => 42); given $a {say "Nyo" when NYO;} 12:36
camelia rakudo-moar 73d193: OUTPUT«===SORRY!===␤Cannot invoke this object␤»
Skarsnik hm 12:37
enum syntax is really weird btw (for me) 12:39
AlexDaniel m: enum Bool (Cat, Dog => 42)
camelia rakudo-moar 73d193: OUTPUT«===SORRY!===␤Cannot invoke this object␤»
Skarsnik m: my int32 $a = 42; enum piko (HELLO => 1, NYO => 42); given $a {say "Nyo" when NYO;} 12:40
camelia rakudo-moar 73d193: OUTPUT«Nyo␤»
Skarsnik hm nvm it works x)
AlexDaniel so it only works if you specify all of the values?
12:41 kid51 left
AlexDaniel m: enum Bool (Cat); 12:42
camelia rakudo-moar 73d193: OUTPUT«===SORRY!===␤Cannot invoke this object␤»
AlexDaniel m: enum Bool «:Cat(1) Dog»; say +Dog 12:43
camelia rakudo-moar 73d193: OUTPUT«2␤»
AlexDaniel right
Skarsnik: ^ 12:44
m: enum Bool «Cat :Dog(42)»; say +Dog; say +Cat
camelia rakudo-moar 73d193: OUTPUT«42␤0␤»
pochi m: enum Bool <True False>; say False.Int 12:45
camelia rakudo-moar 73d193: OUTPUT«1␤»
AlexDaniel pochi: I've thought about it :)
lucasb pochi: you change the whole meaning of the universe doing that :)
AlexDaniel lucasb: isn't it locally scoped? 12:46
lucasb AlexDaniel: idk, just kidding
pochi why am I allowed to do that at all?
lizmat m: say Date.new(:2016year,:2month,:29day).later(:1year) # is this a bug ?
camelia rakudo-moar 73d193: OUTPUT«day of 2017/2 out of range. Is: 29, should be in 1..28␤ in block <unit> at /tmp/Oct1qHeUJv:1␤␤»
pochi m: enum Bool <True False>; enum Bool <Dog Cat>
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ii85IzFvMV␤Redeclaration of symbol Bool␤at /tmp/ii85IzFvMV:1␤------> 3enum Bool <True False>; enum Bool7⏏5 <Dog Cat>␤»
pochi I can redeclare once, but not twice?
AlexDaniel m: enum Bool <True False>; { enum Bool <Dog Cat> } 12:47
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/K_EQtSevml␤Redeclaration of symbol Bool␤at /tmp/K_EQtSevml:1␤------> 3enum Bool <True False>; { enum Bool7⏏5 <Dog Cat> }␤»
thomax m: enum Bool <Dog Cat>; 12:49
camelia ( no output )
thomax m: enum Bool <Dog Cat>; enum Bool <True False>;
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uxjbm2kYJD␤Redeclaration of symbol Bool␤at /tmp/uxjbm2kYJD:1␤------> 3enum Bool <Dog Cat>; enum Bool7⏏5 <True False>;␤»
lucasb lizmat: I remember masak already talked about this issue. do you think it's better to give an error or advance to the next day, in this case March 1st ?
AlexDaniel lizmat: I'd say that it is. It feels like “later” is supposed to handle that kind of stuff 12:50
m: say Date.new(:2016year,:2month,:29day).later(:1days)
camelia rakudo-moar 73d193: OUTPUT«2016-03-01␤»
lizmat m: say Date.new(:2016year,:1month,:31day).later(:1month) # in the case of months, we move to the last day of the month
camelia rakudo-moar 73d193: OUTPUT«2016-02-29␤»
lucasb anyway, date handling is already confusing enough, that I think in edge cases like these, it's better to give an error 12:51
lizmat so it would seem logical to me to do the same for moving with years
AlexDaniel lizmat: oh, then yes!
Skarsnik FROGGS, returning Buf in NC does not work? 12:52
AlexDaniel lizmat: indeed, now it totally makes sense. Now I'm starting to think though what is going to happen if you give a combination of those 12:53
Juerd lizmat: Rockchip didn't mind having 31 November though :) lkml.org/lkml/2015/12/2/1202
FROGGS Skarsnik: no, a Buf needs to now its .elems
Skarsnik: I could imagine a 'returns blob8[32]' though 12:54
AlexDaniel there is a much easier way to handle dates by the way: en.wikipedia.org/wiki/Internationa...d_Calendar
Skarsnik I was pondering how to handle BLOB field in DBIish
pochi m: say enum Int <1 2 3>
camelia rakudo-moar 73d193: OUTPUT«Map.new(("1" => 0,"2" => 1,"3" => 2))␤»
AlexDaniel though it means that we have to throw away our buggy calendars :)
12:55 kaare_ joined
timotimo Skarsnik: that'd map to Blob, i'd expect 12:55
FROGGS Juerd: ohh wow *g*
12:56 xpen left
thomax m: say Date.new(:1752year,:9month,:3day) 12:58
camelia rakudo-moar 73d193: OUTPUT«1752-09-03␤»
thomax hmm.. there was no 3.9.1752
Skarsnik hm mysqlclient you are *** MYSQL_TYPE_BLOBBLOB or TEXT field 12:59
Nice way to know if you have to apply an encoding or not xD
AlexDaniel m: say Date.new(:1000year,:9month,:3day) 13:00
camelia rakudo-moar 73d193: OUTPUT«1000-09-03␤»
AlexDaniel thomax: there was no 1000-09-03 either according to this logic?
thomax try `cal 1752`
AlexDaniel thomax: I know, but all operations are on Gregorian calendar, whatever that means 13:01
13:01 hankache joined, lucasb left
thomax ok, right by definition 13:02
FROGGS didnt they even made up an entire century around 900bc?
AlexDaniel m: say Date.new(year => -5000,:2month,:28day) 13:03
camelia rakudo-moar 73d193: OUTPUT«-5000-02-28␤»
AlexDaniel thomax: ↑ like, you know…
jnthn resolves the multis/roles RT, meaning we're now down to 2 xmas RTs.
One of which is already fixed, and just testneeded 13:04
AlexDaniel thomax: but the whole calendar thing is fucked up, I don't think that there is any way to do it right… 13:05
thomax AlexDaniel: well. better to have the idea going. bugs are free to fix. 13:06
13:06 psy_ joined
AlexDaniel I'm kinda glad that at least the clock is not so bad. Unless you start thinking about sexagesimal numeral system that we are still using for whatever reason… 13:08
hankache jnthn++
AlexDaniel thomax: but the definition of “right” is a bit weird here. If we start following the history then basically we are introducing all of these exceptions into the user land 13:09
13:09 hankache left
AlexDaniel thomax: so personally I think that it is much more elegant to break the history for consistency 13:10
Skarsnik timotimo, you should add in the weekly post that the 'bool' exist only on NativeCall 13:11
timotimo www.reddit.com/r/perl/comments/3xt...e_release/ - random microbenchmark nonsense
thomax would be nice. but hey, there are so many testers out there, it will take a while to get all the bug fixes in order after there will be serious release. 13:12
Skarsnik wow += is very slow
timotimo yeah
it used to be faster than ++ on native ints apparently 13:13
i wonder if i should have named my reddit account "timotimotimotimotimotimo" instead of "6timo"
Skarsnik lol
timotimo Skarsnik: instead of "wow, += is slow", you could also have said "damn, native ints are great!" 13:14
AlexDaniel timotimo: optimist detected 13:15
timotimo i'm optimotimo
dalek href="https://perl6.org:">perl6.org: b8cc699 | (Zoffix Znet)++ | fetch-recent-blog-posts.pl:
Fix broken automated Recent Blogs refresh
13:16
timotimo Skarsnik: did you also notice that += on a native int is almost 2x faster than on an Int? 13:18
Skarsnik FROGGS, are the Str returned by native routine encoded? 13:24
FROGGS Skarsnik: yes, and there is a trait to specify something non-utf8
To specify how to marshal string return types, just apply this trait to the routine itself. 13:25
sub input_box() returns Str is encoded('utf8') is native('libgui') { * }
that's a quote from doc.perl6.org/language/nativecall
Skarsnik and for CArray[Str] ? 13:26
FROGGS hmmm
no idea
timotimo i'll go sit in my car for a few hours now ... 13:27
cya!
FROGGS o/
must be nice, sitting in a new car... touching leather... :o)
Skarsnik actually it's probably an issue for class A is cstruct { has Str $a} ?
thomax :-)
timotimo it's not a new car, though
FROGGS Skarsnik: we implemented it for Parameter and Routine... that we didnt implement it for Attribute is just an oversight 13:29
thomax wow, i really like to see a js implementation of perl6
like amber-smalltalk 13:31
13:34 zakharyas joined 13:35 rurban_ left
pochi m: my $c = False; say $c+1; say ++$c 13:35
camelia rakudo-moar 73d193: OUTPUT«1␤True␤»
13:37 loren joined
Begi "False + 1 = 1" because (False = 0) I guess ? 13:39
Skarsnik m: my $c = False; say $c+2 13:40
camelia rakudo-moar 73d193: OUTPUT«2␤»
Skarsnik m: my $c = False; say ++$c; say ++$c; 13:41
camelia rakudo-moar 73d193: OUTPUT«True␤True␤»
gfldex m: my enum MyBool ( False => 0, True => 1 )
camelia ( no output )
gfldex that's why
13:41 raiph joined
Skarsnik m: my enum MyBool ( False => 0, True => 0...Inf) 13:41
camelia rakudo-moar 73d193: OUTPUT«===SORRY!===␤Method 'succ' not found for invocant of class 'Pair'␤»
Skarsnik m: my enum MyBool ( False => 0, True => 0..Inf) 13:42
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XVjtNUA8Iq␤Type error in enum. Got 'Range' Expected: 'Int'␤at /tmp/XVjtNUA8Iq:1␤------> 3num MyBool ( False => 0, True => 0..Inf)7⏏5<EOL>␤»
pochi m: my $c = False; $c++; $c++; $c++; say $c; $c--; say $c 13:44
camelia rakudo-moar 73d193: OUTPUT«True␤False␤»
Skarsnik that a weird Int x) 13:45
lizmat m: say Inf++ # same thing
gfldex m: (False,True)>>.value.say
camelia rakudo-moar 73d193: OUTPUT«Cannot call postfix:<++>(Num); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num …»
rakudo-moar 73d193: OUTPUT«(0 1)␤»
lizmat mebbe not :-)
gfldex m: (False,True)>>.key.say 13:46
camelia rakudo-moar 73d193: OUTPUT«(False True)␤»
lizmat m: my $a = Inf; $a++
camelia ( no output )
lizmat m: my $a = Inf; $a++; say $a
camelia rakudo-moar 73d193: OUTPUT«Inf␤»
gfldex you make Inf as big as you want :)
lizmat m: my $a = Inf; $a--; say $a # making Inf smaller :-) 13:47
camelia rakudo-moar 73d193: OUTPUT«Inf␤»
13:48 czester13 left
Begi m: my $a = Inf; my $b = Inf; my $c = $a - $b; say $c; 13:48
camelia rakudo-moar 73d193: OUTPUT«NaN␤»
Begi What's this output ?
lizmat wonder if it would make sense to add a postfix:<++>(Mu:D) candidate (without the "is rw") for better errors 13:49
pochi sub inc1(Int $a is rw) { $a++; return $a }; say inc1(my $c=42); say inc1(my $d=False) 13:51
m: sub inc1(Int $a is rw) { $a++; return $a }; say inc1(my $c=42); say inc1(my $d=False)
camelia rakudo-moar 73d193: OUTPUT«43␤True␤»
pochi m: sub inc2(Int $a is rw) { $a+=1; return $a }; say inc2(my $c=42); say inc2(my $d=False)
camelia rakudo-moar 73d193: OUTPUT«43␤1␤»
pochi shouldn't they both do the same? 13:52
I'd exepect so
moritz pochi: only if you return with "return-rw" instead of "return"
pochi using return-rw seems to give the same results 13:54
lizmat Begi: NaN is Not a Number 14:01
nothing edible :-)
Begi Oh ok thanks 14:02
nine Skarsnik: of course Bool has somewhat different behavior than Int. Otherwise it would not make any sense for it to exist at all and we could just use Int instead. 14:03
Subclasses have different behavior than their parents. I really don't get why people are surprised by the relationship between Bool and Int when they're accepting the same as a given for all other subclasses. 14:04
14:07 psy_ left
moritz nine: I think one reason is that folk expects "subclasses can do everything the parents can, and more" 14:07
Skarsnik the issue Bool ~~ Numeric should not be true (like sub foo(Int) should not catch Bool) since it's definitly not the same meaning and just an implementation quirk
moritz Skarsnik: but you can use True and False like numbers 14:08
nine moritz: which is wrong
moritz m: sub multiply(Numeric $x) { $x * 42 }; say multiply(True); say multiply(False)
camelia rakudo-moar 73d193: OUTPUT«42␤0␤»
moritz no surpises here
Skarsnik it's not a matter of True/False having a integer value. It just True and False have not the same meaning as 0 and 1 14:09
nine Skarsnik: if you want to argue about this, please use other arguments than "I just don't want it so" 14:12
14:15 loren left
thomax in other languages bools don't have a obvious other value than true and false (no int or anything). but hey, i can live with it easily 14:17
nine In most other languages, True and False are exactly equivalent to 1 and 0 respectively.
huf and in most of the rest, they degrade to 0/1 *somehow* 14:18
thomax 0 is false, true is not 0. thats good enough for me. 14:19
gfldex if only computers could do more then just numbers
huf shell true is amazing though :)
thomax gfldex: semantics. they should have an understanding of common sense. 14:20
14:23 andreoss left
Juerd Skarsnik: Are Python and Javascript 'wrong' too? True is 1 in Python. true is 1 in Javascript. 14:24
Actually, in a quick search for languages that don't let you use true as a number, or where true as a number is not 1, I'm only finding Ruby
Ruby says: -e:1:in `<main>': undefined method `+' for true:TrueClass (NoMethodError)
When you try to do true + 1
thomax Juerd: there is no right or wrong in this question. it's a matter of definition 14:25
Juerd thomax: I agree.
Skarsnik It's not about 1 being True and 0 False, it's about Bool being of type Int x)
Juerd Note that True in Perl 6 is not "the" true value, but "a" true value.
There are many more true values, like 42 and "hello". 14:26
thomax Juerd: smalltalk also defines bool as a set of the values true and false
nine m: sub foo(Int $a) { say $a; }; constant a = 1; foo(a);
camelia rakudo-moar 73d193: OUTPUT«1␤»
nine Skarsnik: should this also not work? ^^^
14:27 cygx joined, dakkar left
thomax the int in the parameter definition is the problem here 14:27
Skarsnik m: sub serialize($a) {say "Doing some stuff"; given $a {say "serialize integer" when Int; say "serialize bool" when Bool; say "Serialize string" when Str}}; serialize(True);
camelia rakudo-moar 73d193: OUTPUT«Doing some stuff␤serialize integer␤serialize bool␤»
thomax and the 1. of cause
cygx Juerd: true is *not* 1 in JS, there's just a bunch of implicit conversions
Juerd Skarsnik: Did you just change your opinion? First you say "It just True and False have not the same meaning as 0 and 1" and then you say "It's not about 1 being True and 0 False"
cygx personally, I can live with true ~~ Int, but there are arguments against it 14:28
nine Skarsnik: so you have some buggy code that doesn't properly consider subclasses and that's why we should change the definition of the language?
cygx the boolean algebra is sufficiently different from the integers
hahainternet a quick diverted question, if i read in chunks of a file i get a 'supply', now i'd like to distribute things reponding to that supply over threads as perl6 sees fit
cygx the integer-like thing with elements 0,1 is Z_2 14:29
hahainternet what is the right way now to create something that should 'autothread' over this?
Juerd cygx: Perl 6 has different operators for boolean operations, that work on logical truthy and falsy values, rather than only True and False.
nine m: class A {}; class B is A {}; sub serialize($a) {say "Doing some stuff"; given $a {say "serialize A" when A; say "serialize B" when B; say "Serialize string" when Str}}; serialize(B.new);
camelia rakudo-moar 73d193: OUTPUT«Doing some stuff␤serialize A␤serialize B␤»
Skarsnik nine, Why Bool should be a subtype of Int? I mean I can understand Bool coercible to Int. It's does not feel right on a semantic level that Bool ~~ Int
nine Skarsnik: ^^^ exactly the same issue
Juerd Skarsnik: Quite often, in Perl 6 the semantics are chosen to be practical and useful, not necessarily to feel right :) 14:30
cygx Juerd: that's orthogonal
Juerd cygx: Yes. 14:31
nine Skarsnik: Bool is an enumeration. That comes from latin "numerus" meaning "number". Enumerations are just closed sets of names for values. enum Bool < False True > is about the same as package Bool { constant False = 0; constant True = 1; }
Juerd Skarsnik: An example of this is that :15th is turned into :th(15). Might not feel right, but it is very useful.
Skarsnik: In fact, the thing that understands :th also understands :st and :nd for :1st and :2nd 14:32
nine Skarsnik: what type of value would be more natural for Bool than 0 and 1, i.e. Int?
hahainternet ah, i can share a supply
excellent
Juerd hahainternet: What you're doing is something that I've been meaning to find out. Will you share your code when you get it working?
hahainternet Juerd: if i do get it working sure 14:33
it won't be soon
fighting C currently
p6 comes later
Juerd hahainternet: Research .hyper and .race if you haven't done so already :)
I'm not entirely sure if these apply here, because you're getting values from a supply.
14:35 dakkar joined
Skarsnik nine, on a semantic level Boolean has not the same meaning as numbers for me. That Boolean end up being a sub set of number is just an implementation purpose, It could very be "str:True" and "str:False" I will be fine with it 14:35
thomax nine: in predicate logic there is no 0 or 1
nine Skarsnik: and what use cases would that improve? Which ones would it make harder? 14:36
uruwi I know when I first programmed in Java that I was disappointed that I couldn't use 0 or 1 for false or true 14:37
hahainternet m: True + 1
camelia rakudo-moar 73d193: OUTPUT«WARNINGS for /tmp/wGdK0gQsO6:␤Useless use of "+" in expression "True + 1" in sink context (line 1)␤»
hahainternet m: say True + 1
camelia rakudo-moar 73d193: OUTPUT«2␤»
hahainternet that's a bit wacky
thomax but in bool algebra is 0 and 1. well. i really don't care. i just hope the fastcgi interface runs well, also the dbiish connectors and stuff like that
hahainternet so i can see it from that perspective
Skarsnik nine, for me when you work on semantic stuff (like comparing type) Bool should not be a Numeric, for the rest it's perfectly fine for me 14:39
thomax true + 1 is like true + true and should be true and not 2.
Skarsnik say True + False
m: say True + False
camelia rakudo-moar 73d193: OUTPUT«1␤»
uruwi I'm finding a way to shoehorn that into a rhythm
Skarsnik well + coerce to Int, so it's normal x)
nine Skarsnik: again, which use cases would be improved by having Bool not be Numeric and which would be made harder?
uruwi Well, I found it useful on calculators 14:40
14:40 loren joined
hahainternet it is 'normal', but it's also a little surprising 14:40
thomax nine: if bool is a enumeration with false and true it can't be 2
uruwi But it doesn't lead to as neat as code
thomax nine: if false is 0 and true is 1 14:41
uruwi IE it makes it harder to read
We've got ?? !! anyway.
hahainternet it looks like a Bool in a signature is strict enough not to allow Ints to pass, so i think that's probably sufficient 14:42
thomax there is no 2 in the enumerated type bool
hahainternet whether or not it smartmatches is kinda irrelevant as smart matching is 'smart'
nine thomax: that's just based on your "it should be", which is no good base for drawing conclusions.
14:42 prammer joined
Skarsnik thomax, the + operator force to numeric value 14:42
uruwi m: sub f(Bool $b) {say "a bool $b"}; f(3);
camelia rakudo-moar 73d193: OUTPUT«Type check failed in binding $b; expected Bool but got Int␤ in sub f at /tmp/vjFVsmGNs_:1␤ in block <unit> at /tmp/vjFVsmGNs_:1␤␤»
uruwi m: sub f(Bool $b) {say "a bool $b"}; f(so 3); 14:43
camelia rakudo-moar 73d193: OUTPUT«a bool True␤»
mspo i.imgur.com/dAEp7Wu.jpg?1
Skarsnik :m class P { method Int returns Int () {return 42};} my P $p = P.new; say 1 + $p;
m: class P { method Int returns Int () {return 42};} my P $p = P.new; say 1 + $p;
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qZABB84k4s␤Missing block␤at /tmp/qZABB84k4s:1␤------> 3class P { method Int returns Int7⏏5 () {return 42};} my P $p = P.new; say 1␤»
Skarsnik m: class P { method Int() {return 42};} my P $p = P.new; say 1 + $p; 14:44
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AuR8buDWgL␤Strange text after block (missing semicolon or comma?)␤at /tmp/AuR8buDWgL:1␤------> 3class P { method Int() {return 42};}7⏏5 my P $p = P.new; say 1 + $p;␤ expecting any of:␤ …»
thomax Skarsnik: than make a bool aware infix op + and * for bool :-) it's possible these day 14:45
14:45 harrison_ joined
Skarsnik why whould I want + doing boolean algebra x) 14:46
14:46 darutoko left, darutoko joined
thomax Skarsnik: because + is logic or and * is logic end (by definition of bool algebra..) 14:47
please, someone raise a more interesting topic.
^end^and
Skarsnik logic or? there is 'or' and || already x) 14:48
14:48 ellybelly left
thomax m: say true || false; 14:48
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/s3WwplZIam␤Undeclared routines:␤ false used at line 1␤ true used at line 1␤␤»
14:48 ellybelly joined, ellybelly_ joined
harrison_ Fun Fact: I am the only one who uses Perl for coding in Kenya at Multimedia University. 14:48
thomax m: say true | false;
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/65LN1ojpcJ␤Undeclared routines:␤ false used at line 1␤ true used at line 1␤␤»
14:49 ZoffixW joined
ZoffixW m: say True || False; 14:49
camelia rakudo-moar 73d193: OUTPUT«True␤»
thomax oh, these caps..
cygx harrison_: what are the more popular choices?
thomax m: say True && False;
ZoffixW The True + 1 resulting in True because there's a Bool can be just as equally argued should result in 2, because there's an Int :)
camelia rakudo-moar 73d193: OUTPUT«False␤»
harrison_ People talk more of Java and PHP, there is Python too. 14:50
lizmat m: say True + 1
camelia rakudo-moar 73d193: OUTPUT«2␤»
lizmat ZoffixW: ^^^
ZoffixW Is there? I thought Python was just a creepy cult who practice Two Minutes of Hate about Perl
thomax lizmat: not again :-p
ZoffixW lizmat, yeah, I saw that. Makes sense to me.
harrison_ They do hate on Perl code, believe me. Funny though how they complain solely based on sigils. 14:51
lizmat m: say ?(True + 1)
camelia rakudo-moar 73d193: OUTPUT«True␤»
mspo harrison_: perl6 can be sigil-less
ZoffixW m: say True + True + True == ٣ =='٣'
camelia rakudo-moar 73d193: OUTPUT«True␤»
ZoffixW X)
mspo harrison_: but normally adds *additional* characters! $*, $! and so on :)
14:52 daxim joined
harrison_ mspo_: I so love it! And Perl 5 too! 14:52
mspo harrison_: yeah I could never get over the additional complexity of python
14:53 rurban joined, zakharyas left
mspo harrison_: but since perl was the first thing I learned it's probably messed up my brain 14:53
ZoffixW I learned Python before Perl.
uruwi ^
ZoffixW Never really cared about it.
harrison_ ZoffixW, for real?
uruwi Though not very deeply.
Just enough to write what I needed.
mspo all of my python scripts immediately use 100% cpu for some reason 14:54
ZoffixW harrison_, well... yeah, I could write simple programs in Python before I even heard of Perl, but I kinda put it back where I found it and never looked back. The whole indent-declares-blocks feels like a straight-jacket to me
El_Che I learnt spanish and dutch way before perl :)
ZoffixW So I never made any real programs with Python, but I "learned" it :)
thomax mspo: it's because the p6 release date is close. now the python scripts speed up a bit.
harrison_ ZoffixW, I know! Although I do write better code than some of the Python purists, which is funnier. 14:55
cygx learned Java before Perl
mspo I couldn't get over __init__() being in the "not line noise" language
uruwi learned Java before Perl
cygx at that point, my brain had already been damaged by C, though ;)
El_Che ZoffixW: didn't you go through the huge and complicated shell scripts phase before that?
harrison_ mspo: hahaha
uruwi also learned C before Java
ZoffixW El_Che, nope :)
El_Che ZoffixW: you missed a lot of fun
ZoffixW heh
uruwi learned TI-89 Basic before C 14:56
mspo that was my (sysadmin) progression- shell, awk, perl, $therest
thomax learned 6502 first, than, basic, pascal, c, shell, lisp and years later perl
harrison_ A Python purist came to me saying Julia will be Python's reply to Perl 6.
mspo also leaving .pyc files all over the place.. what a damned mess
lizmat ah... 6502 assembly... :-)
El_Che : (some) pascal, shell, perl, rest (Java, Ruby, some pyhton, some perl6 :) ) 14:57
uruwi harrison_ But eww, 1-based indexing
lizmat my first assembly was 8080 / Z80 though
cygx has fond memories of QBasic and nibbles
uruwi Z80 is the only one I even kinda know though
thomax i had a z80 card with cp/m on my apple ii
uruwi : GML > 83+ Basic > 89 Basic > C > Java > Racket > Scala > Python > Danmakufu (language used to program STGs) > Perl6 14:58
thomax and used ucsd pascal and borland pascal on it
El_Che I remember a fun C personal project. It took time to finish it. I replaces by a few hundreds of line of perl5 :)
lizmat Ah, the Apple
mspo I like how perl6 is almost always the shortest answer in rosettacode 14:59
thomax yepp, and ucsd pascal had a virtual machine as well
14:59 hankache joined
mspo which is why I'm trying to stick with it 14:59
harrison_ mspo, Yes!
mspo unlike erlang which I've given up on twice
thomax mspo: shortest answer means nothing. it should be a) readable and b) fast
uruwi mspo: But also not a very fast answer
14:59 raiph left
mspo shorter has a lot of to with understandable, imho 15:00
uruwi saying it as someone who did AoC in p6
mspo just say what you want done without all of the distractions
maybe I should learn prolog instead ;)
"I want X, you figure it out"
thomax haha
mspo (coffee)
dalek rl6-roast-data: cdd5c86 | coke++ | / (7 files):
today (automated commit)
15:01
hankache .tell tadzik can you please check the PR on github.com/tadzik/Template-Mojo
yoleaux hankache: I'll pass your message to tadzik.
grondilu J often wins in shortness though. But it's most obscure.
mspo grondilu: if I were younger I'd learn J and just hang out on wall st 15:03
mm monies
grondilu not sure how well are unsigned native integers are integrated now, but replacing `my @` by `my uint32 @` in rosettacode.org/wiki/SHA-256#Perl_6 changes the digest result. 15:04
15:05 skids joined
AlexDaniel m: say -Inf^..^Inf 15:05
camelia rakudo-moar 73d193: OUTPUT«-Inf^..^Inf␤»
AlexDaniel m: say Inf^..^Inf
camelia rakudo-moar 73d193: OUTPUT«Inf^..^Inf␤»
ZoffixW m: say 1^..^1 15:06
camelia rakudo-moar 73d193: OUTPUT«1^..^1␤»
ZoffixW m: say (1^..^1).elems
camelia rakudo-moar 73d193: OUTPUT«0␤»
ZoffixW m: say (Inf^..^Inf).elems 15:07
camelia rakudo-moar 73d193: OUTPUT«Inf␤»
ZoffixW orly
m: say (-Inf^..^Inf).elems
camelia rakudo-moar 73d193: OUTPUT«Inf␤»
ZoffixW neat
AlexDaniel ZoffixW: yeah, it is great
ZoffixW m: say Inf == Inf
camelia rakudo-moar 73d193: OUTPUT«True␤»
AlexDaniel it's one of those times when I expect it to give garbage and it actually makes it right
ZoffixW tries to wrap head around meaning of Inf^..^Inf 15:08
and why its .elems be Inf and not 0, since it's two same infinities
AlexDaniel m: .say for Inf..Inf
grondilu it has no meaning 15:09
ZoffixW Right
camelia rakudo-moar 73d193: OUTPUT«(timeout)Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤Inf␤I…»
ZoffixW hm
grondilu imho Inf..Inf and similar hsould fail
cygx m: say Inf < Inf
camelia rakudo-moar 73d193: OUTPUT«False␤»
ZoffixW grondilu, agreed 15:10
AlexDaniel well, either it fails or does what it does
tadzik hankache: yeah :)
yoleaux 21 Dec 2015 03:15Z <skids> tadzik: I sent PRs on Shell-Command and on Panda to remove "as" in case there is a rushed pre-xmas removal of it.
15:01Z <hankache> tadzik: can you please check the PR on github.com/tadzik/Template-Mojo
AlexDaniel because basically what you get is an infinite list…
thomax inf is as well just a conept
ZoffixW But what it does is meaningless :)
tadzik hankache: merged, thanks a lot!
15:10 darutoko left
ZoffixW Well, no, what is does is wrong, because you're asking for something meaningless but you get Inf 15:10
AlexDaniel ZoffixW: if only you treat Inf as a number 15:11
tadzik skids: alright, will take a look
15:11 xpen joined
skids tadzik: someone merged them already, I thought you... 15:11
tadzik oh
maintainers++ <3
ZoffixW m: say 'a'..'c'
camelia rakudo-moar 73d193: OUTPUT«"a".."c"␤»
ZoffixW m: say |'a'..'c' 15:12
camelia rakudo-moar 73d193: OUTPUT«1.."c"␤»
geekosaur [22 15:09] <cygx> m: say Inf < Inf mathematically this is nonsense...
ZoffixW m: say |('a'..'c')
camelia rakudo-moar 73d193: OUTPUT«abc␤»
AlexDaniel geekosaur: False is probably a good answer for nonsense? :)
ZoffixW It's possible for one infinity to be smaller than the other, tho
AlexDaniel maybe not though
geekosaur not really. you can for example confuse the heck out of a sort that way 15:13
15:13 xpen left
AlexDaniel m: say -Inf < Inf 15:13
ZoffixW hmhmhmh
camelia rakudo-moar 73d193: OUTPUT«True␤»
geekosaur arguably it should return a nonvalue
AlexDaniel m: say Inf > Inf
camelia rakudo-moar 73d193: OUTPUT«False␤»
AlexDaniel m: say Inf > -Inf
camelia rakudo-moar 73d193: OUTPUT«True␤»
ZoffixW That is nonsense ^
15:13 xpen joined
AlexDaniel m: say Inf <=> -Inf # I wanted this 15:13
camelia rakudo-moar 73d193: OUTPUT«More␤»
Skarsnik is that possible to defined a = operator for a particular left Type? lik my Type $a = $b; 15:14
ZoffixW Or is it? My brain's collapsing on itself /o\
m: say Inf -1 > Inf
camelia rakudo-moar 73d193: OUTPUT«False␤»
ZoffixW m: say Inf > Inf -1
camelia rakudo-moar 73d193: OUTPUT«False␤»
ZoffixW m: say Inf == pi.chars 15:15
camelia rakudo-moar 73d193: OUTPUT«False␤»
thomax m: say Inf - Inf
camelia rakudo-moar 73d193: OUTPUT«NaN␤»
AlexDaniel come on, we are not going to return undef for numeric comparison operators 15:16
thomax as a system programmer i'm happy to don't deal with concepts like Inf
AlexDaniel or are we…
thomax: unless you use infinite lists? :) 15:17
gtodd ZoffixW: infinities ... are cool :-0
cygx m: say Inf ~~ Cool
camelia rakudo-moar 73d193: OUTPUT«True␤»
cygx checks out
skids tadzik: Oh damn. The githib quickedit faked me out again so the Shell::Command fix was never actually PRd.
ZoffixW m: say (1, 2, 3 ... *) < (0.1, 0.2, 0.3 ...* )
camelia rakudo-moar 73d193: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/nw0qfQUgIG:1␤␤Actually thrown at:␤ in block <unit> at /tmp/nw0qfQUgIG:1␤␤»
ZoffixW aww :(
15:17 xpen_ joined
gtodd oh I though Inf was a C OO L :-P 15:18
tadzik ow
ZoffixW m: my @smaller-inf = (1, 2, 3 ... *); my @larger-inf = (0.1, 0.2, 0.3 ...* ); say so @smaller-inf.elems < @larger-inf.elems 15:19
camelia rakudo-moar 73d193: OUTPUT«Cannot .elems a lazy list␤ in block <unit> at /tmp/vGHUoqNPVr:1␤␤Actually thrown at:␤ in block <unit> at /tmp/vGHUoqNPVr:1␤␤»
skids tadzik: IIRC it was just line 47 needing Str()
gtodd if perl6 is consistent-ish with the latest math geek thinking about Infinite Infinities and has real numbers :-D it will be very Cool
15:20 pmurias joined
ZoffixW m: say 1/∞ 15:20
camelia rakudo-moar 73d193: OUTPUT«0␤»
ZoffixW wat :|
That should be NaN 15:21
15:21 xpen left
AlexDaniel m: .say for Inf..1 15:21
camelia ( no output )
FROGGS m: .say for -Inf..1
camelia rakudo-moar 73d193: OUTPUT«(timeout)-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-Inf␤-I…»
pmurias Juerd: I wouldn't use JavaScript as an example of thought out design 15:22
AlexDaniel jnthn: It looks like rt.perl.org/Public/Bug/Display.html?id=125336 is now fixed. Um, all by itself. I don't know, maybe you want to take a look. If it is, then just mark it as “tests needed” perhaps?
FROGGS design just happened to JavaScript when it was a teenager 15:23
hankache tadzik: no worries dear, thank you. 15:24
15:26 prammer left
ZoffixW m: my \ⁿ = pi; say eⁱ*ⁿ+1 ≅ 0 15:26
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eLQVchD_Xj␤Undeclared routine:␤ eⁱ used at line 1␤␤»
15:27 lnrdo_ joined
ZoffixW huh 15:27
m: sub eⁱ { say e**i }; eⁱ
camelia rakudo-moar 73d193: OUTPUT«0.54030230586814+0.841470984807897i␤»
ZoffixW :o
15:27 flaviusb left
ZoffixW m: $x₁ = 2; $x₂ = 4; say $x₁² + $x₂² 15:29
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/khpUMXKSFm␤Variable '$x' is not declared␤at /tmp/khpUMXKSFm:1␤------> 3<BOL>7⏏5$x₁ = 2; $x₂ = 4; say $x₁² + $x₂²␤»
ZoffixW aww
lnrdo_ ZoffixW: Just retried the process to install moar, panda & Task::Star. It worked. DBIish is not a dep anymore and do not work by it self. Just to inform.
15:29 flaviusb joined, lnrdo_ left
ZoffixW Yeah, I think someone tossed failing modules from Task::Star last night. 15:29
oh 15:30
Skarsnik duh, DBIish should work
ZoffixW m: my $x₁ = 2; my $x₂ = 4; say $x₁² + $x₂²
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BL5YoorgiT␤Bogus postfix␤at /tmp/BL5YoorgiT:1␤------> 3my $x7⏏5₁ = 2; my $x₂ = 4; say $x₁² + $x₂²␤ expecting any of:␤ constraint␤ infix␤ infix stopper␤ …»
ZoffixW dammit
My hopes were raised and dashed expertly :)
It'd be pretty cool to make it work tho
15:30 loren left
thomax DBIish should work, indeed 15:30
ZoffixW m: my \x₁ = 2; my \x₂ = 4; say x₁² + x₂²
camelia rakudo-moar 73d193: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RjDSHgfvFe␤Term definition requires an initializer␤at /tmp/RjDSHgfvFe:1␤------> 3my \x7⏏5₁ = 2; my \x₂ = 4; say x₁² + x₂²␤»
ZoffixW m: sub term:<x₁> {2}; sub term:<x₂> {4}; say x₁² + x₂² 15:31
camelia rakudo-moar 73d193: OUTPUT«20␤»
ZoffixW \o/
15:31 rurban_ joined
ZoffixW m: my \xₙ = 2; my \xₘ = 4; say xₙ² + xₘ² 15:32
camelia rakudo-moar 73d193: OUTPUT«20␤»
ZoffixW It's kinda weird that subscribt letters work, but numbers don't
thomax :-)
15:33 loren joined, rurban left
ZoffixW m: my \xₙ = 3; my \xₘ = 4; my \yₔ = 5; say xₙ² + xₘ² == yₔ² 15:33
camelia rakudo-moar 73d193: OUTPUT«True␤»
ZoffixW :D
thomax in a programming language, i wouldn't use any characters i can't reach via a plain vt102 terminal 15:34
ZoffixW But why?
I think it's important to progress a programming language closer to how humans communicate with each other, using plain language, symbols and math 15:35
thomax because my programs should be editable under any circumstances
geekosaur sometimes needs to get at code from e.g. an Android terminal program (think connectbot) that may not be very Unicode-y
ZoffixW What I hear you saying is much of current software is shit and can't handle Unicode correctly :) 15:36
The solution is to fix that software and to force people to stop writing such software. Not to remain in the stoneage and avoid Unicode :)
geekosaur what you hear me saying is that I do not have control over everything between me and something I need to debug\
ZoffixW points at how Apple murdered Flash
geekosaur and it is pointless to whine about how everyone ought to update to the latest everything when there is large enterprise change control in play 15:37
thomax yepp 15:38
but for sure, it looks nice
lizmat
.oO( Flash was so bad, even Adobe doesn't want to have anything to do with it )
15:39
dalek kudo/nom: 0be08d5 | lizmat++ | src/core/Temporal.pm:
Small speedup on days-in-month calculation
15:40
cygx who needs flash? silverlight is, like the future, man!
ZoffixW heh
15:40 loren left
thomax silverlight? 15:41
Skarsnik FROGGS, I have weird issue with Pointer.deref comparing to calling nativecast directly
ZoffixW thomax, microsoft's failed attempt at doing the same thing as Flash 15:42
Skarsnik I am not sure how to golf that ~~ 15:43
thomax ah, ok. m$. not my world.
geekosaur silverlight's already on life support 15:44
ZoffixW m: sub fib (Int $n) { my \φ = (1+sqrt(5))/2; ( φ**$n - (-1/φ)**$n ) / sqrt(5) }; say fib 10000
camelia rakudo-moar 73d193: OUTPUT«Numeric underflow␤ in sub fib at /tmp/Am3Mgb7SW4:1␤ in block <unit> at /tmp/Am3Mgb7SW4:1␤␤Actually thrown at:␤ in sub fib at /tmp/Am3Mgb7SW4:1␤ in block <unit> at /tmp/Am3Mgb7SW4:1␤␤»
ZoffixW underflow? :(
m: say (1/1², 1/2², 1/3² ... 1/*²)[5] 15:46
camelia rakudo-moar 73d193: OUTPUT«Cannot call Numeric(Whatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/IklxrSAMHz:1␤␤»
15:46 RabidGravy joined
ZoffixW m: say map 1/*², 1..* 15:47
camelia rakudo-moar 73d193: OUTPUT«Cannot call Numeric(Whatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/YUSVjNGiNh:1␤␤»
ZoffixW bruh
m: say map 1/***2, 1..*
camelia rakudo-moar 73d193: OUTPUT«Cannot call Numeric(Sub: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/cHBu_ggyxk:1␤␤»
ZoffixW heh
Skarsnik FROGGS, Internal error: inconsistent bind result in method deref at /home/skarsnik/.rakudobrew/moar-nom/install/share/perl6/sources/C7890ECB4E25D599B1CAB139328C93400ABB5545:52 I think it's because the implicit return try to bind and for some reason that not good?
RabidGravy erp 15:48
FROGGS Skarsnik: I dunno, I'd need a golf I'd think 15:49
Skarsnik The issue it does not fail for every data I get ~~
cygx o/ 15:52
15:52 cygx left
ZoffixW m: my $*TOLERANCE = 1e-4; say π²/6 ≅ [+] map { 1/$_² }, 1..50000 15:54
camelia rakudo-moar 0be08d: OUTPUT«True␤»
ZoffixW \o/
15:57 jczeus left
lizmat .tell masak looking at DateTime.now.later(:hour(1.5)) : is there a reason for not allowing that? 15:57
yoleaux lizmat: I'll pass your message to masak.
thomax how do you create such a sign with a standard keyboard?
ZoffixW \o/ lizmat++
lizmat .tell masak e.g., because not every hour is 3600 seconds ?
yoleaux lizmat: I'll pass your message to masak.
ZoffixW m: say DateTime.now.later: :months(1.5) 15:58
camelia rakudo-moar 0be08d: OUTPUT«This type cannot unbox to a native integer␤ in block <unit> at /tmp/CzZMKBfONL:1␤␤»
ZoffixW m: say DateTime.now.later: :months(1)
camelia rakudo-moar 0be08d: OUTPUT«2016-01-22T16:58:31.469671+01:00␤»
hankache .tell MadcapJake can you please check the issue I opened related to github.com/MadcapJake/language-perl6fe
yoleaux hankache: I'll pass your message to MadcapJake.
lizmat ZoffixW: fwiw, months I can see being an issue
as not every month has the same length
same goes for years 15:59
15:59 darutoko joined
lizmat but days/hours/minutes have the same length, very generally 15:59
except for leap secs of course
grondilu m: my $*TOLERANCE = 1e-4; say π²/6 ≅ [+] map 1/*², 1..50000
camelia rakudo-moar 0be08d: OUTPUT«Cannot call Numeric(Whatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/DxqQMJSTBs:1␤␤»
ZoffixW lizmat, I recall a discussion on this topic in here like a 6-12 months ago. With the decision that if you overflow you'd use last day or first day or something
lizmat I'm not talking about that 16:00
I'm talking about the fact that if we allow fractions for hour / minute/ day
what it means:
gfldex thomax: github.com/jshholland/irssi-script...igraphs.pl
ZoffixW m: say DateTime.now.clone( :1month :31day ).later: :months(1)
camelia rakudo-moar 0be08d: OUTPUT«2015-02-28T17:00:51.971010+01:00␤»
grondilu can't curry ²?
lizmat is 1.5 hour always 5400 seconds ?
ZoffixW No 16:01
grondilu m: say map *², ^10;
camelia rakudo-moar 0be08d: OUTPUT«Cannot call Numeric(Whatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/Foc8fWg_De:1␤␤»
lizmat is 1.5 minute always 90
ZoffixW Leap seconds is a thing
But we do handle leap months. I dunno how hard it'd be to handle leap whatever
s/months/days/
lizmat well, that's the question really
if we say ".later(:hour(1.5)) 16:02
ZoffixW m: say DateTime.now.clone( :2month :28day ).later: :days(1)
camelia rakudo-moar 0be08d: OUTPUT«2015-03-01T17:02:15.567692+01:00␤»
lizmat does that always mean 5400 seconds?
or sometimes 5401 seconds ?
ZoffixW m: say DateTime.now.clone( :2000year :2month :28day ).later: :days(1)
camelia rakudo-moar 0be08d: OUTPUT«2000-02-29T17:02:25.426656+01:00␤»
Skarsnik it's weird, there is lot of test in DateTime for that x)
16:02 prammer joined
lizmat ZoffixW: as long as they're Int's the meaning is clear 16:03
ZoffixW Doesn't seem there's a solid formula for leap seconds: en.wikipedia.org/wiki/Leap_second#...ap_seconds
They just decide when to put them in
geekosaur yes, the earth doesn't provide nice timetables for how its rotation changes 16:04
16:04 xpen_ left
ZoffixW ¯\_(ツ)_/¯ my usecase for :hours(1.5) was calculating UTC offsets 16:04
geekosaur too many variables
lizmat I guess one alternative could be to just convert to seconds, find out what later is, then find out if there was a leap sec in between 16:05
thomax afaik, there is one single person on earth who ajust leapseconds every X years
16:06 iH2O joined
gtodd thomax: and to quote sys.admin.recovery (??) they could be replaced by a perl script ;-) 16:07
iH2O p6: say 3
camelia rakudo-moar 0be08d: OUTPUT«3␤»
gtodd thomax: or perl6 which could take it to infintiy
and beyond
iH2O God loves perl6 16:08
16:08 mohae joined
thomax at www.iers.org/ maybe 16:08
geekosaur alt.sysadmin.recovery >.> 16:09
16:09 kjs_ joined
dalek kudo/nom: ebe1c79 | lizmat++ | src/core/Temporal.pm:
Speed up day-of-year a bit
16:09
nine We should fix earth to get this rotation thing right instead of working around the real issue.
16:09 jevin_ left
gtodd m: say 3++ ; 16:10
camelia rakudo-moar 0be08d: OUTPUT«Cannot call postfix:<++>(Int); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)␤ (num …»
ZoffixW nine, that's pretty easy. We just need to get rid of the Moon :P
gtodd :-D
thomax rofl
gtodd ok ... so ∞++ is not going to work
nine ZoffixW: well volunteered! 16:11
ZoffixW lol
thomax and 365 days also don't fit in any logical category 16:12
geekosaur and stop all earthquakes and stop global warming so the glaciers will stop melting and do something about the mantle plume under Iceland and ... 16:13
gtodd m: say ∞ ;
RabidGravy so. if I implement an Associative type myself and have a say .values is there any way that it can "know" that the target is rw?
camelia rakudo-moar 0be08d: OUTPUT«Inf␤»
gtodd m: say ∞ + 1 ;
camelia rakudo-moar 0be08d: OUTPUT«Inf␤»
gtodd m: say "∞ and beyond"
camelia rakudo-moar 0be08d: OUTPUT«∞ and beyond␤»
RabidGravy e.g. if I have "my %h = Foo.new; for %h.values <-> $v { }" can it know that? 16:14
16:15 tadzik left
hankache panda install Pod::To::HTML is unsuccessful, any ideas why ? 16:16
Skarsnik how does it fail? 16:17
16:17 khw joined
hankache the last test fails 16:17
ZoffixW m: say DateTime.new( :2015year :6month :30day :23hour :59minute :59second ).later: :1second
camelia rakudo-moar 0be08d: OUTPUT«2015-06-30T23:59:60Z␤»
hankache t/05-zero-width-index.t ..
ZoffixW lizmat, ^ seems we handle leap seconds already, so I'd think making :hours(1.5) work should be trivial 16:18
m: say DateTime.new( :2016year :6month :30day :23hour :59minute :59second ).later: :1second
camelia rakudo-moar 0be08d: OUTPUT«2016-07-01T00:00:00Z␤»
lizmat m: say DateTime.new( :2015year :6month :30day :23hour :59minute :59second ).later: :1minute 16:19
camelia rakudo-moar 0be08d: OUTPUT«2015-07-01T00:00:59Z␤»
ZoffixW m: say DateTime.new( :2015year :6month :30day :23hour :59minute :0second ).later: :1minute
camelia rakudo-moar 0be08d: OUTPUT«2015-07-01T00:00:00Z␤»
lizmat m: say DateTime.new( :2015year :6month :30day :23hour :59minute :59second ).later: :1minute # 1 minute is 61 seconds 16:20
camelia rakudo-moar 0be08d: OUTPUT«2015-07-01T00:00:59Z␤»
16:20 xpen joined, xpen left 16:21 rindolf left
ZoffixW weird 16:21
m: say DateTime.new( :2016year :6month :30day :23hour :59minute :59second ).later: :1minute
camelia rakudo-moar 0be08d: OUTPUT«2016-07-01T00:00:59Z␤»
lizmat the minute is logical, not 60 seconds ;-) 16:22
16:22 andreoss joined
ZoffixW m: say DateTime.new( :2015year :6month :30day :23hour :59minute :60second ).later: :1minute 16:22
camelia rakudo-moar 0be08d: OUTPUT«2015-07-01T00:01:00Z␤»
16:25 rurban_ left
ZoffixW detracts previous comments about 1.5 being trivial 16:25
Anyone knows where the sauce for DateTime is? I don't see it in nom/src/core 16:29
Skarsnik core/Timeline
lizmat src/core/Temporal
ZoffixW Thanks 16:30
Skarsnik yes Temporal xD
hoelzro o/ #perl6
ZoffixW \o
pmurias hoelzro: \o 16:31
hoelzro o/ ZoffixW, pmurias
ZoffixW huh
lizmat ZoffixW: ??
16:32 mohae left
ZoffixW Oh, nm. confused .clone with .later 16:32
It's not documented that that both 'second' and 'seconds' work :) 16:33
m: say DateTime.now.later: :2seconds
camelia rakudo-moar ebe1c7: OUTPUT«2015-12-22T17:33:19.489182+01:00␤»
MadcapJake hankache: I just fixed your issue. Somehow missed an alternation when I added the `size_t` type. Thanks for posting the issue! 16:34
yoleaux 15:58Z <hankache> MadcapJake: can you please check the issue I opened related to github.com/MadcapJake/language-perl6fe
ZoffixW Ah, it is. Just not under each unit 16:35
hankache MadcapJake Thanks dear :)
dalek p: 0ea455c | (Pawel Murias)++ | t/nqp/81-radix.t:
Makes radix test with lowercase really use lowercase.
16:36
p: 05c2690 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
[js] Fix bug with slurpy params.
p: e1c72a9 | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Implement nqp::radix_I.
p: 73c1e7f | (Pawel Murias)++ | t/nqp/81-radix.t:
Test nqp::radix_I.
ZoffixW sees a solution for :hours(1.5) 16:39
16:40 iH2O left
Skarsnik if you are bored you can change the . for subsecond in the default formater to a coma x) 16:40
ZoffixW Before entering the given $unit {...} change unit to a next smaller one, multiplying the given number by how many of those smallers units fit into the larger one
16:41 rurban_ joined 16:42 rindolf joined 16:43 hankache left
ZoffixW Hm, that won't work for :months(1.3) or :years(1/378432000) 16:44
Dates suck :(
gfldex .oO( Dem Glücklichen schlägt keine Stunde. ) 16:45
ZoffixW What?! Get out! My mother was a saint! 16:46
16:47 hankache joined
dalek kudo/nom: 77e3d4b | lizmat++ | src/core/ (3 files):
Make tai-utc a class with class methods

Our subs are notoriously slow atm, so replace the module by a class that has class methods, which optimize better in the current context.
16:47
16:47 FROGGS left 16:48 xfix joined 16:51 keix left 16:53 ZoffixW left
hankache what is the equivalent of s/// in Perl 6? 16:56
andreoss m: role F { has $.a = "defaulty" } ; class D does F { } ; class S is D { has $.a = "hello" }; say S.new.a;
camelia rakudo-moar 77e3d4: OUTPUT«hello␤»
andreoss okay
hankache #search and replace using regex
andreoss m: role F { has $.a = "defaulty" } ; class D does F { has $a. = "fail" } ; class S is D { has $.a = "hello" }; say S.new.a;
camelia rakudo-moar 77e3d4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SO57isM1pO␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/SO57isM1pO:1␤------> 3"defaulty" } ; class D does F { has $a.7⏏5 = "fail" } ; class S is D { has $.a = "␤»
andreoss m: role F { has $.a = "defaulty" } ; class D does F { has $.a = "fail" } ; class S is D { has $.a = "hello" }; say S.new.a;
camelia rakudo-moar 77e3d4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gyxMcabIaw␤Attribute '$!a' already exists in the class 'D', but a role also wishes to compose it␤at /tmp/gyxMcabIaw:1␤»
nebuchadnezzar m: my $v = "foo"; $v ~~ s/foo/bar/; say $v 16:57
camelia rakudo-moar 77e3d4: OUTPUT«bar␤»
hankache ah ok so same syntax as Perl 5 16:58
thanks nebuchadnezzar
thomax but s///g didn't work, or? 16:59
nebuchadnezzar doc.perl6.org/language/regexes 17:00
lizmat m: my $a = "foo"; $a ~~ s/o/a/; say $a
camelia rakudo-moar 77e3d4: OUTPUT«fao␤»
nebuchadnezzar adverbs are put in front now
lizmat m: my $a = "foo"; $a ~~ s:g/o/a/; say $a
camelia rakudo-moar 77e3d4: OUTPUT«faa␤»
hankache m: my Str $x = "Time to feed the cat!"; $x ~~ s/ cat / hacker /; say $x; 17:02
camelia rakudo-moar 77e3d4: OUTPUT«Time to feed the hacker !␤»
17:02 rurban_ left
hankache why is it space sensitive?? 17:02
^^
m: my Str $x = "Time to feed the cat!"; $x ~~ s/ cat / hacker /; say $x; 17:03
camelia rakudo-moar 77e3d4: OUTPUT«Time to feed the hacker !␤»
hankache is this normal? s/not sensitive to whitespace/sensitive to whitespace ? 17:04
nebuchadnezzar hankache: the replacement string is litteral
m: my Str $x = "Time to feed the cat!"; $x ~~ s/ cat /hacker/; say $x; 17:05
camelia rakudo-moar 77e3d4: OUTPUT«Time to feed the hacker!␤»
andreoss can i proto class?
17:05 risou is now known as risou_awy
nebuchadnezzar hankache: the regexp part is not whitespace sensitive 17:05
andreoss m: proto class Foo {*}; say Foo.WHAT 17:06
camelia rakudo-moar 77e3d4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rBhi6RY_KY␤Missing block␤at /tmp/rBhi6RY_KY:1␤------> 3proto class7⏏5 Foo {*}; say Foo.WHAT␤ expecting any of:␤ new name to be defined␤»
17:06 risou_awy is now known as risou
nebuchadnezzar hankache: you have quite extensive informations in the documentation 17:06
dalek p: 5376b23 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js:
[js] Make radix_I and radix accept all the flags.
p: 8c64347 | (Pawel Murias)++ | t/nqp/81-radix.t:
Test radix flags.
hankache nebuchadnezzar++ 17:07
17:08 rvchangue left
andreoss m: class Foo { ... }; say Foo.WHAT 17:12
camelia rakudo-moar 77e3d4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dDPHPbTmgw␤The following packages were stubbed but not defined:␤ Foo␤at /tmp/dDPHPbTmgw:1␤------> 3class Foo { ... }; say Foo.WHAT7⏏5<EOL>␤ expecting any of:␤ postfix␤ st…»
17:12 hankache left, harrison_ left, keix joined 17:13 AlexDaniel left 17:16 pmurias left 17:22 rvchangue joined 17:29 lucasb joined 17:32 prammer left
dalek kudo/nom: 1088291 | lizmat++ | src/core/ (2 files):
Move get-local-timezone-offset to Rakudo::Internals

Also streamline a bit
17:33
flussence (subs are that much slower than methods? I would've assumed the opposite to be true) 17:34
lizmat flussence: it's the lookup of *our* subs!
A::foo() vs A.foo()
flussence oh, "my" subs are fine then?
lizmat yup
which is the default, yes
flussence that's a relief :)
«Stage parse : 124.864» -- owww... that's 150% of normal 17:41
lizmat huh? 17:42
flussence I usually get 80-90s for that, the other numbers have scaled up a bit too... 17:43
lizmat have been getting between 48/49 secs so far
are you at nom?
flussence just built 1088291, yep 17:44
oh whoops, false alarm
forgot I had another window open doing other compilation stuff...
awwaiid Can someone with powers for doc.perl6.org take a look at github.com/perl6/doc/issues/253 ? Basically it requires a new rakudo, as the current one doesn't know about MONKEY-SEE-NO-EVAL but the code has been updated to use the pragma 17:46
17:49 dakkar left
TimToady m: my Str $x = "Time to feed the cat!"; $x ~~ s[ cat ] = 'hacker' ; say $x; 17:50
camelia rakudo-moar 77e3d4: OUTPUT«Time to feed the hacker!␤»
timotimo my driving was a success
moritz awwaiid: doing it now 17:51
awwaiid thank you moritz
thomax timotimo: oh, i thought you just sit in the car. didn't aware that you drove it.
TimToady .tell hankache see irclog.perlgeek.de/perl6/2015-12-22#i_11759252 for how to put spaces around the replacement 17:52
yoleaux TimToady: I'll pass your message to hankache.
flussence
.oO( it's one of them classic cars, with a steering wheel... )
17:53 s_kilk joined
timotimo thomax: the car kind of sort of drove itself 17:53
i mean, i didn't put much work into the driving part
RabidGravy I just sit in the car, I even have beer
thomax needs to fix some issues on his simson schwalbe 17:55
17:56 brrt joined
lucasb m: { !! } 17:58
camelia ( no output )
lucasb m: { say !! }
camelia rakudo-moar 108829: OUTPUT«Non ast passed to WANTED: NQPMu␤Non-QAST node visited NQPMu␤Weird node visited: NQPMu␤Weird node in analyze: NQPMu␤===SORRY!===␤Unknown QAST node type NQPMu␤»
lucasb without the block, it's an error, as expected
17:59 mohae joined
moritz oom 18:00
installing panda with a freshly brewed rakudo fails 18:01
with an error that looks like it's coming from Test.pm
18:01 harrison_ joined
moritz EVAL is a very dangerous function!!! (use MONKEY-SEE-NO-EVAL to override, 18:01
at /home/rakudobrew/rakudobrew/moar-nom/install/share/perl6/sources/F8FD1F2FA036B47A236AF2A54FCFD435C80D7177:195
flussence just successfully installed everything up to linenoise, but isn't using rakudobrew
moritz ------> llable ?? $op !! try EVAL "&infix:<$op>"⏏ -> $matcher {
llfourn moritz: I had the same problem earler today
moritz so, it is picking up an older, precompiled version of Test.pm? 18:02
llfourn had to rm rakudo/install
flussence moritz: that sounds like a familiar problem
llfourn and make install...yep that's what seemed to be happening
TimToady yes, I've been carping about that failure mode, but you can blow away install/share/perl6 to fix it 18:03
moritz that makes me worry that the dependency tra<cking in curli is somehow broken :/
TimToady metwo
thomax does error codes stay like this? ...l6/sources/F8FD1F2FA036B47A236AF2A54FCFD435C80D7177:195
aeh, not codes but context hints 18:04
TimToady it could perhaps put the original name in parens?
moritz TimToady: that would help immensely
flussence it could put the original name somewhere in the filename...
TimToady well, there's no guarantee the original filename will even work in the filesystem 18:05
flussence even a module name squashed to ascii alnum's better than nothing :)
TimToady I do like having an identity that (very nearly almost) can't collide 18:06
but it's not terribly user-friendly in its aspect :)
18:08 lucasb left
dalek href="https://perl6.org:">perl6.org: 9fb575b | moritz++ | / (5 files):
Change some HTTP links to HTTPS
18:08
moritz Public Service Announcement: IRC logs now with SSL: irclog.perlgeek.de/ 18:09
flussence having {$sha1}-{$sanitized-name}" as the filename could work, I'm averse to suggesting things that might cause slowdown though.
yay! moritz++
TimToady I do think just saying the name in parens will be sufficient to pacify the masses 18:10
flussence good enough for me :)
TimToady who, if they see only sha-1s will rise up and slay us
18:11 ChanServ sets mode: +o moritz
TimToady but it's very nice to be able to copy/paste the actual filename to look at, so I still think the hash should be primary 18:11
thomax yepp! don't force me to build checksums of those dirs!
moritz »ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! 18:11
geekosaur should std: still be mentioned there? 18:12
timotimo honestly, i'd prefer not to get slain any time soon
TimToady we can drop it
moritz std: 42
camelia std : OUTPUT«No such file or directory»
18:12 espadrine left
moritz »ö« 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!
timotimo admin plz install 42 it sez no such file or directory k thx 18:12
camelia std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory␤» 18:13
TimToady it was a prototype that we actually planned to throw away, for a change :)
mst admin plz cure camelia's std
flussence the timeoutcat ate it!
TimToady std successfully infected others
18:20 spider-mario joined 18:21 hankache joined 18:24 tadzik joined
Skarsnik hm, is there a way to get Module::Role if the Role is declared with my? 18:27
llfourn Skarsnik: get an object doing the role and .^roles maybe? 18:34
18:38 harrison_ left, FROGGS joined
FROGGS o/ 18:38
Skarsnik wb FROGGS, I have a question with Str encoded and NC xD 18:39
FROGGS Skarsnik: ask :o)
Skarsnik If I say that my returned string is ascii, perl6 keep it ascii or It's unicode? 18:40
FROGGS Skarsnik: string are always NFG strings, is that what you ask? 18:41
strings*
Skarsnik I try to solve the mysql/dbiish issue to return blob (or even different encoding according to the field encoding) and I want to always work the c string with no encoding to encode them after. 18:42
or should I use Blob as return type instead of Str 18:44
18:44 gtodd left
FROGGS Blob wont work because its repr is a VMArray 18:45
and a VMArray needs to know its length, err elems
there is currently no way of telling that you want to return a null terminated buffer
[Tux] o/ 18:46
FROGGS otherwise a buf8 would be a good choice
hi [Tux]
Skarsnik: so for now you'd have to return an ascii string and recode that 18:47
timotimo .o( ubf8 )
Skarsnik so if I do sub foo is native returns Str encoded('ascii'); I still have a unicode string?
FROGGS Skarsnik: you'll get an NFG string 18:48
but when code point mapping is what ascii demands
but the*
Skarsnik sound like I don't have the real raw data still them 18:49
FROGGS ohh
wait
MVM_exception_throw_adhoc(tc,
"Will not decode invalid ASCII (code point > 127 found)");
that's in MoarVM/src/core/strings/ascii.c
timotimo yeah 18:50
TimToady m: multi sub infix:<+>(Bool $a, Bool $b) { Bool($a + $b) }; say True + True
camelia rakudo-moar 108829: OUTPUT«Memory allocation failed; could not allocate 122464 bytes␤»
TimToady cool, a bug!
FROGGS wait, cant we nativecast to a Str?
TimToady I was gonna say, it's easy to implement boolean algebra if you need it, but... :) 18:51
Skarsnik good question x)
timotimo TimToady: i don't see the bug yet
Skarsnik it's a bit weird we have the clever Str return type but nothing for just 'some data ending with a \0' 18:52
FROGGS Skarsnik: if you return a Pointer $p, you should be able to do this later: my $result = nativecast(Str is encoded('utf8'), $p)
TimToady ah, it's a bug in my program :)
m: multi sub infix:<+>(Bool $a, Bool $b) { Bool($a or $b) }; say True + True
camelia rakudo-moar 108829: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aHOFaUsEL7␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/aHOFaUsEL7:1␤------> 3ub infix:<+>(Bool $a, Bool $b) { Bool($a7⏏5 or $b) }; say True + True␤ expecting a…»
18:52 vendethiel joined
timotimo that's more interesting 18:53
TimToady m: multi sub infix:<+>(Bool $a, Bool $b) { Bool($a || $b) }; say True + True
camelia rakudo-moar 108829: OUTPUT«True␤»
TimToady there we go
Skarsnik I could maybe work around with CArray[int8] since I have the lenght, but it's ugly xD
timotimo or's precedence is too loose for that syntax? why should it be a problem there, though?
TimToady Skarsnik: Boolean algebra can be implemented if you really want it, but the use case for it in normal programming is not very common
FROGGS Skarsnik: do what I just said, it is the best way me thinks
Skarsnik Should I create a ticket or something to have a raw_c_string type in NC? 18:55
FROGGS Skarsnik: go ahead, but perhaps request a null terminated buffer instead
vendethiel o/, #perl6 18:56
timotimo o/ vendethiel
FROGGS TimToady: didnt we want to rename nativecast and nativesizeof to something else?
TimToady: like with a dash? I guess we should do it now or never..
Skarsnik hm I am for NATIVECAST 18:57
TimToady I dunno, it looks pretty low-level to run 'em all together :)
FROGGS ohh no
timotimo Skarsnik: the thing is that you can just pass the c-string around as a regular pointer to every native function that expects a char*. and when you want an actual Str, you use "nativecast" 18:58
FROGGS: do you think we should teach nativecast about a "null-terminated array" kind of thing? 18:59
well ... would not really be a cast, i'm imagining more like a copy
FROGGS timotimo: yes, that is what I think
18:59 crux joined
FROGGS timotimo: though, guessing the size has always been a weird and sometimes problematic thing 19:00
timotimo mhm
FROGGS timotimo: so a 'returns buf8[32]' might also be awesome to have
timotimo it's more likely that you'll figure out the size of the returned buffer as you call the native function 19:01
skids Well really C libraries that don't give you at least a #define for an upper limit are pretty broken, and really should be passing you back lengths, but anyway.
FROGGS timotimo: yes, we'd probably need both
skids I've always been partial to "ztr" for a "zed" terminated str :-)
FROGGS skids: yes, "should"
timotimo like, a function could return a size as an int and set a int8_t** in the argument list
FROGGS Skarsnik: we can close this, right? rt.perl.org/Ticket/Display.html?id=126645 19:02
19:03 molaf joined 19:04 lucasb joined 19:05 bitmap left 19:06 bitmap joined
skids For those competently implemented C libraries, eventually it might be nice to be able to associate a char* with a size_t via some sugar in the signature. 19:06
FROGGS skids: we've thought about that too
skids Which would lead to people asking for a way to just make "get a pointer, look for zero terminator, cram the result into a buf" as an additional sugar. 19:07
lucasb m: say(True or False)
camelia rakudo-moar 108829: OUTPUT«5===SORRY!5=== Error while compiling /tmp/A1meiQFn52␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/A1meiQFn52:1␤------> 3say(True7⏏5 or False)␤ expecting any of:␤ infix␤ infix stopper␤»
19:07 colomon_ joined
lucasb ^^ shouldn't that be allowed? bug, right? 19:08
timotimo m: say((True or False))
camelia rakudo-moar 108829: OUTPUT«True␤»
19:09 colomon left, colomon_ is now known as colomon
FROGGS m: say(1 or 2) # is that a precedence bug? 19:10
camelia rakudo-moar 108829: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fOoDhURmtq␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/fOoDhURmtq:1␤------> 3say(17⏏5 or 2) # is that a precedence bug?␤ expecting any of:␤ infix␤ …»
FROGGS or a braino?
timotimo i think it's a bug in the allowed maximum precedence we'd parse inside those parens
TimToady no, it's intentional 19:11
Skarsnik FROGGS, Oh yeah you can probably close the RT, I think I left it open because the : solution was meh x)
FROGGS I remember having hard times with that in v5
TimToady commas are special in arg lists
timotimo oh, and "or" is looser than ,
TimToady the limit is actually set at listop precedence 19:13
m: say(1 X 1,2,3)
camelia rakudo-moar 108829: OUTPUT«((1 1) (1 2) (1 3))␤»
vendethiel wrote a perl one-liner for a friend today, and wish he could've used 6 instead :p
TimToady so we can have list infixes
at this point it would be difficult to find a precedence design issue we haven't already thought about once or twice :) 19:15
19:16 lostinfog joined
lucasb ok, not a bug, then. But it surprised me. Maybe I have to get more acquainted with the precedence table 19:18
zacts \o/ go perl6!
grondilu it's actually the same even when it's not a arg list
zacts happy perl6 tuesday
grondilu m: say my @ = 1 X 1,2,3
camelia rakudo-moar 108829: OUTPUT«[(1 1) (1 2) (1 3)]␤»
19:19 mohae left
lucasb m: say(do True or False) # is the the "right" way to write that? 19:19
camelia rakudo-moar 108829: OUTPUT«True␤»
lucasb *is this
19:19 brrt left
grondilu no neeed for "do" 19:19
m: say True or False
camelia rakudo-moar 108829: OUTPUT«True␤»
lucasb grondilu: try say True and False :) 19:20
19:20 zengargoylew joined
grondilu m: say True and False 19:20
camelia rakudo-moar 108829: OUTPUT«True␤»
grondilu is confused
m: say(True and False)
camelia rakudo-moar 108829: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ixAjAdVu2E␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/ixAjAdVu2E:1␤------> 3say(True7⏏5 and False)␤ expecting any of:␤ infix␤ infix stopper␤»
timotimo right; the only other way would be to introduce a maximum-loose comma just for use inside calls
Skarsnik FROGGS, I was thinking of implementing github.com/Skarsnik/nativecall-typ...ag.pm6#L39 directly in NC (it valids routine signature), what do you think? 19:21
timotimo m: say False or True
camelia rakudo-moar 108829: OUTPUT«False␤»
grondilu oh yeah
timotimo ah, say returns True, of course.
what i meant but failed to show was that or has looser precedence than the argument list there 19:22
grondilu I should have remembered the common idio : do-this or die "oops could not do this"
lucasb m: True or False # maybe this could get a useless use message
camelia ( no output )
grondilu and/or have the exact precedence to allow that
19:22 s_kilk left
FROGGS Skarsnik: +1 19:23
timotimo yeah
19:23 psy_ joined, lichtkind joined
grondilu but why does "say(True or False) fail? 19:23
*"
19:23 Guest19112 left
timotimo consider what say(True, False or False, True) would have to mean 19:23
grondilu sorry meant "say(True and False)"
timotimo doesn't make a difference in this case 19:24
between or and and
mst did anybody get around to cpan-ing rakudobrew?
19:24 administrator joined
TimToady can we fix the make issue first? 19:24
19:25 administrator is now known as Guest30550
El_Che mst: maybe unrelated but jdv79's advent post was about perl6 + cpan 19:25
dalek kudo/nom: d8ad27f | lizmat++ | src/core/Temporal.pm:
Move default-formatter inside DateTime class

So that we poison CORE:: a little less
El_Che mst: (though not about rakudo)
mst is 'the make issue' the silent fail I hit?
TimToady no, this one isn't silent
mst ok, so, I can totally -prep- it for cpan-ing without actually shipping it 19:26
lizmat seems to have missed what the make issue is
19:26 nmbooker joined
Skarsnik FROGGS, the issue is I check the param name to handle Str, but it will not allow subtype of str and type ~~ Str will allow str (and str in nc param seem buggy) 19:26
19:27 kanishka joined
TimToady if the Makefile doesn't contain a MAKE= it just gives up, instead of just running 'make', which works fine in Linux 19:28
FROGGS Skarsnik: hmmm, yeah, so we need to find a better solution
TimToady so you can't do rakudobrew triple
lizmat TimToady: or on OS X apparently ?
ah, rakudobrew related
lizmat goes silent again 19:29
TimToady though I don't quite understand what the difference is that allows bare rakudobrew to succeed while rakudobrew triple doesn't 19:30
19:30 gblade joined
FROGGS m: say 1:all 19:31
camelia rakudo-moar 108829: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RGdA9JF9rB␤You can't adverb 1␤at /tmp/RGdA9JF9rB:1␤------> 3say 1:all7⏏5<EOL>␤ expecting any of:␤ pair value␤»
FROGGS m: say 1.:all
nmbooker Hi I've just been playing around with the andthen operator, and noticed that when Nil is on the LHS it returns (), and not nil
camelia rakudo-moar 108829: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
nmbooker Is that intentional?
(or what's the reason for that)?
19:31 gblade left
timotimo could very well be that it didn't get updated for new semantics 19:31
TimToady would know for sure 19:32
TimToady oh, I think it's because rakudobrew triple cd's and does the submakes by hand, instead of relying on Configure 19:33
and the submakes don't specify MAKE=
Skarsnik m: say str ~~ Str; 19:34
camelia rakudo-moar d8ad27: OUTPUT«Cannot unbox a type object␤ in block <unit> at /tmp/PeqLw2zWJe:1␤␤»
TimToady tadzik: ^^^
Skarsnik m: my str $a; say $a ~~ Str;
camelia rakudo-moar d8ad27: OUTPUT«True␤»
Skarsnik m: my str $a; say $a does Str;
camelia rakudo-moar d8ad27: OUTPUT«Cannot mix in non-composable type Str into object of type Str␤ in block <unit> at /tmp/zUqjMENd85:1␤␤»
stmuk m: say num64 ~~ Num 19:37
camelia rakudo-moar d8ad27: OUTPUT«Cannot unbox a type object␤ in block <unit> at /tmp/5rsDksKzs4:1␤␤»
stmuk that was 126927
Skarsnik str sucks because you can't use .perl on it x) 19:38
19:39 yqt joined
TimToady nmbooker: the return value is not actually (), but Empty 19:40
m: say (Nil andthen 1).WHAT
camelia rakudo-moar d8ad27: OUTPUT«(Slip)␤»
TimToady m: say (Nil andthen 1).defined
camelia rakudo-moar d8ad27: OUTPUT«False␤»
TimToady the intent is to allow use in list comprehensions 19:41
otherwise your result would contain a bunch of Nil values where you just want them dropped
also, andthen is designed to work not just with scalar values, but also with a failure/success model where you can distinguish failures from listy success, since one great way to implement a backtracking engine is to iterate a lazy list of branch points on success 19:43
andthen is really intended for logic programming more then just as a defined-and, which is why it also topicalizes the LHS 19:44
nmbooker Yes the topicalisation is useful - I was actually looking at using it to chain a series of calls that can each return an undefined value. 19:46
TimToady in that model, you want the andthen itself to just return a list of remaining possibilities without Nils scattered in
since failures should just cut themselves from the tree of possibilities
m: say Empty.defined 19:47
camelia rakudo-moar d8ad27: OUTPUT«False␤»
nmbooker are there any examples out there of the kinds of usage you're talking about (in listcomps or failure trees)?
TimToady we force Empty to be undefined for purposes like that, iiuc
STD was entirely build on those sorts of ideas, though the expression Perl left something to be desired :) 19:48
*Perl 5
timotimo hm
here's a little idea
why is METAOP_ASSIGN like this:
TimToady which is why we got 'andthen' in Perl 6 :)
nmbooker ok so as long as I check definedness with .defined / with / without or whatever, rather than identity to Nil, I should be OK.
timotimo -> $a, $b { $a = op(($a // op.()), $b) }
nine lizmat: I see 2 solutions for the native library naming problem: 1. have the FileSystem repository look for META6.json in $.prefix.parent instead of $.prefix and use the meta data when looking for resources. 2. have resources/lib by convention be the directory for native libs
FROGGS: ^^^ 19:49
timotimo shouldn't we actually pretend op.() is always pure
and put the value op.() returns as a variable into the closure?
TimToady nmbooker: yep
rindolf Hi all.
_nadim Can some of youhave a look here and tell me how you break it. I'd like it to be tested by other before I add it to the ecosystem, mainly because this is my first P6 code and I suspect it's going to break
TimToady just like you shouldn't say ~~ True
_nadim rindolf: hi
rindolf _nadim: sup?
RabidGravy nine, the latters is what I've gone for :)
_nadim github.com/nkh/P6-Data-Dump-Tree
FROGGS nine: what is the native library naming problem? 19:50
mst TimToady: indeed, that's basically the way I've been implementing a backtracking engine in my prolog-ish thing ;)
nine FROGGS: that the name of libraries created during a module's build are platform dependent. It's p5helper.so on Linux and p5helper.dylib on OS X
FROGGS nine: you've even got a bigger problem 19:51
19:51 oftl joined
nine FROGGS: which is? 19:51
FROGGS nine: the library path must be known at moarvm build time IIRC
nmbooker mst: Can you point me to any of your code? I'm interested to see how that kind of usage works.
Skarsnik ? 19:52
19:52 virtualsue joined
nine FROGGS: why's that? 19:52
Skarsnik If you give the full path NC will load the lib fine
nine FROGGS: if that were true, Inline::Perl5 could have never worked
FROGGS nine: you're not allowed to load libs from random paths on many platforms
_nadim rindolf: do me a favor and test the module above. if you break it you can alsways tell me on our usual channel. 19:53
nmbooker TimToady: Thanks for the clarification, most helpful
FROGGS nine: where do you install it to?
rindolf _nadim: will do.
nine FROGGS: install/share/perl6/site/resources
TimToady timotimo: I don't quite understand your proposal...the code there is to autoviv in things like; %hash{$newvalue} += 1
_nadim rindolf++
19:53 vv3 joined
nine FROGGS: Perl 5 installes compiled libs into e.g. /usr/lib/perl5/5.22.0/x86_64-linux-thread-multi/auto/ 19:54
lizmat moritz: do you recall why dates in years > 9999 should have a + in front of them ?
mst nmbooker: code is currently in a private git repo because I'm rewriting everything
nmbooker: I would suggest looking at minikanren as a canonical form of that approach designed to be taught
lizmat nine: feels like 2 is the least work for the moment, and easiest to generalize post Christmas 19:55
FROGGS nine: see github.com/MoarVM/MoarVM/commit/d2...99281700ca
nmbooker mst: ok thanks
RabidGravy and what I'm already doing :)
Skarsnik how x86 x64 is handled on windows for lib btw?
FROGGS nine: yes, this directory is compiled in 19:56
jdv79 sup #perl6?
nine A variation of 1 would be to look in lib/ for modules if a META6.json is present in $.prefix, i.e. use lib "/home/nine/Inline-Perl5"; instead of use lib "/home/nine/Inline-Perl5/lib";
_nadim jdv79: hi
FROGGS nine: do you have a lib in @prefix@/share/perl6/site/lib by any chance?
rindolf _nadim: how do I run the tests? prove t/*.t fails.
19:57 andreoss left
nine FROGGS: but the shared objects are stored in subdirectories according to the module's namespace. So it's not all in one directory. 19:57
timotimo TimToady: actually, what i now think is that calling op.() every time METAOP_ASSIGN is called would be more costly than only calling it when defor falls through
Skarsnik prove -e 'perl6 -I lib' something like that
TimToady timotimo: indeed
_nadim rindolf: I have this alias t6='PERL6LIB=lib,t prove -v -e perl6' 19:58
TimToady note we're only calling op there with no args to get the identity value
FROGGS nine: subdirectories might be okay, I'm not sure about that
timotimo TimToady: i kind of wish we could do something more cheap than callmethod defined ...
dalek kudo/nom: 6925c2b | lizmat++ | src/core/Temporal.pm:
Streamline DateTime's default-formatter

  - don't bother checking year for extreme values, sprintf will do the right thing
  - only check for timezone offset irregularity if one is given
_nadim rindolf: so I just do t6 t/ or t6 t/whatnot.t
TimToady well, .DEFINITE would probably work too for the intended purpose 19:59
nine FROGGS: Inline::Perl5's p5helper.so use to be installed alongside Perl5.pm6. Now it's installed into share/perl6/site/resources/
rindolf _nadim: ah, well the documentation for the module may be lacking.
nine FROGGS: if anything, the directory is more predictable now
TimToady it's not really for dealing with Nil or Failure, but with type objects
so I suspect using .DEFINITE would make more sense than .defined
dalek ast: 4f8dc6b | lizmat++ | S32-temporal/DateTime.t:
As per 6925c2b77f1560 extreme years don't get a +
_nadim rindolf: you are kinding me, right? there's a whole .pod file that does nothing else but document it, then the tests, and a directory named examples 20:00
TimToady we just don't have a // variant that does that, so we'd have to hardwire it, but that might well be faster than what we have
FROGGS nine: if a clean install works on an openbsd box, I'll shut up :o)
20:00 mohae joined
rindolf _nadim: I mean in the README. 20:00
TimToady timotimo: feel free to time it and see if it helps
lizmat
.oO( /// )
timotimo TimToady: the question is why does defor use .defined and not .DEFINITE. but i'll surely time it.
_nadim rindolf: README is not documentation 20:01
rindolf _nadim: and I am getting many test failures.
lizmat timotimo: because .defined will defuse Failures ?
TimToady because // we use on Nil and Failure all the time
_nadim rindolf: but i take README patches :)
rindolf _nadim: yes, it is.
TimToady m: say Empty.defined; say Empty.DEFINITE
camelia rakudo-moar d8ad27: OUTPUT«False␤True␤»
TimToady and there
timotimo OK 20:02
so for metaop assign it'd still be fine to use DEFINITE and a ?? !!?
_nadim rindolf: README says: See lib/.... for a complete documentation, follow the README 20:03
20:03 nmbooker left, darutoko left
flussence I followed the readme and... GitHub-- # github.com/nkh/P6-Data-Dump-Tree/b...p/Tree.pod 20:04
_nadim All, what has happened to Autoload and ties? any URLs to enlighten me?
flussence you mean p5's autoload?
I think that's been replaced by «method FALLBACK»... 20:05
_nadim flussence: thanks
flussence there's also the "handles" trait on attributes, which does method passthrough 20:06
20:06 virtualsue left
TimToady timotimo: yes, I think that should be fine 20:07
in fact, it should probably be better, since it'll not hide a failure that was stored in a variable 20:08
_nadim my previous dumper made it visible if a "class" handled autoload and ties, not sure I'll add that but it is always nice to know stuff
rindolf _nadim: do the tests succeed for you?
tadzik TimToady: oh, triple :|
RabidGravy _nadim, tie has gone completely, but replaced by the ability to implement a Positional or Associative yourself
nine lizmat: establishing the lib convention is the easy part. The hard part is that rakudo must be able to turn 'lib/p5helper' into 'lib/libp5helper.so' according to platform conventions when the only source of information is $*VM.config<so> where not even the format is standardized between backends.
_nadim rindolf: you think I'd upload it otherwise?
rindolf _nadim: no.
timotimo TimToady: my first attempt at changing it forgot to change it in the optimizer, so showed no change at all %) 20:09
_nadim just grab the output and open a ticket
TimToady tadzik: I keep going in and changing the error message to just do 'make' anyway, but it doesn't quite seem like the right fix
lizmat nine: then we should standardize that in VM.pm ?
rindolf _nadim: but they fail here.
_nadim: ok.
TimToady tadzik: either we need to probe for gmake in make's clothing, or it needs to look in .. and ../... for MAKE=
nine lizmat: yes, I'm thinking about a method taking the base name and optionally some version information and returning the full file name.
_nadim rindolf: can you also use it on some of your objects/structures? 20:10
lizmat I would say, make that another attribute of VM
nine lizmat: version information may be mandatory on some platforms as I've just learned
TimToady *../..
rindolf _nadim: let me see.
_nadim: I haven't written a lot of P6 code.
Skarsnik nine, I think the old NC was able to turn path/to/foo to path/to/foo.something
nine old NC? 20:11
timotimo TimToady: from 6.84s to 4.56s for my Int $i = 0; Nil while ($i += 1) < 10_000_000
Skarsnik before I put the api version 'support' on it
_nadim rindolf: the ide with a dumper is that you can feed it anything, even the smallest pieces
rindolf _nadim: ah.
timotimo however, i'm getting a failure "Cannot assign to an immutable value" in install-core-dist.pl
Skarsnik but the guess_libname code is a mess x)
TimToady m: my $x = Failure.new: $x += 1; say $x
camelia rakudo-moar 6925c2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dA0yLJbCUb␤Cannot use variable $x in declaration to initialize itself␤at /tmp/dA0yLJbCUb:1␤------> 3my $x = Failure.new: $7⏏5x += 1; say $x␤ expecting any of:␤ argument list␤ …»
TimToady m: my $x = Failure.new; $x += 1; say $x 20:12
camelia rakudo-moar 6925c2: OUTPUT«1␤»
TimToady timotimo: and fixes ^^^
so I'd say it's definitely an improvement, timotimo++
timotimo cool :)
TimToady well, I presume it fixes that
nine From NativeCall.pm6: #Err, this is a mess, why so many way to get the extension?
Skarsnik nine, accoring to github.com/rakudo/rakudo/blob/nom/...libnames.t ./libfoo will be ./libfoo.so 20:13
flussence _nadim: `prove -e 'perl6-m -Ilib'` kinda falls apart horribly here. Most of those tests die with “'use lib' may not be pre-compiled”
timotimo TimToady: yeah, that throws the failure properly
TimToady sugoi!
timotimo who writes the test for that? :)
i'd have to be fudged for now until i figure out the "cannot modify an immutable value" problem
Skarsnik but I am pretty sure it does not work on os X and win32 x) 20:14
lizmat nine: so those 5 lines need to be moved to VM and given an $!lib-ext attribute ?
TimToady timotimo: I'm willing to delegate that to you, given I have other things to worry about... 20:16
Skarsnik $*VM.config<dll> give a pattern like "lib%s.so"
timotimo interesting
rindolf _nadim: github.com/nkh/P6-Data-Dump-Tree/issues/2 20:17
timotimo the explosion comes from $time += 2440588 inside DateTime.new
lizmat timotimo: did I break something in DateTime ?
timotimo no
i broke it with my change to METAOP_ASSIGN
El_Che having a go to compile libuv on solaris. 20:18
nine Skarsnik: only on MoarVM
lizmat well, I'm looking at DateTime atm, perhaps we can do without METAOP_ASSIGN :-)
FROGGS El_Che: good luck
nine Skarsnik: on JVM you have $*VM.config<nativecall.so> which just gives you ".so" 20:19
timotimo lizmat: i still think it's a problem i ought to fix.
lizmat timotimo: oki
Skarsnik Yes I figured that why there was so many stuff in this function
timotimo haha 20:20
with --ll-exception i get "cannot modify an immutable Int", without it it's an immutable Str
20:20 TimToady left
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a, Mu \b { a = op.(a // op.(), b) } }; my Str $f; $f ~= "hi"; 20:21
camelia ( no output )
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a, Mu \b { a = op.(a.DEFINITE ?? a !! op.(), b) } }; my Str $f; $f ~= "hi";
camelia rakudo-moar 6925c2: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at /tmp/RUxw3aCZ2N:1␤␤»
timotimo that puzzles me a bit
m: sub METAOP_ASSIGN(\op) { -> Mu \a, Mu \b { a = op.(a.DEFINITE ?? op.() !! a, b) } }; my Str $f; $f ~= "hi"; 20:22
camelia rakudo-moar 6925c2: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/SeJNskbRVB:1␤Cannot modify an immutable Str␤ in block <unit> at /tmp/SeJNskbRVB:1␤␤»
Skarsnik nine, but actually this code should append the right extension (and eventually the version) if there is none
timotimo well, that thing is the right way around, but why would that give me trouble with the assignment?
m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.(a.DEFINITE ?? op.() !! a, b) } }; my Str $f; $f ~= "hi"; 20:23
camelia rakudo-moar 6925c2: OUTPUT«Use of uninitialized value of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/I3UzLQf3iP:1␤Cannot modify an immutable Str␤ in block <unit> at /tmp/I3UzLQf3iP:1␤␤»
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.(a.DEFINITE ?? a !! op.(), b) } }; my Str $f; $f ~= "hi";
camelia rakudo-moar 6925c2: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at /tmp/yYl2d83fYR:1␤␤»
timotimo so ... halp anyone?
nine Skarsnik: yes, trying to pull it into VM::platform-library-name(IO::Path $library, Version :$version);
jdv79 lizmat: i forgot about that. went to see it today. it was ok. 20:24
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.( (if a.DEFINITE { a } else { op.() }), b) } }; my Str $f; $f ~= "hi"; 20:25
camelia ( no output )
timotimo why does that make it work, but ?? !! doesn't
m: sub METAOP_ASSIGN(\op) { -> Mu \a, Mu \b { a = op.( (if a.DEFINITE { a } else { op.() }), b) } }; my Str $f; $f ~= "hi";
camelia ( no output )
timotimo the "is raw" isn't what does it
20:26 hankache left
dalek kudo/nom: 2e4238f | FROGGS++ | src/Perl6/Grammar.nqp:
fix misparse of digit+dot+colon, RT #126959
20:28
20:28 virtualsue joined, vv3 left
_nadim flussence: not pre-compiled? I am not following you. 20:29
20:29 TimToady_ joined
flussence _nadim: modules hardcoding module paths won't work in 2015.12 20:31
_nadim flussence: rindolf submitted something similar. I hav eno idea of what it is :), There is a dependency on Text::Table::Simple that I should elminate, it's just for test. 20:32
20:32 TimToady_ is now known as TimToady
_nadim I am not, afaik, harcoding anything. 20:32
20:33 AlexDaniel joined
rindolf eats TimToady 's extra underscore. 20:33
20:33 s_kilk joined
flussence lib/Data/Dump/Tree/DescribeBaseObjects.pm has "use lib '.'" on line 2 20:33
TimToady .tell jnthn I think the answer to #126005 is to transform any loop that wants its return value into a map, including KEEP/UNDO, but also loops in non-statementlist context, as the specs ask for; that should give us the correct semantics for KEEP/UNDO and should allow for sink optimization of maps to throw away values later, hopefully after checking return for success
yoleaux TimToady: I'll pass your message to jnthn.
El_Che has anyone been able to compile moarvm on solaris? solaris 10 does not have ifaddr.h that's needed by libuv 20:34
(solaris 11 does, but that's an other story) 20:35
_nadim flussence: yes I found that one, and eliminated it, but the testd still pass
i mean here :) 20:36
mst right, got rakudobrew going locally. not 100% sure what I want to do with a cpan-able version yet, I'll ponder
if anybody else has a go before me, please somebody hilight me so I know
tadzik: ^^
_nadim flussence: if you simply remove that line in th emodule, do you still get the same failures? 20:37
honnestly i don't see how a use lib sould break things, even if it should not be there
rindolf El_Che: which Solaris version are you using? 20:38
El_Che rindolf: none anymore :)
rindolf: but I am trying to get it built in 10 and 11
mspo El_Che: have you tested SmartOS?
rindolf El_Che: ah. 20:39
mspo if I get pkgsrc up to date then joyent would test for us
TimToady lunch &
lizmat _nadim: in Perl 6, we don't want "use lib" inside modules
El_Che mspo: I am involved with opencsw
rindolf TimToady: bon appetit.
lizmat _nadim: at least not before Christmas
El_Che mspo: foss for solaris 10 and 11
mspo El_Che: join pkgsrc instead :)
flussence _nadim: now fails most tests with: Could not find symbol '&AsciiGlyphs' in method new at lib/Data/Dump/Tree.pm:44 20:40
timotimo finally switched from the unreliable wifi to an ethernet cable
El_Che mspo: now that I am professionaly not involved with solaris, my packaging efforts are more of a foss/nostalgia/social engagement :)
now that I am NOT 20:41
I mean
_nadim lizmat: I don't either, the one that was there just escaped me when that code went from script to module.
dalek kudo/nom: 3b3e42b | lizmat++ | src/core/Temporal.pm:
Streamline Dateish.week/week-year/week-number

  - by using native ints
  - by not using "do" when it is not needed
  - by directly using AT-POS (at least for now)
20:42
20:43 M-eternaleye left, M-eternaleye joined, M-eternaleye is now known as eternaleye
_nadim flussence: Arff, that one escaped thee tests. Do me a favor, change ddtr to DDTR on that line. it's hard to force one's terminal to not support ANSI! 20:43
but that's certainly a bug, I'll add tests forcing non ANSI
20:43 s_kilk left 20:45 virtualsue left
timotimo i really don't want to have if a.DEFINITE { a } else { op.() } instead of a ?? !! 20:45
as that means putting in QAST::Block :|
flussence now it complains about has-accessor; that's been removed
correct spelling is has_accessor, iirc 2015.11 has both 20:46
20:46 virtualsue joined
flussence fixing that shows a bunch of other errors and now I'm getting a bit lost 20:46
20:48 lucasb left
timotimo damn :( 20:48
lizmat timotimo: /// ? 20:49
20:49 zengargoylew left
lizmat ah, that won't help, won't it ? 20:49
timotimo is /// actually a thing?
or are you suggesting i build that?
lizmat no, a figment of my imagination
timotimo i could build a p6definiteor
to go with our defor
lizmat well, TimToady alluded to such a functionality
I was merely suggesting a syntax :-) 20:50
timotimo: BTW, what wrong with "a.DEFINITE ?? a !! op()" ? 20:51
rindolf _nadim: did you consider enabling CI (= Continuous Integration) for your repositories?
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.(a.DEFINITE ?? a !! op.(), b) } }; my Int $i; $i += 1;
camelia rakudo-moar 3b3e42: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/lZl_XKlkov:1␤␤»
timotimo that's what's wrong
m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.((if a.DEFINITE { a } else { op.() }), b) } }; my Int $i; $i += 1; 20:52
camelia ( no output )
lizmat ah, I see
well, I don't see the reason, but I see
timotimo :)
i'd like for someone to find out the reason, but it'd be fine if not
lizmat something deconting in a ?? !! ? 20:53
nine Oh, someone fixed the endless loop on exceptions in the setting :)
lizmat perhaps a return rather than a return-rw
nine: jnthn did
_nadim flussence: this is really weird. But I do appreciate the help. any chance I could get an account and test myself?
nine jnthn++ # you're my hero! 20:54
FROGGS nine: jnthn did
20:54 regreg left
_nadim good I have the snapshots to prove it works somewhere ;) 20:54
timotimo hm, but decont doesn't mutate the incoming arg to the outer, though?
_nadim flussence: but I believe that has-accessor error are not directly related. what rakudo so you use? 20:55
flussence _nadim: you'd be best off asking someone else for a p6c.org account :) 20:57
also: «This is Rakudo version 2015.11-722-g10882910b928»
20:57 s_kilk joined
_nadim any idea of who to ask? 20:58
20:58 molaf left
TimToady timotimo: why are you using a comma there in the !! 20:58
masak hi, #perl6
yoleaux 15:57Z <lizmat> masak: looking at DateTime.now.later(:hour(1.5)) : is there a reason for not allowing that?
15:57Z <lizmat> masak: e.g., because not every hour is 3600 seconds ?
_nadim masak: hi
lizmat masak o/ 20:59
timotimo m: sub METAOP_ASSIGN(\op) { -> Mu \a is raw, Mu \b { a = op.((a.DEFINITE ?? a !! op.()), b) } }; my Int $i; $i += 1;
camelia rakudo-moar 3b3e42: OUTPUT«Cannot modify an immutable Int␤ in block <unit> at /tmp/B0AHi5nKJy:1␤␤»
masak I'll be able to produce an advent blog post by midnight
timotimo TimToady: sadly that's not the problem :(
flussence isn't sure who has admin access to that box, but one of them will see this soon enough :)
_nadim :)
masak lizmat: I dunno, re DateTime.now.later(:hour(1.5)) -- my first thought is to make hours hours and not something else. if someone wants more magic, they can write their own multis or translation functions or something. 21:00
masak down scope again for now, but will work on that advent post
_nadim rindolf: Yo! deal me an account on your box.
21:00 Sqirrel joined
rindolf _nadim: hmmm... 21:01
_nadim: I'm behind a NAT. 21:02
_nadim: I can try to see if I can reproduce the problem on mageia x86-64 v5 .
timotimo the thing is i'd've implemented /// exactly the way i put the code into the optimizer ... the code that crashes with the "cannot modify" error you can see up there
_nadim rindolf: give me 5 I upload a version without use lib, maybe that fixes at least some of the problems 21:04
rindolf _nadim: well, I'm not sure if it's a problem on v5. 21:06
stmuk what happens to .pod in precomp land? I assume they don't get compiled
rindolf _nadim: what I can do is use ssh port forwarding to open an ssh port to my machine for you.
stmuk .pod files I mean
rindolf _nadim: do you have an ssh service?
21:06 TEttinger joined
flussence stmuk: I don't think the module loading stuff even touches plain pod files... 21:07
timotimo this is frustrating. i don't know how to go forward with this. 21:08
_nadim rindolf: I mean 5 minutes :) new version is up. I don't have any sshd up but I can fix that tomorrow 21:09
flussence stmuk: yeah, just checked and it only cares about .pm/.pm6
21:09 awwaiid2 joined, borkur joined
rindolf _nadim: I don't understand. 21:10
_nadim: I tested your module on mga v6 so far. 21:11
stmuk where should Foo.pod for Foo.pm get installed on the filesystem I wonder
_nadim when I said "give me 5' I meant give me 5 minutes so i can upload a version without the "use lib" 21:12
mspo I thought pod was inline
stmuk I don't think any pod gets installed at all by panda etc without being mentioned in 'provides' and S22 doesn't mention pod 21:13
_nadim stmuk: perl6 -Mwhatnot -e 42, will tell you where it looks for whatever that it doesn't find.
except if you have a whatever module installed that is
stmuk mspo: it can be inline and in files also .. I'm asking about the last case
_nadim stmuk: a panda . that installs the module you stand in would be nice 21:14
21:14 Brock joined 21:15 geraud joined 21:16 Brock is now known as awwaiid3, [Sno] left
Skarsnik _nadim, like panda insall . 21:16
flussence stmuk: in a perfect world it'd go in $prefix/man/man3 like perl5's pod does... right now there's nothing :( 21:17
stmuk yeah I suspected this. I may just choose .../share/perl6/site/doc 21:18
21:18 s_kilk left
flussence no objections here! 21:18
stmuk actually core docs probably go under .../share/perl6/doc 21:20
_nadim Skarsnik: yes like that!!! I asked few time, no one answered :) now I know it, used it and the module installs locally and passes the tests. 21:21
21:21 perlpilot joined
skids
.oO(the easiest way to get an answer out of the Internet is to "be wrong on the Internet" :-)
21:22
21:25 brrt joined
RabidGravy stmuk, you'll be pleased I started a gdbm module - may finish it tomorrow 21:31
stmuk cool .. I had a look at the API but it was too C like for my poor braine
but when it's finished I can add its usage as an example for the p6 cookbook 21:32
++RabidGravy
rindolf _nadim: some tests still fail with commit 9d6986a4585ba6169a0100b8483f0b6c30b53418 21:33
RabidGravy It'll just be a hash with a funny constructor :)
lizmat RabidGravy: have you considered a parameterized role type thingy? 21:34
_nadim rindolf: can you please report them?
21:34 rurban joined
lizmat my %h = Hash[:gdbm<file>].new ? 21:34
21:35 pierre-vigier joined
rindolf _nadim: yes. 21:35
_nadim thanks. Work Here (tm) of course ;)
21:35 [Sno] joined
RabidGravy lizmat, hmm that would be cool, let me get the basic thing working first 21:37
rindolf _nadim: I commented on the bug. 21:38
_nadim: what is your system?
vendethiel m: my $a = 'hey'; Hash[$a].new.perl.say 21:39
camelia rakudo-moar 3b3e42: OUTPUT«Parameter 't' requires a type object of type Str, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/73wbdnroji:1␤␤»
vendethiel m: my $a = 'hey'; Hash[$a eq 'hey' ?? Str !! !!!].new.perl.say 21:40
camelia rakudo-moar 3b3e42: OUTPUT«(my Str % = )␤»
vendethiel uh-oh.
_nadim rindolf: I run suse
AlexDaniel m: my Rat $x = Inf 21:41
camelia rakudo-moar 3b3e42: OUTPUT«===SORRY!===␤Cannot find method 'value'␤»
perlpilot I think something like my %h is gdbm<file.db>; # would read a little better.
_nadim rindolf: that looks more workable. can you: panda install Text::Table:Simple? I'll look at the other failures 21:42
21:43 rurban left
rindolf _nadim: OK. 21:43
RabidGravy perlpilot, that would be by the way of an after market modification
:) 21:44
21:44 CIAvash left
perlpilot RabidGravy, once you get the NativeCall bit done, the rest should be easy ;) 21:44
RabidGravy precisely 21:45
dalek kudo/nom: b791a85 | lizmat++ | src/core/Temporal.pm:
Simplify Dateish.formatter handling

  - there is no default value for the formatter anymore
   so we don't need to pass the Callable around anymore
  - the default-formatter sub is now a private method
   so we can directly access the attributes, instead of method calling
  - DateTime.Str now calls this private method if there is no formatter
  - streamlined .perl using zefram++ insights
  - added comment as to why there is an .IO method (collatoral fixage)
21:46
Skarsnik oh sound nice 21:47
lizmat I'm sure this has some performance effects somewhere...
dalek kudo/platform_library_name: cdd7ae6 | (Stefan Seifert)++ | / (3 files):
New method $*VM.platform-libary-name

Turns "foo" into "libfoo.so" on Linux/MoarVM, "foo.dylib" on OS X/JVM, and so forth. Takes optional version information and uses it if the platform requires it.
nine lizmat, FROGGS: thoughts about ^^^? 21:48
RabidGravy: ^^^
Skarsnik: ^^^^
lizmat nine: is this still just about extension, of does this go further ? 21:49
dalek c/phasers: 081331e | (Brock Wilcox)++ | doc/Language/phasers.pod:
Initial phaser doc, from S04
hoelzro nine++
I'm so glad you cleaned that up
21:49 borkur left
lizmat nine: does this also handle the situation where libs need to be installed in certain dirs on certain systems ? 21:50
21:50 labster joined
RabidGravy nine++ # could do with a whole usage thing though 21:50
FROGGS nine: you've changed the meaning
lizmat nine++ # never mind the certain dirs question 21:51
Skarsnik nc #180 is probably a bad way to see if extension is here, but not sure x)
21:51 kjs_ left
nine FROGGS: how? 21:52
FROGGS nine: you are now doing sprintf using moars lib pattern, where the old code did not. I think this will result in libnames like 'liblibfoo'
RabidGravy I was just going to ask that
nine FROGGS: I know :/ OTOH this way you can do is native("perl") without having to differentiate between platforms that name it libperl.so or perl.dll 21:53
RabidGravy tbh, I can edit hoever many native modules I have
FROGGS nine: that is still a) a change, and b) inconsistent to what on jvm happens 21:54
RabidGravy but does it require that a "helper" dll is named with lib then?
Skarsnik yes that too 21:55
RabidGravy (I have two like that released)
FROGGS RabidGravy: yes, the current code would expect it to be called libhelper.so on linux
nine FROGGS: I'd actually rather change the JVM backend or add the logic to platform-library-name. Because otherwise every NativeCall wrapper for some library needs to handle platform specific naming which is exactly what platform-library-name is trying to solve.
RabidGravy I appear to have missed something
21:56 brrt left
RabidGravy so my "utmphelper.so" won't work even if I use a full path 21:56
FROGGS nine: what if we just strip a duplicate 'lib' prefix if it is there?
nine RabidGravy: yes, to be consistent with all other libraries on the system (which should be a good thing) 21:57
dalek kudo-star-daily: 9ef9073 | coke++ | log/ (8 files):
today (automated commit)
lizmat nine: please add the JVM logic to platform-library-name
Skarsnik nine, well... if you want to have fun. libgtk2 is libxwindowgtk2.so (something like that)
perlpilot just read perl6-weekly and found out about the CLOSE phaser (something I wanted just the other day)
lizmat nine: there's plenty of it in there already
[Coke] www.infoworld.com/article/3017418/a...stmas.html
timotimo i really don't want to give up the optimization for METAOP_ASSIGN in the optimizer ;_;
21:58 pierre-vigier left, pierre-vigier joined
RabidGravy nine, I'm cool with that 21:58
nine FROGGS: if there's a duplicate "lib" then the user specified "libmysql" instead of the more platform independent "mysql". Shouldn't we rather educate users about that?
Skarsnik I think I saw some liblibstuff
RabidGravy it's only some transitional period anyway 21:59
FROGGS nine: sure, then let's add the lib prefix for jvm too 22:00
Skarsnik I am also for removing the argument to is native arg trait and have a register-new-lib("libplop", 1)
RabidGravy ?
nine Do we really have no .is-posix? 22:01
FROGGS nine: here you could look for platforms/compiler and lib patterns: github.com/MoarVM/MoarVM/blob/mast...up.pm#L138
Skarsnik RabidGravy, you actually can write sub foo is native(Str) in case you make a call that previously loaded the right file with this symbol on it 22:02
And (I did not check) I think NC try to dlopen for each routine marked is native
RabidGravy Oh I see 22:03
dalek c/phasers: 8a4831a | (Brock Wilcox)++ | doc/Language/phasers.pod:
Start shuffling things into sections
Skarsnik so having something that say 'I need nc to load this file' once should be enought x)
nine lizmat: $*DISTRO.name gives "Mac OS X" on OS X, doesn't it? 22:05
stmuk macosx
nine FROGGS: That is the file that prompted me to ask for is-posix :) 22:06
FROGGS :o)
lizmat $ 6 'say $*DISTRO.name'
macosx
ah, stmuk beat me to it
stmuk++
rindolf Hi all. panda install gives me this - paste.debian.net/354698/ - why, and how can it be fixed? 22:07
22:09 awwaiid2 left
dalek kudo/nom: 48e3958 | lizmat++ | src/core/Temporal.pm:
Dateish.daycount-from-ymd/ymd-from-daycount private

There were no tests for it, and no documentation. Better to keep things private in light of 6.c
22:09
moritz rindolf: the usual advice is to nuke the installation directory (plus $HOME/.perl6), recompile a new rakudo from scratch, and cross your fingers 22:10
(and bootstrap rakudo, of course
rindolf moritz: wow! That sucks.
22:10 awwaiid3 left
moritz rindolf: agreed 22:10
rindolf _nadim: sorry! 22:11
nine Then maybe we should try to debug this issue for a change...
22:11 skids left 22:13 kaare_ left
nine rindolf: what rakudo version were you using when you last bootstrapped panda? 22:13
rindolf nine: latest from an hour ago or so. 22:14
_nadim rindolf: no problem, you have helped a lot already. But I'd do what was told, nuke it, clone rakudo and install from there, that's what I did
nine rindolf: and you bootstrapped panda and when using panda this error occurs?
dalek c: 876ac46 | (Steve Mynott)++ | / (2 files):
Some quick fixes to get basic p6doc usage working post-curli.

Needs more attention since -f index etc. doesn't work.
Skarsnik lizmat, you can probably remove the subseconds parameter in the default formatter and put the $second == $second.floor instead since sub second are in the ISO 22:15
dalek kudo/platform_library_name: 212e857 | (Stefan Seifert)++ | / (3 files):
New method $*VM.platform-libary-name

Turns "foo" into "libfoo.so" on Linux/MoarVM, "foo.dylib" on OS X/JVM, and so forth. Takes optional version information and uses it if the platform requires it.
nine Now with JVM and OS X goodness ^^^
RabidGravy nine++
_nadim nine: rindolf and flussence had the same error on their box testing my module, somehting that makes no sense to me 22:16
What would the exception "Method 'has-accessor' not found for invocant of class 'Attribute' mean when Attribute has such a method listed in the docs? 22:17
FROGGS nine: darwin (osx) also has a lib prefix: github.com/MoarVM/MoarVM/blob/mast...up.pm#L494
rindolf nine: yes, I did - i'm usiing rakudobrew.
Skarsnik has-accessor is still on the doc?
_nadim Yes 22:18
and I hope it will stay
Skarsnik I though someone removed it, or was it on another class?
all the MOP should be _
_nadim well I hope it is not removed!
FROGGS _nadim: it is called has_accessor
stmuk can_haz-accessor? 22:19
_nadim it's the error message, I didn't change it
hmm, which means that I need to update my rakudo 22:20
nine @all: many thanks for all the input! Very much appreciated
_nadim because it works fine here
dalek kudo/nom: e45c773 | kyle++ | t/harness:
typo
Skarsnik nine, maybe you should remove (or edit for other plateform) t/04-nc/17 x) 22:21
_nadim because it works fine herefr
FROGGS: did it change name this last week or so?
RabidGravy about a week ago
Skarsnik yes something like that 22:22
_nadim Docs is not updated BTW
RabidGravy broke JSON::Unmarshal
lizmat Skarsnik: ok,will check for spectest fallout
_nadim RabidGravy: just curious, how did the name of a method in Attribute break another class? 22:23
RabidGravy er sorry?
nine Skarsnik: those tests already uncovered a bug! I will edit them
22:24 smls joined
nine rindolf: can you upload your install/share/perl6 somewhere for me? Might give me a clue 22:25
rindolf nine: OK , let me see.
RabidGravy _nadim, because JSON::Marshal used thae method
github.com/jonathanstowe/JSON-Mars...0e5586e26a
it needs it to determine whether it's public 22:27
lizmat m: say DateTime.Str # will soon be fixed
camelia rakudo-moar b791a8: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at /tmp/Ac_VrxC1eI:1␤␤»
rindolf nine: there you go - www.shlomifish.org/Files/files/arcs...rl6.tar.xz 22:28
_nadim hrmm, git etch and my prompt isplays a nice -627, 627 commits! yes I need an update
RabidGravy oops
stmuk Pod::To::HTML / t/05-zero-width-index.t fails for me 22:29
maybe I can look tomorrow
rindolf nine: and I'm going to sleep - it's 00:29 here.
Happy holidays, everyone.
dalek kudo/nom: ddb8e52 | (Stefan Seifert)++ | / (4 files):
New method $*VM.platform-libary-name

Turns "foo" into "libfoo.so" on Linux/MoarVM, "foo.dylib" on OS X/JVM, and so forth. Takes optional version information and uses it if the platform requires it.
RabidGravy harr
RabidGravy nine++
lizmat nine++ 22:30
smls TimToady: Another "Useless use":
6 'my $debug; my $debugout = open("debug.log", :a); say $debugout: 42 if $debug'
WARNINGS for -e:
Useless use of $debugout in sink context (line 1)
dalek kudo/nom: 0d5372f | FROGGS++ | src/Perl6/Actions.nqp:
correctly fix digit+dot+colonpair, RT #126959

The code that turns pairs into named args of an arglist threw an error before, swallowing the complaint about the syntax error.
TimToady huh
RabidGravy another day of fixing modules in my future then
22:30 pierre-vigier left 22:31 rindolf left
Skarsnik nine, does it keep libfoo working? 22:31
dalek ast: 94ee230 | FROGGS++ | S02-lexical-conventions/minimal-whitespace.t:
add tests for RT #126959
RabidGravy nine, how does this all play with %?RESOURCESnow?
Skarsnik I mean it does not do liblibfoo x)
22:31 khw left
TimToady m: say 42: if 1 22:32
camelia rakudo-moar e45c77: OUTPUT«WARNINGS for /tmp/9GJUNw1Brs:␤Useless use of constant integer 42 in sink context (line 1)␤42␤»
TimToady shorter
nine Skarsnik: no, though there's still the heuristic looking for '.so'
RabidGravy: not yet. Though I will add the resources/lib convention 22:33
Skarsnik I just update my module for version and bool/size_t x)
FROGGS nine: you've seen my message about the lib prefix on OSX? 22:34
nine .tell rindolf your share/perl6 really doesn't contain anything but panda's modules and the CORE dist. And lots of pre-curli files. I really wonder where panda installed Shell::Command to
yoleaux nine: I'll pass your message to rindolf.
22:34 Begi left
nine FROGGS: yes, I changed VM.pm line 65 accordingly 22:34
FROGGS awesome 22:35
nine FROGGS: many thanks for pointing out those things!
RabidGravy I'll take a look in the morning
nine I really have to get into bed now. Good * all! 22:36
Skarsnik RabidGravy, if you have module that does not use a libpath you should already get a warning from nc x)
FROGGS gnight nine++
22:36 kjs_ joined
RabidGravy toodlepip 22:36
FROGGS doing the same now... gnight #perl6 22:37
Skarsnik good night
lizmat gnight nine!
gnight FROGGS!
RabidGravy Skarsnik, with 29 modules it's like painting the Forth bridge checking and fixing them at themoment :) 22:38
dalek kudo/nom: e86ab8c | lizmat++ | src/core/Temporal.pm:
No need for :subseconds anymore, Skarsnik++
_nadim hmm, so I rebuild rakudo, config, make, make install. perl6 -V shows me a perl6 build on the latest commit. What I find very surprising is that running the tests still pass while I have has-accessor, rather than has_accessor, in my code. Is there something to flush away? 22:39
RabidGravy no it's in the setting 22:40
weird
_nadim It's not often i want my code to ail, but right now I do
lizmat is this about Attribute.has_accessor ?
_nadim I did install the module with panda
RabidGravy is it actually hitting that in your tests? It won't be a compile time error 22:41
_nadim lizmat: I have has-accessor in my code. worked fine because I have an older rakudo. I just updated it, still works
RabidGravy: yes, all tests still pass, I'll check again that I say the rigt version displayed by -V 22:43
22:43 cpage_ left
_nadim My bad, it's getting late 22:45
I fetched but didn't merge, og course my perl is going to give me the same commit since I rebuild the same perl6! Bahh 22:46
dalek kudo/nom: f0c5469 | TimToady++ | src/Perl6/Actions.nqp:
want colon invocant, smls++
22:50
_nadim When one installs a new version of rakudo, all the modules have to be re-installed? 22:53
RabidGravy "it depends"
Skarsnik with precompil stuff I am not sure x)
timotimo at the moment we install the sources
when you have a newer version of rakudo, the precompilation files will all become stale 22:54
_nadim I just got the same message as rindolf, can't find Shell::Command
timotimo so when you execute stuff, it'll re-build stuff for you
oh, hmm.
maybe it's looking in a different folder now. like ~/.perl6/2015.11-321413134-gfuairen/
_nadim is there a way to clean up everything and rebuild? I'll reinstall the 3 module si have installed, that's OK 22:55
or any other way to revive it, right now I have a piece of dead wood 22:56
22:56 mscha joined
lizmat rm -rf install 22:57
mscha p6: say Ⅵ + Ⅳ;
camelia rakudo-moar e86ab8: OUTPUT«10␤»
22:58 telex left
mscha p6: say ⅯⅯⅩⅤ + Ⅰ; 22:59
camelia rakudo-moar e86ab8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Bogus postfix␤at /tmp/tmpfile:1␤------> 3say Ⅿ7⏏5ⅯⅩⅤ + Ⅰ;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statem…»
22:59 Guest30550 left 23:00 telex joined
_nadim lizmat: thanks, I'll get a new panda too, sounds almost cute 23:00
lizmat hehe... it helped me a lot of times
lichtkind hej liz 23:02
masak ok, 23rd advent blog post draft: gist.github.com/masak/c6be8893838868f47ae8 (limited time only) 23:03
geekosaur needs to nuke his local rakudobrew and start over... it's from before curli landed
mscha say ¼ × 8;
p6: say ¼ × 8;
camelia rakudo-moar e86ab8: OUTPUT«2␤»
lichtkind nine FROGGS he article about perl 6 is don and proofread twice anyone want to chekc for technical mistakes? 23:04
mscha p6: 2¹⁰ 23:05
camelia ( no output )
mscha p6: say 2¹⁰
camelia rakudo-moar e86ab8: OUTPUT«1024␤»
mscha p6: say √5; 23:06
camelia rakudo-moar e86ab8: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/tmpfile:1␤------> 3say7⏏5 √5;␤Bogus postfix␤at /tmp/tmpfile:1␤------> 3say 7⏏5√5;␤ expecting any of:␤ infix␤ infix stopper␤ postf…»
masak mscha: need to define a prefix:<√> 23:07
m: sub prefix:<√>($n) { sqrt $n }; say √5
camelia rakudo-moar e86ab8: OUTPUT«2.23606797749979␤»
23:08 adu joined
timotimo masak: "mess upp"? :) 23:09
23:10 cpage_ joined
mscha p6: say “I love that “I love that “I love that “this” works!” works!” works!” 23:10
camelia rakudo-moar e86ab8: OUTPUT«I love that “I love that “I love that “this” works!” works!” works!␤»
masak timotimo: fix'd, thanks 23:11
timotimo mscha: and now build something terribly confusing with these :D
masak: "There are combinations of horrors that can be imagined." sounds kind of weird on its own 23:12
23:13 xfix left
timotimo other than that, good post! 23:14
masak thanks. fixing that sentence too 23:16
diakopter so many ponies 23:17
RabidGravy mmm ponies
diakopter you could linkify modules.perl6.org 23:18
oh wait that's jdv's
_nadim thank you all for the help, now everything is, hapilly, broken. 23:19
smls TimToady: I get "[DISLOCATED MESSAGE] Useless use of &infix:<=> in sink context" for a Perl 6 script that's 640 lines long. Any idea what I should look for to golf it?
23:19 kjs_ left
timotimo _nadim: :( 23:20
smls: perhaps the --target=ast will give you a little hint?
smls I'll try
timotimo in there you can just grep out all mentions of &infix:<=> and see if the "annotations" show you anything
then we can find what piece of the grammar&actions was responsible
masak ok, advent post scheduled 23:21
in 38 minutes :)
going to bed now
'night, #perl6
RabidGravy toodles 23:22
timotimo neato
good night masak
23:22 spider-mario left
lizmat gnight masak 23:23
smls timotimo: It only spits out one line with "&infix:<=>":
- QAST::Var(lexical &infix:<=>) :BY<&defoid W W u u U u U u U u U u> :context<sink>
timotimo ah 23:24
can you give me the context of that?
if it's not the first child of a call, that'd be weird. maybe it's also weird to have sink context in there
smls wait i think i see which sub this is in
timotimo: Alright, the offending line in the source has the form: %hash{.foo}{.bar} »=» 1 for @list; 23:26
will try to reproduce it as a one-liner 23:27
Thanks for that --target=ast advice :)
23:28 RabidGravy left, [Sno] left
smls ...got it. TimToady: 23:30
m: my @a; @a »=» 1 for 1;
camelia rakudo-moar f0c546: OUTPUT«[DISLOCATED MESSAGE] Useless use of &infix:<=> in sink context␤»
23:30 firstdayonthejob left, [Sno] joined
[Coke] yawns 23:31
timotimo right. so that's about hyper metaops not wanting their operator 23:33
23:33 lostinfog left 23:39 rurban joined, rurban left 23:40 rurban joined, rurban left
[Coke] m: say -Inf^..^Inf 23:41
camelia rakudo-moar f0c546: OUTPUT«-Inf^..^Inf␤»
[Coke] m: say (-Inf^..^Inf).min
camelia rakudo-moar f0c546: OUTPUT«-Inf␤»
[Coke] m: say (-Inf^..^Inf).minmax
camelia rakudo-moar f0c546: OUTPUT«(timeout)» 23:42
[Coke] ... does Range need its own minmax?
do we need to resolve RT #126990 before christmas? Looks like it would be an easy fix if we went with option #3. 23:43
lizmat [Coke]: it can't, really
23:45 virtualsue left 23:50 rvchangue left
lizmat [Coke]: especially with non-integers numeric and excludes-min/max in play 23:52
.minmax probably shouldn't hang, though
23:58 rvchangue joined
geraud m: say 一+八; 23:58
camelia rakudo-moar f0c546: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1DzzHkMquh␤Undeclared routines:␤ 一 used at line 1␤ 八 used at line 1␤␤»
dalek kudo/nom: d01eb83 | lizmat++ | src/core/Range.pm:
Streamline Range.ACCEPTS + .in-range method

  - add Cool candidate that fastpaths Ints
  - add in-range method: return True if in range, or X::OutOfRange fail
23:59
kudo/nom: b69aa55 | lizmat++ | src/core/Int.pm:
Fix for #126990 option #3, ^-Inf..^Inf