»ö« 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. |
|||
00:01
pierre_ joined,
yqt left
|
|||
skink | Alright, time to guess what's terrible wrong | 00:02 | |
my Pointer $hProv .= new; | 00:03 | ||
my $ctx_ret = CryptAcquireContextA(&$hProv ... | |||
skink wonders if CryptAcquireContextA(Pointer[Pointer]...) is also wrong | |||
00:05
yqt joined
|
|||
geraud | TimToady: for some value of "NC" | 00:06 | |
00:08
sjohnson joined
|
|||
sortiz | skink, use: "class HCP is repr('CPointer') { };" and then "CryptAccquireContextA(HCP is rw,…)", and call with "my HCP $h .= new; …($h,…)" | 00:10 | |
00:14
cognominal left
00:15
pierre_ left
00:16
kid51 joined
|
|||
sortiz | That way you have a typed pointer that can be safely in other calls with for the same type, and as a Handler you even can define methods for it in the class. Ie that sub can be the constructor in the class. | 00:16 | |
00:16
kurahaupo left
00:17
BenGoldberg joined
00:19
itaipu joined
00:20
hotel_california is now known as hotel
00:22
cognominal joined
|
|||
hotel | just saw an ad with what I assume was a failed XSS attack in it lol | 00:23 | |
something like print '<scri' + 'pt>' | |||
skink | Thanks sortiz. I was both trying to figure out the custom type and wondering about is rw instead of the other pointer previously | 00:24 | |
That combines the two | |||
sortiz++ | |||
00:25
rindolf left,
kurahaupo joined
00:26
cpage_ left
00:28
kurahaupo left,
kurahaupo joined
00:31
Bot1 joined
|
|||
Bot1 | Sup | 00:32 | |
00:32
hotel is now known as hotel|out
|
|||
sortiz | skink, Take that with a grain of salt, some years have passed since the last time I wrote for Windows. And I don't have my Windows at hand :-) | 00:32 | |
00:32
Bot1 left
|
|||
skink | Oh my god what. | 00:34 | |
All tests successful. | |||
It's a miracle! | |||
timotimo | cool | ||
00:34
pRiVi left
00:35
pRiVi joined,
kurahaupo left
|
|||
sortiz | nice | 00:35 | |
00:36
Bucciarati left
00:42
Bucciarati joined
00:48
Actualeyes joined
00:50
hotel|out is now known as hotel
|
|||
hotel | what kind of project can I do in perl6? looking for ideas I guess | 00:51 | |
MadcapJake | servers, text processing, nativecall bindings, lots of stuff! The only limiting factor right now is it should be something not very expensive (in terms of performance) | 00:56 | |
00:57
perlpilot left
|
|||
ugexe | software for manipulating emissions is pretty hot right now | 00:57 | |
hotel | did VW write that in perl 6? kek | 00:58 | |
MadcapJake | ugexe: lol | ||
not just VW now! Fiat and Mitsubishi too | 00:59 | ||
geekosaur | they should have written it in php so they;d have plausible deniability >.> | ||
hotel | oh really? hadn't heard that | 01:00 | |
ugexe | i hear dracony worked for toyota and thats how that happened | ||
hotel | m: my $supply = Supplier.new.Supply; $supply.tap(-> $v { say 'this car is fuel-efficient and eco-friendly! }); $supply.emit('CO2 >> normal values') # `emissions` manipulation | 01:03 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HQCPRTABs5Two terms in a rowat /tmp/HQCPRTABs5:1------> 3ent and eco-friendly! }); $supply.emit('7⏏5CO2 >> normal values') # `emissions` man expecting any of: infix infi…» | ||
hotel | well if I had closed the quote it would have been better | 01:04 | |
MadcapJake | I'm guessing they wrote it in Lua and just thought it was 0-based indices ;) | ||
hotel | m: my $supply = Supplier.new.Supply; $supply.tap(-> $v { say 'this car is fuel-efficient and eco-friendly!' }); $supply.emit('CO2 >> normal values') # `emissions` manipulation | ||
camelia | rakudo-moar 9c8989: OUTPUT«Method 'emit' not found for invocant of class 'Supply' in block <unit> at /tmp/SdeW8G8GGX line 1» | ||
01:04
BenGoldberg left
|
|||
skink | sortiz, timotimo: Well that didn't last long :D | 01:04 | |
Bytecode validation error | |||
hotel | >=| you get the point | ||
MadcapJake | (funny enough Lua evolved from Sol a language designed for petroleum engineers) | ||
hotel | that's hilarious | 01:05 | |
TEttinger | I thought it was a full rewrite because sol was impossible to read | ||
01:05
BenGoldberg joined
|
|||
hotel | iirc lua was developed in brazil while sol was made by the us navy | 01:06 | |
MadcapJake | www.lua.org/history.html | 01:07 | |
TEttinger | ah, yeah, del was the unreadable one | ||
01:09
itaipu left,
Ben_Goldberg joined
|
|||
hotel | looks like they tried to follow the KISS design philosophy | 01:09 | |
01:09
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
hotel | one-letter control codes are usually a good idea | 01:09 | |
01:09
dvinciguerra joined
|
|||
skink | Hm... Very odd. Changed some params from uint64 to uint32 for consistency and the whole thing exploded | 01:10 | |
01:10
perlawhirl joined
|
|||
skink | operand type 160 does not match register type 152 | 01:10 | |
sortiz | skink, Are you using native types in named arguments? | 01:11 | |
skink | Nope | ||
sortiz | Umm, so a different bug. | 01:12 | |
skink | github.com/skinkade/crypt-random/c...2ae222f4eb | 01:14 | |
01:15
itaipu joined
01:16
dvinciguerra left
01:21
pierre_ joined
|
|||
sortiz | I've seen that error but only with named args: | 01:21 | |
m: sub Foo(uint32 :$bar) { say $bar }; Foo(:bar(4)); | |||
camelia | rakudo-moar 9c8989: OUTPUT«Bytecode validation error at offset 40, instruction 6:operand type 160 does not match register type 152 in block <unit> at /tmp/BXyC79IP3f line 1» | ||
sortiz | Isn't NC related, is codegen related. | 01:22 | |
skink | It works with uint32 though | 01:25 | |
er, 64 | |||
01:25
dogbert17 left
01:26
cdg left
|
|||
skink | m: sub Foo(uint64 $x) { say $x; }; Foo(4); | 01:26 | |
camelia | rakudo-moar 9c8989: OUTPUT«4» | ||
skink | m: sub Foo(uint32 $x) { say $x; }; Foo(4); | ||
camelia | rakudo-moar 9c8989: OUTPUT«4» | ||
skink | ... Interesting | ||
m: sub Foo(uint64 :$bar) { say $bar }; Foo(:bar(4)); | |||
camelia | rakudo-moar 9c8989: OUTPUT«4» | ||
01:27
cdg joined
|
|||
skink | m: sub Foo(uint32 $x = 4) { say $x; }; Foo(); | 01:27 | |
camelia | rakudo-moar 9c8989: OUTPUT«Bytecode validation error at offset 40, instruction 6:operand type 160 does not match register type 152 in block <unit> at /tmp/PKlFkvKzRc line 1» | ||
hotel | so uint32 is broken | ||
skink | sortiz, Not just named types, also default values | ||
named params* | |||
sortiz | Ok, can you add that example to RT#127813 ? | 01:28 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127813 | ||
01:29
itaipu left
01:31
cdg left
|
|||
sortiz | Yep, also for default values, and for all native types not in(int64, num64) | 01:33 | |
01:33
ssotka left
01:34
Su-Shee_ joined
|
|||
skink | m: sub Foo(int8 $x = 4) { say $x; }; Foo(); | 01:34 | |
camelia | rakudo-moar 9c8989: OUTPUT«Bytecode validation error at offset 40, instruction 6:operand type 32 does not match register type 8 in block <unit> at /tmp/piYiIHbdC8 line 1» | ||
skink | Wow | ||
m: sub Foo(UInt32 $x = 4) { say $x; }; Foo(); | |||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bOmnaE7f8bInvalid typename 'UInt32' in parameter declaration. Did you mean 'uint32', 'int32'?at /tmp/bOmnaE7f8b:1------> 3sub Foo(UInt327⏏5 $x = 4) { say $x; }; Foo();» | 01:35 | |
hotel | m: sub Foo(int32 $x = 4) { say $x; }; Foo(); | ||
camelia | rakudo-moar 9c8989: OUTPUT«Bytecode validation error at offset 40, instruction 6:operand type 32 does not match register type 24 in block <unit> at /tmp/3UE92nKKsp line 1» | ||
hotel | even when signed | ||
fun | |||
01:36
Su-Shee left
|
|||
skink | Right, UInt32 is in Subsets::Common | 01:36 | |
01:38
ZoffixWin joined
|
|||
ZoffixWin | m: loop(;;){last} | 01:38 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/sI4M_XRt0WUndeclared routine: loop used at line 1» | ||
ZoffixWin | LTA Error | ||
hotel | lawn tennis association? | 01:39 | |
AlexDaniel | well, hm | ||
m: loop(;;) {last} | |||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5===Word 'loop' interpreted as 'loop()' function call; please use whitespace around the parensat /tmp/R5D0VS0mht:1------> 3loop7⏏5(;;) {last}Unexpected block in infix position (two terms in a row)at /tmp/R5D0VS0mht:1--…» | ||
ZoffixWin | hm | 01:40 | |
Screw it then. | |||
hotel | but really, lighter than air? | ||
AlexDaniel | so the error message is quite good, but it is not printed when you omit space *after* parens | 01:41 | |
01:41
jjido joined
|
|||
ZoffixWin | huggable, LTA | 01:41 | |
huggable | ZoffixWin, Less Than Awesome | ||
hotel | oh | ||
right | |||
hotel knew that :\ | |||
ZoffixWin | huggable, TTIAR | ||
huggable | ZoffixWin, nothing found | ||
ZoffixWin | huggable, TTIAR :is: Two Terms In A Row | ||
hotel | huggable, PEBCAK | ||
huggable | ZoffixWin, Added TTIAR as Two Terms In A Row | ||
hotel, nothing found | 01:42 | ||
AlexDaniel | ZoffixWin: well, at least it is not this | ||
m: sub Foo(uint32 $x = 4) { }; Foo | |||
camelia | rakudo-moar 9c8989: OUTPUT«Bytecode validation error at offset 40, instruction 6:operand type 160 does not match register type 152 in block <unit> at /tmp/uBp7pf9zfb line 1» | ||
hotel | lol | ||
ZoffixWin | :o | ||
AlexDaniel | skink: will you submit a bug report? | 01:43 | |
hotel | there was already a ticket opened, wasn't there? | 01:44 | |
AlexDaniel | ah, there's already one | ||
ok, missed it | |||
01:45
jjido left
01:46
wbill_ joined,
ilbot3 left
|
|||
AlexDaniel | m: my @x; say @x:delete | 01:46 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/z6AA8VflVwVariable '@x:delete' is not declaredat /tmp/z6AA8VflVw:1------> 3my @x; say 7⏏5@x:delete» | ||
hotel | huggable, PEBCAK :is: Problem Exists Between Chair And Keyboard | ||
huggable | hotel, Added PEBCAK as Problem Exists Between Chair And Keyboard | ||
01:47
ilbot3 joined
|
|||
AlexDaniel | how can I declare @x:delete? :) | 01:47 | |
oh | |||
m: my @x:delete = 42; say @x:delete | |||
camelia | rakudo-moar 9c8989: OUTPUT«[42]» | ||
AlexDaniel | since when colons are allowed | 01:48 | |
01:48
wbill left
|
|||
hotel | m: my $: = 'colon'; say $: | 01:48 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7AlCZQ90DeUnsupported use of $: variable; in Perl 6 please use Form moduleat /tmp/7AlCZQ90De:1------> 3my $:7⏏5 = 'colon'; say $:» | ||
AlexDaniel | m: my $hello:world = 42; say $hello:world | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
01:48
cognominal left
|
|||
hotel | I guess it's like hyphens | 01:49 | |
01:49
cognominal joined
|
|||
ZoffixWin | wtf | 01:50 | |
m: my $hello::world = 42; say $hello::world | 01:51 | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
hotel | welp | ||
ZoffixWin | m: my $h::::e:l:l:o::wo:r:l:d = 42; say $h::::e:l:l:o::wo:r:l:d | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/H5Z3GXtqUlName component may not be nullat /tmp/H5Z3GXtqUl:1------> 3my $h::7⏏5::e:l:l:o::wo:r:l:d = 42; say $h::::e:l:» | ||
ZoffixWin | m: my $h::x::e:l:l:o::wo:r:l:d = 42; say $h::::e:l:l:o::wo:r:l:d | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/c9sN87qKIAConfusedat /tmp/c9sN87qKIA:1------> 3my $h::x::e:l:l:o:7⏏5:wo:r:l:d = 42; say $h::::e:l:l:o::wo:r: expecting any of: colon pair» | ||
ZoffixWin | m: my $h::x::e:l:l:o::wo:r:l:d = 42; say $h::x::e:l:l:o::wo:r:l:d | 01:52 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/X4M_SBZjGHConfusedat /tmp/X4M_SBZjGH:1------> 3my $h::x::e:l:l:o:7⏏5:wo:r:l:d = 42; say $h::x::e:l:l:o::wo:r expecting any of: colon pair» | ||
hotel | m: my $kebab--case = 'help I\'m dying'; say $kebab--case | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uSYPBbtXtETwo terms in a rowat /tmp/uSYPBbtXtE:1------> 3my $kebab--7⏏5case = 'help I\'m dying'; say $kebab--ca expecting any of: infix infix stopper statement…» | ||
AlexDaniel | m: my $_-_'_:_ = 42; say $_-_'_:_ | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
ZoffixWin | Feels like a bug with the thing that decides namespaced vars | ||
m: my \Δ_-_'_:_ = 42; say Δ_-_'_:_ | 01:53 | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YthMv1GQ70Variable '&Δ_-_'_:_' is not declaredat /tmp/YthMv1GQ70:1------> 3my \Δ_-_'_:_ = 42; say 7⏏5Δ_-_'_:_» | ||
ZoffixWin | m: my \Δ_-_'__ = 42; say Δ_-_'__ | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
hotel | m: my $x-::-y = 'but' say $x-::-y | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Fpe8haOoHSUnsupported use of y///; in Perl 6 please use tr///at /tmp/Fpe8haOoHS:1------> 3my $x-::-y7⏏5 = 'but' say $x-::-y» | ||
hotel | wat | ||
ZoffixWin | m: my %Δ_-_'_:_ = 42; say %Δ_-_'_:_ | ||
camelia | rakudo-moar 9c8989: OUTPUT«Odd number of elements found where hash initializer expected in block <unit> at /tmp/i29BbOTCJw line 1» | ||
ZoffixWin | m: my %Δ_-_'_:_ = 42 => 'meow'; say %Δ_-_'_:_ | ||
camelia | rakudo-moar 9c8989: OUTPUT«{42 => meow}» | ||
hotel | life is just crazy | ||
AlexDaniel | hah, look at this | 01:54 | |
m: my $_-_'_::_ = 42; say $_-_'_::_ | |||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
AlexDaniel | but | ||
m: my $_-_'_:::_ = 42; say $_-_'_:::_ | |||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GEbksP4vIsVariable '$_-_'_:_' is not declared. Did you mean '$_-_'_:::_'?at /tmp/GEbksP4vIs:1------> 3my $_-_'_:::_ = 42; say 7⏏5$_-_'_:::_» | ||
ZoffixWin | Something is off :) | 01:55 | |
AlexDaniel | : not declared, use :::… well, that's what I am doing! | ||
hotel | lmao | ||
AlexDaniel | by the way, related discussion here: github.com/perl6/specs/issues/106 | ||
ZoffixWin | File that as LTA Error for the luls :P | ||
01:56
cbk joined
01:57
molaf left
|
|||
AlexDaniel | indeed | 01:57 | |
hotel | class help { my $method = method (|args) { 42 }; $?CLASS.^addmethod(' ', $method); }; say help.new" "() | ||
m: class help { my $method = method (|args) { 42 }; $?CLASS.^addmethod(' ', $method); }; say help.new" "() | |||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SmkhdIMv8lTwo terms in a rowat /tmp/SmkhdIMv8l:1------> 3addmethod(' ', $method); }; say help.new7⏏5" "() expecting any of: infix infix stopper postfix …» | ||
skink | You can just a space as a method name? O_O | ||
just use* | |||
hotel | according to that discussion | 01:58 | |
*.* | |||
geekosaur | you can. but not like that | 01:59 | |
hotel thought he was copying the example given | |||
geekosaur | given where? | 02:00 | |
because `help.new" "()` looks rather wrong to me | |||
hotel | <AlexDaniel> by the way, related discussion here: github.com/perl6/specs/issues/106 | ||
geekosaur | I recall stuff like that needing some kind of ::() | ||
hotel | oh I forgot the . | 02:01 | |
m: class help { my $method = method (|args) { 42 }; $?CLASS.^addmethod(' ', $method); }; say help.new." "() | |||
camelia | rakudo-moar 9c8989: OUTPUT«Method 'addmethod' not found for invocant of class 'Perl6::Metamodel::ClassHOW' in block <unit> at /tmp/h3aF_YPBgj line 1» | ||
geekosaur | oh | ||
right, that makes more sense | |||
ZoffixWin | m: my $foo = class {}.new; $foo.^add_method(' ', {say "Weee";}); $foo." "() | ||
camelia | rakudo-moar 9c8989: OUTPUT«Weee» | ||
hotel | m: class help { my $method = method (|args) { 42 }; $?CLASS.^add_method(' ', $method); }; say help.new." "() | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
hotel | yeah also would help if I used the right method call | ||
ZoffixWin | m: class {$?CLASS.^add_method(' ', {say "Weee";})}." "() | 02:03 | |
camelia | rakudo-moar 9c8989: OUTPUT«Weee» | ||
ZoffixWin | neat | ||
m: class {$?CLASS.^add_method('', {say "Weee";})}.""() | |||
camelia | rakudo-moar 9c8989: OUTPUT«Weee» | ||
hotel | super anonymous many wow | ||
ZoffixWin | :o | ||
Empty method name! That's perverse. | |||
skink | Alright, I added a subset of Int to get around the uint32 thing. Crypt::Random now works again, using the actual and proper Windows Crypt API | ||
hotel | good for golf I guess | ||
AlexDaniel | ZoffixWin: RT #128120 | 02:04 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128120 | ||
ZoffixWin | heh | 02:05 | |
AlexDaniel++ | |||
02:05
cbk left
|
|||
ZoffixWin | my $foo:::_ = 42; say $foo:::_ | 02:05 | |
m: my $foo:::_ = 42; say $foo:::_ | |||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WVtvbaBWf0Variable '$foo:_' is not declaredat /tmp/WVtvbaBWf0:1------> 3my $foo:::_ = 42; say 7⏏5$foo:::_» | ||
ZoffixWin | m: my $foo_:::_ = 42; say $foo_:::_ | 02:06 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uc8idlJOMTVariable '$foo_:_' is not declared. Did you mean '$foo_:::_'?at /tmp/uc8idlJOMT:1------> 3my $foo_:::_ = 42; say 7⏏5$foo_:::_» | ||
hotel | it's like escaping one of the colons | ||
ZoffixWin | AlexDaniel, the "code" in your RT is off :) Though, if corrected, the error is same | ||
AlexDaniel | ah fuck | ||
hotel | more like it's a different result? | 02:07 | |
kek | |||
ZoffixWin | I'll comment, 'cause I have something to add. | ||
AlexDaniel | m: my $foo_:::_ = 42; say $foo_:::_ | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xn360F0bKeVariable '$foo_:_' is not declared. Did you mean '$foo_:::_'?at /tmp/xn360F0bKe:1------> 3my $foo_:::_ = 42; say 7⏏5$foo_:::_» | ||
AlexDaniel | and there is no way to edit your bug report! | 02:08 | |
geekosaur wonders how that ::: is parsed | |||
hotel | maybe it thinks there's a namespace called :_ | 02:09 | |
02:09
molaf joined
|
|||
hotel | rather, a namespace called foo_ with a method called :_** | 02:09 | |
geekosaur | single colon has to do with things like term:foo | ||
02:10
kid511 joined
|
|||
AlexDaniel | m: my $foo_:_ = 42; say $foo_:::_ | 02:10 | |
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
AlexDaniel | that's how it is parsed. I HAVE NO IDEA | ||
02:10
noganex joined
|
|||
hotel | lol wtf | 02:10 | |
geekosaur | m: my $foo_:_ = 42; say $foo_:_ | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
ZoffixWin | AlexDaniel, yeah, that's why I hate RT. | 02:11 | |
geekosaur | right, so : is doing whatever and then ::_ is being the same as _? | ||
but I have not tried to figure out the grammar for that single colon | |||
BenGoldberg | m: my $foo:_ = 42; say $foo::_; | ||
camelia | rakudo-moar 9c8989: OUTPUT«(Any)» | ||
02:11
kid51 left
|
|||
AlexDaniel | m: my $foo:_ = 42; say $foo::::::::_ | 02:12 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/CoLHwp3udqName component may not be nullat /tmp/CoLHwp3udq:1------> 3my $foo:_ = 42; say $foo::7⏏5::::::_» | ||
AlexDaniel | ok, three is a magic number | ||
geekosaur | also, hm, LTM implies it should parse as :: : not : :: | ||
(or does it?) | |||
02:13
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg,
noganex_ left
|
|||
AlexDaniel | ZoffixWin: it was a funny bug report. Until I noticed that there's a typo :((( | 02:13 | |
ZoffixWin | AlexDaniel, I now wish I've read the WHOLE discussion you linked to. I missed the mention of ':', so now I feel like an idiot | 02:14 | |
02:14
yqt left
|
|||
ZoffixWin | Still, variables aren't methods. And we still have discrepancy between \foo:bar and $foo:bar | 02:14 | |
02:15
BenGoldberg left,
zakharyas joined
02:16
BenGoldberg joined
|
|||
hotel | how the heck do I leave selfservice on the rt site? | 02:16 | |
BenGoldberg | Close the window? | 02:17 | |
AlexDaniel | hotel: I think that in order to leave selfservice you have to write an email to the admin | ||
hotel | oh | ||
cool | |||
AlexDaniel | hotel: well, if nothing else works | ||
hotel: have you ever had a functional rt? | 02:18 | ||
hotel | I emailed one in I think | ||
BenGoldberg | On an unrelated note, perl6's regexes, if i recall correctly, use longest-leftmost matching when there are multiple options. | ||
So ::: should be parsed as :: :, not as : ::. I think. | |||
02:19
cpage_ joined
|
|||
ZoffixWin | [22:12:47] <geekosaur> also, hm, LTM implies it should parse as :: : not : :: | 02:20 | |
:) | |||
02:21
kid511 left,
sufrostico left
|
|||
AlexDaniel | m: my $w:t:f = 42; say $w:t:f | 02:21 | |
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
AlexDaniel | m: my $w:t:f = 42; say $w:::t:f | ||
camelia | rakudo-moar 9c8989: OUTPUT«42» | ||
AlexDaniel | m: my $w:t:f = 42; say $w:t:::f | ||
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nWz20UXNgyVariable '$w:t' is not declaredat /tmp/nWz20UXNgy:1------> 3my $w:t:f = 42; say 7⏏5$w:t:::f» | ||
ZoffixWin | m: say ':::' ~~ /':'|'::'/; say ':::' ~~ /':'||'::'/ | ||
camelia | rakudo-moar 9c8989: OUTPUT«「::」「:」» | ||
AlexDaniel | so why ::: does not work after : ? | 02:24 | |
ZoffixWin | m: say "loop(i++) in Perl 6 is {(7*60+8.954) /3.429} times slower than loop(register i++) in C" | 02:29 | |
camelia | rakudo-moar 9c8989: OUTPUT«loop(i++) in Perl 6 is 125.095946 times slower than loop(register i++) in C» | ||
ZoffixWin | Not tooo bad | ||
02:31
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
AlexDaniel | m: my $x::::::::::::::::::::::::::::::::::::::::::x = 42; | 02:32 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LxhcyVoTBuName component may not be nullat /tmp/LxhcyVoTBu:1------> 3my $x::7⏏5::::::::::::::::::::::::::::::::::::::::» | ||
AlexDaniel | whoops! | 02:33 | |
geekosaur | you have a C which still does register? (I thought gcc and clang both ignored it these days) | ||
ZoffixWin | Why would it ignore it? :/ | ||
geekosaur, based on my tests, yes: 0m7.880s without register and 0m3.431s with | 02:34 | ||
geekosaur | because it was interfering with their own optimizations (which include moving stuff to registers if it's appropriate) | ||
ZoffixWin | gcc version 4.8.4 | ||
02:34
BenGoldberg left
02:36
BenGoldberg joined
|
|||
AlexDaniel | ZoffixWin: is it with -O3 ? | 02:37 | |
hotel is still looking for p6 project ideas | 02:41 | ||
AlexDaniel | hotel: what about this? github.com/perl6/perl6-most-wanted...modules.md | 02:43 | |
hotel | interesting, thanks | ||
02:45
|2701 left
02:46
BenGoldberg left
02:47
BenGoldberg joined
|
|||
hotel | what about for more... self-serving purposes, like becoming fluent in perl 6 | 02:53 | |
02:53
ssotka joined
|
|||
skink | If it's just for learning, do you have older projects for translating? | 02:55 | |
hotel | I have a couple half-finished things, nothing really relevant though | ||
skink | e.g. every time I explore a new language, I write a passphrase generator in it | 02:56 | |
MadcapJake | hotel: www.reddit.com/r/learnprogramming/...cts_xpost/ | 03:05 | |
AlexDaniel | m: say (^36¹⁵).pick.base(36) | ||
camelia | rakudo-moar 9c8989: OUTPUT«WW2890CV3FM1CUW» | ||
hotel | みんな、ありがとう | ||
AlexDaniel | m: say (^36¹⁵).pick.base(36) | ||
camelia | rakudo-moar 9c8989: OUTPUT«M7ODCTR7TSAN8N2» | ||
MadcapJake | どういたしまして | 03:06 | |
AlexDaniel | m: say (^36¹⁵).pick.base(36).comb».&{(.tc, .lc).pick}.join | 03:07 | |
camelia | rakudo-moar 9c8989: OUTPUT«V36s555BdTxpI3Z» | ||
AlexDaniel | m: say (^36¹⁵).pick.base(36).comb».&{(.tc, .lc).pick}.join | ||
camelia | rakudo-moar 9c8989: OUTPUT«hbu8BmlvsFze0Lu» | ||
03:11
Actualeyes left
|
|||
AlexDaniel | m: my @chars = flat ‘a’..‘z’, ‘A’..‘Z’, 0..9; say [~] @chars.pick(15) | 03:12 | |
camelia | rakudo-moar 9c8989: OUTPUT«e9aWbz63VmETyY1» | ||
AlexDaniel | m: my @chars = flat ‘a’..‘z’, ‘A’..‘Z’, 0..9; say [~] @chars.pick(15) | ||
camelia | rakudo-moar 9c8989: OUTPUT«mLEuhsZavMnqFWR» | ||
grondilu | m: say (^36).roll(15).base(36) | ||
camelia | rakudo-moar 9c8989: OUTPUT«Method 'base' not found for invocant of class 'Seq' in block <unit> at /tmp/CeYWEMsxkL line 1» | ||
grondilu | m: say (^36).roll(15)[].base(36) | ||
camelia | rakudo-moar 9c8989: OUTPUT«Method 'base' not found for invocant of class 'Seq' in block <unit> at /tmp/KwqkTXTXZt line 1» | ||
hotel | what it do | ||
grondilu | m: say (^36).roll(15).list.base(36) | ||
camelia | rakudo-moar 9c8989: OUTPUT«Method 'base' not found for invocant of class 'List' in block <unit> at /tmp/5SmVObRPX7 line 1» | ||
grondilu | oh yeah | ||
m: say (^36).roll(15)>>.base(36) | 03:13 | ||
camelia | rakudo-moar 9c8989: OUTPUT«(5 P H P Y 4 A K 0 2 W K 5 L Q)» | ||
AlexDaniel | 5 PHP | 03:14 | |
03:14
BenGoldberg left
|
|||
hotel | it's a sign | 03:15 | |
grondilu was wondering if it was a RC task. There is a draft but it has annoying additional requirements. | 03:17 | ||
hotel | lol project 98 on this list is to make a basic lisp interpreter | ||
03:25
mr-foobar left,
mr-foobar joined
|
|||
TEttinger | hotel: heh, other than forth it's hard to have an easier language to implement the base of | 03:26 | |
hotel | what's forth's base? | 03:27 | |
TEttinger | forth can be implemented in assembly and often is, but anything really | ||
hotel | ah | 03:28 | |
lisp is just lists right? | |||
TEttinger | jonesforth is a well-known assembly forth IIRC. | ||
geekosaur | yep. and forth is just stacks | ||
TEttinger | perl already basically has most of what lisp would need | ||
03:28
frew left
|
|||
TEttinger | there's an existing perl 6 grammar for a lisp somewhere | 03:28 | |
in japanese IIRC | |||
hotel | あ、よかった | 03:29 | |
MadcapJake | TEttinger, hotel: my Perl 6 forth github.com/MadcapJake/rabble | ||
hotel | wow | 03:30 | |
cool | |||
MadcapJake | hotel: what other PLs do you know? | 03:35 | |
hotel | python and java mostly | ||
and then some web-related stuff: semi-literate in php and javascript | 03:36 | ||
MadcapJake | one of my favorite ways to learn is find a cool, isolated (and small) project in another langauge (python/java) and re-implement in Perl 6. You really get a grasp of how Perl 6 differs from the ones you know. Try and find ways to improve design via Perl 6 unique features and then when implemented, try and adjust the interface to be more Perl 6 ish. This | 03:37 | |
is more a long-haul idea but it's really helped me learn and the legwork of designing is already done by the source project :) | |||
skink | MadcapJake: Well-deserving of 'Mad' | 03:38 | |
hotel | lol, thanks | ||
skink | @ rabble | ||
hotel | what's the overhead like on rabble? | 03:39 | |
MadcapJake | skink: oh! haha! I have some cool plans for Rabble, I really need to add more operations but I *really* want to try and rewrite it mostly in NQP :D | ||
well so far I've only really done little one liners with it, but I'd say the only overhead is a little bit more startup time (seems negligible to me but will grow as I add more, surely) | 03:40 | ||
My initial design was just to make the code slick, now I want to go back and make it ugly for performance-sake | 03:41 | ||
03:42
AlexDaniel left
|
|||
MadcapJake | But I'm also reading through some books/docs on Forth languages, I'm looking for some neat ideas that could make Rabble a really unique beast | 03:42 | |
hotel: remember that Perl 6 uses a grammar to parse Perl 6! So any language written in Perl 6 (via grammars) should have similar performance (of course how you design the rest is certainly going to have an impact) | 03:44 | ||
hotel | this is making me excited for next year (but I need to finish this year's homework first :0) | ||
oh good point | |||
skink | hotel, If you want have some real fun, there is a Perl6 implementation of... Perl6! | 03:45 | |
github.com/masak/yapsi | 03:46 | ||
want to* have, gah | |||
hotel | no way! *clicks* | ||
on a side note, something is using 10GB of memory on my computer | 03:48 | ||
MadcapJake | `killall moar` :D | ||
geekosaur | on my machine thats usually chrome >.> | 03:49 | |
hotel | it seems to be a mixture of chrome (no surprises there) and "service host: local system (18)" | ||
geekosaur | (initially I typoed that as "chrime" --- which sometimes seems apropos <.< ) | ||
hotel | yeah you right | ||
MadcapJake | "service host" sounds like Windows, amirite? | 03:50 | |
hotel | well... puu.sh/oNC26/8f6b487911.png puu.sh/oNC1M/9a99644cef.png | ||
geekosaur | yeh, that's svchost.exe | 03:51 | |
hotel | for some reason opening taskmanager made my computer sound a lot less like a jet engine, anyway | ||
MadcapJake | check your services tab | 03:52 | |
geekosaur | when I had that problem it turned out to be a lot of OEM crapware that I subsequently purged | ||
hotel | 17 services with pid 9916 | 03:53 | |
MadcapJake | also could be microsoft downloading updates :P | ||
hotel | yeah I've purged this machine a few times | ||
geekosaur | because it included things like a wifi widget that didn't even work as well as the one in winxp) | ||
MadcapJake is so glad to be done with Windows | |||
3 years clean now :P | |||
hotel | what did you switch to? | 03:54 | |
MadcapJake | Xubuntu initially but I've since bastardized it into basically what Ubuntu Gnome is today :P | ||
geekosaur | anyway, windows services exist as DLLs, and svchost.exe exists to start a thread for activated services, load the service DLL in that thread, and jump to its entry point | ||
hotel | sounds efficient | 03:55 | |
geekosaur | running as the local system account | ||
(not even administrator has full access to the entire system. LSA does) | |||
hotel | apparently chrome was only using 4% of 66% of my memory | 03:56 | |
guess I'll restart | 03:59 | ||
peace | |||
03:59
hotel left
04:08
skink left
04:13
sortiz left
04:16
skids joined
04:24
mr-foobar left
04:25
mr-foobar joined,
khw left
04:26
molaf left
04:32
mr-foobar left
04:33
mr-foobar joined
04:39
nadim left
04:44
pierre_ left,
pierre_ joined,
pierre_ left
04:49
Actualeyes joined
04:54
Cabanossi left,
araujo left
04:56
Cabanossi joined
05:05
sno left
05:18
molaf joined
05:22
molaf left
05:24
mr-foobar left
05:25
mr-foobar joined
05:31
mr-foobar left
05:33
mr-foobar joined
05:36
domidumont joined
05:40
domidumont left,
domidumont joined
05:43
CIAvash joined
05:44
Su-Shee_ is now known as Su-Shee
05:45
Su-Shee left,
pierre_ joined
05:50
pierre_ left
05:51
domidumont left
06:04
domidumont joined,
jjido joined
06:05
wbill_ left
06:09
pierre_ joined
06:25
sno joined,
sno left,
sno joined,
jjido left
06:26
firstdayonthejob joined
06:29
skids left
06:30
wamba joined
|
|||
ufobat | good morning perl6 | 06:36 | |
06:41
firstdayonthejob left
06:48
_mg_ joined
|
|||
masak | morning, ufobat; #perl6 | 06:50 | |
moritz | \o | 07:07 | |
nine | Good morning! | 07:11 | |
DrForr | Morning. | 07:15 | |
masak | m: for my @greeting = 777982, 787378, 713333 -> $cchunk.comb(/../) -> $chunklet { print chr $chunklet }; print "-" } | 07:19 | |
camelia | rakudo-moar 9c8989: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9cOPrHblmkMalformed parameterat /tmp/9cOPrHblmk:1------> 3ting = 777982, 787378, 713333 -> $cchunk7⏏5.comb(/../) -> $chunklet { print chr $ch expecting any of: constraint» | ||
masak | m: for my @greeting = 777982, 787378, 713333 -> $chunk { for $chunk.comb(/../) -> $chunklet { print chr $chunklet }; print "-" } | 07:20 | |
camelia | rakudo-moar 9c8989: OUTPUT«MOR-NIN-G!!-» | ||
ufobat | could anyone please explain why this error occurs? gist.github.com/ufobat/b32e8825640...6b51672a9f | 07:23 | |
masak | ufobat: not sure. but the problem does go away if you make line 4 be `$!env = $env;` | 07:27 | |
(which I would tend to do anyway, all other things being equal) | 07:28 | ||
I somehow feel that it should work the way it is too. it might be a bug that it doesn't. | |||
ufobat | jap, then it's gone | ||
moritz | I've added two lines of debugging to method rest | 07:31 | |
*reset | |||
say $!env.VAR.^name; | |||
say $!env.VAR.defined; | |||
the first one always says Scalar, which is to be exected | |||
07:31
pierre_ left
|
|||
moritz | the second says False first, and then True | 07:31 | |
so, somehow a Scalar gets autovivified on assignment, but it's a RO scalar? | |||
masak | m: class Strange { has $.env is rw; method reset($env) { $.env = $env } }; my $s = Strange.new; my %env = (1 => 2, 3 => 4); $s.reset(%env); $s.reset(%env) | 07:32 | |
camelia | rakudo-moar 9c8989: OUTPUT«Cannot assign to a readonly variable or a value in method reset at /tmp/plljs3r5Zt line 1 in block <unit> at /tmp/plljs3r5Zt line 1» | ||
masak | golf'd | ||
moritz | how do I introspect a Scalar for whether it's RO? | 07:33 | |
are there things such as read-only scalars? | |||
m: sub f($x) { say $x.VAR.^name } | |||
camelia | ( no output ) | ||
moritz | m: sub f($x) { say $x.VAR.^name }; f 42 | ||
camelia | rakudo-moar 9c8989: OUTPUT«Scalar» | ||
moritz | there seem to be, yes | ||
07:35
ssotka left
|
|||
masak | m: class Strange { has $.env is rw; method reset($.env) {} }; my $s = Strange.new; my %env = (1 => 2, 3 => 4); $s.reset(%env); $s.reset(%env); say "strangely, this works" | 07:35 | |
camelia | rakudo-moar 9c8989: OUTPUT«strangely, this works» | ||
moritz | well, this binds two times | ||
07:36
abraxxa joined
|
|||
ufobat | soo, it's a bug? | 07:38 | |
masak | pretty sure it is, yes | ||
care to submit it? :) | |||
07:38
pierre_ joined
|
|||
ufobat | of course :-) | 07:40 | |
thanks for your help | |||
07:44
pierre_ left
|
|||
moritz | ufobat++, masak++ # golfing | 07:44 | |
07:45
abraxxa left,
pierre_ joined,
abraxxa joined
07:49
huggable left
07:52
pierre_ left
07:56
pierre_ joined
08:09
perlawhirl left
08:10
RabidGravy joined
|
|||
lizmat | psch: re irclog.perlgeek.de/perl6/2016-05-09#i_12456079 , good point: will mention it next week | 08:11 | |
08:11
pierre_ left
08:12
darutoko joined
|
|||
lizmat | psch: otoh, make test / spectest are supposed to run *without* make install | 08:14 | |
08:17
rindolf joined
08:20
Guest33353 left
08:27
pierre_ joined
08:30
aindilis` left
08:33
s_kilk joined
08:42
rindolf left
08:46
Ven joined
|
|||
RabidGravy | boom | 08:51 | |
08:53
perlawhirl joined
08:55
perlawhirl left
08:59
cpage_ left
09:02
telex left
09:04
telex joined
09:05
|Tux| joined
09:07
|Tux| left
09:16
Actualeyes left
09:19
kurahaupo joined
09:25
cpage_ joined,
_nadim joined
09:27
Ven left
09:30
cpage_ left,
mr-foobar left,
mr-fooba_ joined
|
|||
psch | lizmat: right, which means instead of a && before "make test" we should have two scripts, one with --make-install and one with "; make test" | 09:34 | |
lizmat: not quite sure how that fits into the p6weekly though (which i assume you mean with "mention next week") | |||
lizmat | well, the fact that you fixed not spotting install errors by Travis, would be mentionable ? | ||
09:35
araujo joined
|
|||
psch | oh. yeah, i suppose that makes sense | 09:35 | |
...well as soon as i actually fix it :) | |||
09:35
cpage_ joined
|
|||
psch | hm, travis docs aren't quite clear on how to do that, to me at least | 09:39 | |
09:42
zakharyas left
09:56
kurahaupo_ joined
09:59
kurahaupo left
10:08
kurahaupo_ left
|
|||
ZoffixWin | .tell AlexDaniel you're right, with -O3 register doesn't matter and the whole thing goes down to 0m2.284s | 10:12 | |
yoleaux | ZoffixWin: I'll pass your message to AlexDaniel. | ||
ZoffixWin | I wonder when computers will be able to take -O10 to figure out that for (x = 2; x < 2e9; x++); can be optimized into an assignment XD | ||
timotimo | it's already doing -O10, it's just the base isn't decimal | ||
ZoffixWin | but it doesn't change that loop into an assignment :) | ||
10:12
espadrine_ joined
|
|||
timotimo | yeah, because clearly you want to have a loop there | 10:12 | |
if you didn't actually want it to loop, you would have written the assignment :P | 10:13 | ||
10:13
grondilu left
10:14
huggable joined
10:16
sjoshi joined,
sjoshi left
10:18
arnsholt joined
10:30
mr-fooba_ left
10:31
mr-foobar joined
10:36
pierre_ left,
mr-foobar left
10:37
mr-foobar joined
10:38
pmurias joined
|
|||
pmurias | masak: It's interesting how a more complex QAST test ends up looking (for contvars), as opposed to the elegant sexprs tests 007 has: paste.debian.net/683340/ | 10:45 | |
10:47
dvinciguerra joined
10:49
TEttinger left
10:56
darutoko left
11:01
rindolf joined
|
|||
masak | pmurias: the comparison has occurred to me, yes. | 11:02 | |
pmurias | masak: the test is broken btw ;) | ||
masak | pmurias: but -- it's not that QAST is bad; it's just that it targets a different demographic. compilers, rather than code authors. | 11:03 | |
pmurias | The big things seems to be that .new constructors are a pretty bad notation for writing big chunks of QAST | 11:09 | |
jnthn | To be fair, "easy to write big chunks of QAST" wasn't really a design goal :) | 11:10 | |
masak | yes, that's much of my point | 11:13 | |
even in the 007 tests, we eschew the slightly more longhand 007 constructor notation with named parameters, in favor of Lisp-like positional syntax | 11:14 | ||
pmurias | jnthn: prior experience with pir suggests that an easy to write intermediate format is not a good design goal ;) | 11:18 | |
jnthn: contvar locals seem to be supported only on the moarvm, but not on the jvm. Should I implement them on the js? | 11:20 | ||
11:21
s_kilk left
|
|||
jnthn | Hm, are they really supported on MoarVM? | 11:21 | |
jnthn somehow thought not | |||
lunch, bbiab | |||
pmurias | jnthn: the is an error message: Can only use 'contvar' decl with scope 'lexical | 11:23 | |
jnthn: but a check above attempts to implement them anyway ;) | |||
jnthn: and they don't work | 11:24 | ||
as in don't give an error message and don't do the cloning | 11:25 | ||
11:27
itaipu joined
|
|||
masak | I'm not sure PIR's failing was that it was an easy to write intermediate format. rather it, like Parrot, was designed before it was clear what the uses would be and how they would be distributed. | 11:29 | |
making it difficult to use effectively once those uses became clear. | 11:30 | ||
pmurias | it's big failing that is that it was used as an actual programming language | 11:31 | |
masak | well, it was the only choice for some things people needed to do. | 11:33 | |
and I'm not all that sure about "easy to write" either. it ended up being used far beyond its designed purpose. | |||
pmurias | was there a real problem blocking the parrot people from having something like NQP rather then pir? | 11:36 | |
(for use by humans) | 11:37 | ||
moritz | well, one design problem with PIR was that it was meant to be used as an intermediate representation, but it wasn't designed to be fast to process | ||
pmurias: the main problem seemed to be that people couldn't agree on one language | |||
jast | that doesn't sound like a useful combination :) | ||
lizmat | isn't the concept of NQP a lesson learned from Parrot ? | ||
moritz | pmurias: at some point, and older version of NQP served that niche partially, then winxed came along | ||
arnsholt | lizmat: NQP was initially built on top of Parrot | 11:38 | |
moritz | pmurias: but there was never a (successful) push to write basically all human-level parrot code in either language | ||
lizmat | arnsholt: ah, ok | ||
moritz | iirc the progression was PGE, NQP, NQP-rx (which had its own regex engine, didn't use PGE anymore) and then the current NQP, which is 6model-based | 11:39 | |
masak | there was also talk about putting Parrot on a better meta-object foundation. I think it was called m0, and it was supposed to borrow heavily from 6model. | ||
moritz | steps before PGE are before my involvement, and eluded me :-) | ||
masak: right. But at that point, parrot had lost enough steam that it never happened | |||
masak | moritz: before PGE there was TGE, IIRC. but I wasn't around then either, or at least not paying attention enough. | ||
moritz | masak: sounds vaguely familiar | 11:40 | |
masak | moritz: yes. there simply wasn't ever a champion for m0. | ||
moritz | "tree grammar engine" | ||
masak | yes. I think it was clunky to use. | ||
arnsholt | Speaking of PGE, there was GGE as well =) | 11:41 | |
Of course, that was in Perl 6 | |||
moritz still admires GGE from a distance | 11:42 | ||
arnsholt | Same, same | ||
masak | pity I couldn't take it further | 11:43 | |
11:43
aindilis joined
|
|||
masak | for a brief while there, it could have been quite a game-changer for Perl 6 code | 11:43 | |
moritz | now I have Bette Midler in my head ("from a distance") | ||
arnsholt | (For those who weren't around for that: GGE is the Glacial Grammar Engine, a masak++ project reimplementing PGE [IIRC] in Perl 6) | ||
11:45
rindolf left
11:52
TimToady left
11:53
rindolf joined
11:54
TimToady joined
|
|||
masak | yeah, it was basically a straight port of PGE into Perl 6. | 11:55 | |
which means at some point I must have been able to read PIR pretty well. | 11:56 | ||
11:56
pierre_ joined,
pierre_ left
|
|||
masak | I learned a lot about grammar engines, and Perl 6's in particular. | 11:56 | |
11:56
kaare_ joined
11:57
pierre_ joined
12:00
s_kilk joined
12:06
pierre_ left
12:07
pierre_ joined
12:08
pierre_ left,
pierre_ joined
12:09
araujo_ joined
12:10
araujo_ left
12:11
araujo_ joined
12:12
araujo left
12:13
araujo_ left,
John[Lisbeth] left,
araujo_ joined
12:15
pierre_ left,
araujo_ left
12:16
araujo_ joined
12:17
araujo_ left,
kurahaupo joined
12:18
araujo_ joined,
pierre_ joined
12:19
pierre_ left,
araujo_ left
12:20
araujo_ joined
12:30
smls joined
12:31
molaf joined
|
|||
smls | [Coke], others: Should we reject RT tickets like #127440 ? | 12:33 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127440 | ||
smls | It reports a segfault when putting a third-party Perl 6 module under heavy load, and is in this form probably not useful to Rakudo implementors. | ||
It should probably be submitted as an issue on the github page of the module in question, so that the module author can investigate it, and hopefully submit a more useful Rakudobug with a golfed testcase. | 12:34 | ||
12:34
pierre_ joined
12:37
wamba left
|
|||
jnthn | smls: I think the reporter *is* the developer of the module in question. | 12:38 | |
smls | ah | ||
12:39
perlpilot joined
12:43
Khisanth left
|
|||
smls | jnthn: While you're here: A Perl 6 variable should never end up being a `VMNull`, right? | 12:43 | |
So #127254 and #126857 are still a bug even though they no longer crash? | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127254 | ||
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126857 | |||
12:45
brrt joined
|
|||
perlpilot | smls: that sounds right to me. (What do those do on the jvm?) | 12:46 | |
smls | no idea | ||
jnthn | smls: Yeah, VMNull leaking into Perl 6 space is a Bad Thing. | 12:47 | |
smls | ok | ||
12:47
pierre_ left
|
|||
jnthn | smls: Better than SEGV, of course :) | 12:47 | |
pmurias | I get a compile error with the JVM backend | 12:48 | |
paste.debian.net/683363 | |||
it's caused by 58d507380d068b8cba0ce92ba02c26047d0b4909 | 12:49 | ||
psch | ...i promise i'll stop pushing things at 3 in the morning | ||
pmurias: you built with --gen-nqp=master? | 12:52 | ||
pmurias: cause afaics we didn't bump NQP to that commit yet | |||
12:52
pierre_ joined,
sufrostico joined
12:53
dvinciguerra left
12:55
Khisanth joined
12:59
pierre_ left
|
|||
pmurias | psch: I just built nqp-j | 12:59 | |
dalek | osystem: 8e1adbb | titsuki++ | META.list: Fix Term::Readsecret to Terminal::Readsecret |
||
osystem: 4361ee7 | titsuki++ | META.list: Merge pull request #205 from titsuki/change-module-name Fix Term::Readsecret to Terminal::Readsecret |
|||
pmurias | psch: not to get rakudo-js, just to add a print statement to see when a given hack is used | 13:00 | |
psch | pmurias: ah. i've patched coerce_i2n and _n2i locally, fwiw. gonna push that in a bit | 13:02 | |
...and then look at the nqp make test failures i'm seeing right now, which seem to relate to the getattr hack for NC i recently implemented | |||
13:04
araujo_ left
13:11
pierre_ joined
13:15
|2701 joined
13:19
Sgeo left,
pierre_ left
|
|||
tomboy64 | psch: could i ask for your time one more time? | 13:19 | |
psch | tomboy64: sure, what's up? | 13:20 | |
tomboy64 | psch: i need to provide a custom path for -Djna.library.path in tools/build/create-jvm-runner.pl | ||
what would be the proper way to implement that? | |||
it's related to github.com/perl6/nqp/pull/281 - building rakudo fails when there's a custom jna.jar used for nqp | 13:21 | ||
since rakudo's perl6-j needs to know about the native library via jna.library.path | |||
psch | tomboy64: can't you just initialize $sharedir from e.g. %ENV? | ||
...or however Perl 5 does that. i think it's %ENV :S | 13:22 | ||
tomboy64 | yes, that's a good idea. thanks! | ||
13:31
dvinciguerra joined,
AW3i joined
13:32
Actualeyes joined
|
|||
smls | [Coke], others: Do we need a Roast test for "This is not allowed and its behavior is undefined, but at least it probably shouldn't segfault" cases like #127208 ? | 13:37 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127208 | ||
smls | Or can the ticket be closed directly? | 13:41 | |
moritz | a test would be appreciated, yes | 13:42 | |
teatime | so, can you have something like: sub (MyType(Str) $foo) {…} without augmenting Str to have a .MyType() method? | 13:53 | |
tony-o | MadcapJake: i fixed the updating mechanism on modules.zef.pm - it's being updated every 15 minutes now | 13:58 | |
MadcapJake | nice! Looking good, though I miss the colored icons :) | 14:00 | |
MadcapJake is off to an interview | |||
14:04
pierre_ joined
|
|||
moritz | MadcapJake: good luck | 14:05 | |
teatime | hrmz... what do I want to work on today... | ||
tony-o | MadcapJake: good luck | 14:06 | |
14:07
prammer joined
|
|||
teatime | so, can you have something like: sub (MyType(Str) $foo) {…} without augmenting Str to have a .MyType() method? <-- this really seems like no, but perhaps I am just overlooking something? | 14:09 | |
tony-o | do you consider inheritance to be augmenting? | 14:11 | |
14:14
tharkun left,
cdg joined,
huggable left
|
|||
teatime | if you mean 'MyType is Str', then no. but that would let me use a MyType in a sub that takes a Str; how does it help me wanting to use a Str in a sub that takes a MyType? | 14:14 | |
14:14
domidumont left,
huggable joined
|
|||
teatime | I think I am just missing something very obvious. | 14:15 | |
14:15
tharkun joined
|
|||
tony-o | it doesn't, you also didn't say that was a constraint. what are you trying to do that you'd like to add a method call to Str without augmenting? | 14:15 | |
teatime | I don't want to do that. | 14:16 | |
tony-o | do what? | ||
psch | teatime: the only thing besides "augment" i can think of is only useful if you have control over where the Str come from | ||
14:16
domidumont joined
|
|||
psch | teatime: that'd be "but role { method MyType { ... } }" | 14:16 | |
14:17
pierre_ left
|
|||
teatime | psch: ah well. I was hoping perhaps it would try auto-calling MyType.new(Str) with $foo | 14:18 | |
or something similar | |||
psch | teatime: irclog.perlgeek.de/perl6/2015-01-23#i_9992538 is where this was discussion previously | 14:19 | |
teatime | thank you | 14:20 | |
oh ok, so there *is* a way | |||
teatime reads. | |||
14:21
araujo joined
|
|||
tony-o | m: class A { has $.x; }; sub r ($x where { A.new(:x{$_}) }) { $x.say; }; r("hello"); #teatime - is this what you're attempting to do? | 14:21 | |
camelia | rakudo-moar dc7346: OUTPUT«hello» | ||
14:21
araujo left
|
|||
tony-o | or something similar | 14:22 | |
psch | m: sub f (Str(Int) $x) { say $x.WHAT }; f(5) | ||
camelia | rakudo-moar dc7346: OUTPUT«(Str)» | ||
psch | tony-o: ^^^ that but with MyType as target, not Str (well, and Str as source, not Int) | 14:23 | |
tony-o | glad you guys could interpret :-) | ||
14:23
pierre_ joined,
tharkun left,
tharkun joined
|
|||
teatime | tony-o: that's interesting 'cause I didn't know you could do that. | 14:26 | |
psch | m: class A { has $.x; }; sub r ($x where { A.new(:x{$_}) }) { $x.WHAT.say; }; r("hello"); | ||
camelia | rakudo-moar dc7346: OUTPUT«(Str)» | ||
psch | you can't really :) | 14:27 | |
teatime | and forgive me, I didn't mean to be unclear. by 'sub (MyType(Str) $foo) {…}' I just meant, can I define my own implicit coercions from basic types w/o augmenting them. | ||
the goal is to reduce boring boilerplateish code to enhance readability, though, so complex/tricky solutions are not too interesting. except when they're interesting, heh. | 14:28 | ||
psch: mm, does that actually create a type, and if it were a multi, that r() would only be called where A.new($x) returns a true value? | 14:29 | ||
psch | m: class A { has $.x; method Bool { False } }; sub r ($x where { A.new(:x{$_}) }) { $x.WHAT.say; }; r("hello"); | 14:30 | |
camelia | rakudo-moar dc7346: OUTPUT«Constraint type check failed for parameter '$x' in sub r at /tmp/4GZsgSQgY2 line 1 in block <unit> at /tmp/4GZsgSQgY2 line 1» | ||
psch | teatime: it does create an object and checks if that object is truthy, yeah | 14:31 | |
teatime: the truthiness determins if dispatch works for that parameter or not | |||
dalek | c: 5a05c56 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod: add where clause to MAIN example |
||
c: 8a9014a | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod: add MAIN to index |
|||
c: e4ac430 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod: indent MAIN example a little better |
|||
teatime | yup, ok. yay I understand something. | 14:32 | |
14:35
sortiz joined
|
|||
sortiz | \o #perl6 | 14:35 | |
14:36
lowecase joined
14:41
s_kilk left
|
|||
tony-o | you can, you just need a copy :-) | 14:48 | |
m: class A { has $.x; }; sub r ($x is copy where { $x = A.new(:$x) }) { $x.WHAT.say; }; r("hello"); | |||
camelia | rakudo-moar dc7346: OUTPUT«(A)» | ||
tony-o | teatime: ^ | 14:50 | |
for readability, i'd just constrain Str:D $x in the params and create a new MyType in the block | |||
14:52
lowecase left,
lowecase joined
|
|||
teatime | tony-o: yes, that's the alternative. or probably, have it be a multi where `sub foo(Str:D $x)` converts and calls `sub foo(MyType:D $x)`. | 14:52 | |
14:52
wamba joined
|
|||
teatime | it seems like what I wanted might actually be possible though | 14:52 | |
moritz | shocking! | 14:53 | |
teatime | btw, am I correct in thinking that --> used in signatures is definitely not an operator (that you could, e.g., overload) | 14:54 | |
I guess I should grep the code for it first | |||
jnthn | No, not an operator; special syntax in signature parsing | 14:55 | |
teatime | k, assumed so. | ||
14:57
lowecase left
14:58
lowecase joined,
ajoe joined
14:59
ajoe left
15:01
Sgeo joined
15:03
lowecase left
15:05
domidumont left
15:15
ajoe joined
15:16
ajoe left
15:18
mcsnolte joined
15:19
araujo joined
|
|||
MadcapJake | tony-o, moritz: thanks for the well-wishes! Had two interviews already this morning and they both went well! | 15:26 | |
mspo | let the bidding wars begin | 15:27 | |
MadcapJake | I wish! These are just crappy customer service jobs :( | 15:29 | |
15:30
pierre_ left
15:32
EvilBOT joined
15:33
EvilBOT is now known as Guest66393
15:34
Guest66393 left
15:36
nicq joined
|
|||
teatime | psch: so I guess, S13 says it should already fallback to calling MyType.new(Str $x), and that's just NYI. | 15:38 | |
thx again for link to discuss, I suppose it told me everything I wanted to know. | 15:39 | ||
15:40
ZoffixW joined
15:41
brrt left
|
|||
ZoffixW | Where does NativeCall look for libraries? I have libmahlib.so in ./ and I run perl6 -I. -MNativeCall -e 'sub mahfunc(Str) is native("mahlib") {}; mahfunc("fooo")', but I get an error Cannot locate native library 'libmahlib.so' | 15:41 | |
I guess a better question is: "How to tell NativeCall where to look for libraries?" | |||
teatime | LD_LIBRARY_PATH ? | 15:42 | |
pmurias | MadcapJake: non-programming ones? | 15:43 | |
nine | MadcapJake: why do you apply for crappy jobs? | ||
ZoffixW | teatime, hm, that does the trick if I set it on the command line, but not via %*ENV | 15:44 | |
MadcapJake | I don't have a programming degree :( | ||
15:44
nicq left
|
|||
ZoffixW looks at NativeCall sauce | 15:44 | ||
MadcapJake, neither do I! | |||
MadcapJake | how do you get programming jobs then?! They all say "minimum bachelors/associates in computer field". | 15:45 | |
ZoffixW | Neither do the XX% of self-taught programmers (/me doesn't recall exact StackOverflow survey figures, but they're double-digits) | ||
MadcapJake, apply anyway :) | |||
Say you have "equivalent" | |||
teatime | Yes, apply anyway. Never think of job ad requirements as actual requirements. | ||
nine | MadcapJake: github repos and contributions to free software are pretty much worth as much as a degree | 15:46 | |
geekosaur | MadcapJake, it's worth remembering that the folks who write those requirements also toss in a "must have 5 years experience in <tech released last week>" | ||
ZoffixW | MadcapJake, a lot of jobs require you write a test program before they even look at you. If you can write stellar code there, they'll care less about papers | ||
teatime | Sometimes they're filler added by HR and aren't requirements at all. Other times, they may be waived for the right cantidate. They're rarely set in stone, so assume they never are. | ||
tadzik | I always smile when job offers list "BS in Computer Science" as a requirement | 15:47 | |
nine | MadcapJake: I would actually like to have an applicant with a good online track record :) Is much easier to judge than papers | ||
tadzik | don't you people have enough BS in computer science to deal with already? | ||
MadcapJake | wow never realized that! | ||
15:48
ssotka joined
|
|||
MadcapJake | I also live in the midwest so I'm not sure tech employers here would be so flexible | 15:49 | |
sortiz | ZoffixW, In linux NativeCall uses dlopen(3) so, without an explicit path, it uses the rules annotated. | ||
nine | MadcapJake: you'll never know unless you ask | 15:50 | |
ZoffixW | sortiz, thanks | ||
geekosaur | HR *always* mangles those things beyond recognition | ||
15:51
itaipu left
|
|||
MadcapJake | I'll give it a try! Thanks for the advice Sixians! You guys are the best! :) | 15:51 | |
nine | MadcapJake: don't know about the US but in Europe people are desparate again to find developers. I'd probably hire you just on the base that you asked NativeCall questions ;) | ||
teatime | ZoffixW: also only vaguely related, but I found this enlightening a while back. tldp.org/HOWTO/Program-Library-HOWT...aries.html | ||
geekosaur | one of the things we had to do when I was at Carnegie Mellon was help figure out what job description to feed to HR that would be vaguely recognizeable when it came back out | ||
ZoffixW | teatime, thanks | 15:52 | |
teatime | ZoffixW: interesting that that doesn't work from %*ENV. | 15:53 | |
ZoffixW | teatime, it calls something from nqp, so maybe that's why | ||
teatime, and well, as sortiz pointed out, dlopen(3) | |||
MadcapJake | nine: wow! I think some parts of US are hiring but the Midwest is a little behind-the-times :P | ||
tony-o | MadcapJake: probably more flexible there than out here | 15:54 | |
sortiz | ZoffixW, so, to load that use 'is native("./libmahlib.so")' | ||
tony-o | MadcapJake: detroit is building up around tech, or trying at least | ||
MadcapJake | tony-o: huh, never thought of it that way, good point! | ||
teatime | MadcapJake: this is an instance of, it never hurts to ask / you miss 100% of the shots you don't take. | 15:55 | |
15:56
nicq joined
|
|||
teatime | The other big place where requirements are actually quite mutable but people frequently lose out by not realizing it, is uni degree requirements and especially course prerequisites. | 15:56 | |
15:56
EvilBOT joined
|
|||
EvilBOT | just a test | 15:57 | |
15:57
EvilBOT left,
EvilBOT joined
|
|||
nicq | EvilBot: hello | 15:57 | |
15:58
EvilBOT is now known as Guest35459
|
|||
nicq | EvilBot: hello | 15:58 | |
Guest35459 | hello | ||
15:58
Guest35459 left,
nicq left,
cognominal left
15:59
dogbert17 joined
|
|||
MadcapJake | teatime: this is true, I gotta keep reminding myself of that. I also should write some more non-Perl 6 code for practice. I've been in a Perl 6 bubble as-of-late :) | 16:00 | |
ZoffixW | sortiz, ah, cool! | ||
sortiz++ | |||
dogbert17 | o/ #perl6 | 16:03 | |
ZoffixW | \o | 16:04 | |
16:05
mr-foobar left
|
|||
geekosaur would also note that the problem with tech employers isn't flexibility so much as availability (that is, they gotta actually be hiring) | 16:05 | ||
in the midwest US | |||
dogbert17 | I would like to close github.com/perl6/doc/issues/494 and github.com/perl6/doc/issues/493 can I Do that or should I wait for titsuki to do it? | ||
16:06
mr-foobar joined
|
|||
moritz | dogbert17: you can | 16:07 | |
dalek | Iish: aded2a4 | (Salvador Ortiz)++ | lib/NativeLibs.pm6: Some subs missing the move outside its methods |
||
Iish: 33fcb99 | (Salvador Ortiz)++ | / (5 files): Pg: Add some DB introspection methods Like perl5 DBI: $drv.data-sources and $dbh.table-info + $dbh.quote for generic quoting |
|||
dogbert17 | moritz: thx, will fix | ||
dalek | c: 960e14c | (Wenzel P. P. Peppmeyer)++ | doc/Type/Int.pod: add 0x and friends to class Int |
16:09 | |
16:12
nicq joined
|
|||
dalek | c: 9da6285 | (Jan-Olof Hendig)++ | doc/Language/5to6-perlvar.pod: Fixed two typos |
16:14 | |
16:16
_mg_ left
|
|||
dalek | Iish: 1bb0d44 | (Salvador Ortiz)++ | lib/DBDish/mysql (3 files): mysql: Fix column NULL type |
16:17 | |
Iish: 82c072f | (Salvador Ortiz)++ | t/41-sqlite-exec-error.t: SQLite: Fail earlier when no library available |
|||
16:18
nicqbot joined,
ZoffixW left
|
|||
nicqbot | hi | 16:18 | |
nicq | p6: sub desc($var) { say $var.WHAT; }; "hello".&desc; | 16:21 | |
camelia | rakudo-moar dc7346: OUTPUT«(Str)» | ||
16:23
nicq left
|
|||
tony-o | hi | 16:28 | |
smls | p6: sub desc($var is copy) { say $var.WHAT; }; "hello".&desc; | ||
camelia | rakudo-moar dc7346: OUTPUT«(Str)» | ||
gregf_ | m: sub desc($var) { say $var.WHAT; }; &desc.^name.say | 16:29 | |
camelia | rakudo-moar dc7346: OUTPUT«Sub» | ||
smls | Am I the only one who sometimes misses a postfix/method form of `given`? | 16:30 | |
`for` --> `.map`, `given` --> ?? | 16:31 | ||
dalek | c: a90a5e5 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Order.pod: doc enum Order |
16:33 | |
c: 9360de4 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Order.pod: remove double wording twice |
|||
c: 1d02351 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Order.pod: fix copypasta mistage |
|||
c: 7f19607 | (Wenzel P. P. Peppmeyer)++ | doc/Language/5to6-perlvar.pod: Merge branch 'master' of github.com/perl6/doc |
|||
timotimo | smls: that's literally invocation :) | 16:34 | |
smls | hm? | 16:35 | |
timotimo | m: { .say; $_ + 10 .say }(1234) | ||
camelia | rakudo-moar dc7346: OUTPUT«123410» | ||
timotimo | well, the precedence isn't right there, but ... | ||
m: { .say; $_ + 10 .say }.(1234) | |||
camelia | rakudo-moar dc7346: OUTPUT«123410» | ||
timotimo | that's totally the postfix/method form of given | ||
16:35
|2701 left
|
|||
smls | timotimo: Ah, I was thinking the other way around | 16:36 | |
I.e. instead of: | |||
my $aspect = .[0] / .[1] given @dimensions; | |||
We'd write something like: | |||
my $aspect = @dimensions.do: { .[0] / .[1] }; | |||
timotimo | oh! | ||
smls | basically like .map except without iterating | ||
16:37
tokomer joined,
espadrine_ left
|
|||
timotimo | well, at least for a purely side-effect related thing, you can use a for over a single variable to get a given | 16:37 | |
but you'll probably want the return value to not be listified | |||
smls | right | ||
Of course if the code to apply is in a named sub, we can use the .&foo form. | 16:43 | ||
timotimo | if you know the thing is defined-ish, you can use "with" | ||
teatime | hrm, I seem to remember someone rejiggering Test to allow description-first argument order... or something.. | ||
timotimo | yeah, there's a pull-request, probably to rakudo. or just a branch perhaps | 16:44 | |
teatime | k, thx | ||
smls | timotimo: Isn't `with` a block or statement suffix keyword like given? | ||
timotimo | i know i saw it on the mailing list | ||
oh! | |||
well, you can use "do" in front of any of these. including "given" | |||
smls | timotimo: I'm mostly concerned about flow of readin in method chains, where it would allow to write: | 16:45 | |
$source.step1.step2.do({STEP3}).step4 | |||
timotimo | oh | 16:46 | |
hmm. | |||
m: 1234.&[{ .say; $_ }].sin.say | |||
camelia | rakudo-moar dc7346: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1D4nMcgDTdMissing infix inside []at /tmp/1D4nMcgDTd:1------> 031234.&[7⏏5{ .say; $_ }].sin.say expecting any of: dotty method or postfix infix infix noun …» | ||
timotimo | not quite | ||
teatime | also, is there any reason I may not be thinking of, why you would not want to: make your t/*.t files chmod +x and add '#!/usr/bin/env perl6' | 16:47 | |
timotimo | on clue | ||
sortiz | m: my @dims = 3,4; my $aspect = @dims.&{ .[0] / .[1] }; say $aspect; | 16:48 | |
camelia | rakudo-moar dc7346: OUTPUT«0.75» | ||
timotimo | oooh | 16:49 | |
that's fine | |||
smls | neat! | ||
sortiz | :) | ||
smls | I guess there are always new things to learn in Perl 6... :P | 16:51 | |
perlpilot | There will forever be new things to learn in Perl 6. | ||
16:52
aries_liuxueyang left
|
|||
perlpilot | (until it's a dead language) | 16:52 | |
16:52
aries_liuxueyang joined
16:57
_28_ria left
16:59
_28_ria joined,
noganex left
17:04
_28_ria left
|
|||
dalek | c: 03dd1b5 | (Jan-Olof Hendig)++ | doc/Language/functions.pod: Fixed broken example code with suggested fixes from nd3i++ |
17:04 | |
17:05
xiaomiao left,
xiaomiao joined
|
|||
gregf_ | m: say [ &{ .uc }.("foo"), "foo".&{ .uc }, "".can("uc")[0].("foo") ] | 17:07 | |
camelia | rakudo-moar dc7346: OUTPUT«[FOO FOO FOO]» | ||
gregf_ | can these 3 be equivalent? i can see there can be a sub, a block, a method and heaven only knows what else :| | 17:09 | |
psch | m: say [eqv] [ &{ .uc }.("foo"), "foo".&{ .uc }, "".can("uc")[0].("foo") ] | 17:10 | |
camelia | rakudo-moar dc7346: OUTPUT«True» | ||
psch | gregf_: looks like they are eqv | ||
well, their results in this case at least | |||
gregf_ | p6: class Foo { has Int $.bar is rw; method baz(Int $v where $v > 0){ $!bar * $v; } }; say Foo.new(bar => 100).&{ .baz(10) + 100 }; | ||
camelia | rakudo-moar dc7346: OUTPUT«1100» | ||
gregf_ | psch: ok, thanks | ||
17:14
tokomer left
17:15
patrickz joined
17:16
firstdayonthejob joined
17:21
mcsnolte left
17:25
domidumont joined
|
|||
sortiz | m: 'foo'."{'u'~'c'}"().say; # One more :) | 17:29 | |
camelia | rakudo-moar dc7346: OUTPUT«FOO» | ||
psch | m: say ::("&uc")("foo") | ||
camelia | rakudo-moar dc7346: OUTPUT«FOO» | ||
17:31
grondilu joined
|
|||
grondilu | Hi #perl6 | 17:31 | |
17:31
sno left
17:34
noganex joined
|
|||
sortiz | \o grondilu | 17:34 | |
17:54
itaipu joined
|
|||
[Coke] | smls: I agree with the folks who responded to you. thanks for doing ticket wrangling. | 18:05 | |
18:14
cdg left,
huggable left
|
|||
bartolin | yeah, smls++ | 18:17 | |
18:18
ZoffixW joined
|
|||
ZoffixW | How well must NativeCall sub signatures match C prototypes? Is there any good guidelines? I have a function with prototype driver_return_code_t cdio_eject_media_drive (const char *psz_drive), but it still works fine if I define it without any parameters or return types | 18:20 | |
MadcapJake | how do you convert an Int to an int? | 18:21 | |
moritz | MadcapJake: in user-space code, you assign to an int-typed variable | ||
jdv79 | aka unbox. assign to a var of that type? idk really:) | ||
moritz | in the setting, nqp::unbox_i() | ||
18:23
cosarara_ is now known as cosarara
18:24
_28_ria joined
|
|||
MadcapJake | m: Array[int].new(0 xx 10).say # I wish this worked | 18:25 | |
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/BX7tw7lAJK line 1» | ||
timotimo | m: Array[int].new(|(0 xx 10)) | 18:26 | |
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/M3IvCdkZu0 line 1» | ||
timotimo | mhm | ||
m: Array[int].new(@(0 xx 10)) | |||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/EkOIjZ9X2q line 1» | ||
timotimo | m: Array[int].new((0 xx 10).list) | ||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/NgLz5m5kkM line 1» | ||
MadcapJake | m: Array[Int].new(0 xx 10).say # timotimo, this works fine | ||
camelia | rakudo-moar dc7346: OUTPUT«[0 0 0 0 0 0 0 0 0 0]» | ||
timotimo | sucks :) | ||
MadcapJake | m: my int $zero = 0; Array[int].new($zero xx 10).say # why doesn't this work even? | 18:27 | |
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/k_GOLXd04O line 1» | ||
psch | m: use nqp; my int $zero = 0; say nqp::istype(($zero xx 10)[0], int) | 18:28 | |
timotimo | m: (Array[int].new() = 0 xx 10).perl.say | ||
camelia | rakudo-moar dc7346: OUTPUT«0» | ||
rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/cHIEqGvZSf line 1» | |||
timotimo | m: ((my @foo := Array[int].new()) = 0 xx 10).perl.say | ||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in assignment to ; expected int but got Int (0) in block <unit> at /tmp/AfHXuwQbWu line 1» | ||
timotimo | how do ... | 18:29 | |
MadcapJake | m: my int $zero := 0; Array[int].new($zero xx 10).say | ||
camelia | rakudo-moar dc7346: OUTPUT«5===SORRY!5=== Error while compiling /tmp/mNu_GYYir1Cannot bind to natively typed variable '$zero'; use assignment insteadat /tmp/mNu_GYYir1:1------> 3my int $zero := 07⏏5; Array[int].new($zero xx 10).say» | ||
timotimo | m: my int @a = 0 xx 10 | ||
camelia | ( no output ) | ||
timotimo | why not use this way of spelling it, btw? | ||
18:30
sno joined
|
|||
sortiz | ZoffixW, that is a difficult question, there are lots of details involved. | 18:30 | |
ZoffixW | Alright. | ||
timotimo | ZoffixW: it really depends mostly on the ABI in use on the platform you're on | ||
MadcapJake | timotimo: I wasn't assigned it I wanted to just use to to build a hash that has Array[int] values | ||
s/assigned/assigning/ | 18:31 | ||
timotimo | for example, usually the first few parameters are passed via register. if you don't have anything in your signature, those registers will just keep whatever value they had "the last time" | ||
psch | m: my %h = a => my int @, b => my int @; say %h.perl | ||
camelia | rakudo-moar dc7346: OUTPUT«{:a(array[int].new()), :b(array[int].new())}» | ||
psch | MadcapJake: that still works spelled like that | ||
ZoffixW | timotimo, so it's a bad idea not to match the signature? I'm writing a short article. I don't wanna say "Hey, look! No signature and it still works" if it's wrong :) | 18:32 | |
18:32
patrickz left
|
|||
timotimo | it's highly non-portable is what it is :) | 18:32 | |
i.e. on a different architecture, your stuff might blow up. who knows? | |||
i expect the signature you give the function on the perl6 side also tells moar how many things to push onto the stack before invoking the function, so if you have too few, maybe the function ends up reading past the beginning of its stack segment or something? | 18:33 | ||
and there's extra differences based on floating point values, because those go in special registers | |||
ZoffixW | I see. Thanks. | 18:34 | |
sortiz | There are some details on calling conventions in dyncall's documentation. | ||
MadcapJake | psch: sweet thanks! Didn't know `my` would work there | 18:35 | |
timotimo | you can even give each function a different calling convention via a trait on the perl6 side, if i remember correctly | ||
psch | MadcapJake: it's still scoped in the same scope as %h i think, but as it's anon you don't have to care, i suppose... :) | 18:36 | |
MadcapJake | I'm so close, but still getting a type check error on the key now: | 18:37 | |
m: my $nodes = 5; my Array[int] %hash{int} = (my int $i = ++$) xx $nodes Z=> (my int @a = 0 xx $nodes) xx $nodes; | |||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in binding key; expected int but got Int (1) in block <unit> at /tmp/dFDA6wTnO7 line 1» | ||
jnthn | Native arrays are spelt `array`, not `Array` | ||
timotimo | oooooooooooh! | 18:38 | |
timotimo facepalms | |||
that makes so much sense | |||
jnthn | Should probably have a better error to point that out though :) | ||
mst | perl6 should've been capitalisation insenstivie like nim | ||
MadcapJake | m: my $nodes = 5; my array[int] %hash{int} = (my int $i = ++$) xx $nodes Z=> (my int @a = 0 xx $nodes) xx $nodes; | ||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in binding key; expected int but got Int (1) in block <unit> at /tmp/JldrU5JjsW line 1» | ||
MadcapJake | still same error | ||
or you mean earlier when creating it? | 18:39 | ||
ahh yeah that works but still, how can I get the key to work? | |||
m: my $nodes = 5; my array[int] %hash{int} = (my int $i = ++$) xx $nodes Z=> array[int].new(0 xx $nodes) xx $nodes; | 18:40 | ||
camelia | rakudo-moar dc7346: OUTPUT«Type check failed in binding key; expected int but got Int (1) in block <unit> at /tmp/mVlxLrsAZ1 line 1» | ||
jnthn | MadcapJake: We don't have natively typed hashes yet, sorry. | ||
timotimo | mst: you mean Nim, right? | ||
mst | timotimo: trout.me.uk/really.jpg | ||
MadcapJake | jnthn: oh alright, no prob, just like to try to go native whenever possible :) | ||
jnthn | They're a reasonable thing to want, and on the wish list... :) | 18:41 | |
timotimo | trout.me.uk’s server DNS address could not be found. | ||
:( | |||
mst | augh | 18:42 | |
yes, sorry, registration fsckup temporarily | |||
must remember not to use the jpgs until that's fixed | |||
timotimo | understood | 18:44 | |
mst | a button needs clicking once every five years or so, and mdk's third child arrived just in time to distract him from doing that yet | 18:45 | |
timotimo | OK :) | 18:46 | |
18:47
spider-mario joined
|
|||
sortiz runs to pay an about to expire domain. | 18:49 | ||
ZoffixW | temp.perl6.party/really.jpg | 18:52 | |
timotimo | d'aaw | 18:54 | |
mst | ZoffixW++ | 18:57 | |
MadcapJake | My boston terrier does that head tilt thing all the time xD | 19:01 | |
timotimo | mimi07.soup.io/post/683943882/Stiff...e-a-little | 19:05 | |
suppe.tobold.cc/post/683826030/Image - a very good cat gif | 19:08 | ||
19:09
molaf left
|
|||
teatime suddenly yearns for a quote-words operator like <…> that interprets <foo> as ('foo') rather than 'foo' | 19:10 | ||
TimToady | you mean ('foo',) ? | ||
ZoffixW | m: dd [ 1, (<foo>,), 2 ] | 19:11 | |
camelia | rakudo-moar dc7346: OUTPUT«[1, ("foo",), 2]» | ||
timotimo | m: say @(<foo>).perl | ||
camelia | rakudo-moar dc7346: OUTPUT«("foo",)» | ||
ZoffixW | Ohh | ||
TimToady | ('foo') is generally indistinguishable from 'foo', since by default parens are only for grouping | 19:12 | |
mst | unlike in python where foreach will hate your face | ||
teatime | no, I was wanting a construct that would quote barewords like qw but that would make <a> and <a b> both return lists of strings. | ||
oh. | |||
then yes, I meant ('foo',) | |||
TimToady | in general, that's solved by treating single items as degenerate lists on the other end | 19:13 | |
lizmat | m: say 1.elems | 19:14 | |
camelia | rakudo-moar dc7346: OUTPUT«1» | ||
lizmat | m: say 42.elems | ||
camelia | rakudo-moar dc7346: OUTPUT«1» | ||
teatime | I'm being silly and contorting Perl in weird ways. | ||
and probably doing *that* in the wrong way. | |||
TimToady | in general, Perl is biased toward a tagmemics view of language, where you can use an X in a Y slot and get away with it much of the time | 19:15 | |
so, for instance $foo() is saying the $foo noun is going to be treated as a verb instead by context | 19:16 | ||
likewise &foo is a noun that can be called, whereas foo is a verb that assumes it's being called even in the absence of any parens | 19:17 | ||
we can't be quite as flexible in that regard as English, of course, where verbing weirds language | 19:18 | ||
but that's because computers are still pretty darn stupid | 19:19 | ||
Perl 5 tried to be a little too cute about turning verbs into methods for the indirect object form, and that's why Perl 6 requires a colon after the invocant to disambiguoate that form | 19:21 | ||
diakopter | o/ Ambigoates | 19:22 | |
19:22
khw joined
|
|||
TimToady | *guate even | 19:22 | |
19:23
CIAvash left
|
|||
mst | TimToady: argh argh S_intuit_method argh *sob* argh argh *sob* *shiver* | 19:24 | |
mst takes his copy of indirect.pm as a security blanket and hides under the desk until he stops remembering how he made Devel::Declare work | |||
19:25
dalek left
|
|||
mst | (first meeting TimToady from him saying "well that's a new way to mess with the perl compiler" over my shoulder was ... yeah ...) | 19:25 | |
TimToady | so there's no need for an intuit_method in Perl 6 :) | ||
19:25
dalek joined,
ChanServ sets mode: +v dalek
19:26
domidumont left
|
|||
mst | for which I am glad, but I'm still never getting those SAN points back | 19:26 | |
TimToady never had SAN points, so took the hits on his constitution | |||
tony-o | SAN ? | 19:28 | |
[Coke] | totes my ambigoates. | ||
SANITY | |||
think rpg stats, but for call of c'thulhu | |||
timotimo | in allcaps | ||
19:29
|2701 joined
19:33
vendethiel joined
|
|||
TimToady | .oO(describes US elections pretty well, low on sanity, about to take major hits on constitution...) |
19:36 | |
huf | advanced forms of democracy might look surprisingly strange at first glance... :) | 19:37 | |
timotimo | *groan* | ||
mst applauds | |||
ufobat | i fixed my tests! wheee :D | ||
moritz | huf: advanced or degenerate, that's the question | 19:38 | |
huf | well advanced on the road to the next form | ||
"this isnt even my final form"... | 19:39 | ||
ufobat | so its the perfect moment to open the wine leftovers from the gpw2016 | ||
19:45
ShimmerFairy joined
|
|||
ShimmerFairy | ohhhh man | 19:46 | |
yoleaux | 1 Jan 2016 16:44Z <ZoffixWin> ShimmerFairy: I can certainly see the *reasons* for your frustration and the reasons for writing that blog post, but merely attacking the person responsible for your unpopular opinion does not make anything better. Your frustrated post could easily have been a post about a choice between poorly-tested code and a release without a key feature. | ||
19 Jan 2016 19:21Z <[Coke]> ShimmerFairy: to see latest comment on RT #127108 that will give you a workaround so you can keep moving. | |||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127108 | ||
ShimmerFairy | I just thought I'd stop by to share this absolute gem of a bug I encountered last night: rt.perl.org/Ticket/Display.html?id=128128 | ||
Since apparently this is something I can expect to happen for as long as people don't install to the system. It's wonderful, I can't stop smiling over it :D | 19:47 | ||
ZoffixW | New blog post "Perl 6 NativeCall: Look, Ma! I'm a C Programmer!": blogs.perl.org/users/zoffix_znet/20...mer-1.html | 19:48 | |
lizmat | ShimmerFairy o/ | ||
ShimmerFairy | \o | ||
And I'm not lying: for some reason I'm genuinely happy and smiling that this bug would happen _again_ :) | 19:49 | ||
lizmat | glad to see you smiling :-) | ||
19:50
ZoffixW left
19:51
yqt joined
|
|||
mst | ShimmerFairy: oh, hey, you're back. excellent. | 19:53 | |
nine | ShimmerFairy: welcome back! | ||
moritz | and I'm glad you think the fix is easy, because that means we can expect a patch from you, right? | ||
19:53
yqt left
|
|||
mst wonders if that's a 'rejoin to well volunteered' record time | 19:54 | ||
ShimmerFairy | not really, since I took myself out of the rakudo organization a while back. And besides, "remember people install to the system" isn't my lesson to learn :P . | ||
diakopter | ShimmerFairy: ohhh I didn't know you are lue | 19:55 | |
ShimmerFairy | yep, c'est moi | 19:56 | |
mst | ShimmerFairy: yeah, you ragequit just as I was setting up a toolchain team to try and fix this stuff and then blinked and one of the people I wanted for a founder member of the problem solving team had quit because of the problem :P | ||
teatime | ShimmerFairy: is that one windows? I am curious why it would want to do mode 0777. | ||
mst | (note that's meant to read as a compliment as well as an 'augh' ;) | ||
teatime | *on | ||
mst | (you remember me, right? :) | ||
ShimmerFairy | teatime: it just says 777 because that's what Perl 6 wants; of course the usual umask would be applied to that, but the error doesn't do that | 19:57 | |
mst: of course I remember you :) | |||
19:57
buharin joined
|
|||
mst | ShimmerFairy: good, that means you won't miss the compliment due to my sarcastic turn of phrase :D | 19:58 | |
masak | ShimmerFairy: welcome back. I agree with lizmat -- nice to see you smiling over bug reports. :) | 20:03 | |
ShimmerFairy | masak: though admittedly it's probably more of a smug-ish smile :P | 20:04 | |
masak .oO( I *knew* it! ) :P | 20:05 | ||
20:05
nicqbot left
|
|||
masak | anyway, as long as Schadenfreude gets cranked out into bug reports... :) | 20:05 | |
tony-o | nice | 20:06 | |
20:09
yqt joined
20:10
mr-foobar left
20:12
mr-foobar joined
20:13
cdg joined
20:14
dha joined
|
|||
dha | join #perl | 20:14 | |
bah. | |||
masak | dha: I hear #perl over att irc.perl.org is better. | 20:15 | |
at* | |||
dha | It's... different. | 20:16 | |
ShimmerFairy | masak: well, I figured I shouldn't let my Schadenfreude be unproductive, hence the bug report :) | ||
dha | For instance, on the freenode version, you can talk about Perl. :-) | ||
I have to give a talk on Perl resources for beginners next month, so I'm looking at freenode #perl for a change. | 20:17 | ||
masak | dha: heh :) | ||
masak .oO( don't let your Schadenfreude just sit around! put it to work! ) | |||
moritz | SDD, Schadenfreude-Driven Development | 20:18 | |
dha | So, silly question. Since Perl 6 uses a Perl 6 grammar to parse Perl 6, one could, in theory, change how the language works, right? | ||
moritz | dha: not just in theory | 20:19 | |
dha | oh good. Where would one find information on how to actually do that, then? | ||
moritz | dha: you can define operators on the fly, which changes the language | 20:20 | |
dha: also, look on modules.perl6.org/ for "slang" | |||
dha | Right. | ||
moritz | and look at how those modules do that | ||
dha | I wish to do something stupid. | ||
leedo_ | anyone else seeing this when installing rakudo? gist.github.com/leedo/bb83ded06dbc...ccd6f7fb1f | ||
20:22
ZoffixMobile joined
|
|||
nine | ShimmerFairy: looks like I'm getting close to making packaging modules work which for me is a blocker for using system installed rakudo. So your use case may get a boost somewhat soon :) | 20:22 | |
ZoffixMobile | leedo_, yeah, I was getting it a couple of days ago when running rakudobrew triple nom master master.... though, I've no idea what it means :/ | ||
dha | Hm... looks like it may require at least mild understanding of nqp. and roles. | ||
dha wonders how much effort he wants to put into doing something stupid. | 20:23 | ||
ShimmerFairy | nine: cool :) I just wish it were a more common thing in general, so anything to help with that would be good. | ||
moritz | dha: how invasive is your change going to be? | ||
dha | Well, I... want to change the statement terminator. | 20:24 | |
I wanted to port over my only CPAN module, actually. | |||
nine | ShimmerFairy: well my goal is to be able to deploy rpm packages on our servers. | ||
moritz | changing the statement terminator sounds like something that's very hairy in the grammar | 20:25 | |
ShimmerFairy | nine: how about .ebuilds? :P | ||
20:25
espadrine_ joined
|
|||
moritz | but at least you don't need to change the actions | 20:25 | |
nine | ShimmerFairy: they face the same issues, so it doesn't matter all that much | ||
dha | metacpan.org/pod/Semi::Semicolons | 20:26 | |
ShimmerFairy | I can help with any gentoo-related stuff if it comes up, since I'm on a gentoo system and have poked at helping out with gentoo before. | ||
timotimo | ShimmerFairy: i'm glad you're stopping by :) | ||
nine | ShimmerFairy: actually I'm a bit puzzled by your bug report since with literally every change I make I have in mind that we won't be able to write to the site repository unless we're installing | ||
timotimo | ShimmerFairy: any chance you could make supernova available? :3 | 20:27 | |
i was really bugged i didn't clone it before you took it down :| | |||
so was hoelzro | |||
nine | ShimmerFairy: but I guess nothing beats trying it out in practice | ||
ShimmerFairy | timotimo: sure, I can put it back later :) | 20:28 | |
I was planning on only stopping by for a brief second, but your darn kind community ways have suckered me back in :3 | 20:29 | ||
timotimo | yay | ||
timotimo has dinner now | |||
ShimmerFairy | nine: yeah, I was surprised by that too. | ||
timotimo | bbiab | ||
ShimmerFairy | I have to go afk for a few hours now, but I'll be back :) | ||
20:31
_dolmen_ joined,
ZoffixMobile left
|
|||
MadcapJake | how can I .shift a seq? | 20:33 | |
moritz | MadcapJake: no, a Seq is immutable | ||
m: say gather { take 42 }.^name | 20:34 | ||
camelia | rakudo-moar a31ab3: OUTPUT«Seq» | ||
MadcapJake | let me rephrase, how can you lazily shift an Array? | ||
moritz | m: say gather { take 42; take 23}[1..*] | ||
camelia | rakudo-moar a31ab3: OUTPUT«(23)» | ||
MadcapJake | i.e., turn a gather block into a lazy array that you can shift | 20:35 | |
is that possible? | |||
moritz | m: @a = gather { take 42; take 23; say 'reified';}; | 20:36 | |
camelia | rakudo-moar a31ab3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bwhXKmtNvmVariable '@a' is not declaredat /tmp/bwhXKmtNvm:1------> 3<BOL>7⏏5@a = gather { take 42; take 23; say 'rei» | ||
moritz | m: my @a = gather { take 42; take 23; say 'reified';}; | ||
camelia | rakudo-moar a31ab3: OUTPUT«reified» | ||
moritz | m: @a = lazy gather { take 42; take 23; say 'reified';}; | ||
camelia | rakudo-moar a31ab3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/nhB1AvGXCSVariable '@a' is not declaredat /tmp/nhB1AvGXCS:1------> 3<BOL>7⏏5@a = lazy gather { take 42; take 23; say» | ||
moritz | m: my @a = lazy gather { take 42; take 23; say 'reified';}; | ||
camelia | ( no output ) | ||
moritz | MadcapJake: ^^ like this | ||
m: my @a = lazy gather { take 42; take 23; say 'reified';}; @a.shift; say @a.perl | |||
camelia | rakudo-moar a31ab3: OUTPUT«Cannot .elems a lazy list in block <unit> at /tmp/cZvEMwo85z line 1Actually thrown at: in block <unit> at /tmp/cZvEMwo85z line 1» | ||
moritz | m: my @a = lazy gather { take 42; take 23; say 'reified';}; @a.shift; say @a | ||
camelia | rakudo-moar a31ab3: OUTPUT«[...]» | ||
moritz | m: my @a = lazy gather { take 42; take 23; say 'reified';}; @a.shift; say @a[0]; | 20:37 | |
camelia | rakudo-moar a31ab3: OUTPUT«23» | ||
teatime | what does a union type look like in Perl6 | 20:38 | |
20:40
kaare_ left
|
|||
psch | m: my @a = lazy gather { take 42; take 23; say 'reified';}; say @a.shift while @a; | 20:40 | |
camelia | rakudo-moar a31ab3: OUTPUT«4223reified» | ||
psch | m: my @a = lazy gather { take 42; take 23; say 'reified';}; say so @a.shift while @a; | 20:41 | |
camelia | rakudo-moar a31ab3: OUTPUT«TrueTruereified» | ||
psch | that's neat | ||
m: my @a = lazy gather { take 1; take 2; say "you sure you need more elems?"; take 3; say "alright, that's definitely enough" }; say @a[0..1]; | 20:42 | ||
camelia | rakudo-moar a31ab3: OUTPUT«(1 2)» | ||
psch | m: my @a = lazy gather { take 1; take 2; say "you sure you need more elems?"; take 3; say "alright, that's definitely enough" }; say @a[0..*]; | ||
camelia | rakudo-moar a31ab3: OUTPUT«you sure you need more elems?alright, that's definitely enough(1 2 3)» | ||
psch | well, the slice does it differently... :) | ||
20:46
dvinciguerra left
|
|||
MadcapJake | moritz: thanks! I'm curious though, I thought gather was already lazy? Does `lazy` make it explicit? | 20:46 | |
20:46
dvinciguerra joined
20:48
dvinciguerra left,
wamba left,
sufrostico left
|
|||
MadcapJake | m: (lazy gather { take 1 }).WHAT.say; (gather { take 1 }).WHAT.say | 20:49 | |
camelia | rakudo-moar a31ab3: OUTPUT«(Seq)(Seq)» | ||
20:49
TimToady left
|
|||
lizmat | the assignment of the (lazy) list is by default eager | 20:49 | |
the "lazy" prefix makes it lazy | |||
MadcapJake | m: (lazy gather { take 1 }).is-lazy.say; (gather { take 1 }).is-lazy.say | ||
camelia | rakudo-moar a31ab3: OUTPUT«TrueFalse» | ||
lizmat | I recall that before the GLR you would have to bind to get the lazy behaviour | 20:50 | |
prefix lazy seems less as a WAT to me :-) | |||
dogbert17 | would be pleased if someone reviewed my attempt to document Pair.freeze. gist.github.com/dogbert17/81529690...6faf999b0c | ||
20:50
TimToady joined
|
|||
MadcapJake | m: (gather { loop { take ++$ } }).Array.[0] # is this equivalent to assignment? | 20:51 | |
camelia | rakudo-moar a31ab3: OUTPUT«(timeout)» | ||
20:51
dvinciguerra joined
|
|||
sortiz | lizmat, for the Array case, for the List case no. The difference is Array.pm/L53 | 20:52 | |
psch | m: &infix:<=>(my @a, gather { take 1; say "took first"; take 2 }); say @a[0]; | ||
camelia | rakudo-moar a31ab3: OUTPUT«took first1» | ||
psch | m: &infix:<=>(my @a, lazy gather { take 1; say "took first"; take 2 }); say @a[0]; | ||
camelia | rakudo-moar a31ab3: OUTPUT«1» | ||
20:53
ZoffixWin left
|
|||
psch | m: (gather { take 1; say "took first"; take 2 })[0].say | 20:53 | |
camelia | rakudo-moar a31ab3: OUTPUT«1» | ||
psch | m: lazy &infix:<=>(my @a, gather { take 1; say "took first"; take 2 }); say @a[0]; | 20:54 | |
camelia | rakudo-moar a31ab3: OUTPUT«took first1» | ||
MadcapJake | So let me see if I get this: a gather block is lazy in the sense that Seqs are lazily "collected". However upon placing in an Array it (I'm assuming) checks is-lazy and if False, it eagerly collects all the values. Is this accurate? | ||
s/placing in/converting to/ | 20:55 | ||
lizmat | MadcapJake: I think so, yes | 20:56 | |
sortiz | MadcapJake, yes, Array explicitly need the Seq lazy == True to avoid instant reifycation. | ||
MadcapJake | alrighty thanks! (this is for that generator blog post I'm working on) | 20:57 | |
sortiz | a gather/loop block by default crates a Seq with lazy = false. | 20:58 | |
MadcapJake | sortiz: ok gotcha, but that lazy attribute doesn't really come into effect until you leave the Seq world, right? Because Seqs are inherently lazy. | 20:59 | |
sortiz | Yep, And you can use 'lazy' to create a new Seq wrapping the original one with a lazy = True. | ||
MadcapJake | got it! | 21:03 | |
21:04
solarbunny joined
21:06
buharin left
|
|||
lizmat | dogbert17: looks fine, but you have no example of Pair.freeze actually returning the value as well | 21:06 | |
dogbert17: perhaps use "$p.freeze.say" as an example | 21:07 | ||
dogbert17 | lizmat++ will fix | ||
perlpilot | dogbert17: also a little jargony with "deconts". Maybe use more words there. Maybe. | 21:08 | |
dogbert17 | gist updated | ||
perlpilot: any suggestions, I also think decont is a bit on the vague side | 21:09 | ||
sortiz | "Remove the Scalar container" ? | ||
jnthn | "removes the value from its Scalar container, making it unassignable" or so perhaps | 21:10 | |
perlpilot | dogbert17: what those guys said ;) | ||
dogbert17 | oh, lots of suggestions, many thanks | ||
lizmat | "Makes the value of the Pair read-only" | ||
psch | s/unassignable/semantically constant/ # maybe | ||
lizmat | the fact that it's deconting, is an implementation detail, I would think | ||
dogbert17 | what to choose, what to choose :) | ||
jnthn | Is .freeze in place? | ||
perlpilot | lizmat++ | 21:11 | |
lizmat | yes, and there is a test for it | ||
21:11
ZoffixWin joined
|
|||
jnthn | Hm, curious choice :) | 21:11 | |
perlpilot | dogbert17: what lizmat said. That's the best answer IMHO | ||
ZoffixWin | With Inline::Perl5, there's no way to make the used code see command line args, is there? | ||
ZoffixWin is experimenting with using Mojolicious via Inline::Perl5 | |||
dogbert17 | Ok, I'll go for lizmat's variant | ||
lizmat | actually, jnthn has a point also | ||
"Makes the value of the Pair read-only by removing the value from its Scalar container" | 21:12 | ||
jnthn in his perl 6 introduction course, makes a point of explaining Scalar containers and making sure people get that | |||
jnthn | It's worth grasping early since it explains quite a lot of things :) | 21:13 | |
lizmat | so reinforcing that in the pod, is a good goal, I would think | ||
BTW, dogbert17++ :-) | 21:14 | ||
dogbert17 | will fix :) | ||
21:14
hi joined
|
|||
hi | hi | 21:14 | |
masak briefly considers trolling #perl6 by innocently going "what's a Scalar container?" | |||
hi, hi | |||
21:14
grondilu left,
hi is now known as Guest76776
|
|||
perlpilot | lizmat: if I read that (and didn't know anything), I'd immediately ask "why?" | 21:14 | |
jnthn | masak: It's kinda like a fish with an open mouth | 21:15 | |
sortiz | Well, one problem is that, by default, a Pair don't use a Scalar container for its value. | ||
masak | jnthn: so, a monad? :P | ||
Guest76776 | p6: say 2 | ||
camelia | rakudo-moar a31ab3: OUTPUT«2» | ||
Guest76776 | p6: say 2; | ||
camelia | rakudo-moar a31ab3: OUTPUT«2» | ||
masak | p6: say 2;; | ||
camelia | rakudo-moar a31ab3: OUTPUT«2» | ||
jnthn | masak: :D | ||
21:15
Guest76776 left
|
|||
masak | p6: say 2;;; | 21:15 | |
camelia | rakudo-moar a31ab3: OUTPUT«2» | ||
masak | no, wait. a monad is more like a fish with a closed mouth. never mind. | 21:16 | |
jnthn | That or a fish taco | ||
perlpilot | .oO( I've never heard of a monad fish ) |
||
jnthn | Or was it a burrito... | ||
lizmat goes to bed hungry | 21:17 | ||
masak | :D | ||
psch | sortiz: i don't think that's completely true. a Pair doesn't *add* a Scalar container for the value if there isn't one feels more right | ||
masak .oO( it's called Scalar because a fish... has... scales *mind blown* ) | 21:18 | ||
jnthn | masak: It took you that long to spot the pun? :P | ||
psch | sortiz: which is the same behavior List has, which makes it feel right to me, fwiw | ||
masak | jnthn: I should have suspected something was fishy the moment you willingly mentioned fish. | 21:19 | |
jnthn: scale-aaah | |||
timotimo | i use fish as my shell | 21:20 | |
psch .oO( so Perl has Scalars 'cause someone got scared of python..? ) | |||
sortiz | psch, i talk in the sense that the user needs to use a container in the first place. | ||
psch is reaching | |||
timotimo | "scientists have described their fish-spider chimaera as 'the first web-scale animal'" | ||
masak | ba dum fish | ||
psch | maybe we need Pair.thaw vOv | 21:21 | |
perlpilot | dogbert17: in any case, this discussion makes me think the docs for .freeze should have a pointer to other docs that talk about containers and values and such :) | ||
psch | sortiz: right, just like with List you don't get conts if you don't put conts. in contrast to e.g. Array, which voluntarily adds conts | 21:22 | |
dogbert17 | perlpilot: will add a link to doc.perl6.org/language/containers#...containers | ||
perlpilot | dogbert17++ | 21:23 | |
sortiz | Yep, in Array and Hash you need yo opt-out, in the other cases you need yo opt-in. :-) | ||
s/yo/to/ | |||
21:26
khw left
|
|||
Hotkeys | m: Blob.new(pick 1000, 0..255).elems.say | 21:26 | |
camelia | rakudo-moar a31ab3: OUTPUT«256» | ||
Hotkeys | why is there a cap here | ||
m: ("farts" x 100).encode("Latin-1").elems.say | |||
camelia | rakudo-moar a31ab3: OUTPUT«500» | ||
Hotkeys | but not in this instance | 21:27 | |
21:28
huggable joined
|
|||
psch | m: Blob.new(roll 1000, 0..255).elems.say | 21:28 | |
camelia | rakudo-moar a31ab3: OUTPUT«1000» | ||
psch | Hotkeys: pick is "select without putting back" | ||
Hotkeys | ah | ||
do I want roll | |||
psch | Hotkeys: i don't know :) | ||
Hotkeys | m: Blob.new(roll 1000, 0..255).elems.say | 21:29 | |
camelia | rakudo-moar a31ab3: OUTPUT«1000» | ||
Hotkeys | cool | ||
thanks psch | |||
dalek | c: ee43bb8 | (Jan-Olof Hendig)++ | doc/Type/Pair.pod: Added some documentation for the 'freeze' method. #perl6++ |
||
perlpilot | Hotkeys: the number of elements conveniently being the same size as the range should have given you a clue that something wasn't quite right in your understanding ;) | 21:30 | |
m: Blob.new(pick 1000, 15..45).elems.say; # I suppose this would have been more obvious | |||
camelia | rakudo-moar a31ab3: OUTPUT«31» | ||
Hotkeys | the number of elements being 2^8 made me think it was some kind of limit | ||
i didn't really relate it to me also using 2^8 in my pick :p | 21:31 | ||
dha | Hm... DBIish still hates me. | 21:33 | |
perlpilot | If .freeze decontainerizes, then presumably someone (other than psch) will want .thaw to containerize ... What will the P6 version of Storable use? | 21:34 | |
21:34
AlexDaniel joined
|
|||
AlexDaniel | dogbert17++ # for doc improvements | 21:34 | |
yoleaux | 10:10Z <ZoffixWin> AlexDaniel: you're right, with -O3 register doesn't matter and the whole thing goes down to 0m2.284s | ||
AlexDaniel | ZoffixWin: great :) | 21:35 | |
ZoffixWin | :) | ||
dha | Dammit, I hate this senility. How do I get around Task::Star bailing out on DBIish? | ||
masak | 'night, #perl6 | ||
dha knows he's done this before... | |||
ZoffixWin | dha, don't install it? :) Fix DBIish? :) | ||
dha | night masak | ||
ZoffixWin | masak, night | ||
perlpilot | renaming .freeze to .decont will also allow for .cont and not conflict with other commonish usages of .freeze/.thaw | ||
g'night masak | |||
ZoffixWin | dha, --force ? | ||
dha | ZoffixWin - I'm happy not to install it. I think Task::Star does not agree with that plan. | 21:36 | |
ZoffixWin | dha, what's the error message(s)? It should be installing fine | ||
tony-o | perlpilot: if perl6 is supposed to be englishy then it makes sense to words for all kinds of things they were never meant for | ||
to use words* | |||
ZoffixWin | dha, I think --force will work fine. panda --force install Task::Star; zef --force install Task::Star | 21:37 | |
dha | There's a LOT of errors. | ||
ZoffixWin | pastebin them | ||
dha | yep. | 21:38 | |
21:38
TEttinger joined
21:40
khw joined
|
|||
dha | pastebin.com/fVCG3ATW | 21:40 | |
21:40
pmurias_ joined
|
|||
ZoffixWin | 0.o | 21:40 | |
dha | Yes. | 21:41 | |
ZoffixWin | does rerunning install DBIish show the same errors? | ||
I vaguely remember Basic failing for me, but succeeding on a re-try | |||
dha | I won't swear it's *exactly* the same errors, but it sure *looks* the same. | 21:43 | |
ZoffixWin | *shrug* Probably worth reporting on the DBIish repo. I saw a few commits go in recently. Maybe they broke something. | ||
dha | ok. | ||
21:44
pmurias left
|
|||
AlexDaniel | ZoffixWin: “I wonder when computers will be able to take -O10 to figure out that for (x = 2; x < 2e9; x++); can be optimized into an assignment XD” – don't they do it already? | 21:44 | |
ZoffixWin: maybe not by default, and not with huge numbers like this, but | |||
ZoffixWin | Not when I tried it at least :) | ||
AlexDaniel | ZoffixWin: try -funroll-loops | 21:45 | |
ZoffixWin: or even -funroll-all-loops | |||
once unrolled, I think that it should be able to figure it out | |||
ZoffixWin | AlexDaniel, takes same amount of time ~2seconds | ||
timotimo | that'll unroll to quite a big piece of code | ||
AlexDaniel | ZoffixWin: try smaller number | 21:46 | |
ZoffixWin | AlexDaniel, smaller number where? | ||
AlexDaniel | ZoffixWin: < 2e9 is a bit too much :) | ||
ZoffixWin | Well, without it, the code executes too fast anyway | 21:47 | |
So you can't even tell if -funroll-loops does anything. | |||
AlexDaniel | run it 2e9 times instead | ||
ZoffixWin can't be bothered | |||
AlexDaniel | timotimo: “if you didn't actually want it to loop, you would have written the assignment” – the question was when compilers will get smarter than stupid human beings, so your remark does not apply here :) | 21:51 | |
timotimo | :D | ||
ZoffixWin | Well, and I didn't mention it at the time, but there are cases where I--a human--would want to write a loop, which a compiler should optimize. Like raising into power. | 21:52 | |
Hexchat-- # breaks support for windows alt+num pad sequences | 21:53 | ||
21:53
jast joined
|
|||
timotimo | gtk, eh? :( | 21:53 | |
maybe you just have to right-click into the input field and change the input method | |||
AlexDaniel | timotimo: eh? | ||
ZoffixWin | Well, it's at System(Simple)... I've no idea what else would give me alt sequences if not system :) | 21:54 | |
AlexDaniel | just as a side note: none of the Qt apps work properly with custom xkb keyboard layouts, but gtk apps are fine and dandy | 21:55 | |
timotimo | neo2 on windows is a nightmare with java programs (especially intellij) and qt programs (in particular qtcreator) | 21:56 | |
none of them seem to understand the extra arrow keys | |||
AlexDaniel | yea, that kind of thing | ||
though my arrows work fine everywhere, it is combinations like ctrl+backspace that are not working | 21:57 | ||
21:58
jamesnek1 left
|
|||
AlexDaniel | (not the regular ctrl+backspace, but altgr-ed custom thingy) | 21:59 | |
22:04
itaipu left
22:05
jamesneko joined
22:09
prammer left
22:11
_dolmen_ left
|
|||
dha | Huh. Now panda is telling me that p6doc is a "Possibly ambiguous module name" | 22:14 | |
22:15
rindolf left
|
|||
dha | The problem with an software tool called "panda" is that, if you say "I want to beat panda to death with a baseball bat", people think you're talking about doing that to an actual panda. Which I think would upset people. | 22:16 | |
ZoffixWin | Try zef | 22:17 | |
22:17
cpage_ left
|
|||
ZoffixWin | modules.perl6.org/repo/zef | 22:17 | |
sortiz | dha, Seems that DBIish's SQLite driver detection is failing on OS X | ||
22:17
kid51 joined
|
|||
dha | sortiz - ah. I guess that would be a problem. | 22:17 | |
irony: using panda to install zef. | |||
ZoffixWin | dha, you don't have to :) You can download zip | 22:18 | |
dha | yeah, but I already did it. I enjoy the irony. | ||
zef seems slower than panda. For whatever that's worth (probably not much). | 22:19 | ||
dogbert17 | hmm, the documentation changes have not shown up, how can I see if something has gone wrong with the build? | 22:20 | |
ZoffixWin | dha, yeah, it's a lot slower. | ||
dha | And... zef failed to install p6doc. | ||
ZoffixWin | :( | ||
tadzik | try redpanda now :P | 22:21 | |
App::redpanda | |||
timotimo | i still have no clue what the difference between panda and redpanda is supposed to be | ||
sortiz | The color? ;-) | 22:22 | |
tadzik | redpanda is cpanm of panda | ||
it's not trying to do all the things | |||
it just installs stuff | |||
22:22
espadrine_ left
|
|||
tadzik | also, I had no tuits to actually modernize panda itseluf | 22:22 | |
ZoffixWin | neat | ||
tadzik | to the point of actually maintaining the features | 22:23 | |
22:23
cpage_ joined
|
|||
dha | Hm. redpanda says it successfully installed p6doc, but my system disbelieves it. | 22:26 | |
tony-o | what's the reason for failing with zef, dha ? | ||
22:26
dvinciguerra left
|
|||
dha | good question let me look for that... | 22:26 | |
oh damn. I managed to install p6doc by downloading it and installing from the local directory. So I probably can't tell you why zef failed. :-/ | 22:29 | ||
timotimo | ZoffixWin: you could have made the parameters optional for the cdio functions and invoking would have been simpler :) | ||
dha | sorry. :-( | ||
tony-o | interesting | ||
running the install twice made it work on osx | 22:30 | ||
dha | oh? I didn't try it twice. :-) | ||
ZoffixWin | timotimo, that occurred to me when I was re-reading an already-posted post, but I was too lazy to change it | ||
timotimo, maybe I should | |||
timotimo | :) | ||
tony-o | i also can't 'use JSON::Fast' on OSX, even though it's definitely installed | ||
22:30
kurahaupo left
|
|||
dha | And now I have to go. Bah. | 22:30 | |
Later all, thanks for the suggestions. | 22:31 | ||
22:31
dha left,
smls left
|
|||
ZoffixWin | Hm, I get 'Cannot unbox a type object' if I specify Str = Str in the signature | 22:34 | |
timotimo | no need to Str = Str | 22:35 | |
just Str $foo? | |||
the default value is the type object already | |||
ZoffixWin | Same error | ||
timotimo | huh | ||
that's weird. where does the error occur? (--ll-exception) | |||
when you define it, or when you call it? | 22:36 | ||
ZoffixWin | Thought it actually happens on the call to close tray, that has sig close-tray(Str $x?, int32 = 0) | ||
open-tray works fine it seems | |||
Oh | |||
Nope... I thought naming, like, int32 $y = 0 would help, but same error | 22:37 | ||
--ll-exception: gist.github.com/zoffixznet/3c85f6c...6bcb1c727c | 22:38 | ||
sortiz | ZoffixWin, Are you talking of the signature of a native sub, right? | ||
ZoffixWin | Yeah | ||
(code is in the gist above) | |||
tony-o | ZoffixWin: how does perl know which version of those to call? | 22:39 | |
ZoffixWin | tony-o, "those"? They're different named subs. The signature isn't the only difference. | ||
tony-o | oh oops | ||
ZoffixWin | :) | ||
tony-o | guess it's time to go home | 22:40 | |
sortiz | I see, in native subs an "optional" argument isn't permitted. | ||
ZoffixWin | hehe | ||
tony-o | or back to the hotel at least | ||
ZoffixWin | Good. Then I don't have to change my article \o/ | ||
22:47
RabidGravy left
|
|||
psch | m: sub f($x?, Str = "") { say $x }; f() | 22:48 | |
camelia | rakudo-moar bffc3a: OUTPUT«(Any)» | ||
psch | that feels *really* confusing to me | ||
i mean, it does make sense thinking about it for a second | 22:49 | ||
but still, on first glance i was stumped :P | |||
but yeah, i suppose it comes down to what sortiz++ says. don't do "$x?" but do "$x = Str" instead | 22:50 | ||
sortiz | In fact in native signatures the only important (and valid) thing are the types and arity. For example, you don't need to declare variables. | ||
ZoffixWin | psch, but $x = Str doesn't work either (same error). | 22:53 | |
Which seems more like an NIY than a technical limitation. | |||
psch | ZoffixWin: oh. yeah, that's my bad. i mean, the error says it can't unbox a type object, so defaulting to a type object is obviously nonsense... :) | 22:54 | |
ZoffixWin: does "$x = ''" work? | |||
ZoffixWin | psch, but it works if I declare it as foo(Str) and then call it as foo Str; | ||
psch, same error. | 22:55 | ||
psch | huh | ||
ZoffixWin | psch, and open-tray(Str?) works fine it seems. I think the issue is with int32 $x = 0; actually | ||
psch | ZoffixWin: but 0 is not a type object..? | ||
ZoffixWin | ¯\_(ツ)_/¯ | 22:56 | |
psch | ZoffixWin: in any case, this seems way to far into NC territory for my knowledge to be meaningful... :) | ||
ZoffixWin | wtf | 22:57 | |
gist.github.com/zoffixznet/a03a6ef...8ba12cd3e9 | |||
If I remove = 0 from signature of close-tray, it "works". But with it, I get "never work with this signature" :S | 22:58 | ||
(I saw "works", because on this box my tray isn't opening even with original code that was working on the box I wrote that code on first, but at least I get no errors) | |||
s/saw/say/; | |||
22:59
sufrostico joined
|
|||
timotimo doesn't have optical drives nearby to test | 23:02 | ||
sortiz | ZoffixWin, for close-try the valid signature is (Str, int32), forget about defaults and optionals, if you need that, wrote a normal perl6 wrapper sub. | ||
The signature at the C level is static, so dyncall constructs an immutable callsite for it, and use that. | 23:04 | ||
ZoffixWin | Alright | 23:07 | |
Thanks. | |||
23:12
john51_ joined,
firstdayonthejob left
|
|||
ShimmerFairy | hey timotimo, wanted this? :) github.com/ShimmerFairy/SUPERNOVA | 23:13 | |
23:13
spider-mario left
23:14
Amnez777 left,
perigrin_ joined,
nowan left
23:15
john51 left,
Score_Under joined
|
|||
timotimo ninja-forks | 23:15 | ||
23:15
Amnez777 joined,
nowan joined
|
|||
timotimo | much appreciated :) | 23:17 | |
ShimmerFairy | :) | 23:19 | |
23:25
skink joined
23:29
jack_rabbit joined
23:31
mr-foobar left
23:32
mr-foobar joined
|
|||
gfldex | m: my @perm = <a b c>.combinations(2)».permutations; dd [ @perm.map(*.Slip) ] | 23:39 | |
camelia | rakudo-moar bffc3a: OUTPUT«[("a", "b"), ("b", "a"), ("a", "c"), ("c", "a"), ("b", "c"), ("c", "b")]» | ||
23:45
profan left
23:46
cdg left
23:47
cdg joined
|
|||
psch | m: my @perm = map <a b c>.combinations(2): *.permutations.Slip; dd @perm | 23:50 | |
camelia | rakudo-moar bffc3a: OUTPUT«Array @perm = [("a", "b"), ("b", "a"), ("a", "c"), ("c", "a"), ("b", "c"), ("c", "b")]» | ||
psch | ...not quite sure that's neater vOv | ||
why does the type show up there anyway..? | 23:51 | ||
23:51
cdg left
|
|||
timotimo | i need help with something | 23:55 | |
gist.github.com/timo/7babb36055768fe04eeb - when i put "say energies(@bodies) into the loop, i get about the same value over and over again, but when it's only after the loop, it gets a completely different value | |||
what the f is up with that? |