»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
SmokeMachine any way to simulate the COMPOSE phaser? (it's NIY, right?) 00:00
00:00 _28_ria left
SmokeMachine timotimo: I have to call MyClass.COMPOSE, but its working... www.irccloud.com/pastebin/2Obs54h6/ 00:01
00:02 _28_ria joined, perlawhirl joined 00:04 Vynce left, Vynce joined, Vynce left 00:10 pmurias left 00:14 girafe left
SmokeMachine is there any plan to support the COMPOSE phaser? 00:16
00:17 regreg joined
regreg hello 00:17
is there any good perl6 gui for windows?
or sdl 00:18
00:23 lukaramu left 00:26 curt__ left 00:27 agentzh joined 00:28 curt__ joined
SmokeMachine m: 42 but role {method ^compose {say "!!!"}} # should this work? 00:30
camelia rakudo-moar 5b3ac8: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in multi (did you mean 'my method compose'?)␤ at <tmp>:1␤ ------> 0342 but role {method7⏏5 ^compose {say "!!!"}} # should this wor␤»
00:34 Rawriful left 00:35 mspo joined
brokenchicken buggable: eco 00:38
buggable brokenchicken, Out of 775 Ecosystem dists, 119 have warnings and 4 have errors. See modules.perl6.org/update.log for details
brokenchicken buggable: eco sdl
buggable brokenchicken, Found 2 results: SDL, SDL2::Raw. See modules.perl6.org/#q=sdl
brokenchicken regreg: we have SDL2::Raw ^
00:39 agentzh left, jraglin left, jraglin joined, z448 joined
brokenchicken SmokeMachine: what would that even do? 00:40
SmokeMachine brokenchicken: wrap some methods when my role is composed on a class... 00:41
ugexe if you are keeping it simple you can sort of mimick compose by just putting the code in the body of the role
00:41 pyrimidine joined
SmokeMachine www.irccloud.com/pastebin/2Obs54h6/ 00:41
ugexe m: (42 but role :: {say "Composed"}) 00:42
camelia rakudo-moar 5b3ac8: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤Composed␤»
SmokeMachine m: my $a = 42 but role :: {say "the composed class: {self.WHAT}"} 00:43
camelia rakudo-moar 5b3ac8: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤'self' used where no object is available␤at <tmp>:1␤------> 3 but role :: {say "the composed class: {7⏏5self.WHAT}"}␤ expecting any of:␤ term␤»
SmokeMachine m: my $a = 42 but role :: {say "the composed class: {::?CLASS}"}
camelia rakudo-moar 5b3ac8: OUTPUT«Use of uninitialized value of type Int+{<anon|58096592>} in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in sub at <tmp> line 1␤the composed class: ␤»
ugexe its a role not a class
you're pretty much instantly jumping past the "if you are keeping it simple" bit :/
m: say (42 but role :: {.^add_method("foo", method () returns Str {say "!!!"})}).foo 00:44
camelia rakudo-moar 5b3ac8: OUTPUT«!!!␤Type check failed for return value; expected Str but got Bool (Bool::True)␤ in method <anon> at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
00:44 aborazmeh joined, aborazmeh left, aborazmeh joined
ugexe m: (42 but role :: {say $?ROLE}) 00:44
camelia rakudo-moar 5b3ac8: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤(<anon|48003744>)␤»
SmokeMachine ugexe: but its being composed in a class... and I want to wrap that class' methods... 00:45
brokenchicken ::?CLASS will be the class the role's composed into
00:46 pyrimidine left, z448 left
ugexe m: (42 but role :: {say $?CLASS}) 00:47
camelia rakudo-moar 5b3ac8: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤(Int+{<anon|57211552>})␤»
00:47 yoleaux joined, ChanServ sets mode: +v yoleaux
SmokeMachine m: my $a = 42 but role :: {method role-method {}; ::?CLASS.role-method} 00:49
camelia rakudo-moar 5b3ac8: OUTPUT«Could not instantiate role '<anon|56450064>':␤No such method 'role-method' for invocant of type 'Int+{<anon|56450064>}'␤ in any protect at gen/moar/stage2/NQPCORE.setting line 802␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: my $a = 42 but role :: {method role-method {}; :(.role-method}
camelia rakudo-moar 5b3ac8: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in parenthesized expression; couldn't find final ')' ␤at <tmp>:1␤------> 3: {method role-method {}; :(.role-method7⏏5}␤ expecting any of:␤ statement end␤ …»
SmokeMachine :(
00:52 Cabanossi left 00:55 Cabanossi joined
sammers hi #perl6 00:58
brokenchicken \o 00:59
SmokeMachine I think that when that code runs, my class' methods do not exist yet... 01:00
m: role R {::?CLASS.^methods.say}; class C does R {method my-method {}}
camelia rakudo-moar 5b3ac8: OUTPUT«(my-method)␤»
SmokeMachine m: role R {::?CLASS.^find_method("my-method").say}; class C does R {method my-method {}} 01:01
camelia rakudo-moar 5b3ac8: OUTPUT«my-method␤»
SmokeMachine ?
brokenchicken What?
SmokeMachine m: role R {::?CLASS.^attributes.say}; class C does R {has $.bla} 01:02
camelia rakudo-moar 5b3ac8: OUTPUT«(Mu $!bla)␤»
SmokeMachine I wasnt expecting that...
m: role R {::?CLASS.^methods.say}; class C does R {has $.bla} 01:05
camelia rakudo-moar 5b3ac8: OUTPUT«()␤»
SmokeMachine that is it!!! the methods weren't created yet!
m: role R {::?CLASS.^methods.say}; class C does R {has $.auto-created; method hardcoded {}} 01:07
camelia rakudo-moar 5b3ac8: OUTPUT«(hardcoded)␤»
SmokeMachine why the hardcoded was created but the auto-created wasn't? 01:08
01:10 wamba left
timotimo because auto-created probably ran at the end of composition 01:16
whereas the body fo the class and its roles and such runs near the beginning of composition?
oh, you were talking about accessor methods for attributes
SmokeMachine timotimo: yes, I was... 01:18
timotimo too distracted to be of any help :o 01:19
SmokeMachine timotimo: with a method COMPOSE its working...
timotimo nice
SmokeMachine but Id like to do not need to call that method 01:20
01:24 astj joined 01:39 spider-mario left
sammers is there a list of ords that make up \h? 01:50
01:53 Cabanossi left 01:55 Cabanossi joined
brokenchicken m: (^0x110000).grep(*.chr.match: /\h/).say 01:56
camelia rakudo-moar 5b3ac8: OUTPUT«(9 32 160 5760 6158 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8239 8287 12288)␤»
brokenchicken m: (^0x110000).grep(*.chr.match: /\h/)».&{"U+" ~ .base(16)}.say 01:57
camelia rakudo-moar 5b3ac8: OUTPUT«(U+9 U+20 U+A0 U+1680 U+180E U+2000 U+2001 U+2002 U+2003 U+2004 U+2005 U+2006 U+2007 U+2008 U+2009 U+200A U+202F U+205F U+3000)␤»
sammers brokenchicken: thanks 02:05
02:10 kalkin- left, kalkin- joined
sammers is there any way to improve perfomance when calling a local lib (use lib 'lib')? 02:11
02:12 pyrimidine joined
Geth oc: CurtTilmes++ created pull request #1169:
Better word choice
02:22
brokenchicken sammers: yes, don't call it from a place that has a ton of files as it reads and concats ALL of them 02:24
(including subdirectories) 02:25
Geth oc: b6916b6e81 | (Curt Tilmes)++ | doc/Language/containers.pod6
Better word choice
oc: 140460d133 | (Zoffix Znet)++ | doc/Language/containers.pod6
Merge pull request #1169 from CurtTilmes/master

Better word choice
sammers brokenchicken: ah, that is useful to know. that would explain my current scenario 02:26
brokenchicken Oh, I think I'm wrong about the "all" part. It's just the ones that have .pm/.pm6 extension 02:27
02:27 njmurphy left
brokenchicken aye: github.com/rakudo/rakudo/blob/nom/...pm#L64-L67 02:28
sammers when I install a package via zef it always feels snappier than when I run using lib 'lib' 02:31
brokenchicken Yeah, this is one of the reasons. It doesn't need to slurp all the files for installed modules, only for the FileSystem repository 02:33
And it'd recompile the precomp files any time there's a change in any of those slurped files 02:34
hmm 02:35
Or something or other; I'm not familiar with the process :)
02:37 Actualeyes left
sammers hmm, I would like to capture execution time after the recompile, is there any way to detect post-compilation? 02:37
02:37 Cabanossi left
ugexe if you -Ilib it gets put at the front of the dependency chain. when you `use lib "lib"` it gets put somewhere else 02:38
sammers ah
02:38 agentzh joined
ugexe that + possibly affecting what can be precompiled would give that type of difference 02:39
02:40 Cabanossi joined
sammers ugexe, just tested it. seems to make a noticable difference with what I am working on. thanks. the times are closer to what I was seeing using the pre-compiled modules. 02:40
MasterDuke .tell agentzh what ugexe just mentioned here ^^^ about -Ilib being faster than `use lib "lib"` may be of interest to you 02:43
yoleaux MasterDuke: I'll pass your message to agentzh.
brokenchicken wow. My Twitter feed is nothing but trump and pics+videos of protests. 02:44
brokenchicken does a mental account of all of the dealings with US businesses should those have to be transfered elsewhere... 02:45
02:45 ilbot3 left 02:47 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:48 tardisx left, Max___ joined 02:49 Max___ left
agentzh MasterDuke: I'm not using `use lib 'lib'`. i've been using -Ilib already :) 02:50
yoleaux 02:43Z <MasterDuke> agentzh: what ugexe just mentioned here ^^^ about -Ilib being faster than `use lib "lib"` may be of interest to you
agentzh brokenchicken: heh. 02:51
MasterDuke oh well, then no easy win there
agentzh MasterDuke: i'm already using a merge script that merge everything into a giant .p6 file. 02:52
MasterDuke: removing all those use statements.
MasterDuke: it's the fastest setting right now.
but still not fast enough. about 6.8 ~ 7 sec compilation time 02:53
better than 13 sec though :)
MasterDuke i've been watching Jonathan Blow's videos about his new language Jai. very envious of 0.3s compile times for a 30k line program 02:55
agentzh that's fast.
MasterDuke that's for generating unoptimized code, but it's still great for workflow speed 02:57
agentzh right
sammers I am not sure if there is a name for this, but is there currently an iterator limit? like, the time to iterate to the next value, not counting the execution time of whatever my code does with the iterator? 02:58
m: my $now = now; (1..5).map: { "{$now - now}".say } 03:00
camelia rakudo-moar 5b3ac8: OUTPUT«-0.0014551␤-0.00464284␤-0.005704␤-0.0065557␤-0.0075582␤»
sammers m: my $now = now; (1..5).map: { "{$now - now}".say; $now = now; }
camelia rakudo-moar 5b3ac8: OUTPUT«-0.00144098␤-0.000199␤-0.000226␤-0.0002521␤-0.0003689␤»
03:02 Actualeyes joined 03:09 robinsmidsrod left, robinsmidsrod joined 03:10 _28_ria left 03:12 _28_ria joined 03:28 astj left 03:29 astj joined 03:41 noganex joined 03:43 astj_ joined, astj left 03:44 noganex_ left 03:53 raiph left 03:54 raiph joined
samcv making this change I get an error: Cannot modify an immutable Int 04:00
in sub apply-to-cp at ./UCD-gen.p6 line 501
MasterDuke you tried to assign to/modify an ro function parameter? 04:03
samcv i don't think so 04:04
i mean i run .split, and then run parse-base on it
but the error is on link 501, where all I do is create a Range object
04:06 Cabanossi left
samcv oh dumb 04:07
i did = instead of == XD
shows how tired i am right now
04:08 Cabanossi joined 04:34 labster left 04:35 Cabanossi left 04:36 xtreak joined 04:38 Cabanossi joined 04:42 seekitoutx joined
seekitoutx Everytime I attempt to 'rakudobrew build moar' I get this error: gist.github.com/anonymous/a0a287c6...f42dfa44d2 04:43
Anyone know how to fix this?
running debian 3.16.36-1+deb8u2
04:45 BenGoldberg left, khw left 04:47 BenGoldberg joined, labster joined
brokenchicken seekitoutx: that looks like you've not enough RAM to compile it 04:48
seekitoutx: why are you using rakudobrew?
huggable: deb
huggable brokenchicken, CentOS and Debian Rakudo packages: github.com/nxadm/rakudo-pkg/releases
brokenchicken You need about 1.5GB of RAM (or swap) to compile it from scratch. 04:50
seekitoutx Where do I get panda from? 04:52
brokenchicken You don't. It's not a recommended package manager 04:53
buggable: eco zef
buggable brokenchicken, zef 'It's like [cpanm] wearing high heels with a tracksuit': github.com/ugexe/zef
brokenchicken seekitoutx: ^ use that. The README should have bootstrapping instructions
seekitoutx I see
thanks guys
brokenchicken Just made a compilation run: it needed 1.239168GB of RAM 04:54
seekitoutx only have 1gb on this lol
brokenchicken I compiled on 1GB VM before and I had a few gigs of swap to help it out 04:55
05:10 skids left 05:15 TEttinger joined
samcv i forget who it was that said to do %hash.keys.sort(+*) instead of %hash.keys.sort({$^a.Int cmp $^b.Int}) 05:18
it turns out %hash.keys.sort(*.Int) is faster than (+*)
though the $^a etc thing is the slowest of the three
05:24 BenGoldberg left 05:25 pyrimidi_ joined 05:26 pyrimidine left, BenGoldberg joined
brokenchicken It was thundergnat. 05:29
And yeah, the +* form likely goes to .Numeric -> .Bridge or some or other 05:30
s: &prefix:<+>, \('42')
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/5b3a...ric.pm#L43
brokenchicken s: '42', 'Numeric', \()
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/5b3a...tr.pm#L303
brokenchicken Ah right, now I remember 05:31
05:31 cyphase left
brokenchicken And .Int has a fastpath, while .Numeric goes through val() 05:31
05:36 Cabanossi left 05:37 CIAvash joined, pyrimidi_ left, Cabanossi joined 05:42 dugword left
BenGoldberg m: say val('1.2') 05:44
camelia rakudo-moar 5b3ac8: OUTPUT«1.2␤»
BenGoldberg m: dd val('1.2')
camelia rakudo-moar 5b3ac8: OUTPUT«RatStr.new(1.2, "1.2")␤»
BenGoldberg m: dd val('1e2')
camelia rakudo-moar 5b3ac8: OUTPUT«NumStr.new(100e0, "1e2")␤»
BenGoldberg m: dd val('12')
camelia rakudo-moar 5b3ac8: OUTPUT«IntStr.new(12, "12")␤»
BenGoldberg m: dd val('') 05:45
camelia rakudo-moar 5b3ac8: OUTPUT«IntStr.new(0, "")␤»
BenGoldberg s: &val, \('42')
SourceBaby BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/5b3a...hs.pm#L131
05:50 dugword joined 06:07 telex left 06:08 telex joined 06:17 xiaomiao left 06:18 bwisti left 06:19 Khisanth left 06:22 xiaomiao joined 06:26 BenGoldberg left 06:30 raiph left, raiph joined 06:32 Khisanth joined 06:33 xtreak left 06:35 raiph left, AlexDaniel joined 06:36 xtreak joined 06:37 pyrimidine joined 06:39 raiph joined 06:40 _28_ria left 06:41 raiph left, AlexDaniel left, raiph joined 06:42 pyrimidine left 06:43 raiph left, raiph joined, perlawhirl left 06:47 _28_ria joined 06:51 RabidGravy joined 07:06 Cabanossi left 07:08 Cabanossi joined 07:15 regreg left 07:18 perlawhirl joined 07:19 darutoko joined 07:21 seekitoutx left 07:22 domidumont joined 07:26 kyan left, domidumont left 07:27 domidumont joined 07:28 xtreak left 07:34 domidumont left 07:35 domidumont joined 07:43 astj joined, astj_ left
masak morning, #pwel6 07:58
er, #perl6
07:58 perlawhirl left
masak adjusts his posture a little bit at the keyboard 07:58
07:58 perlawhirl joined
masak I just discovered a nice pattern for people who, like me, still use `say` for debugging purposes sometimes 07:59
the pattern is `if $some-condition ff False { say ... }`
gets rid of a lot of debug print noise before $some-condition
08:00 pyrimidine joined 08:01 abraxxa joined, wamba joined 08:04 pyrimidine left
moritz huh? 08:05
what does ff False do?
masak goes on being true forever 08:07
IOW, it never flops
but the other important detail is that it flips when I want it to, and so it's quiet before that
remind me, is .WHICH the one that promises to never change regardless of GC moves? 08:08
because .WHERE sure doesn't seem to be it ;)
08:10 aborazmeh left, dugword left 08:14 xinming_ joined
lizmat masak: .WHICH is it, afaik 08:16
08:17 xinming left 08:18 dugword joined 08:19 Kaffe joined
arnsholt masak: That's a neat trick! 08:23
For some reason, kind of reminds me of Smalltalk's version of conditional breakpoints: "aCondition ifTrue: [ self halt ]." 08:24
Just inserted into the code wherever you need to break
08:29 TimToady left 08:30 TimToady joined 08:32 perlawhirl left 08:33 domidumont1 joined
masak arnsholt: cute! 08:34
lizmat: yes, also found that out independently; thanks :)
08:36 zakharyas joined 08:37 domidumont left, jsimonet joined 08:40 spider-mario joined 08:44 bjz joined
gfldex can a routine get hold of it's complete argument list at runtime? 08:50
08:54 g4 joined, Vasyl left
moritz if it captures it, yes 08:55
08:55 Vasyl joined, dugword left
moritz m: sub f(|c) { say "called with c.perl()" }; f 'x', a => 'b' 08:55
camelia rakudo-moar 5b3ac8: OUTPUT«called with c.perl()␤»
moritz m: sub f(|c) { say "called with ~", c.perl() }; f 'x', a => 'b'
camelia rakudo-moar 5b3ac8: OUTPUT«called with ~\("x", :a("b"))␤»
arnsholt masak: Yeah, it's pretty neat 09:01
It feels kind of horrid to manipulate the code directly when you want to do this kind of thing, but once you get used to the idea of code and app and IDE being an integrated whole, it makes sense to do it that way 09:02
09:02 pyrimidine joined 09:03 ocbtec joined
gfldex moritz: i need it for subs that don't capture. Would be nice for debug output to have all input values next to a stacktrace. A bit tricky for `is rw` parameters ofc. I can .wrap to get that but then I have to do it before the Routine is called. 09:04
and it must be there because callsame actually works 09:05
DrForr gfldex: I did something like that with an attribute and capturing at compile time.
moritz gfldex: stackoverflow.com/questions/4129061...e/41292805 might interest you 09:06
09:06 Cabanossi left
moritz there might also be some NQP magic to get to the current argument capture 09:06
09:06 pyrimidine left 09:07 rindolf joined
moritz nqp::p6argvmarray or so 09:07
09:08 Cabanossi joined
gfldex i forgot about `is default` 09:08
and I even know why. It's not in the index in the docs. :) 09:09
Pro Tip: if you want to learn a new language, write it's official documentation. 09:10
09:11 bjz left
moritz +1 :-) 09:14
09:14 domidumont1 left, dakkar joined 09:15 bjz joined
Geth oc: fd2e714e9a | (Wenzel P. P. Peppmeyer)++ | 2 files
move is default to routine and get it into the index
09:22
09:22 xtreak joined 09:23 pyrimidine joined 09:30 pyrimidine left 09:32 jonas1 joined
Geth oc: 9e8e6fbb37 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Variable.pod6
index is default (Variable)
09:33
oc: e8d6d8de9b | (Wenzel P. P. Peppmeyer)++ | doc/Type/Attribute.pod6
doc `is default` on Attribute
09:33 as__ joined 09:34 raiph left
as__ rakudo: my %h = (a => 1, b => 2); say %h<a b>; my $k = 'a b'; say %h<$k> 09:34
camelia rakudo-moar 5b3ac8: OUTPUT«(1 2)␤(Any)␤»
as__ Hi guys. Is it ^^ a bug in Rakudo?
09:34 raiph joined
moritz as__: no 09:35
you're trying to access the hash key '$k'
which doesn't exist 09:36
09:36 Cabanossi left
arnsholt (Nor does the key 'a b', we might add) 09:36
moritz m: my %h = (a => 1, b => 2); say %h<a b>; my $k = 'a b'; say %h<<$k>>
camelia rakudo-moar 5b3ac8: OUTPUT«(1 2)␤(1 2)␤»
moritz but we've got your bases covered! ^^
as__ I am looking at docs.perl6.org/language/5to6-nutsh...%2Fslicing 09:37
rakudo: my %h = (a => 1, b => 2, 'a b' => 3); say %h<a b>; my $k = 'a b'; say %h<$k>
camelia rakudo-moar 5b3ac8: OUTPUT«(1 2)␤(Any)␤»
as__ you see, it does not work either
moritz as__: do you see the docs using $k inside of a <> subscript anywhere? 09:38
09:38 Cabanossi joined
moritz I see say %calories«$key»; # Perl 6 - double angles interpolate as a list of Str 09:38
and «...» is the same as <<...>>, which I've shown above
as__: if you have ideas on how to make the docs clearer, please submit a pull request
as__ ah so
thanks 09:39
Geth oc: 2c78f633c9 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Attribute.pod6
doc `is required` on Attribute
09:40
09:50 xtreak left
gfldex m: class C { has $.a is DEPRECATED }; my $c = C.new(a=>42); say $c.a; CATCH{ default { say .^name, ': ', .Str } } 09:51
camelia rakudo-moar 5b3ac8: OUTPUT«42␤»
gfldex tricky, it's in roast but NYI for Rakudo. Do I doc that or not? 09:52
Geth oc: 7f2f50a1d2 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Attribute.pod6
doc `is DEPRECATED` on Attribute
09:55
09:55 dugword joined 10:06 user9 left 10:14 labster left
gregf_ *feels he needs a Perl6 refresh every monday morning!" 10:15
10:15 user9 joined
gregf_ s/"$/\*/ 10:17
Geth oc: c0353c2305 | (Wenzel P. P. Peppmeyer)++ | doc/Language/subscripts.pod6
add Callable to the table
10:18 muMarzog joined 10:19 muMarzog left 10:20 Cabanossi left 10:22 scruff66 joined 10:23 Cabanossi joined 10:26 pyrimidine joined 10:28 domidumont joined 10:29 dugword left 10:31 espadrine_ joined 10:36 bjz left 10:38 parv joined 10:39 bjz joined 10:40 cyphase_eviltwin joined 11:03 wamba left 11:05 astj left 11:06 astj joined 11:07 astj left, astj joined 11:08 espadrine_ left 11:10 travis-ci joined
travis-ci Doc build errored. Wenzel P. P. Peppmeyer 'add Callable to the table' 11:10
travis-ci.org/perl6/doc/builds/196532916 github.com/perl6/doc/compare/7f2f5...353c23054a
11:10 travis-ci left 11:16 TEttinger left 11:21 Cabanossi left 11:23 Cabanossi joined 11:26 dugword joined 11:42 parv left 11:49 bjz_ joined 11:52 bjz left 12:00 dugword left
timotimo huh, were int and long merged in python3? 12:05
arnsholt timotimo: Looks like it. The standard library gives the type int, float and complex in the category numeric types 12:07
timotimo OK
that's good to know
arnsholt "Integers have unlimited precision."
So int, long and bigint have been merged in fact 12:08
12:13 perlawhirl joined
timotimo there used to be bigint? 12:13
why? 12:14
long was already infinite precision
12:19 astj left
arnsholt Oh derp 12:20
12:20 astj joined
arnsholt For some reason I had long as C long 12:20
timotimo :)
m: use NativeCall; my long $foo = 9999999999999; say $foo
camelia rakudo-moar 5b3ac8: OUTPUT«9999999999999␤»
timotimo m: use NativeCall; my long $foo = 99999999999999999999999999999; say $foo
camelia rakudo-moar 5b3ac8: OUTPUT«Cannot unbox 97 bit wide bigint into native integer␤ in block <unit> at <tmp> line 1␤␤»
12:23 drrho joined 12:24 astj left
garu hi everyone! quick question: how would one apply a role dynamically to an object? e.g. submethod BUILD { my $role = q|Some::Role|; self does $role } 12:24
timotimo you want ::('Some::Role') 12:25
12:25 melezhik_ joined
garu I tried it... but maybe I'm doing something wrong, let me check real quick 12:25
ah, the variable must be defined, of course :) 12:26
timotimo good idea
garu timotimo: thanks! I was testing it with my $x; $x does ::($class) and was getting an error 12:27
timotimo ah
garu but my $x = 10 made it work :)
12:28 melezhik left
garu timotimo: import ::($role) before the 'does' is also a big deal :) 12:29
garu still learning the ropes 12:30
timotimo yeah, if it's not in scope, or you didn't import the right module for it, perl6 isn't going to rummage through your hard drive for .pm6 files that contain a role of that name :) 12:31
12:35 Cabanossi left
masak TimToady: S04 says a BEGIN block "only ever runs once". given that a BEGIN block's ASAP is not until macro expansion time if the BEGIN block contains unquotes that need to be populated -- would you expect such a BEGIN block to run only at the first macro expansion, or at each one? 12:35
12:36 bjz_ left
timotimo hm. is there a way to mean the other when that decision is made? 12:36
i expect you can put a BEGIN block into a macro (but outside of any quasiquote) and use the result of that inside an unquote inside a quasiquote 12:37
masak it's easier to emulate really-only-once with the actually-once-per-expansion semantics than the reverse.
12:37 Cabanossi joined
masak I'm not sure that's enough to choose between the two, though. 12:38
12:38 bjz joined
masak timotimo: yes, BEGIN blocks in macros (but outside quasis) are entirely unproblematic. 12:38
by the way, I love how these questions are driven by actual implementation nowadays. 12:39
12:43 rba__ joined, rba_ left
arnsholt But wouldn't a BEGIN inside a quasi give rise to a new BEGIN for each instantiation of the macro anyways? 12:44
masak that's my question, essentially. 12:45
timotimo yeah
so if you spell out BEGIN in the code, its behaviour depends on whether it's inside an unquote or not
masak whether it counts as "the same" BEGIN block (and so it fires only the once)
or "a fresh" BEGIN block each time (and so it fires per expansion) 12:46
as scientists, we just don't know, because we haven't really cloned unfired BEGIN blocks before in human history
12:47 cyphase_eviltwin is now known as cyphase
timotimo i consider us extremely lucky in this respect 12:47
we don't have to fire our experiment up into microgravity to test stuff out
masak what a time to be alive 12:48
I think my gut feeling is to lean towards arnsholt's reaction, too 12:49
timotimo mine, too
masak maybe partly because it feels like if someone put an unquote into a BEGIN, they definitely meant for it to fire at expansion -- and so probably at each expansion 12:50
arnsholt And even without the unquote, no?
masak no, I expect BEGIN blocks to fire ASAP
so if it can -- that is, if unhindered by unquote -- it fires
arnsholt If you have, with a Lisp, "(defmacro marco () '(BEGIN ...))" the BEGIN belongs in the context of the expansion, not the call, no? 12:51
masak I can see an argument for that being made, sure
but that does not seem to be the Perl Way 12:52
BEGIN fires ASAP, not later than that
and the fact remains that sans unquotes, the BEGIN block *is* ready to fire immediately -- and that's the overriding rule
I remember having a wonderful conversation about this with TimToady 12:53
where I pointed out that BEGIN and END were not fully symmetric to each other
(since BEGIN does not fire at the literal beginning of the program; it fires once the parser has consumed it) 12:54
and I asked him how he as a language designer could motivate that
his one-word response (which he then expanded on) was "gravity" :)
El_Che ah damn
masak i.e. BEGIN slides as far up as it can in the program, and END slides as far down as it can 12:55
El_Che he should have used lain
latin
gravitas
masak El_Che: you're free to pretend he did say it like that :P
El_Che for his biography 12:56
12:56 dugword joined
masak pictures a thick book with the title "Gravitas", with TimToady sporting his usual Texas hat and colorful shirt 12:57
El_Che ahaha 12:58
SmokeMachine hi! is there any chance to make the body of a role be executed after all the (accessor) methods are created?
ilmari is reminded of the Culture ship "Gravitas" running gag 12:59
SmokeMachine m: role R {say ::?CLASS.^find_method("bla")}; class C does R {has $.bla}
camelia rakudo-moar 5b3ac8: OUTPUT«(Mu)␤»
masak SmokeMachine: you're probably looking for the COMPOSE phaser
SmokeMachine masak: yes, I am...
masak ilmari: that must've been somewhere at the back of my mind, too 13:00
SmokeMachine m: role R {COMPOSE {say ::?CLASS.^find_method("bla")}}; class C does R {has $.bla}
camelia ( no output )
13:00 pierrot left
SmokeMachine masak: but ^^ 13:00
ilmari masak: I only just discovered the background for it: search for gravitas on www.theguardian.com/books/2000/sep...ce-fiction
or en.wikipedia.org/wiki/List_of_spac...ther_ships 13:01
timotimo m: role R { say "begin role R"; COMPOSE { say "compose role R" }; say "end role R"; }; class C does R { say "begin class C"; has $.bla; COMPOSE { say "compose class C" }; say "end class C" }
camelia rakudo-moar 5b3ac8: OUTPUT«begin role R␤end role R␤begin class C␤end class C␤»
ilmari masak: but that sound exactly like something the culture and its ships would do
timotimo ah, COMPOSE is NYI?
perhaps it should complain loudly, then.
13:01 pierrot joined 13:02 melezhik_ left
SmokeMachine timotimo: I'd rather to be implemented... :P 13:02
timotimo of course
13:04 astj joined
masak ilmari: yes, I saw that interview a while ago, I think 13:06
13:08 astj left 13:10 melezhik_ joined
SmokeMachine whats needed to implement the COMPOSE phaser? 13:11
when it should run?
Id like to try to implement it... 13:13
arnsholt At a guess, I think you'd have to add a compose phaser callback to the Role HOW object, which can be called at composition 13:15
I'm a bit foggy on exactly how you'd go about implementing that though
But some of the other phasers might be instructive
SmokeMachine arnsholt: thanks! Ill try to read those... 13:16
jnthn I think "what is it meant to do" is the main blocker here :) 13:17
13:17 duncan_dmg joined
arnsholt That'd be a bigger blocker, yes =) 13:18
Intuitively, it's "whenever the role is composed into a class", but I'm guessing that's not an unambiguous formulation?
13:22 Cabanossi left 13:23 Cabanossi joined, faraco joined
SmokeMachine jnthn: so, is it not implemented yet because it's not agreed to how it should work? 13:24
masak .oO( does the use case at hand provide any clues as to how it should work? ) :P 13:25
jnthn arnsholt: Something like that...also what's in scope, what scopes can it be placed into, etc.
faraco looking at sixth-sense. 13:26
jnthn Thing is, if you want code to be run at the point a role is being composed into a class, you can just write code into the role body 13:27
13:27 drbojingle joined
jnthn m: role R { say "being composed into $?CLASS.^name()" }; class C1 does R { }; class C2 does R { } 13:27
camelia rakudo-moar 87d40a: OUTPUT«being composed into C1␤being composed into C2␤»
arnsholt Ah, right. In that case there's less call for it, I agree 13:28
jnthn Since role bodies are evaluated at the point of composition.
And in a class you can write a BEGIN block before, or after, the closing curly
arnsholt SmokeMachine: See above 13:29
13:29 dugword left
arnsholt It's a bit odd that the find_method doesn't work though; maybe auto-generated methods are inserted only *after* role composition (to allow roles to supply implementations, perhaps?) 13:29
jnthn Yes 13:30
SmokeMachine jnthn: this is my problem:
m: role R {COMPOSE {say ::?CLASS.^find_method("bla")}}; class C does R {has $.bla}
camelia ( no output )
jnthn OK, so then you'd want it to run post-COMPOSE...
Or at least...post...something :)
SmokeMachine is COMPOSE running at the same place as the role body? 13:31
jnthn I've no idea because I don't thing it was ever defined :P
*think
Suppose we did introduce a COMPOSE that runs at a different, later, time to code in the role body. 13:32
SmokeMachine that would work if the role body just run after the creation of those methods...
jnthn That's impossible :)
SmokeMachine yes, I think compose should run later then... 13:33
13:34 xtreak joined, kurahaupo__ joined
SmokeMachine but probably it shouldn't be called COMPOSE... 13:35
jnthn Even then, we get to the "later, but when?" problem 13:38
If it runs after attribute composition then your use case works, but it's too late to add more attributes
If before attribute composition then we can but vice versa :) 13:39
13:40 melezhik_ left 13:41 xtreak left
SmokeMachine then shouldn't exists phasers for both? 13:42
jnthn: ^^ 13:43
13:44 curt__ left
jnthn Not sure it's worth it 13:45
I mean, it feels too niche to deserve a phaser
Mixing in to the meta-object, overriding the appropriate method, doing what you wish, followed by a callsame, or preceded by a callsame, is likely more scaleable 13:47
(Than trying to add/name a bunch of phasers then explain when they run)
13:47 scruff66 left 13:48 scruff66 joined
SmokeMachine m: role R {method ^compose(|) {say ::?CLASS.^find_method("bla")}}; class C does R {has $.bla} # I tried that too... it complains about creating a multi... 13:49
camelia rakudo-moar 87d40a: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in multi (did you mean 'my method compose'?)␤ at <tmp>:1␤ ------> 3role R {method7⏏5 ^compose(|) {say ::?CLASS.^find_method(␤»
SmokeMachine m: role R {method ^compose(|) {callsame; say ::?CLASS.^find_method("bla")}}; class C does R {has $.bla} # I tried that too... it complains about creating a multi...
camelia rakudo-moar 87d40a: OUTPUT«Potential difficulties:␤ Useless declaration of a has-scoped method in multi (did you mean 'my method compose'?)␤ at <tmp>:1␤ ------> 3role R {method7⏏5 ^compose(|) {callsame; say ::?CLASS.^fi␤»
13:51 faraco left
jnthn m: role R { $?CLASS.HOW does role { method compose_repr(Mu \type) { callsame; say self.find_method(type, "bla") } } }; class C does R { has $.bla } 13:51
camelia rakudo-moar 87d40a: OUTPUT«bla␤»
jnthn That seems a suitable point
13:51 kurahaupo__ is now known as kurahaupo
SmokeMachine jnthn: great! thanks! 13:52
m: role R { $?CLASS.HOW does role { method compose_repr(Mu \type) { callsame; say self.find_method(type, "bla") } } }; class C does R { has $.bla }; role S {}; class D does S {has $.bla} 13:55
camelia rakudo-moar 87d40a: OUTPUT«bla␤»
SmokeMachine just one bla... great! thanks!
jnthn Yeah, you're mixing into the individual meta-object instance, not altering the meta-type :) 13:57
13:58 Peter_R left 13:59 Peter_R joined 14:02 melezhik joined, skids joined 14:05 abraxxa left 14:06 abraxxa joined 14:13 khw joined
[Coke] should go get moar coffee. 14:15
abraxxa moar is always good! 14:17
timotimo m: say 1920 / 1080; say 460 / 215 14:19
camelia rakudo-moar 87d40a: OUTPUT«1.777778␤2.139535␤»
timotimo enh :\
14:21 Cabanossi left 14:23 Cabanossi joined, curt__ joined 14:24 xtreak joined 14:26 fluca1978 joined 14:27 dugword joined 14:33 hoelzro joined 14:36 xtreak left
Geth oc/master: 4 commits pushed by coke++ 14:37
14:42 melezhik_ joined, avar left
melezhik_ Hi! 14:42
14:43 literal joined, avar joined, avar left, avar joined
melezhik_ how one may interpolate varibale into here string? 14:44
[Coke] have you read through docs.perl6.org/language/quoting#in...s%3A_%3Ato yet? 14:45
There's an example there that shows an interpolation.
(searching for "heredoc" instead of "here string" finds that)
melezhik_ Coke: thanks 14:47
it will be qq:to/END/
14:49 Bucciarati joined, bwisti joined 14:52 KDr2 joined, Actualeyes left 14:56 CIAvash left 14:58 fluca1978 left 15:00 dugword left 15:05 Actualeyes joined 15:06 perlawhirl left 15:08 as__ left 15:12 travis-ci joined
travis-ci Doc build passed. Will "Coke" Coleda 'fix typos' 15:12
travis-ci.org/perl6/doc/builds/196602501 github.com/perl6/doc/compare/c0353...7ac0beaade
15:12 travis-ci left 15:14 cdg_ joined 15:21 astj joined
brokenchicken sighs at twitter.com/walt_man/status/825808835558461440 15:25
15:25 sena_kun joined
brokenchicken Wonder if it's invevitable this channel will eventually also turn sour when it grows to more people. 15:26
sena_kun
15:27 astj left
timotimo i don't think it can be prevented forever, but we'll definitely try to keep it nice in here for as long as humanly possible 15:28
humanly or robotically, i guess
15:29 g4 left
brokenchicken IME it's usually some regular/op who starts going apeshit and others don't do anything about it because they're a regular/op. 15:29
brokenchicken hopes there aren't any logs of his time as op in #css :P 15:30
timotimo how about this
i say
well, if that's your opinion you can just go fuck yourself
and you say
timo, that's way out of line, please leave your computer and calm down for a bit before you chat again
also, please apologize, timo
brokenchicken People telling me to "relax" or "calm down" when I'm pissed off just pisses me off even more :P 15:31
timotimo hm, true 15:32
SmokeMachine jnthn: that worked on my code! thanks!
timotimo can we somehow condition our ircers to respond to abusive people semi-automatically? 15:33
15:36 Cabanossi left 15:38 Cabanossi joined 15:41 sammers left 15:42 pyrimidine left, pyrimidine joined
jast my eperience has been that while small squabbles will always happen at some point, all in all it's perfectly possible for a big channel to stay human 15:47
15:47 pyrimidine left 15:53 sammers joined 15:55 vreg joined 15:57 dugword joined
perlpilot Have you guys seen that talk by Clay Shirky on where he talks about the Shinto shrine being rebuilt ever 20 years or so? If not, here it is: www.youtube.com/watch?v=Xe1TZaElTAs&eurl The exact same thing applies to IRC channels. We rebuild it every day how we want it to be. We just need to make sure we're diligent in putting more of the "good stuff" in keeping the "bad stuff" out (though some will sneak in because we're human) 16:01
japhb brokenchicken: Is there anything bystanders can say that *does* calm you down when you're pissed off? 16:02
16:04 domidumont left 16:05 cdg joined 16:06 cdg_ left 16:07 sena_kun left, sena_kun joined
perlpilot japhb: "Help! We need an op to kick brokenchicken!" ;-> It might not calm him down, but the net effect on the channel could be positive anyway ;) 16:07
16:08 cdg_ joined 16:09 KDr2 left
brokenchicken japhb: "you're being a dick" 16:11
16:12 cdg left, cdg joined
japhb brokenchicken: Do you find it better to say that in PM or in channel? 16:13
brokenchicken japhb: in channel 16:15
16:15 cdg__ joined, cdg_ left 16:16 pyrimidine joined
japhb brokenchicken: Interesting. That means people need to keep a map of human => calming method, because there are definitely some people for whom saying "you're being a dick" in channel would *really* set them off, precisely the opposite of you. 16:17
16:19 cdg left
brokenchicken
.oO( sounds like we need another bot... )
16:19
japhb wonders if we could have a "safe word" for in-channel calming of regulars, that we all agree will work on us ...
brokenchicken :)
+1
moritz shenenigans?
japhb initially thought "eggplant", because it's an intrinsically humorous word, but then emoji went and ruined it for us 16:20
16:20 pyrimidine left
timotimo hm, isn't eggplant the best emoji? 16:21
moritz is eggplanting the new bikeshedding?
japhb It just drags too much cultural baggage with it 16:22
16:22 Cabanossi left
japhb shenanigans is a good word, but for some reason I want to keep that available for describing hacky code 16:22
16:23 Cabanossi joined
japhb goes AFK 16:24
16:25 pyrimidine joined
[Coke] remembers shenanigans from "super troopers". 16:27
moritz maybe "shiboleet" would be better: xkcd.com/806/ :-) 16:28
16:30 dugword left
perlpilot moritz++ 16:30
16:30 zakharyas left
brokenchicken hehe moritz++ 16:30
16:30 pyrimidine left, dugword joined 16:31 ocbtec left 16:35 melezhik_ left 16:36 ocbtec joined 16:41 aindilis` left 16:42 agentzh left 16:44 astj joined, agentzh joined 16:45 cdg__ left
b2gills brokenchicken: Knowing that telling you to calm down, pisses you off further. I would still do it, if for no other reason than to let the other person know that this type of behaviour is not the norm. 16:52
How about we just tell anybody that is being persnickety that they are currently being LTA 16:54
17:06 curt__ left 17:12 dugword left
TimToady masak: Speaking of gravity, both Texans and Aussies would be insulted at your categorization of my hat. 17:14
17:24 girafe joined
jdv79 where's the good vim perl6 highlight stuff? my vim is too janky 17:26
jdv79 is tempted to turn it off
timotimo the vim highlighter is only bad if you have a line that contains many minus signs 17:28
i have to ctrl-c every time i scroll somewhere where there's a line like that
brokenchicken b2gills: that sounds very strange to me :) You wish to indicate to one person the behaviour is not the norm by deliberately soliciting it from the other person :) 17:34
17:35 astj left 17:36 astj joined, pmurias joined
jdv79 timotimo: huh. mine just slows down over certain lines. like a inconsistenly bumpy road. 17:37
not many minus signs
17:38 dakkar left
timotimo hm 17:38
jdv79 i'll try installing the newest plugin 17:39
17:40 astj left 17:42 pyrimidine joined 17:43 duncan_dmg left 17:45 zakharyas joined 17:47 agentzh left, pyrimidine left 17:48 FROGGS joined, scruff66 left
jdv79 huh, still a little janky 17:49
when running the cursor over code
w/e
17:52 pyrimidine joined 18:04 pyrimidine left 18:05 pyrimidine joined 18:06 Cabanossi left 18:08 Cabanossi joined 18:15 nebuchadnezzar joined 18:23 WambaSH joined 18:25 wamba joined 18:26 agentzh joined 18:27 WambaSH left 18:33 darutoko left 18:37 domidumont joined 18:44 wamba left, wamba joined 18:52 Tonik joined 18:58 lostinfog joined 19:02 cibs left 19:04 cibs joined 19:14 bpmedley left, zakharyas left 19:20 lukaramu joined, labster joined, kurahaupo left, kurahaupo__ joined
SmokeMachine brokenchicken: everything has changed on perl7 again? 19:20
sena_kun SmokeMachine, it's rapid development in action. ;) 19:24
19:26 agentzh left
SmokeMachine :) 19:28
19:30 kyan joined 19:31 agentzh joined 19:36 astj joined
sena_kun Actually, it is kind of impressive how a small compiler can be written in 300 loc. With borrowed (AFAIK) AST. And with an already written execution platform. And with a grammar instead of some parser. I wrote a simple functional language this winter, but with a parser from scratch, pretty-printer, execution environment and such it has grown in ~600 loc. And it was really bad and incomplete implementation. 19:37
19:37 cognominal left 19:38 jameslenz joined 19:39 cognominal joined 19:41 astj left
rindolf jdv79: hi 19:44
19:50 wamba left
brokenchicken sena_kun: yup. And it comes with all the profiles and debug outputs Rakudo comes with! 19:51
*profilers
19:51 perlawhirl joined
lizmat starts working on the P6W 19:52
so if you have any news you think I missed, let me know!
19:53 cdg joined
stmuk_ I'm hoping to get a R* release out in the next hr or so 19:53
lizmat well, I'll be busy for another hour so, I think :-) 19:54
19:54 cdg_ joined
sena_kun brokenchicken, judging by the brief looking at the code, more precisely is it just a translator from your code text to QAST ops? 19:56
19:58 st_elmo joined, cdg left
brokenchicken sena_kun: nqp is a compiler-building toolchain. I've used it to build a compiler. Not sure what you mean by "just a translator" 19:59
stmuk_ 007 seems broken
Could not locate compile-time value for symbol Val::Array
lizmat stmuk_: feels like a lexical use issue ?
paging masak 20:00
sena_kun brokenchicken, just my terminology-related nonsense, nevermind it. ;)
20:02 MasterDuke left, domidumont left 20:06 Tonik left 20:08 jameslenz left, pyrimidine left, cale2 joined 20:09 pyrimidine joined
SmokeMachine w for weekly?! I thought that was this github.com/zostay/P6W 20:12
lizmat SmokeMachine: yeah, the Perl 6 Weekly 20:14
20:14 pyrimidine left 20:15 pyrimidine joined
SmokeMachine lizmat: you are doing a great job on that! 20:15
lizmat SmokeMachine: thank you :-)
20:20 jonas1 left 20:23 cdg joined
SmokeMachine is there any module that implements p6w? 20:25
jdv79 rindolf: sup? 20:26
20:26 cdg_ left 20:27 cdg_ joined
stmuk_ rakudo.org/2017/01/30/announce-raku...e-2017-01/ 20:28
rindolf jdv79: I investigated and wrote a fix for an inkscape crash the other day
jdv79: a whole day spent to produce an 8 lines patch
20:30 cdg left 20:33 drbojingle left
SmokeMachine November 2016 release of “Rakudo Star”? 20:36
stmuk_: ^^ 20:37
20:37 astj joined 20:39 cdg joined, kurahaupo_ joined 20:41 astj left 20:42 cdg_ left, cdg__ joined
dalek href="https://perl6.org:">perl6.org: d5169ac | (Steve Mynott)++ | source/ (2 files):
Rakudo Star 2017.01
20:42
yoleaux 29 Jan 2017 09:49Z <nine> dalek: Please switch this bot to Geth
20:43 kurahaupo__ left, espadrine_ joined 20:45 cdg left
stmuk_ SmokeMachine: yes I've just had that pointed out to me in an email and I've fixed the website announce 20:47
I guess noone proof read it in the week before the release! 20:50
20:50 wamba joined
stmuk_ for the next one I'll remove some of the hardcoded dates and versions 20:52
20:52 jp_ joined
jdv79 rindolf: cool 20:54
rindolf jdv79: how are you doing?
20:56 pyrimidine left, pyrimidine joined
stmuk_ I can't face rakudo.org/how-to-get-rakudo right now but will do tomorrow if noone else gets there first! 20:57
21:02 pyrimidine left
brokenchicken Hm, took me a bit to notice x86 Win Star is a year old. 21:04
[Coke] .tell dalek please switch this bot to use Geth.
yoleaux [Coke]: I'll pass your message to dalek.
stmuk_ brokenchicken: I have wondered if it should be removed
21:05 perlawhirl left
[Coke] at this point, I would say yes. maybe update the README to explain why. 21:05
stmuk_ brokenchicken: oh thanks for the automatic display on rakudo.org/downloads/star/
[Coke] brokenchicken++ 21:06
stmuk++
21:09 _28_ria left
jdv79 rindolf: nothing amazing. trying to golf a p6 bug atm. 21:10
21:10 FROGGS left, TEttinger joined
rindolf jdv79: ah, good luck with that? 21:11
jdv79: does it happen with rakudo/moarvm?
21:11 _28_ria joined
jdv79 ues 21:11
*yes
21:11 robertle left
jdv79 but right now i can only repro it in a non-trival piece of code 21:12
of course
21:18 cdg joined 21:21 cdg__ left
timotimo oh my gosh i have internet access! 21:25
brokenchicken What luck... Went to buy Witcher III game and turns out it's on a "daily deal" today and is 40% off.... And the best part? Turns out I already bought it last May and just forgot about it :P 21:26
timotimo: welcome to civilization!
21:27 agentzh left 21:31 cdg_ joined 21:33 pmurias left 21:35 cdg left, cdg joined, bjz left 21:37 alimon left 21:38 cdg_ left 21:39 kyan left 21:41 aindilis joined 21:43 okeuday_bak joined 21:44 cdg_ joined
okeuday_bak If I have "use 5.010;", in some perl5 code, won't perl6 execute the source code as perl5 code? 21:44
brokenchicken okeuday_bak: no, Perl 6 is an entirely different language
buggable: eco perl5 21:45
buggable brokenchicken, Found 4 results: Digest::MD5, Web::Scraper, Inline::Perl5, Pod::Perl5. See modules.perl6.org/#q=perl5
brokenchicken buggable: eco inline::perl5
buggable brokenchicken, Inline::Perl5 'Use Perl 5 code in a Perl 6 program': github.com/niner/Inline-Perl5
brokenchicken See that ^
okeuday_bak brokenchicken: I understand perl6 is separate, but older information appeared to indicate that perl6 would still accept perl5 source code, but I don't remember where I read about that
21:45 agentzh joined
brokenchicken okeuday_bak: Inline::Perl5 provides *interoperability* which is mandated by the specification, but that doesn't mean you can just write Perl 5 code and it'll work. 21:46
okeuday_bak brokenchicken: what does it mean then?
21:46 cdg left
stmuk_ okeuday_bak: that was the "v5" project which I dont think has progressed recently 21:47
brokenchicken okeuday_bak: that if you want to use Perl 5 modules or code, you use Inline::Perl5
okeuday_bak stmuk_: k
brokenchicken: k, so you must always call through Perl6 to use Perl5, and only through that extra dependency 21:48
stmuk_ github.com/rakudo-p5/v5
21:49 perlawhirl joined
perlpilot or just use Perl 5 directly without Perl 6 at all :-) 21:49
lizmat I think the main problem of the v5 project is to target which version of Perl 5
especially with all of the "recent" syntactic additions such as postderef syntax
stmuk_ I recall there was a basic issue with trying to run perl 5 tests 21:50
okeuday_bak tis ok, I mainly wanted to check if I could test perl5 code with perl6, to see what would happen
RabidGravy am I the only person who finds the postfix deref ugly
stmuk_ wasn't it something to do with "goto"?
lizmat RabidGravy: no
RabidGravy good 21:51
stmuk_ RabidGravy: I thought it was pointless tinkering like much of the perl 5 changes of late
RabidGravy people started to use it at work and I just want to remove it
perlpilot stmuk_: I don't think it was pointless. It was done for a similar reason P6 moved the regex modifiers to the front I think. Only there they *wanted* the end-weight because of how the expression reads 21:53
21:53 alimon joined
perlpilot (but ... it is ugly) 21:53
21:54 bjz joined 21:55 okeuday_bak left 21:58 skids left, perlawhirl left 22:00 labster left, beatdown left
timotimo lied 22:02
internet connection is super terrible
22:03 bjz left, labster joined 22:05 perlawhirl joined 22:09 st_elmo left, drbojingle joined 22:10 drbojingle left
brokenchicken Ugly? The ->*@ is much nicer than @ with braces wrapping the entire line 22:11
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/01/30/...e-mondays/
brokenchicken wooo \o/
lizmat also: shop.oreilly.com/product/0636920065883.do # Think Perl 6 :) 22:12
22:12 RabidGravy left
brokenchicken oh wow, another book! 22:13
gfldex i'm do not agree to the colouring of that butterly!
perlpilot Hmm. There will be too many butterflies at this rate.
22:13 rmusial joined
brokenchicken huggable: books 22:14
huggable brokenchicken, "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies)
perlpilot perlpilot's law of Perl 6 books -- everyone wants the butterfly
brokenchicken huggable: books :is: "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies) ; "Think Perl 6: How to Think Like a Computer Scientist": shop.oreilly.com/product/0636920065883.do
huggable brokenchicken, Added books as "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies) ; "Think Perl 6: How to Think Like a Computer Scientist": shop.oreilly.com/product/0636920065883.do
lizmat I understand there will be early edition e-books available in a few days 22:15
brokenchicken sweet 22:16
22:19 kurahaupo_ left
brokenchicken lizmat++ good weekly 22:20
gfldex brokenchicken: did you doc sub `foo:bar<42> {}` ? 22:22
22:24 cdg joined 22:27 perlawhirl left, cdg_ left 22:28 rindolf left
gfldex m: my &c = sub foo:bar<42> { say 'oi‽' }; my $a = 42; foo:bar«$a»() 22:28
camelia rakudo-moar 3e28b1: OUTPUT«Use of uninitialized value $a of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in code at <tmp> line 1␤5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤…»
gfldex m: my &c = sub foo:bar<42> { say 'oi‽' }; my $a = 42; foo:bar«42»() 22:29
camelia rakudo-moar 3e28b1: OUTPUT«oi‽␤»
gfldex am I asking too much?
geekosaur gfldex, I think that is compile time 22:30
gfldex m: my &c = sub foo:bar<42> { say 'oi‽' }; constant $a = 42; foo:bar«$a»() 22:31
camelia rakudo-moar 3e28b1: OUTPUT«oi‽␤»
gfldex neat :->
geekosaur m: my &c = sub foo:bar<42> { say 'oi‽' }; BEGIN my $a = 42; foo:bar«$a»() 22:32
camelia rakudo-moar 3e28b1: OUTPUT«oi‽␤»
22:33 cdg_ joined
gfldex m: class C { method m:a<42> { say 'oi!' } }; C.new.(m:a<42>)(); 22:33
camelia rakudo-moar 3e28b1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Adverb a not allowed on m␤at <tmp>:1␤------> 3 m:a<42> { say 'oi!' } }; C.new.(m:a<42>7⏏5)();␤»
gfldex m: class C { method m:a<42> { say 'oi!' } }; C.new.m:a<42>(); 22:34
camelia rakudo-moar 3e28b1: OUTPUT«No such method 'm' for invocant of type 'C'␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken Oh, cool. Didn't know you could use variables there 22:35
gfldex constant variables in that case :)
and it may not be in roast (didn't check) 22:36
22:36 cdg left
brokenchicken m: BEGIN my $z = 42; my &c = sub foo:bar«$z» { say 'oi‽' }; BEGIN my $a = 42; foo:bar«$a»() 22:37
camelia rakudo-moar 3e28b1: OUTPUT«oi‽␤»
22:37 lolo78 joined 22:38 astj joined
brokenchicken gfldex: but no, I didn't document anything. It was more of a "the custom op category is too eager in rejecting stuff so it hits subs with extended colonpairs" fix: github.com/rakudo/rakudo/commit/48...278063462a 22:38
and doesn't affect methods/grammar things since these worked on them already 22:39
22:41 pyrimidine joined 22:42 astj left 22:46 pyrimidine left 22:51 agentzh left 22:52 tardisx joined 23:12 jraglin left
samcv I know I can get a variables name using .VAR.name. but what if I want to set a variable programmatically to something 23:13
at runtime
without using eval
23:16 breinbaas left 23:17 jraglin joined, lukaramu left
geekosaur m: my $a = 5; my $b = '$a'; ::($b) = 6; dd $a 23:18
camelia rakudo-moar 3e28b1: OUTPUT«Int $a = 6␤»
samcv nice
23:23 kyan joined, girafe left 23:24 lep-delete left 23:29 travis-ci joined
travis-ci Doc build passed. Antonio Quinonez 'added newlines' 23:29
travis-ci.org/antquinonez/doc/builds/196744792 github.com/antquinonez/doc/commit/0c6a786b4310
23:29 travis-ci left, lep-delete joined 23:36 Cabanossi left 23:38 Cabanossi joined, Vynce joined
timotimo home again, where the internet's good 23:40
23:47 pyrimidine joined 23:48 lolo78 left 23:52 pyrimidine left
brokenchicken \o/ 23:52