»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:01 yqt left 00:13 TEttinger left 00:22 lolisa left 00:25 colomon joined 00:35 Ven left 00:38 bjz left 00:45 colomon left 00:46 colomon joined 00:55 vendethiel- left 01:00 bjz joined 01:05 colomon left 01:10 gfldex left 01:24 aborazmeh joined, aborazmeh left, aborazmeh joined 01:25 geekosaur left, geekosaur joined 01:42 TEttinger joined 01:46 telex left 01:48 telex joined 01:56 skids joined 02:01 leont left 02:07 noganex joined 02:10 noganex_ left 02:27 tinyblak joined 02:38 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:57 bin_005_k joined 03:04 bin_005 left
zacts hi 03:18
timotimo: aren't you a southpark character? 03:19
anyway, hello #perl6
AlexDaniel how can I make that work: $a, $b, $c = @x; ? 03:20
oh, just put ( ) around the left side 03:22
thanks
03:29 atroxaper joined 03:32 khw left 03:34 atroxaper left 03:40 raiph left, Ben_Goldberg left 03:41 nys left 03:43 raiph joined 03:50 davido__ joined 03:52 davido_ left 04:03 Dee22 joined 04:04 VinceDee left 04:08 Dee22 left, VinceDee joined 04:26 amurf joined 04:27 khw joined 04:28 vendethiel joined 04:30 amurf left
AlexDaniel there was a way to indicate that a parameter should be passed without giving it a name (just ignoringit) in the signature, what was it? 04:42
ugexe i think its just $ 04:43
AlexDaniel yeah 04:44
thanks
04:46 kaare_ joined 05:06 davido__ left 05:11 raiph left
AlexDaniel *** Error in `/home/alex/git/rakudobrew/moar-nom/install/bin/moar': double free or corruption (!prev): 0x0eab14f8 *** 05:13
Aborted
*** Error in `/home/alex/git/rakudobrew/moar-nom/install/bin/moar': free(): invalid pointer: 0x09b99c58 *** 05:18
Aborted
hm, it is repeatable 05:19
but I'm not sure if I can golf it down to something
hm, it is funny. It looks like if I change any line, it stops breaking 05:35
so what should I do?
I don't really feel like posting the whole huge ugly script, and if I change any line this error disappears 05:36
I can mail it to anyone who is interested though (although what are the chances that it will be reproducible on another machine?) 05:37
ugexe sounds like a good time to learn how to use a debugger! 05:41
AlexDaniel ugexe: sure, any directions?
05:43 vendethiel left
ugexe valgrind + perl6-valgrind-m (already built) 05:47
AlexDaniel oh 05:49
ugexe cli package meta search all formatted nicely gist.github.com/ugexe/d2e26de84f4c719e2b0d 05:51
japhb ugexe++ 05:56
AlexDaniel Well, it feels like I should leave it running for the whole night to see the stacktrace tomorrow :) 05:58
the script took about a minute to get to that point, and it is much slower in valgrind 05:59
ugexe yeah its really slow
AlexDaniel ugexe: I've just ran my script in perl6-valgrind-m, is that enough? 06:00
or maybe I should have provided some additional arguments?
06:01 aborazmeh left
AlexDaniel ugexe: and what will I get in the end? 06:01
ugexe you can give it flags for other stuff but i just generally run i 06:02
AlexDaniel oh look, I got something 06:06
but instead of crashing it keeps running
gist.github.com/AlexDaniel/a3ce0f8315ddd93fed38 06:08
ugexe probably should include the relevant p6 code with that gist 06:12
AlexDaniel it is 80 lines
I'm not sure if that will help 06:13
ugexe it would help if we at least knew the line causing the problem
06:13 vendethiel joined
AlexDaniel one second 06:14
ugexe: gist.github.com/AlexDaniel/76569d745033eac7e3b3 06:17
tadaaa
that's the whole code, well
so it is looping on that line: printPart $_ for grep { .part<layer> eq $layer }, @parts; 06:18
and it works OK most of the time, but once upon a time it throws that error
06:19 atroxaper joined
AlexDaniel there is no specific time it does it, sometimes it does not break at all 06:19
JimmyZ where is the pins.ASC?
ugexe might be worth commenting out the Digest::SHA stuff so you can at least rule out dependencies
AlexDaniel ugexe: well, the problem is that it is very unstable 06:20
ugexe: look at that $FILENAME there on top of the file
ugexe: that's an unused variable
if I remove that, it stops breaking.
as stupid as it sounds, but oh well... 06:21
JimmyZ: files.progarm.org/pins.ASC
06:23 atroxaper left
JimmyZ how do you run it? perl6 gistfile1.6pl pins.ASC ? 06:24
AlexDaniel oh sorry, that is probably important 06:25
asc-to-svg pins.ASC B
perl6 in front of that
or ./ , whatever. Please note that B in the end
oh by the way, this info about leaks looks pretty scary: gist.github.com/AlexDaniel/d6ecc6715b357e62ee3d 06:28
JimmyZ: first of all it prints a plenty of dots, that works fine, then it starts printing <circle ...> lines 06:29
JimmyZ: about a minute doing that and then it breaks
well, not even 1 MB lost, so probably not that bad :) 06:31
JimmyZ: and it seems like if you don't run that with B argument it wont break 06:33
Linux Margo 3.16.0-4-586 #1 Debian 3.16.7-ckt4-3 (2015-02-03) i686 GNU/Linux 06:34
06:36 vendethiel left
AlexDaniel what else can I provide? 06:36
JimmyZ nothing yet
AlexDaniel what do you mean by yet? To me it looks like either it breaks after a minute or it does not break at all 06:37
JimmyZ I am installing SHA ... 06:38
AlexDaniel oh :)
panda install Digest
that's what I did
oh yeah, and I'm using rakudobrew
last time I've built it was, erm, today 06:39
It seems like it does not break without B 06:41
06:41 vendethiel joined 06:44 FROGGS[mobile] joined
AlexDaniel 0m36.241s 0m36.261s 0m36.369s 06:50
oh look, it seems like it breaks on exactly the same line
JimmyZ it is a gc bug, methinks 06:51
oh at least from moar
AlexDaniel gist.github.com/AlexDaniel/d8c7333f181b41cc64a6 06:52
JimmyZ my problem is I can't bootstrap panda 06:54
AlexDaniel haha 06:55
I'm going to bed soon 06:56
if there is anything else I can provide please ask
JimmyZ good night
AlexDaniel and, um, maybe I should create an issue on the bug tracker? 06:57
or will you handle that?
JimmyZ AlexDaniel: [email@hidden.address]
AlexDaniel yeah I know
ok 06:58
fuck 07:00
accidentaly pressed send
07:05 vendethiel left 07:15 TEttinger left
AlexDaniel ok, I wrote a reply with normal description 07:16
JimmyZ hmm, the newest panda doesn't work on linux .. 07:19
AlexDaniel JimmyZ: that's not possible 07:20
because I installed it a few hours ago
JimmyZ I got a bootstrap problem... 07:23
AlexDaniel hmm 07:24
JimmyZ Compiling lib/File/Find.pm to mbc
===SORRY!===
no such file or directory
AlexDaniel ok, good night :) 07:25
JimmyZ good night
07:30 AlexDaniel left 07:33 darutoko joined 07:40 vendethiel joined 07:44 nightfrog left, shmibs joined, nightfrog joined, tinyblak_ joined 07:48 xfix joined, xfix left, xfix joined, tinyblak left 07:49 tinyblak_ left 07:59 skids left 08:00 tinyblak joined 08:01 vendethiel left 08:04 vendethiel joined, amurf joined 08:09 amurf left 08:13 bjz left 08:18 bjz joined 08:25 rindolf joined 08:26 FROGGS[mobile] left 08:29 vendethiel left 08:32 MueThoS76 joined, MueThoS76 left 08:33 MueThoS76 joined 08:36 espadrine joined 08:37 aindilis left 08:39 RabidGravy joined 08:42 aindilis joined 08:50 vendethiel joined 08:53 nightfrog left, nightfrog joined 08:55 Ven joined 09:01 gfldex joined 09:06 rindolf left 09:42 MueThoS76 left 09:44 jaffa4 joined
jaffa4 hi all 09:45
09:56 atroxaper joined 10:00 atroxaper left
jnthn lizmat: When you fix RTs but don't add a test, please could you tag 'em testneeded (on the Jumbo tab), to make them easy for those who write tests to find, so we might get 'em covered/closed faster. Thanks! 10:04
(I just did this for 125495 and 125486) 10:05
10:10 tinyblak left 10:14 jaffa4 left 10:20 jaffa4 joined
jaffa4 jnthn: moar.exe crashes for me on Windows 10:20
lizmat jnthn: will do 10:21
10:39 diana_olhovik joined
lizmat looking at (;;$a) signature 10:40
apparently the internal datastructure is set up the same way for (;;$a) as it is for ($a;;) 10:41
jnthn: I'm not sure how to fix that in the grammar 10:43
moritz ($a;;) should be the same as ($a), no? 10:44
lizmat yes
but *not* the same as (;;$a)
the ;; just resets the multu-invocant flag to be applied to the parameter 10:45
in the case of (;;$a), the reset happens too late
jnthn lizmat: I don't immediately know how to fix that... 10:54
lizmat me neither :-(
jnthn lizmat: Agree it's a problem, though
Can you RT it, and I'll take a look at it a bit later... 10:55
lizmat ok, I'll rakudobug it
jnthn Thanks :)
Going for a stroll to the big supermarket soon to get some spices and other bits in, so I cna cook interesting things at $new-place. :)
lizmat go fort it
*for
lizmat is going to be cycling soon again 10:56
10:56 tinyblak joined
jnthn Will be doing Perl 6 stuff all day tomorow, hopefully wiht a small interuption when the box containing my main dev machine gets delivered (so I can spectest faster again...yay) 10:56
lizmat :-) 10:57
11:00 araujo left 11:02 tinyblak_ joined
dalek kudo/nom: 947138f | lizmat++ | src/Perl6/Grammar.nqp:
Catch double use of ;; in signature
11:04
11:05 tinyblak left
dalek kudo/nom: 367b581 | lizmat++ | src/Perl6/Grammar.nqp:
They shouldn't be worries, they should panic
11:06
lizmat jnthn: #125502 fwiw :-) 11:09
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125502
lizmat afk until later& 11:10
11:13 quokka_ left
grondilu token positive-integer { \d+ <?{ $/.Int == $/ and $/ > 0 }> } # does this make sense to you? 11:17
I mean, aren't there pre-defined regexes for numeric types? 11:19
jnthn When would the bit before the and ever be false? 11:20
grondilu never, my bad
jnthn really away & 11:22
grondilu parsing a floating point, for instance. Do I really have to write my own regex? 11:23
psch grondilu: \d+ doesn't match floating points 11:24
grondilu no I was jumping to an other subject
psch oh, okay 11:25
grondilu token floating-point {...}
psch fwiw, i think regex might be more than you need, if you're not really parsing
grondilu well yeah, probably
may be overkill 11:26
I have a 3D file with a format like this: github.com/OoliteProject/oolite-bi...s_dock.dat and I'm considering writing a grammar. 11:27
psch i'd probably just read the segments and &split, tbh 11:29
grondilu I guess
it's going to be tedious to write though
timotimo grondilu: a few weeks ago i tried to get into oolite 11:31
grondilu you mean into the objective-C code?
timotimo grondilu: but then i made stupid mistakes with trading and then i decided i'd cheat my way into a lot of money and suddenly the game wasn't interesting any more %)
no, into playing
grondilu me I stopped because I hate dogfights and there are always ships harassing me. 11:32
timotimo i've played "elite: dangerous" on a friend's accound with a hands-on-throttle or what it's called 11:34
it was nice for navigating places, but ... yeah, dogfights
psch for some reason ExceptionHandling.<clinit> *throws* the ThreadDeath instead of just creating and assigning it..? :l
timotimo with me, they just end up being "trying to point towards the enemy and then shooting"
anything other than just rotating towards my enemy and then shooting just gets me shot 11:35
like trying to get a bit of range on the enemy and then turning? nope. the enemy gets their lasers pointed right at my bum
i have zero intuition for how i should be behaving in those fights at all 11:44
grondilu so if I want to retrieve say the VERTEX section I can write "my @vertex = grep { /^VERTEX/ ff /^$/ }, lines;", right? 11:48
it does work but I wonder if there is more idiomatic. 11:49
timotimo well, after you do "lines", you'd have to rewind the file object 11:51
not sure if argfiles supports that operation
11:53 laouji joined
grondilu I actually already put everything in a @lines array. It's ok it won't be very big anyway. 11:53
timotimo it seems like that ff invocation ought to work 11:55
psch i think it looks pretty idiomatic
timotimo oh, you wrote "it does work", i read "doesn't work" 11:56
grondilu well, that's an opportunity to use &infix:<ff> I guess
11:56 yqt joined
timotimo sure 11:56
grondilu I4m often surprised it is not used more
timotimo i'm glad it was renamed ff from .. 11:57
psch yeah, good disambiguation 11:58
grondilu I wish ther wer a ^ff^, ff^ and ^ff versions, like with ..
psch m: my @a = 1..10; .say if 1 ^ff 5 for @a # there are 11:59
11:59 mj41 joined
camelia rakudo-moar 367b58: OUTPUT«2␤3␤4␤5␤» 11:59
grondilu oh
cool 12:00
psch hm, i forgot how ff and fff differ :/ 12:01
timotimo the design docs call ff "flip-flop" and fff "flip-flop (sed style)" 12:02
The old .. flipflop operator is now done with ff operator. (.. now always produces a Range object even in item context.) The ff operator may take a caret on either end to exclude either the beginning or ending. There is also a corresponding fff operator with Perl 5's ... semantics. 12:03
psch m: my @a = <A B C B A>; .say if /A/ ff /C/ for @a; .say if /A/ fff /C/ for @a
camelia rakudo-moar 367b58: OUTPUT«A␤B␤C␤A␤A␤B␤C␤A␤»
timotimo why doesn't the design doc explain what the perl5's semantics are? or the sed semantics?
grondilu so I ended up writing: my @vertex = map { .chomp; s:g/\,//; .words».Num }, grep { /^VERTEX/ ^ff^ /^$/ }, @lines;
psch i'm guessing "it hasn't changed, look at perldoc perlop" 12:04
timotimo "hasn't changed" is no help for me at all, since i never did any perl5 at all
grondilu: looks like the right place to use a feed operator :)
psch i know, i'm not saying it's great, but i can see why it is like that 12:05
timotimo ah
psch m: my @a = <A B C B A>; say "ff"; .say if /B/ ff /B/ for @a; say "fff"; .say if /B/ fff /B/ for @a 12:06
camelia rakudo-moar 367b58: OUTPUT«ff␤B␤B␤fff␤B␤C␤B␤»
timotimo so fff will not test the right hand side directly when the left hand side matches for the first time
psch yeah, ff can flip *and* flop in one iteration
timotimo so if the RHS also matches on the line the LHS matches, it'll not return True once
grondilu thought feed operators were NYI 12:07
psch grondilu: underimplemented is more right, i think
grondilu m: say grep *%%3 <== grep *%%5 <== ^100
camelia rakudo-moar 367b58: OUTPUT«0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95␤»
timotimo huh 12:08
grondilu seems wrong
timotimo m: say <== grep *%%3 <== grep *%%5 <== ^100
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bFyT_qxxjv␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/bFyT_qxxjv:1␤------> 3say <== grep *%%3 <== grep *%%5 <== ^1007⏏5<EOL>␤ expecting any of:␤ …»
timotimo m: .say <== grep *%%3 <== grep *%%5 <== ^100
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7bnGMXddDj␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/7bnGMXddDj:1␤------> 3say <== grep *%%3 <== grep *%%5 <== ^1007⏏5<EOL>␤»
timotimo m: my @foo <== grep *%%3 <== grep *%%5 <== ^100; say @foo 12:09
camelia rakudo-moar 367b58: OUTPUT«0 15 30 45 60 75 90␤»
timotimo the say was messing it up somehow
grondilu m: say my @ <== grep *%%3 <== grep *%%5 <== ^100
camelia rakudo-moar 367b58: OUTPUT«0 15 30 45 60 75 90␤»
grondilu indeed
m: say my @ = grep *%%3 <== grep *%%5 <== ^100
camelia rakudo-moar 367b58: OUTPUT«0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95␤»
psch m: my @a = grep *%%3 <== ^10; @a.say 12:10
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DyKPyaRW4d␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/DyKPyaRW4d:1␤------> 3my @a = grep *%%3 <== ^107⏏5; @a.say␤»
psch m: my @a = (grep *%%3 <== ^10); @a.say
camelia rakudo-moar 367b58: OUTPUT«0 3 6 9␤»
psch that's kinda wat 12:11
vendethiel m: my @a <== grep *%%3 <== ^10; say @a
camelia rakudo-moar 367b58: OUTPUT«0 3 6 9␤»
psch m: say (my @ = grep *%%3 <== grep *%%5 <== ^100)
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DObTZ5eFWN␤Sorry, do not know how to handle this case of a feed operator yet.␤at /tmp/DObTZ5eFWN:1␤------> 3(my @ = grep *%%3 <== grep *%%5 <== ^1007⏏5)␤»
psch vOv
i have fighting with nested jars and loading resources to do
jaffa4 Is there anyone who has compiled rakudo on Windows recently? 12:12
itz_ jaffa4: the main dev uses windows so the answer is almost certainly "yes" 12:17
jaffa4 Who do you call main dev? 12:18
itz_ jnthn
12:18 diana_olhovik left 12:19 rindolf joined 12:29 yqt left 12:37 krakan left
vendethiel RT#125259 (is the bot still here?) 12:49
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125259
vendethiel (yes)
12:50 krakan joined 12:56 krakan left 12:57 Ben_Goldberg joined 12:58 [Sno] left 13:03 nys joined 13:05 [Sno] joined 13:06 Ven left 13:10 krakan joined
grondilu well that's unfortunate. Some .dat file do not use ',' as a separator. The objective-C parser looks for "scanner scanFloat:" so that's why the lack of consistent separator is not an issue. I wish I could write comb(/<float>/). 13:15
(the Obj-C parser is github.com/OoliteProject/oolite/bl.../OOMesh.h) 13:17
psch <float> is just /(-? \d* '.' \d+)/ though? 13:18
i mean, i get it's nice to have it named
13:18 mj41 left
grondilu seems over simplistic. 13:18
psch well, it skips scientific notation
grondilu I guess I could put an entry in the most-wanted modules list.
psch it's definitely a good candidate for something like a Regex::Common module or somesuch
grondilu oh there is one apparently 13:20
called Regexp::Common
(mind the 'p')
that's kind of a low-hanging fruit. I could write that. 13:21
13:21 diana_olhovik_ joined
psch ++grondilu 13:21
grondilu but truly I wonder why we can't use STD for that. 13:22
jaffa4 Is there oct in perl 6?
grondilu I mean, it must exist there.
13:23 domidumont joined
Ben_Goldberg m: say :8(111) 13:24
camelia rakudo-moar 367b58: OUTPUT«You have confused the number 111 with the textual representation "111";␤if you wanted to render the number in the given base, use $number.base($radix)␤ in block <unit> at /tmp/xgygqrfIf2:1␤␤»
Ben_Goldberg m: say 7.base(8)
camelia rakudo-moar 367b58: OUTPUT«7␤»
jaffa4 m: say 777.base(8) 13:25
camelia rakudo-moar 367b58: OUTPUT«1411␤»
jaffa4 m: say 700.base(8)
camelia rakudo-moar 367b58: OUTPUT«1274␤»
psch m: say :8(Str(700))
camelia rakudo-moar 367b58: OUTPUT«448␤»
jaffa4 m say 8*8*8
grondilu m: say :8<1411>
camelia rakudo-moar 367b58: OUTPUT«777␤»
grondilu you need to provide a string to :8
psch the .base methods transforms *into* the base 13:26
the colonpair form interprets *as* the base
13:27 domidumont left 13:28 domidumont joined
jaffa4 : say :8(Str(080)) 13:29
m: say :8(Str(080))
camelia rakudo-moar 367b58: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o80 if you mean that␤ at /tmp/bce55lpg5N:1␤ ------> 3say :8(Str(0807⏏5))␤Cannot convert string to number: base-8 number must begin with valid digits or…»
jaffa4 m: say :8(Str(010))
camelia rakudo-moar 367b58: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o10 if you mean that␤ at /tmp/HK4n0VNPqj:1␤ ------> 3say :8(Str(0107⏏5))␤8␤»
jaffa4 m: say :8("010") 13:30
camelia rakudo-moar 367b58: OUTPUT«8␤»
jaffa4 m: say :8("100")
camelia rakudo-moar 367b58: OUTPUT«64␤»
grondilu that's inconsistant
it should complain here as well
psch why
080 is a numeric literal
"080" is a string literal
"080" does not indicate a number
grondilu oh yeah 13:31
jaffa4 Why not , it is a number
psch no, it's a string literal
13:31 telex left
grondilu likes this distinction actually 13:31
13:32 telex joined, FROGGS[mobile] joined
FROGGS[mobile] m: say 0o777 13:32
camelia rakudo-moar 367b58: OUTPUT«511␤»
Ben_Goldberg m: my $x = '777'; say :8($x); 13:33
camelia rakudo-moar 367b58: OUTPUT«511␤»
Ben_Goldberg m: my $x = '10'; say :8($x);
camelia rakudo-moar 367b58: OUTPUT«8␤»
13:34 atroxaper joined
Ben_Goldberg m: srand 1; print sort -> $a, $b { Order.pick }, "artuh(h ot anceke8J: r),s".comb; 13:34
camelia rakudo-moar 367b58: OUTPUT«Just another :8() hacker
itz_ ~30m to spacex launch
13:35 FROGGS[mobile] left
Ben_Goldberg Third time's the charm? 13:35
grondilu they are not live yet are they? 13:36
13:37 raiph joined 13:38 atroxaper left
psch yay, progress \o/ 13:40
self-executing jars are in a spot where the rakudo-j interpreter actually starts and tries to run it! 13:41
grondilu wow if I search for floats and integers on the same line, I must be careful not to split floats :-( What a hassle.
psch unfortunately i still have fiddling with the ModuleLoaderVMConfig for r-j to check *inside* of a jar for files...
+to do
i'm not that sure how i'd do that either...
grondilu why cna't I do comb(/<number>/)?? 13:42
m: say "4, 56.43 -23".comb(/<[+-]>?\d[\.\d+]/); 13:43
camelia rakudo-moar 367b58: OUTPUT«6.43␤»
grondilu m: say "4, 56.43 -23".comb(/<[+-]>?\d[\.\d+]?/);
camelia rakudo-moar 367b58: OUTPUT«4 5 6.43 -2 3␤»
grondilu m: say "4, 56.43 -23".comb(/<[+-]>?\d[\.\d+]?/).join(",");
camelia rakudo-moar 367b58: OUTPUT«4,5,6.43,-2,3␤»
grondilu m: say "4, 56.43 -23".comb(/<[+-]>?\d+[\.\d+]?/).join(","); 13:44
camelia rakudo-moar 367b58: OUTPUT«4,56.43,-23␤»
timotimo grondilu: if you use the | operator, you should be getting longest-token-matching
yeah, the + after \d was missing
glad you found it
grondilu I'll try /<[+-]>?\d+[\.\d+]?/ 13:45
psch first impulse is "i need an nqp-op"
for cases where we are running from a nested/fat jar and want to find modules inside of that...
which we always have to do, the module-finding that is, cause we need to load BOOTSTRAP anyway 13:46
grondilu OK I could parse the mesh for the cobra mark III 13:50
dalek ast: 766987b | usev6++ | integration/error-reporting.t:
Add test for RT #125495
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125495
13:50 RabidGravy left 13:53 aborazmeh joined, aborazmeh left, aborazmeh joined
timotimo www.twitch.tv/317070 - an interactive installation of a "dreaming"/"hallucinating" deep neural network 13:58
14:00 bin_005_k left 14:05 rindolf left
jaffa4 timotimo: what is that? 14:07
timotimo inspired by this: googleresearch.blogspot.be/2015/06/...eural.html
the things it makes aren't quite as clearly discernible as the google version 14:10
14:15 Ven joined 14:17 domidumont left 14:18 zakharyas joined
grondilu well, Falcon 9 exploded at about 32km altitude. 14:25
Just before going supersonic
wait no
it was going at 1km/s, so Mach 3
14:27 tinyblak_ left 14:29 tinyblak joined 14:37 RabidGravy joined 14:43 census joined 14:50 kaare_ left 14:51 kaare_ joined 14:58 kaare_ left 15:00 colomon joined
Ben_Goldberg Could we write a slang so that this: xkcd.com/1537/ is possible? 15:01
15:04 colomon left 15:05 tinyblak left
moritz much of that is trivial with operator overloading and custom types 15:07
m: multi infix:<+>(Str:D $x, Array:D where !*.elems) { "[$x]" }; say "2" + [] 15:09
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4rTVEQQzUz␤Cannot do non-typename cases of type_constraint yet␤at /tmp/4rTVEQQzUz:1␤------> 3fix:<+>(Str:D $x, Array:D where !*.elems7⏏5) { "[$x]" }; say "2" + []␤»
moritz m: multi infix:<+>(Str:D $x, Array:D where { ! .elems }) { "[$x]" }; say "2" + []
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YpDgmPq8kV␤Cannot do non-typename cases of type_constraint yet␤at /tmp/YpDgmPq8kV:1␤------> 3<+>(Str:D $x, Array:D where { ! .elems }7⏏5) { "[$x]" }; say "2" + []␤»
moritz m: multi infix:<+>(Str:D $x, Array:D $ where { !.elems}) { "[$x]" }; say "2" + []
camelia rakudo-moar 367b58: OUTPUT«[2]␤»
15:11 ][Sno][ joined, [Sno] left
dalek ast: 9a4daf7 | usev6++ | S06-signature/introspection.t:
Add test for RT #125482
15:16
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125482
15:19 cognominal joined 15:33 aborazmeh left
jaffa4 What is the difference between module and package? 15:34
timotimo m: module foo { } 15:41
camelia ( no output )
timotimo m: package foo { }
camelia ( no output )
timotimo huh, i thought one of those is supposed to tell you "you don't spell it like that in perl6"
15:41 laouji left 15:42 FROGGS[mobile] joined
FROGGS[mobile] m: package Foo; 15:43
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_ikqLKw1yb␤This appears to be Perl 5 code. If you intended it to be Perl 6 code, please use a Perl 6 style declaration like "unit package Foo;" or "unit module Foo;", or use the block form instead of the semi…»
15:43 AlexDaniel joined
jaffa4 bug? 15:44
Ven I tried to write said xkcd, but I'm getting this error with my code:
Cannot invoke this object (REPR: Uninstantiable, cs = 0)
github.com/vendethiel/xkcd1537.p6
jaffa4 FROGGS[mobile]: bug?
15:46 diana_olhovik_ left 15:47 skids joined
timotimo well, anyway, only module is supposed to work in perl6 15:48
FROGGS[mobile] jaffa4: no, intention 15:50
timotimo so, package foo { .. } is supposed to work?
oh, it seems that way 15:51
in that case i have no clue what the difference between package and module is
Ven trying to use Bailador:
Use of uninitialized value $segment of type Any in string context in block at lib/HTTP/Easy/PSGI.pm6:102
anyone faced that?
jaffa4 How can I call a sub in a module outside the module? 15:53
RabidGravy I thought I remembered from a very long time ago that if perl 6 saw "package Foo;" it took it to be perl 5 and behave appropriately
jaffa4 A::b() does not seem to work
timotimo subs are lexical by default; it has to be an our sub to be callable from outside
jaffa4 timotimo: you know something 15:55
timotimo i know a few things
jaffa4 m: sub ref($e) { return $e.WHAT.substr(1,-1); { 16:00
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TB7Vg1psTT␤Missing block␤at /tmp/TB7Vg1psTT:1␤------> 3ref($e) { return $e.WHAT.substr(1,-1); {7⏏5<EOL>␤»
jaffa4 m: sub ref($e) { return $e.WHAT.substr(1,-1); }
camelia ( no output )
jaffa4 moar: sub ref($e) { return $e.WHAT.substr(1,-1); }
rakudo: sub ref($e) { return $e.WHAT.substr(1,-1); }
camelia ( no output )
timotimo you forgot to 1) say something, 2) call the ref sub 16:01
i guess?
jaffa4 no, I expected ti to fail 16:02
geekosaur .oO { no, I expect you to die() }
timotimo oh; why is that? because of -1 in substr?
jaffa4 no because it fails for me 16:03
timotimo what's the failure mode?
jaffa4 rakudo: sub ref($e) { return $e.WHAT.substr(1,-1); } my @a = (); ref(@a);
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3ref($e) { return $e.WHAT.substr(1,-1); }7⏏5 my @a = (); ref(@a);␤ expecting any of:␤ infix␤ …»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.substr(1,-1); }; my @a = (); ref(@a);
camelia rakudo-moar 367b58: OUTPUT«Cannot look up attributes in a type object␤ in sub ref at /tmp/tmpfile:1␤ in block <unit> at /tmp/tmpfile:1␤␤»
timotimo yeah 16:05
you probably want $e.WHAT.^name
m: my @a = (); say @a.WHAT.perl
camelia rakudo-moar 367b58: OUTPUT«Array␤»
timotimo it's not a string, it's the Array type object
m: my @a = (); say @a.WHAT.Str.perl
camelia rakudo-moar 367b58: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at /tmp/OeFJWIgvr8:1␤␤»
timotimo and coercing a type object to a Str like that isn't a happy operation
m: my @a = (); say ~@a.WHAT
camelia rakudo-moar 367b58: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at /tmp/LaYx9bmmRk:1␤␤»
16:06 FROGGS[mobile] left
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; } my @a = (); ref(@a); 16:06
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3sub ref($e) { return $e.WHAT.^name; }7⏏5 my @a = (); ref(@a);␤ expecting any of:␤ infix␤ …»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); ref(@a); 16:07
camelia ( no output )
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(@a);
camelia rakudo-moar 367b58: OUTPUT«Array␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(\@a); 16:08
camelia rakudo-moar 367b58: OUTPUT«Capture␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(@(\@a));
camelia rakudo-moar 367b58: OUTPUT«List␤»
timotimo BBIAB
16:10 Ven left
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(@(item @a)); 16:11
camelia rakudo-moar 367b58: OUTPUT«Array␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(item @a); 16:14
camelia rakudo-moar 367b58: OUTPUT«Array␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say ref(item (item @a)); 16:15
camelia rakudo-moar 367b58: OUTPUT«Array␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (); say (item (item @a));
camelia rakudo-moar 367b58: OUTPUT«␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my @a = (4,4,4); say (item (item @a)); 16:16
camelia rakudo-moar 367b58: OUTPUT«4 4 4␤»
16:17 BenGoldberg_ joined
timotimo is there something in particular you want to ask or find out? 16:18
16:19 uncleyea1 joined
jaffa4 you can see item of time does not make difference 16:20
tiem
timotimo all item does is put something into a scalar container
basically "item @bar" is the same as "(my $ = @bar)"
16:21 Ben_Goldberg left, uncleyear left
jaffa4 I wonder what does \ do? 16:21
16:23 kaare_ joined
timotimo it creates a capture from things 16:24
m: say \(1, 2, 3, :a, :!b).perl
camelia rakudo-moar 367b58: OUTPUT«\(1, 2, 3, :a, :!b)␤»
timotimo well, duh :)
that wasn't so helpful
jaffa4 capture?
timotimo Capture 16:26
it's a type
jaffa4 So?
psch m: say \($) ~~ :($); say \($,$) ~~ :($) 16:27
camelia rakudo-moar 367b58: OUTPUT«True␤False␤»
psch Captures can match against Signatures
(the RHS is literal Signatures)
hmm 16:29
m: say \("hi", "bye") ~~ &substr.signature # this i expected to fail
camelia rakudo-moar 367b58: OUTPUT«True␤»
psch m: say &substr.signature 16:30
camelia rakudo-moar 367b58: OUTPUT«(|)␤»
16:30 kaare_ left
psch oh 16:30
m: say \("a") ~~ &abs.signature
camelia rakudo-moar 367b58: OUTPUT«True␤»
psch yeah something might be missing there...? :s
maybe MMD getting involved somehow 16:31
or not getting involved enough
timotimo m: say &abs.signature
camelia rakudo-moar 367b58: OUTPUT«($)␤»
timotimo m: say &abs.signature.perl
camelia rakudo-moar 367b58: OUTPUT«:($)␤»
timotimo m: say &substr.signature.perl
camelia rakudo-moar 367b58: OUTPUT«:(|)␤»
timotimo those are the signatures of the protos
jaffa4 I 16:32
psch yeah, so it doesn't get dispatched
jaffa4 say &lc.signature.perl
psch so that's more useful for manual dispatch, if anything
jaffa4 m:say &lc.signature.perl
m: say &lc.signature.perl
camelia rakudo-moar 367b58: OUTPUT«:(Cool $s)␤»
psch e.g. grab all the sigs from the candidates and then doing something with that that shouldn't have to be done i guess :)
timotimo well, you can get the signatures of the individual candidates, of course
16:36 khw left, kaare_ joined
jaffa4 m: my $c = 4; my $b = item $c; $c = 5; say $b; 16:37
camelia rakudo-moar 367b58: OUTPUT«4␤»
jaffa4 SHould not that be 5? 16:38
16:38 kaare__ joined
psch m: my $c = 4; my $b := $c; $c = 5; say $b # this should be 5 16:40
camelia rakudo-moar 367b58: OUTPUT«5␤»
psch jaffa4: &item is not the same as \ (for taking a reference) in perl5 16:41
jaffa4 it worked as a reference for %
when I tested it
16:41 kaare_ left
psch m: my %a = 1,2; my %b = item %a; %a = 3,4; say %b 16:42
camelia rakudo-moar 367b58: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/M06EcIWcGk:1␤␤»
psch i don't know what you tested :)
16:42 laouji joined
ugexe would adding a checksum to the projects.json url be useful for ignoring the body if its not updated? 16:42
jaffa4 : my %a = 1,2; my $b = item %a; %a = 3,4; say %($b) 16:43
m: my %a = 1,2; my $b = item %a; %a = 3,4; say %($b)
camelia rakudo-moar 367b58: OUTPUT«3 => 4␤»
jaffa4 psch: this 16:44
16:45 kaare__ left 16:46 kaare__ joined
psch m: my %a = 1,2; my $b = %a; %a = 3,4; say %($b) 16:46
camelia rakudo-moar 367b58: OUTPUT«3 => 4␤»
16:46 laouji left
psch jaffa4: &item does nothing there, the scalar on the LHS does the same 16:46
jaffa4 It does not perform a copy 16:47
japhb jaffa4: Are you trying to do things like "reference to reference to object"? 16:48
jaffa4 just trying to see how it works
japhb: I may need that yes by the way 16:50
16:52 zakharyas left 16:53 haroldwu joined
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my %a = (4,4); say (iref %a)); 17:02
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unexpected closing bracket␤at /tmp/tmpfile:1␤------> 3T.^name; }; my %a = (4,4); say (iref %a)7⏏5);␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my %a = (4,4); say (ref %a)); 17:03
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Unexpected closing bracket␤at /tmp/tmpfile:1␤------> 3AT.^name; }; my %a = (4,4); say (ref %a)7⏏5);␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my %a = (4,4); say (ref %a);
camelia rakudo-moar 367b58: OUTPUT«Hash␤»
jaffa4 rakudo: sub ref($e) { return $e.WHAT.^name; }; my %a = (4,4); say (ref (sub (){} )); 17:04
camelia rakudo-moar 367b58: OUTPUT«Sub␤»
timotimo assignment to a %-sigiled variable does "a copy"
if you assign a hash to a $foo variable, you get the very same object stored in the $foo
m: my %a = a => 1, b => 2; my %b = %a; %b<a> = 10; say %a; say %b;
camelia rakudo-moar 367b58: OUTPUT«a => 1, b => 2␤a => 10, b => 2␤»
timotimo m: my %a = a => 1, b => 2; my $b = %a; $b<a> = 10; say %a; say $b; 17:05
camelia rakudo-moar 367b58: OUTPUT«a => 10, b => 2␤a => 10, b => 2␤»
17:11 atroxaper joined 17:15 atroxaper left
masak evenin', #perl6 17:23
bartolin hi masak 17:24
m: Int.new # seems to happen since 243e400b1f 17:25
camelia rakudo-moar 367b58: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/iDvme_hZ6l:1␤␤»
raiph m: Int.new(123) 17:28
camelia ( no output )
17:30 bbkr joined
bbkr r: class A {method foo ( Int $x where { $x > 10 } = 1024 ) { say $x }}; A.new.foo(1234) 17:31
camelia rakudo-{moar,jvm} 367b58: OUTPUT«1234␤»
bbkr hm, above breaks on 2015/06 with "Cannot modify an immutable Block" error... 17:32
raiph bartolin: ? 17:34
bartolin raiph: sorry, was awk 17:35
raiph bbkr: iirc ... that syntax attempts to assign 1024 to the block; rakudo failed to give it a parse fail (and instead did something crazy); jnthn has fixed Rakudo to correctly complain; now folk need to change stuff of the above form to something that works; looking that up now... 17:36
bartolin raiph: seems like there is some spectest breakage because of 'Int.new' failing
bartolin spectests changing 'method new' introduced with 243e400b1f to 'multi method new' 17:37
m: Str.new
camelia ( no output )
raiph m: Int.new(Mu) 17:38
camelia rakudo-moar 367b58: OUTPUT«Type check failed in binding $value; expected 'Any' but got 'Mu'␤ in block <unit> at /tmp/npB_iOjmSa:1␤␤»
raiph m: Int.new(Any) 17:39
camelia rakudo-moar 367b58: OUTPUT«Cannot unbox a type object␤ in block <unit> at /tmp/9XvQ_Pm8uB:1␤␤»
17:41 geekosaur left
bartolin m: m 'role R[::T] { method x { T.new } }; class C does R[Int] { }; say C.new.x.WHAT;' 17:41
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5===␤:: not yet implemented␤at /tmp/9CmUV87S1j:1␤------> 3m 'role R[::7⏏5T] { method x { T.new } }; class C does ␤Other potential difficulties:␤ Space is not significant here; please use quotes or :s (:sigspace) modifier (o…»
bartolin m: role R[::T] { method x { T.new } }; class C does R[Int] { }; say C.new.x.WHAT;
camelia rakudo-moar 367b58: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method x at /tmp/R3IU7bK2BL:1␤ in block <unit> at /tmp/R3IU7bK2BL:1␤␤»
bartolin m: role R[::T] { method x { T.new } }; class C does R[Str] { }; say C.new.x.WHAT;
camelia rakudo-moar 367b58: OUTPUT«(Str)␤»
17:41 geekosaur joined 17:42 zakharyas joined
bartolin well, with 'multi method new' I get a clean spectest again. 17:42
17:56 MueThoS76 joined 18:02 zakharyas left 18:04 rarara left
bartolin I opened a PR (451) 18:04
star-m: say Int.new
camelia star-m 2015.03: OUTPUT«0␤»
bartolin that looks good to me 18:05
18:11 raiph left 18:21 rurban joined 18:24 raiph joined 18:25 yqt joined, gtodd joined 18:29 yqt left
AlexDaniel m: my $test; sub s($test) { say $test; } say s('hello'); 18:30
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/w3qvkAtl_q␤Strange text after block (missing semicolon or comma?)␤at /tmp/w3qvkAtl_q:1␤------> 3my $test; sub s($test) { say $test; }7⏏5 say s('hello');␤ expecting any of:␤ infix␤ …»
AlexDaniel m: my $test; sub s($test) { say $test; }; s('hello');
camelia rakudo-moar 367b58: OUTPUT«hello␤»
AlexDaniel is there any way to get $test from the outer scope?
vendethiel m: my $test; sub s($test where OUTER::<$test>){say $test}; s('hello'); 18:32
camelia rakudo-moar 367b58: OUTPUT«hello␤»
18:32 yqt joined
AlexDaniel m: my $test='ok'; sub s($test) { say OUTER::<$test>; }; s('hello'); 18:33
camelia rakudo-moar 367b58: OUTPUT«ok␤»
AlexDaniel ok!
vendethiel: thanks
masak japhb++ # consider me to be on your side in the irclog.perlgeek.de/perl6/2015-06-26#i_10810797 argument 18:40
I feel we're breaking Unix convention for no good reason there.
`cmd --flag file` is such a common thing.
jaffa4 I How can I make a reference to scalar? 18:42
masak m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $ref 18:53
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
18:55 raiph left 18:56 MueThoS76 left 18:57 molaf_ joined, domidumont joined, amurf joined 19:00 molaf__ left
jaffa4 masak: is it not that capture? 19:00
timotimo personally, i'd use binding
jaffa4 : my $scalar = 42; my $ref = \$scalar; $scalar++; say $($ref) 19:01
m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $($ref)
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
jaffa4 How do you "unbox" this? 19:02
19:02 amurf left
jaffa4 m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $$ref 19:03
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
jaffa4 m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $$$ref
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
jaffa4 m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $$$$$$$$$$$$$$$$ref 19:04
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
jaffa4 masak: How do you uncapture it? 19:05
19:06 LonelyGM joined 19:11 beastd joined
masak jaffa4: I was trying to find out, but I failed... :) 19:13
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; $scalar++; say +$$ref
camelia rakudo-moar 367b58: OUTPUT«1␤»
timotimo the capture isn't supposed to do something like that
jaffa4 oen way ticket
masak clearly it's possible, since signature binding works with Capture/Signature.
but I don't know how offhand.
timotimo m: my $sc = 53; my $ref = \$scalar; my $other; $ref ~~ :($other); say $ref
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Id77XMgVkw␤Variable '$scalar' is not declared. Did you mean 'Scalar'?␤at /tmp/Id77XMgVkw:1␤------> 3my $sc = 53; my $ref = \7⏏5$scalar; my $other; $ref ~~ :($other); s␤»
timotimo m: my $sc = 53; my $ref = \$sc; my $other; $ref ~~ :($other); say $ref 19:14
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; $scalar++; my $foo := $$ref; say $foo;
camelia rakudo-moar 367b58: OUTPUT«\(53)␤»
rakudo-moar 367b58: OUTPUT«\(43)␤»
timotimo m: my $sc = 53; my $ref = \$sc; my $other; $ref ~~ :($other); say $ref; say $other
camelia rakudo-moar 367b58: OUTPUT«\(53)␤(Any)␤»
timotimo yeah. capture isn't supposed to do what you want
masak jaffa4: to answer your earlier question: yes, that is a capture. when someone asks about "taking a reference" in Perl 6, I think about captures.
19:14 LonelyGM left
masak timotimo: I'm... not sure that's a satisfactory answer, nor necessarily a true one. 19:14
timotimo: clearly captures are meant to *capture* variables (and then bind them to something else) 19:15
so it seems that they could easily emulate references
again, signature binding uses them for this
jaffa4 boxing in c# terminology 19:16
19:17 rurban left
masak .oO( wrestling in Java terminology ) 19:17
jaffa4 in which document is there a description?
masak S08 seems to be the main one. 19:18
but also frequent mentions in S02, S03 and S06
also note that S08 is one of those where I don't know how closely it veers to current implementation/reality. 19:19
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; $scalar++; say $($ref) 19:20
camelia rakudo-moar 367b58: OUTPUT«\(43)␤»
jaffa4 : my $scalar = 42; my $ref = \$scalar; $scalar++; say |($ref) 19:21
m: my $scalar = 42; my $ref = \$scalar; $scalar++; say |($ref)
camelia rakudo-moar 367b58: OUTPUT«43␤»
masak \o/
BenGoldberg_ jaffa4++
masak jaffa4++
jaffa4 m: my $scalar = 42; my $ref = \$scalar; $scalar++; say |$ref
camelia rakudo-moar 367b58: OUTPUT«43␤»
masak "\ to make a reference, | to unmake it" 19:22
shame we couldn't have prefix:</> for unmaking :P
vendethiel *g* 19:23
timotimo bah! 19:24
i've just been told how "guillemets" are actually pronounced
japhb masak: Thank you for your support re: ARGS parsing. :-)
timotimo masak: oh, the mistake must have been i was supposed to := that
or something?
jaffa4 m: say |3; 19:25
camelia rakudo-moar 367b58: OUTPUT«3␤»
vendethiel I thought this was gonna error out with "no prefix:<|>"
19:26 gcole joined, ggoebel joined 19:28 ggoebel2 left 19:29 ggoebel2 joined 19:30 yqt left 19:31 ggoebel3 joined, ggoebel left 19:34 ggoebel2 left, ggoebel4 joined 19:35 ggoebel3 left
masak timotimo: I think ::= 19:37
vendethiel: pretty sure it used to in Rakudo.
19:37 ggoebel5 joined
jaffa4 m: my $scalar = 42; my $ref = \$scalar; $scalar++; (|$ref)++; say $scalar 19:38
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/w_4Zex3Dco␤Arg-flattening | is only valid in an argument list␤at /tmp/w_4Zex3Dco:1␤------> 3 = 42; my $ref = \$scalar; $scalar++; (|7⏏5$ref)++; say $scalar␤»
bartolin m: |3
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KHoLUGVwPi␤Arg-flattening | is only valid in an argument list␤at /tmp/KHoLUGVwPi:1␤------> 3|7⏏053␤»
jaffa4 masak : there is a problem with that reference... cannot change variable value 19:39
19:39 ggoebel6 joined 19:40 yqt joined 19:41 ggoebel4 left 19:42 ggoebel5 left
jaffa4 It looks like a language design problem 19:42
19:44 xfix_ joined
masak it's not. as I say, this mechanism is used in capture/signature binding, where one can change caller variables. 19:46
19:46 ggoebel7 joined
masak m: sub foo($x is rw) { $x++ }; my $y = 42; foo($y); say $y 19:46
camelia rakudo-moar 367b58: OUTPUT«43␤»
19:47 xfix left, spider-mario joined, ggoebel6 left 19:48 mohij joined, molaf_ left 19:50 domidumont left
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; say ++|($ref); 19:52
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MUkoRdkjBG␤Variable '&prefix:<|>' is not declared␤at /tmp/MUkoRdkjBG:1␤------> 3$scalar = 42; my $ref = \$scalar; say ++7⏏5|($ref);␤»
19:52 ggoebel8 joined
BenGoldberg_ ? 19:52
m: my $scalar = 42; my $ref = \$scalar; for <-> $deref (|($ref)) { say $deref } 19:53
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hMSo6eQJIr␤Obsolete use of | or \ with sigil on param ($ref)␤at /tmp/hMSo6eQJIr:1␤------> 3$ref = \$scalar; for <-> $deref (|($ref)7⏏5) { say $deref }␤»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for -> $deref (|$ref) { say $deref }
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/x3g6Z0E9sx␤Obsolete use of | or \ with sigil on param $ref␤at /tmp/x3g6Z0E9sx:1␤------> 3my $ref = \$scalar; for -> $deref (|$ref7⏏5) { say $deref }␤ expecting any of:␤ shape declarati…»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for -> $deref ($ref) { say $deref }
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5===␤Expression needs parens to avoid gobbling block␤at /tmp/jdu0dsIdeC:1␤------> 3lar; for -> $deref ($ref) { say $deref }7⏏5<EOL>␤Missing block (apparently taken by expression)␤at /tmp/jdu0dsIdeC:1␤------> 3lar; for -> $d…»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for $deref -> ($ref) { say $deref }
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5xnWiE5s8P␤Variable '$deref' is not declared␤at /tmp/5xnWiE5s8P:1␤------> 3y $scalar = 42; my $ref = \$scalar; for 7⏏5$deref -> ($ref) { say $deref }␤»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for ($ref) -> $deref { say $deref } 19:54
camelia rakudo-moar 367b58: OUTPUT«\(42)␤»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for (!$ref) -> $deref { say $deref }
camelia rakudo-moar 367b58: OUTPUT«False␤»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; for (|$ref) -> $deref { say $deref }
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5===␤Arg-flattening | is only valid in an argument list␤at /tmp/pu0PgNyeJn:1␤------> 3$scalar = 42; my $ref = \$scalar; for (|7⏏5$ref) -> $deref { say $deref }␤Arg-flattening | is only valid in an argument list␤at /tmp/pu0PgNy…»
19:54 ggoebel7 left
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; sub foo { say $^deref }; foo( |$ref ); 19:55
camelia rakudo-moar 367b58: OUTPUT«42␤»
BenGoldberg_ Success, but seriously wierd way to go about it.
jaffa4 I am not sure whaT i SEE 19:56
What is $^deref? 19:57
AlexDaniel m: my %arrs; %arrs<hello> = 'one', 'two', 'three'; say 'test' for %arrs<hello>; 19:58
camelia rakudo-moar 367b58: OUTPUT«test␤»
timotimo installs a positional parameter in that block
AlexDaniel so how do I iterate over array elements in a hash?
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; sub foo -> $arg { say $arg }; foo( |$ref ); 20:00
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_Zqm2kizxU␤Missing block␤at /tmp/_Zqm2kizxU:1␤------> 3scalar = 42; my $ref = \$scalar; sub foo7⏏5 -> $arg { say $arg }; foo( |$ref );␤ expecting any of:␤ new name to be defined␤»
BenGoldberg_ m: my $scalar = 42; my $ref = \$scalar; sub foo ( $arg ) { say $arg }; foo( |$ref );
camelia rakudo-moar 367b58: OUTPUT«42␤»
jaffa4 : my %arrs; %arrs<hello> = 'one', 'two', 'three'; say $_ for @(%arrs<hello>);
m: my %arrs; %arrs<hello> = 'one', 'two', 'three'; say $_ for @(%arrs<hello>);
camelia rakudo-moar 367b58: OUTPUT«one␤two␤three␤»
jaffa4 m: my %arrs; %arrs<hello> = 'one', 'two', 'three'; say ">>>>$_" for @(%arrs<hello>);
camelia rakudo-moar 367b58: OUTPUT«>>>>one␤>>>>two␤>>>>three␤»
AlexDaniel jaffa4: okay, thanks 20:01
although I don't really understand what happens
say %arrs<hello>[1]; works ok 20:02
say %arrs<hello>.WHAT; says that it is a parcel though 20:03
jaffa4 m: my %arrs; %arrs<hello> = 'one', 'two', 'three'; say ">>>>$_" for @%arrs<hello>;
camelia rakudo-moar 367b58: OUTPUT«postcircumfix:<{ }> not defined for type List␤ in block <unit> at /tmp/GTAaXoZcYE:1␤␤»
jaffa4 m: my %arrs; %arrs<hello> = 'one', 'two', 'three'; say ">>>>$_" for %arrs<hello>.list; 20:04
camelia rakudo-moar 367b58: OUTPUT«>>>>one␤>>>>two␤>>>>three␤»
AlexDaniel what does that mean "OUTPUT«postcircumfix:<{ }> not defined"? 20:05
there are no {} that I can see
ugexe <hello>
geekosaur <...> turns into {'...'}, roughly 20:06
ugexe its trying to access a list with { }
instead of accessing the list item with { } 20:07
20:12 Ben_Goldberg joined
dalek c: 55e9e56 | (Dmitriy Olshevskiy)++ | lib/Type/ (4 files):
fix typos
20:14
c: 44eb544 | jnthn++ | lib/Type/ (4 files):
Merge pull request #99 from olshevskiy87/master

fix typos
AlexDaniel well, that sounds like a LTA
20:16 BenGoldberg_ left
jnthn A Capture can be indexed positionally to get the things in it 20:18
m: my $a = 41; my $b = \($a); $b[0]++; say $a 20:19
camelia rakudo-moar 367b58: OUTPUT«Cannot assign to an immutable value␤ in block <unit> at /tmp/4usOJhb6mf:1␤␤»
jnthn ah
But yeah, the usual way to do such things these days is "is rw" parameters and so on
Ben_Goldberg m: my $scalar = 42; my $ref = \$scalar; { ++$_ }( |$ref ); say $scalar;
camelia rakudo-moar 367b58: OUTPUT«43␤»
Ben_Goldberg m: my $scalar = 42; my $ref = \$scalar; say { $_ }( |$ref );
camelia rakudo-moar 367b58: OUTPUT«42␤»
jaffa4 jnthn: so is it a bug? 20:20
jnthn jaffa4: What's a bug?
That you can't ++ the [0]'d thing maybe is 20:21
jaffa4 jnthn: not being able to set it
20:21 zacts left
jnthn I've never seen code using a Capture to fake up a scalar ref that wasn't more idiomatically expressed in a better way. 20:21
Ben_Goldberg m: my $scalar = 42; my $ref = \$scalar; say $ref[0];
camelia rakudo-moar 367b58: OUTPUT«42␤»
jnthn Yes, confirm the "can't set the [0]" thing is a bug... 20:22
You can see how few people actually try using Captures this way by the fact we never noticed it until now :P
jaffa4 jnthn: if there is argument like this a(argument => \$r)
20:23 bin_005 joined
jnthn sub a(:$argument is rw) { ... }, then just call it as a(argument => $r) 20:23
jaffa4 but I do not what argument is going to be 20:24
what if argument is not fixed
the example is Getopt::Long , it does that way, jnthn 20:26
masak submits rakudobug
(for the "can't set the [0]" thing)
jnthn masak: Thanks, I'm just a bit too tired to fix that now, but can easily do it in the morning :) 20:27
20:28 TEttinger joined
jaffa4 not too mention complex data structures 20:28
20:29 darutoko left, gtodd left
dalek osystem: 8d938b6 | RabidGravy++ | META.list:
Add CheckSocket to the modules list
20:30
Ben_Goldberg m: my $scalar = 42; my $ref = \$scalar; say ++{$_}(|$ref); # The return value of an evaluated pointy block can be 'is rw' ... is that a good thing?
camelia rakudo-moar 367b58: OUTPUT«43␤»
jnthn jaffa4: Well, if you really want that API you'll need something more like: 20:31
m: sub foo(:$argument is parcel) { say $argument.VAR ~~ Scalar }; foo(argument => my $x); foo(argument => 42)
camelia rakudo-moar 367b58: OUTPUT«True␤False␤»
jnthn Just because something was a sensible API in Perl 5 doesn't mean a good port of the module is going to want the same API in Perl 6, though.
masak jaffa4: please don't try to make "complex data structures" using captures. 20:32
jaffa4: the smell of an XY problem just increased about tenfold.
jaffa4: in most cases in Perl 6, you can solve things quite adequately without thinking in terms of references. more concrete cases can be made more specific than that.
20:33 jaffa4 left
jnthn Ben_Goldberg: I'm pretty sure we have RT tickets that complain about some blocks not deconting and others deconting so on average people want both semantics by default :P 20:33
20:35 zacts joined 20:37 jaffa4 joined, xfix_ left
Ben_Goldberg m: my $goal = "Just another sorting hacker,"; my @b = 'a'..'z';push @b, 'A'..'Z'; my $a = @b[^ $goal.chars].join; srand 1; my $scram = $a.comb.pick(*).join; say my $pre = $a.trans( $scram => $goal ); srand 1; $pre.comb.pick(*).join.say; 20:42
camelia rakudo-moar 367b58: OUTPUT«tna h,hcJgotnrseaours reik t␤Just another sorting hacker,␤»
AlexDaniel m: for ^5 -> $k { say $k } 20:44
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
AlexDaniel m: say $k for ^5 -> $k;
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/G66SRvRsLl␤Variable '$k' is not declared␤at /tmp/G66SRvRsLl:1␤------> 3say 7⏏5$k for ^5 -> $k;␤»
AlexDaniel is it correct? To me it seems a little bit weird that turning a loop into a different form causes an error 20:45
Ben_Goldberg m: for ^5 -> { say $^k };
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5HLSrd6n0H␤Placeholder variable '$^k' cannot override existing signature␤at /tmp/5HLSrd6n0H:1␤------> 3for ^5 7⏏5-> { say $^k };␤»
Ben_Goldberg m: for ^5 { say $^k };
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
Ben_Goldberg m: for ^5 -> $k { say $k };
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
Ben_Goldberg m: say $_ for ^5; 20:46
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
Ben_Goldberg m: say $^k for ^5;
camelia rakudo-moar 367b58: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uokkHTWZl_␤Cannot use placeholder parameter $^k in the mainline␤at /tmp/uokkHTWZl_:1␤------> 3say $^k7⏏5 for ^5;␤»
Ben_Goldberg m: { say $^k } for ^5;
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
Ben_Goldberg m: -> $k { say $k } for ^5; 20:47
camelia rakudo-moar 367b58: OUTPUT«0␤1␤2␤3␤4␤»
Ben_Goldberg AlexDaniel, Are any of these what you want? 20:48
20:49 atroxaper joined
AlexDaniel Ben_Goldberg: well, um 20:49
Ben_Goldberg: yeah, but isn't it still weird? 20:50
Ben_Goldberg When you choose to use it, the '-> $variable, $list, $here' is part of the block
It is not part of the 'for'
20:50 gtodd joined
Ben_Goldberg m: if ( rand ) { say $^k } 20:51
camelia rakudo-moar 367b58: OUTPUT«0.763556324825272␤»
Ben_Goldberg m: if ( rand ) -> $k { say $k }
camelia rakudo-moar 367b58: OUTPUT«0.886812888937006␤»
Ben_Goldberg m: -> $k { say $k } if rand;
camelia ( no output )
Ben_Goldberg m: -> $k { say $k } for rand;
camelia rakudo-moar 367b58: OUTPUT«0.141762114122683␤»
Ben_Goldberg Hmm, dunno why that 'if rand' didn't do what I expected. 20:52
m: say $_ if rand;
camelia rakudo-moar 367b58: OUTPUT«(Any)␤»
Ben_Goldberg m: { say $_ } if rand;
camelia rakudo-moar 367b58: OUTPUT«(Any)␤»
Ben_Goldberg m: if ( rand ) { say $_ }
camelia rakudo-moar 367b58: OUTPUT«(Any)␤»
Ben_Goldberg m: if ( rand ) -> $_ { say $_ }
camelia rakudo-moar 367b58: OUTPUT«0.600232318101774␤»
20:53 atroxaper left
Ben_Goldberg I suppose that 'if' doesn't try as hard to pass it's expression result into its associated block. 20:54
Or rather, people would be surprised if $_ got set by 'if' without them asking for it.
20:55 laouji joined 20:56 Ven joined
dalek kudo/nom: fc6db98 | usev6++ | src/core/Signature.pm:
Avoid NullPointerException on JVM

in S06-signature/introspection.t
21:03
kudo/nom: d0176db | lizmat++ | src/core/Signature.pm:
Merge pull request #450 from usev6/jvm_npe_signature_deftype

Avoid NullPointerException on JVM
kudo/nom: 63be88f | usev6++ | src/core/Int.pm:
Change constructor for Int to 'multi method'
kudo/nom: 8e82716 | lizmat++ | src/core/Int.pm:
Merge pull request #451 from usev6/int_constructor

Change constructor for Int to 'multi method'
21:03 cognominal left
masak 'night, #perl6 21:05
RabidGravy night 21:07
21:08 Ben_Goldberg left
ugexe zef --version="0.1+" --depends="HTTP::Server" search HTTP* # wildcard searches working :) 21:10
RabidGravy nice
timotimo neato 21:14
jnthn :)
Time for some rest...will be back to the RT queue and other Perl 6 hacking tomorrow :) & 21:15
AlexDaniel ugexe: careful with bare strings like this HTTP*
ugexe: especially don't write that in the examples :) 21:16
I mean, just quote it 'HTTP*'
ugexe: also it is a bit weird for me to see quoting like this: --depends="HTTP::Server", like that has any special meaning. Better quote it like '--depends=HTTP::Server', this way it shows exactly what happens 21:19
but that's just me
21:19 kaare__ left, laouji left
ugexe does that work on windows? 21:22
geekosaur need to use "" instead of '' unless you are using a port of a unix shell 21:23
21:24 raiph joined 21:25 jaffa4 left, bbkr left
ugexe cant tell if its getopt::long or windows shell, but putting quotes around --arg=string seems to ignore the argument all together 21:25
AlexDaniel huh 21:29
because there are no arguments in windows? I don't know... 21:30
not on windows then, eh
ugexe arguments work on windows
AlexDaniel ugexe: yeah, but how
ugexe rakudobrew build moar --prefix="blah" is ok. rakudobrew build moar "--prefix=blah" does not see --prefix=blah at all 21:31
vendethiel using "" instead of '' on windows
ugexe my windows cli compatability protocol is to randomly change stuff till it happens to work 21:32
21:36 mohij left 21:39 bjz left
lizmat .tell FROGGS looks like QX is severely broken on the JVM :-( 21:40
yoleaux lizmat: I'll pass your message to FROGGS.
21:48 Ven left 21:51 rurban joined 21:52 beastd left 22:00 bjz joined, espadrine left 22:01 bjz left 22:03 bjz joined 22:05 victorazur joined
victorazur hello 22:06
22:07 victorazur left 22:17 bin_005 left 22:18 bjz left 22:21 nightfrog left, profan left 22:22 ilogger2 joined, ChanServ sets mode: +v ilogger2
dalek kudo/nom: 24236f4 | lizmat++ | src/Perl6/ (2 files):
Simplify ;; parsing in signature handling

Fixes #125502, already has a test
22:23
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125502
dalek ast: 85c3253 | lizmat++ | S06-signature/multi-invocant.t:
Unfudge now passing test
22:25
lizmat and with that puzzle fixed, I'm going to get some sleep... 22:26
22:30 cognominal joined 22:35 amurf joined 22:36 nightfrog joined 22:37 colomon joined 22:39 rurban joined, rurban left, amurf left 22:43 laouji joined, amurf joined 22:44 rurban joined, rurban left
cognominal m: sub git(str $repo where m| $<user>=<-[/]>+ '/' .* |) { say $<user> } ; git 'jnthn/oo-monitor' 22:52
camelia rakudo-moar 24236f: OUTPUT«「jnthn」␤»
cognominal this is fine and dandy, now what if I have many parameters with a where with hypotehtical vars. How to get to them? 22:54
22:54 laouji left 22:57 gagalicious joined 22:58 bjz joined
ugexe something that might work is using the where clauses as constraits for subtypes that you can use in the signature 23:04
cognominal I would expect to get the value mixed in $repo.VAR or something like that 23:07
or something like $repo,^where 23:08
* $repo.^where
I am sure that with the metamodel, it is a SMOP for the cognescenti 23:09
23:12 bjz left 23:14 BenGoldberg joined 23:22 j1n3l0 joined, dayangkun joined 23:39 gagalicious left 23:42 telex joined 23:55 tinyblak joined, gagalicious joined 23:57 laouji joined 23:59 cognominal left