»ö« 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:00
AlexDaniel left
|
|||
viki | kyclark: never mind, it's not a bug. | 00:00 | |
Hmm | |||
Or maybe it is. | |||
Here's the crux of the issue: | 00:01 | ||
m: my $c = "\x[33F]"; say $c.ord; say $c.ord.succ; say $c.ord.succ.chr; say $c.ord.succ.chr.ord; | |||
camelia | rakudo-moar 15f51a: OUTPUT«831832̀768» | ||
viki | it gets normalized or whatever we call it, but that normalized form is a lower .ord, so from that it soon reaches the original form and the loop continues | ||
00:03
eisen74 joined
|
|||
viki | m: "\x[340]\x[300]".uninames.say | 00:05 | |
camelia | rakudo-moar 15f51a: OUTPUT«(COMBINING GRAVE ACCENT COMBINING GRAVE ACCENT)» | ||
viki | m: .succ.chr.ord < $_ and say "{.base: 16} is problematic 'cause .succ is {.chr.ord.base: 16}" for ^0x110000 | 00:09 | |
camelia | rakudo-moar 15f51a: OUTPUT«33F is problematic 'cause .succ is 33F340 is problematic 'cause .succ is 300342 is problematic 'cause .succ is 342343 is problematic 'cause .succ is 313373 is problematic 'cause .succ is 37337D is problematic 'cause .succ is 37D386 is pro…» | ||
viki | m: .succ.chr.ord < $_ and say "{.base: 16} is problematic 'cause .succ is {.succ.chr.ord.base: 16}" for ^0x110000 | 00:10 | |
camelia | rakudo-moar 15f51a: OUTPUT«33F is problematic 'cause .succ is 300340 is problematic 'cause .succ is 301342 is problematic 'cause .succ is 313343 is problematic 'cause .succ is 308373 is problematic 'cause .succ is 2B937D is problematic 'cause .succ is 3B386 is prob…» | ||
viki | m: my $x = 0; .succ.chr.ord < $_ and $x++ for ^0x110000; say "$x problematic codepoints" | ||
camelia | rakudo-moar 15f51a: OUTPUT«1094 problematic codepoints» | ||
viki | So basically such issue exists anytime your sequence has any of these 1094 codepoints in the middle of it | 00:11 | |
m: say ("\x[33F]" ... "\x[341]").elems | |||
camelia | rakudo-moar 15f51a: OUTPUT«63» | ||
viki | ... why didn't that hang :/ | 00:12 | |
m: say ("\x[33F]" ... "\x[341]") | |||
camelia | rakudo-moar 15f51a: OUTPUT«(̿ ̾ ̽ ̼ ̻ ̺ ̹ ̸ ̷ ̶ ̵ ̴ ̳ ̲ ̱ ̰ ̯ ̮ ̭ ̬ ̫ ̪ ̩ ̨ ̧ ̦ ̥ ̤ ̣ ̢ ̡ ̠ ̟ ̞ ̝ ̜ ̛ ̚ ̙ ̘ ̗ ̖ ̕ ̔ ̓ ̒ ̑ ̐ ̏ ̎ ̍ ̌ ̋ ̊ ̉ ̈ ̇ ̆ ̅ ̄ ̃ ̂ ́)» | ||
viki | oh 341 is also messed up heh | 00:13 | |
m: say ("\x[A5A]" ... "\x[A5C]").elems | 00:14 | ||
camelia | rakudo-moar 15f51a: OUTPUT«(timeout)» | ||
viki | m: say (*.parse-base(16) - *.parse-base(16))("A5C", "A5A") | ||
camelia | rakudo-moar 15f51a: OUTPUT«2» | ||
viki | hehe | ||
Well, I'd call that a bug :) | |||
Or is it? | 00:15 | ||
It's Quantum Bug... It's both a bug and ain't one ;) | |||
00:15
eisen74 left
00:23
cdg left
|
|||
viki | God damn.. Digital Extremes ruined my day today :( | 00:24 | |
They changed a thing in a game and I don't like it... | |||
viki goes to fix Rakudo bugs instead | |||
geekosaur | disappointment-driven development | ||
viki | heh | 00:25 | |
00:32
bjz joined
00:35
labster left
00:55
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:59
seatek joined
|
|||
viki | m: nqp: nqp::say(nqp::islt_n(nqp::div_n(1e0,0e0), 0e0)) | 01:04 | |
camelia | rakudo-moar 15f51a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Could not find nqp::div_n, did you forget 'use nqp;' ?at <tmp>:1------> 3nqp::say(nqp::islt_n(nqp::div_n(1e0,0e0)7⏏5, 0e0))» | ||
viki | nqp: nqp::say(nqp::islt_n(nqp::div_n(1e0,0e0), 0e0)) | ||
camelia | nqp-moarvm: OUTPUT«0» | ||
viki | nqp: nqp::say(nqp::islt_n(nqp::div_n(1e0,-0e0), 0e0)) | ||
camelia | nqp-moarvm: OUTPUT«1» | ||
viki | Don't need an op. ^ that is pretty obvious (compared to atan2) | ||
wc | |||
01:05
sufrostico left
01:06
labster joined
01:10
kyclark_ joined
01:12
adu joined,
kyclark_ left
01:14
finanalyst joined
01:18
pierre__ joined,
pierre__ left,
pierre__ joined
01:19
pierre__ left
01:21
labster left
01:30
Sgeo__ joined
|
|||
viki is rocking to youtu.be/TGDbkrWXzhw?t=43m39s | 01:31 | ||
01:31
Sgeo_ left
|
|||
viki | Hacking Party \o/ | 01:31 | |
01:37
avalokite joined,
avalokite left
01:46
labster joined
|
|||
viki | m: say IO::Handle ~~ Cool | 01:48 | |
camelia | rakudo-moar 15f51a: OUTPUT«False» | ||
viki | Is printf(IO::Handle:D, Cool:D $format, *@args) candidate a bad idea? that's adding to current candidate printf(Cool:D $format, *@args) | 01:50 | |
MasterDuke | (this is not an answer to your question) i have no idea why some things are Cool and others aren't | 01:51 | |
viki | Cool things make sense as both a number and a string | ||
01:52
labster left
|
|||
MasterDuke | yeah, i'm actually bothering to read the documentation | 01:52 | |
viki | .oO( TFW you're scrolling through old logs and wondering if that nick is Zoffix... ) |
||
01:53
adu left
|
|||
viki | I'm basically wanting to add IO::Handle printf, because the current docs make me cry ( docs.perl6.org/routine/printf ) | 01:53 | |
And to mirror the IO interface, it'd make sense that the printf() sub can do filehandles too. | 01:54 | ||
MasterDuke | FWIW, Perl 5 printf takes a filehandle | ||
viki | I think we had a similar talk about comb() | ||
Alright, so there's some exisitng precedent/expectations for my idea. | 01:55 | ||
MasterDuke | comb()ing a filehandle? | ||
viki | Nah, defaulting for comb 'fooo' to be comb 1, 'foo' or something like that | ||
MasterDuke | seems reasonable | 01:57 | |
viki | At the end it was ruled that was too magical | 01:58 | |
MasterDuke | don't know how it's any less magical than 'foo'.comb | 01:59 | |
02:04
BenGoldberg joined
|
|||
zilti | did someone succeed to install rakudo on netbsd? | 02:15 | |
ugexe | i installed rakudo on netbsd on a raspberry pi months ago | 02:18 | |
zilti | I always get a segfault when compiling, not sure if it's rqp or MoarVM | 02:19 | |
02:24
kalkin-_ joined,
kalkin- left
|
|||
ugexe | are you asking us to guess, or waiting for someone to ask you to paste the output somewhere? | 02:25 | |
02:26
labster joined
02:27
kalkin-_ is now known as kalkin-,
wamba left
|
|||
viki | option c: debug on your own and submit a PR fixing the issue \o/ | 02:34 | |
02:38
bjz_ joined,
araujo left
02:39
araujo joined
02:40
bjz left
|
|||
zilti | ugexe, viki: ah, I did open a ticket: github.com/MoarVM/MoarVM/issues/441 | 02:43 | |
viki | Thanks! | ||
timotimo | can we actually work with the core dump? | 02:45 | |
like, if we don't have a netbsd of our own? | |||
02:46
ilbot3 left
|
|||
zilti | Uh. Good question. I have no idea what's actually in the core dump. | 02:47 | |
ugexe | its easier to debug on your own if you know the compiler/3rd party libraries/etc | ||
02:47
ilbot3 joined
|
|||
timotimo | it'd be a good first step if you could just gdb --args the_full_commandline_here, and just "bt full" when it reaches the crash | 02:48 | |
also, i'm not sure if valgrind runs on netbsd, but it probably does. so try to run "valgrind the_full_commandline_here" and give us the output | |||
that'd be good | |||
zilti | Ok, will do that! Thanks | 02:51 | |
02:53
labster left
|
|||
timotimo goes to bed | 03:02 | ||
03:06
nchambers joined
|
|||
samcv | how can I make attributes inherited by other classes? | 03:07 | |
the methods get inherited but I would like to access the data without having to copy a large data structure back and forth each time. is this possible? | |||
timotimo | private attributes are private to the one class only, derived classes can use the method accessors | ||
using the accessors doesn't force you to copy stuff around, though | 03:08 | ||
seatek | you have to use $.varname | ||
samcv | ok, can i write to the variables though? | ||
seatek | you have to use $.varname is rw | ||
samcv | yeah ok | ||
hmm. but what if i only want inheriting classes to use it and not the main program? | |||
timotimo | if you don't want the attribute to be publically writable, you can have a private accessor method and call that from subclasses | ||
i think | |||
samcv | how do I do that timotimo ? | 03:09 | |
seatek | yeah i haven't found a nice way to do that yet | ||
samcv | ah | ||
i'll just use `is rw` for now | 03:10 | ||
timotimo | m: class Parent { has $.attr; method !dothething is rw { $!attr } }; class Child is Parent { method do-evil-magic($a) { self!Parent::dothething = $a } }; my $c = Child.new(); say $c.attr; $c.do-evil-magic(42); say $c.attr | ||
camelia | rakudo-moar 2efeda: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Cannot call private method 'dothething' on package Parent because it does not trust Childat <tmp>:1------> 3evil-magic($a) { self!Parent::dothething7⏏5 = $a } }; my $c = Child.new(); say $c.a …» | ||
seatek | purists seem to believe you should never be able to access attributes | ||
timotimo | okay, not like that. | ||
seatek | except through methods | ||
timotimo | private attributes are for separating your logic from the API your class provides | ||
seatek | and i haven't found a good way to "override" the "automatic" accessors created for attributes | ||
samcv | well seatek i am inheriting methods. and the base class holds the data, but | 03:11 | |
but most methods aside from loading/unloading and such are in the dependent classes | |||
timotimo bedtime for real | |||
samcv | night | ||
seatek | hehe | ||
nite nite | |||
samcv | hmm is it threadsafe though to do .data{'something'} = 'something else'; in a dependent class? | 03:12 | |
seatek | yeah i've just been doing those as $.vars | ||
samcv | i know it isn't from the main program | ||
seatek | that i do not know | ||
03:13
cibs left
|
|||
samcv | hmm i guess i could abstract more... but | 03:13 | |
seatek | i'm pretty sure it would be though | ||
samcv | wanted my base class to not be specific to what the data was | ||
and only load/unload | |||
seatek | you could do that with roles if i'm remembering right | ||
samcv | ugh no wait that makes it way too complex | 03:14 | |
since the datatypes are all different. at least the structures | |||
03:14
cibs joined
|
|||
seatek | m: role R { has $!var = 5; }; class C does R { method test() { say $!var }; }; my $c - C.new; $c.test; | 03:16 | |
camelia | rakudo-moar 2efeda: OUTPUT«WARNINGS for <tmp>:Useless use of "-" in expression "my $c - C.new" in sink context (line 1)Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1Cannot resolve caller Numeric(C: ); none of these signatures m…» | ||
seatek | i hate this one-line thing | 03:17 | |
viki | m: role R { has $!var = 5; }; class C does R { method test() { say $!var }; }; my $c = C.new; $c.test; | ||
camelia | rakudo-moar 2efeda: OUTPUT«5» | ||
seatek | yes that's it :) | ||
thanks viki | 03:18 | ||
BenGoldberg | It doesn't have to be one-line. Stuff your code in a gist, and then type m: url | ||
seatek | it's like stuff you "inherit" from roles are "copied" into your parent class | ||
viki | seatek: the roles get inlined into the class, yeah | ||
seatek | so you can get away with makign your base class have private attributes if you use roles | ||
viki: yeah :) i really like that feature. i've been loving the way you can use roles | 03:19 | ||
samcv: that make sense? if you just throw your base class "holder" vars into role Base::Blah instead of class Base::Blah then you've got what you want | 03:21 | ||
samcv | nice | 03:22 | |
03:22
araujo left
|
|||
seatek | i think of roles like templates or macros that get copied in | 03:22 | |
03:22
araujo joined,
araujo left
03:23
araujo joined
|
|||
seatek | BenGoldberg: ooo! I didn't know we do that :) | 03:25 | |
samcv | ah yeah seatek that's what i wanted, roles | 03:26 | |
want it to inherit like everything. though maybe not submethods tho idk at this point because not using those | |||
since all the objects are using 100% of the functions of the base class | |||
03:27
noganex joined
|
|||
seatek | you can slice those up too if you want to clear them out and organize them a bit, and just bring in multiple roles | 03:27 | |
samcv | so inheriting objects are actually two objects? and roles are one object that takes the parent and adds to it? | ||
well idk 'two objects' but it doesn't inherit private attributes and state right? | 03:28 | ||
but multiple layers of it that are seperate | |||
seatek | classes pay attention to that attribute scoping | ||
roles just copy the code ;) | |||
samcv | cool | ||
03:30
noganex_ left
|
|||
seatek | oh you migth want to watch out for collisions though -- when you use roles if you use the same names in what roles them in... it's fatal | 03:30 | |
classes override the same names, roles explode horribly | |||
i have found that particularly vexxing on more than one occasion | 03:31 | ||
but i'm a slob | |||
samcv | m: my role test { has $!thing = 10; }; my class test2 does test { method get { $!thing++; return $!thing; } }; my test2 $classy; $classy.get.say; | ||
camelia | rakudo-moar 4663d4: OUTPUT«Cannot look up attributes in a test2 type object in method get at <tmp> line 1 in block <unit> at <tmp> line 1» | 03:32 | |
samcv | hmm this doesn't work | ||
or. uh did i not call .new | |||
m: my role test { has $!thing = 10; }; my class test2 does test { method get { $!thing++; return $!thing; } }; my $class = test2.new; $classy.get.say; | |||
camelia | rakudo-moar 4663d4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$classy' is not declared. Did you mean '$class'?at <tmp>:1------> 3rn $!thing; } }; my $class = test2.new; 7⏏5$classy.get.say;» | ||
samcv | m: my role test { has $!thing = 10; }; my class test2 does test { method get { $!thing++; return $!thing; } }; my $classy = test2.new; $classy.get.say; | ||
camelia | rakudo-moar 4663d4: OUTPUT«11» | ||
samcv | hmm ok that worked | ||
viki | m: role test { has $!thing = 10; }; class :: does test { method get { $!thing++; return $!thing; } }.new.get.say; | 03:33 | |
camelia | rakudo-moar 4663d4: OUTPUT«11» | ||
viki | m: role test { has $!thing = 10; }; class :: does test { method get { ++$!thing } }.new.get.say; | ||
camelia | rakudo-moar 4663d4: OUTPUT«11» | ||
ugexe | m: role Foo { method test { say $?CLASS } }; role Bar { method test { say $?CLASS } }; class Impl does Foo does Bar { }; Impl.new.test # is this what you were trying to do? | ||
camelia | rakudo-moar 4663d4: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Method 'test' must be resolved by class Impl because it exists in multiple roles (Bar, Foo)at <tmp>:1» | 03:34 | |
seatek | no we like to use code that actually works ;) | ||
samcv | ugh for some reason the same thing that worked in a simpler example isn't working in my code | 03:36 | |
seatek | that's just the universe punishing you for something | ||
samcv | saying it's not declared in the dependant class | 03:37 | |
that `does` that role | |||
yes seatek that is it | |||
though one difference is i don't initialize the attribute like i did with camelia | |||
seatek | you defined the role yeah? and use'd it or have it in thet same file yeah? | 03:38 | |
samcv | yes | 03:39 | |
seatek | i think it wants to come before the class too if i'm remembering right (like compile order is important) | ||
or i may be hallucinating | |||
samcv | gist.github.com/2eea11092a4e2ce092...9da9327f9f here is the relevant code | 03:40 | |
well this file should be able to standalone probably | |||
so yeah. it gives that error | 03:41 | ||
Attribute $!hash not declared in class history-class | |||
seatek | what if you take away the my's | 03:42 | |
samcv | nope seatek. tried that already ;) | 03:43 | |
ugexe | s/$!hash/%!hash/ | ||
samcv | omg | 03:44 | |
seatek | ha!! :) | ||
samcv | !!! | ||
seatek | ugexe: good eye! :) | ||
samcv | magic! | ||
dudz | what's a word that means priority but the top of the list is the lowest priority? | 03:48 | |
ugexe | a stack? | 03:49 | |
last in, first out | |||
dudz | thats how stacks work? | 03:50 | |
so i could call my list a stack list, and that would mean what i typed above? | |||
TEttinger | not sure what priority means here | ||
ugexe | if you can replace priority with order | ||
dudz | yeah its really just in which order i want to run something | 03:51 | |
i'm trying to find a nice and tidy comment title for something | |||
ugexe | LIFO and FIFO are common terms | ||
TEttinger | LIFO and FIFO are two common terms when you are talking about the order things go in and are taken out. LIFO=last in first out, FIFO=first in first out | ||
stacks are LIFO, queues are FIFO | 03:52 | ||
geekosaur | generally priority in this context is for when things are added in indeterminate order but should be taken out in a particular order. (priority queues, priority search queues) | 03:53 | |
dudz | yeah, i have a list of values, and they can come in any order, but when i find them i want to compare and sort based on the least important so i can treat them with cruelty | 03:56 | |
geekosaur | I don't think there's a pqueue in the ecosystem yet | ||
oh, hah. github.com/hoelzro/p6-priorityqueue | 03:57 | ||
04:03
khw left
04:05
labster joined
|
|||
seatek | did i hear someone say that stuff use'd is going to be lexically scoped soon, so that something use'd in one place will need to be use'd again in another if it's needed there too? | 04:14 | |
and if i did hear that, was it true? | |||
geekosaur | if your'e doing a use inside an inner scope instead of at file scope, I'd expect the result to be restricted to that scope, yes | 04:15 | |
ugexe | m: { use Test; ok 1; }; { ok 1 } | ||
camelia | rakudo-moar 0a874f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routine: ok used at line 1» | ||
geekosaur | perl 5, and in fact most other languages that allow imports at scopes inner to a file/compunit, work the same way | 04:16 | |
seatek | gosh i must already be compensating for it | ||
in perl5 if i used a file in one file -- say some library... and another library needed that file, i'd never get an error, because it was like, that file got interpreted once, and was useable everywhere then... within the same running program. i swear it was like that | 04:18 | ||
MasterDuke | nine is/was working on lexical module loading, don't remember if that got committed already | 04:19 | |
geekosaur | perl 5 does use in two steps. if you always use qualified names from it, only the load step is needed. for unqualified names, there also needs to be an import step which is scoped | ||
note that use foo; my $x = Foo->new; (perl 5) it's actually a fully qualified name, so no import is needed and it's available everywhere. | 04:20 | ||
seatek | MasterDuke: that will be The Way Things Are when it gets committed then? | ||
MasterDuke | believe so | ||
seatek | k | 04:21 | |
geekosaur | (but in perl 6 there are more scopes, so I'm not sure the equivalent would do that) | ||
seatek | i'll just keep my lists of use'es very very long | 04:22 | |
geekosaur | mm, actually I think it will. so if you are looking for classes from the "use"d module, it will work; if you are looking for subs from it (as opposed to methods), you need to "use" in each scope where you need them | ||
seatek | yieah | ||
04:24
cibs left,
vendethiel left
|
|||
seatek | why would anyone want to do a "unit class ...." rather than a "class ..." | 04:24 | |
just to make conversions easier? | |||
MasterDuke | the commit messages here have some more info github.com/rakudo/rakudo/tree/lexi...odule_load | ||
04:25
cibs joined
|
|||
MasterDuke | so everything isn't indented one extra level perhaps | 04:25 | |
viki | seatek: saves an indent level, if that class is all you got in the file: github.com/zoffixznet/perl6-App-No...ste.pm6#L1 | ||
seatek | hehe - ok. Cuz wherever i see it being used, it looks suspicously like it used to be a "package" with lots of subs | 04:28 | |
geekosaur | wouldn't surprise me if that were the most common current usage | 04:29 | |
04:32
kyclark_ joined
04:38
giraffe left,
ugjka joined
04:45
giraffe joined
04:46
adu joined
05:08
Cabanossi left
05:10
Cabanossi joined
05:11
TimToady left,
TimToady joined
05:20
perlawhirl left,
perlawhirl joined
05:29
aborazmeh left
05:35
eisen74 joined
05:48
adu left
05:57
eisen74 left
06:19
xtt2 joined
06:23
domidumont joined
06:27
domidumont left
06:28
domidumont joined
|
|||
ZzZombo | Do hashes still return things in random order? | 06:30 | |
TEttinger | why wouldn't they? | 06:36 | |
06:37
bjz_ left
|
|||
TEttinger | a hash function returns a seemingly-random value that is determined by the thing being hashed | 06:37 | |
ZzZombo | because that is stupid not to have a way to disable it on selected hashes. | 06:38 | |
TEttinger | I don't know enough perl6 to be able to answer about the current implementation. most programming languages have the default hash, dictionary, map, whatever they call it have unpredictable ordering; some use actually random ordering because it can be faster and the order of an unordered data structure shouldn't be relied upon. many languages have extra data structures that combine a list and hash | 06:41 | |
this can be called an ordered hash/map/dictionary, insertion-ordered whatever, Java for some reason calls it LinkedHashMap | |||
they aren't the default for memory usage reasons; the list has memory costs in addition to the normal hash's memory usage. they are better in other ways. | 06:43 | ||
06:43
pierre__ joined,
pierre__ left,
pierre__ joined
|
|||
TEttinger | (also adding or removing needs changing both the hash and list) | 06:43 | |
viki | ZzZombo: there is a way to "disable" it.... .sort | 06:49 | |
ZzZombo | But usually when you have such sort of a problem to solve, it meanss you wanna the order intact. | ||
06:56
kyclark_ left
|
|||
TEttinger | viki, yeah, insertion-ordering and sorting are a weirdly partly-overlapping thing | 07:03 | |
07:06
xiaomiao left
07:09
xiaomiao joined
07:22
perlawhirl left
07:24
CIAvash joined
|
|||
dalek | c: 848a53d | gfldex++ | doc/Type/Method.pod6: tell that the invocant defaults to self and how to call a free floating |
07:26 | |
synopsebot6 | Link: doc.perl6.org/type/Method | ||
ZzZombo | There is already an example "greeting".$m("hello"); | 07:28 | |
right above | |||
is it right? | 07:29 | ||
07:30
pierre__ left
07:33
solarbunny left
|
|||
dalek | c: d2e6925 | gfldex++ | doc/Type/Method.pod6: link to Routine |
07:34 | |
synopsebot6 | Link: doc.perl6.org/type/Method | ||
c: 554c148 | gfldex++ | doc/Type/Method.pod6: link to Signature |
|||
synopsebot6 | Link: doc.perl6.org/type/Method | ||
07:34
solarbunny joined
|
|||
gfldex | ZzZombo: yes, but with an anonymous method and as such differently invoced. | 07:35 | |
07:40
travis-ci joined
|
|||
travis-ci | Doc build errored. Wenzel P. P. Peppmeyer 'link to Signature' | 07:41 | |
travis-ci.org/perl6/doc/builds/179005566 github.com/perl6/doc/compare/848a5...4c148c089c | |||
07:41
travis-ci left
|
|||
ZzZombo | wut | 07:47 | |
dalek | c: acc5d53 | gfldex++ | doc/Type/Signature.pod6: link to Method and Sub |
07:51 | |
synopsebot6 | Link: doc.perl6.org/type/Signature | ||
gfldex | the SSL module comes with a heisentest | ||
07:54
BenGoldberg left
08:00
geekosaur left
08:01
geekosaur joined
08:02
RabidGravy joined
08:04
skids left
08:08
bjz joined
08:13
travis-ci joined
|
|||
travis-ci | Doc build passed. Wenzel P. P. Peppmeyer 'link to Method and Sub' | 08:13 | |
travis-ci.org/perl6/doc/builds/179006641 github.com/perl6/doc/compare/554c1...c5d53626cc | |||
08:13
travis-ci left
08:14
firstdayonthejob joined
08:16
cibs left
08:17
cibs joined
|
|||
ZzZombo | what was the reverse of 'so' again? | 08:20 | |
RabidGravy | you mean 'not' ? | 08:23 | |
haven't had much coffee yet, struggling with what reverse means in this case :) | 08:24 | ||
08:28
pmurias joined
|
|||
pmurias | ZzZombo: how do you want the hashes to order things? | 08:29 | |
08:39
bjz_ joined
08:40
bjz left
|
|||
ZzZombo | in the same order you put them in | 08:52 | |
08:53
domidumont left
|
|||
RabidGravy | you would have to make your own Map class to do that | 08:53 | |
08:55
Tonik joined
|
|||
seatek | yeah on the very rare occation i've had to worry about that, i use arrays of hashes | 08:59 | |
09:02
pierre__ joined
09:09
TEttinger left
09:15
perlawhirl joined
|
|||
pmurias | ZzZombo: you will have to use a module for that | 09:26 | |
09:31
pierre__ left
09:33
pierre__ joined
09:35
rindolf joined
|
|||
pmurias | ZzZombo: the random ordering is not something that has been "stupidly" enabled without a way to turn it of, but the ordering you want would have to be implemented at a performance cost | 09:36 | |
09:39
Actualeyes left
09:40
Actualeyes joined
09:41
espadrine joined
|
|||
RabidGravy | I'm still struggling to find a way to "discover" the inner packages within something like "class A { class B { } }" | 09:41 | |
so e.g. in the compose of A I want to find 'B' (and any random inner classes that might be there) | 09:42 | ||
I'm sure there is a way to do this, I just can't determine the right pseudo package to monkey with | 09:43 | ||
09:49
vendethiel joined
09:51
FROGGS joined
|
|||
FROGGS | o/ | 09:52 | |
RabidGravy | boom | ||
09:53
Actualeyes left
|
|||
pmurias | ZzZombo: hopefully someone will write a module to implement your insertion ordered hashes but I don't think it will be added to the core | 09:56 | |
10:00
grondilu joined
10:02
xtt2 left,
grondilu left
|
|||
RabidGravy | doing it naively would be trivial, by just sub-classing Hash with an over-ride on AT-KEY and ASSIGN-KEY to keep the insertion order | 10:02 | |
and then whichever of the .keys, .values, .pairs are required | 10:03 | ||
10:04
labster left
10:18
pierre__ left
10:27
wamba joined
10:36
pierre__ joined
|
|||
perlawhirl | ZzZombo: github.com/zostay/perl6-ArrayHash | 10:40 | |
from the description: "You can think of this as a Hash that always iterates in insertion order or you can think of this as an Array of Pairs with fast lookups by key." | 10:41 | ||
10:45
pierre__ left
10:48
bjz_ left
10:51
bjz joined
10:53
canopus left
11:00
CIAvash left
|
|||
RabidGravy | I think my earlier question can be arranged as, is there a way of doing: | 11:01 | |
m: class A { class B {}; say A::.values } | |||
camelia | rakudo-moar 7c5ea3: OUTPUT«((B))» | ||
11:01
canopus joined
|
|||
RabidGravy | but where you don't know A in advance and have been handed it in a variable | 11:02 | |
or does it only work with the type name like that | 11:03 | ||
obviously I can do it in an EVAL but there's nasty | |||
FROGGS | m: class A { class B {}; say A::.values }; my $a = A.new; say $a.WHAT::.values | 11:04 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«((B))()» | ||
FROGGS | m: class A { class B {}; say A::.values }; my $a = A.new; say ::($a.WHAT)::.values | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«((B))Use of uninitialized value of type A in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1No such symbol '' in block <unit> at <tmp> line 1Ac…» | ||
RabidGravy | ah | ||
FROGGS | m: class A { class B {}; say A::.values }; my $a = A.new; say ::($a.^name)::.values | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«((B))()» | ||
FROGGS | hmmm | ||
RabidGravy | duh me | ||
FROGGS | m: class A { class B {}; }; my $a = A.new; say $a.WHAT:: | 11:05 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«(A)» | ||
FROGGS | no idea why it doesnt print B | 11:06 | |
RabidGravy | yeah that's what I've been seeing | 11:07 | |
FROGGS | m: class A { class B {}; }; my $a = A.new; say A::.values; say $a.WHAT.::.values | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«===SORRY!===MVMArray: Can't pop from an empty array» | ||
FROGGS | sad that there is no B in that sentence either :P | ||
RabidGravy | I think I'll go with the EVAL in the first instance | 11:08 | |
in the whole scope of the rabbit hole I'm going down that's fairly sane | 11:09 | ||
11:09
CIAvash joined
11:10
CIAvash left
11:14
domidumont joined
11:27
xfix left
11:31
xfix joined
11:39
domidumont left
11:41
Actualeyes joined
11:46
pierre_ joined
11:49
Lucas_One joined
11:51
CIAvash joined,
pierre_ left
11:54
perlawhirl left
|
|||
ZzZombo | why is there Str.chop() but no something to remove characters from the start? | 12:14 | |
nine | MasterDuke: plan is that it will behave like this: { { use Foo; Foo.new; #`(Foo found and works) }; Foo.new #`(There's no Foo in this scope, so we throw an error here) } | ||
12:15
CIAvash left
|
|||
nine | seatek: ^^^ | 12:16 | |
ZzZombo | m: put 'String'.substr(2,*-1) | 12:18 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«rin» | ||
ZzZombo | m: put 'String'.substr(2) | 12:19 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«ring» | ||
ZzZombo | how does it evalute *-1 into an actual index? | 12:20 | |
jnthn | *-1 is just a function -> $x { $x - 1 }, and it calls the function with .chars of the string | 12:21 | |
seatek | nine: thank you for the confirmation. i've been coding for that, so i'm happy i haven't been typing extra for no good reason! :) | ||
ZzZombo | is it built-in into the function itself or black compiler magic? | ||
jnthn | Part of the method definition | ||
lizmat | m: 'string'.substr(2, { .say; 1 } ) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«4» | ||
jnthn | You can pass any code object there, as lizmat showed | 12:22 | |
lizmat | m: 'string'.substr(0, { .say; 1 } ) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«6» | ||
ZzZombo | hm, the definitions look rather ordinarily. Nothing says they accept Callables. | ||
jnthn | m: my $s = * - 1; say $s(4); say $s(43) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«342» | ||
ZzZombo | unless they are simplified on purpose in the docs, or something. | ||
12:23
firstdayonthejob left
|
|||
jnthn | m: Str.^lookup('substr').candidates>>.signatures.say | 12:23 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«No such method 'signatures' for invocant of type 'Method' in block <unit> at <tmp> line 1» | ||
jnthn | m: Str.^lookup('substr').candidates>>.signature.say | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«((Cool $: $from, $length?, *%_))» | ||
jnthn | Hm, maybe the magic happens inside of there | ||
oh | 12:24 | ||
12:24
bjz_ joined
|
|||
jnthn | m: say &substr.candidates>>.signature | 12:24 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«((Str:D \what, Int:D \start) (Str:D \what, Callable:D \start) (Str:D \what, Int:D \start, Int:D \want) ($what, \start, $want?))» | ||
seatek | nine: it's a big change. but the sooner the better i say. less carnage to clean up. | ||
12:25
bjz left
|
|||
ZzZombo | The return value of your trait_mod is ignored, isn't it? | 12:28 | |
jnthn | Yup | ||
lizmat | jnthn: fwiw, substr is one of the few cases where the logic is in the sub, not in the method | 12:29 | |
this is contrary to most other sub/method duals | |||
jnthn | Indeed. Should probably be fixed at some point. | ||
lizmat | do you know if there is a specific reason to do it like that? | ||
ok, I'll put it on my list then | |||
jnthn | I seem to recall arguing against it being that way before :) | ||
lizmat | well, performance would come to mind | 12:30 | |
but otoh, that was probably before we had good MMD caching support | |||
jnthn | *nod* | ||
But yeah, it'll get in the way of us doing Cat some day | |||
If the sub doesn't delegate to the method | 12:31 | ||
Probably same story for when we improve Uni and friends | |||
lizmat | ok | ||
jnthn | So worth fixing | ||
lizmat | oki, need to finish up native shaped array opts first | 12:32 | |
jnthn | :) | ||
lizmat | 1+dim .STORE specifically :-) | ||
jnthn | Nice | 12:35 | |
Lunch, then I'll see if I feel like a SEGV hunt this afternoon... | |||
pmurias | jnthn: re mutators blog post, are those even used commonly enough that syntax sugar instead of Proxy is required? | ||
12:36
pierre_ joined
|
|||
jnthn | pmurias: Syntax sugar in that area has been suggested/requested more than once in the past, and I wrote the post to have a good place to point people at as to why we don't provide it and don't plan to. | 12:39 | |
RabidGravy | is there any way of allowing a parameterized class definition like "class Foo[whatever] { }" assuming I'm already monkeying with the MOP? | ||
seatek | roles do that.. different from roles? | 12:40 | |
RabidGravy | yeah different to roles | ||
actually as part of the definition | |||
seatek | are you never satisfied? ;) | 12:41 | |
MasterDuke | jnthn: your post reminded me of Steve Yegge's post about the kingdom of nouns vs verbs, but i haven't read it recently enough to know if they really are similar. are you familiar with it? and if so, are they related? | ||
RabidGravy | nope :) I could achieve the intent with a trait but it would be overly verbose in the circumstance | 12:43 | |
jnthn | RabidGravy: You can implement method ^parameterize like Array does | 12:44 | |
RabidGravy: In short: no, classes aren't parametric, but at the meta level what is parametric or not simply boils down to "does the meta-object respond to .parameterize", so if you're willing to interpret that and make it mean what you'd like it to mean, you're in with a chance :) | 12:46 | ||
seatek | it's unnatural | 12:47 | |
RabidGravy | right so adding a role to the meta object with parameterize should do the job | 12:48 | |
jnthn | MasterDuke: It's been a while since I read that post also. :) | ||
RabidGravy | let's see | ||
gfldex | RabidGravy: please provide code if possible, this may be ENODOC | 12:49 | |
jnthn | MasterDuke: I think it was getting at a slightly different point than my main point, though my notes on us not stigmatizing procedural programming likely relate. | ||
MasterDuke: Though I think lack of first class functions was also a moan of the kingdom of nouns post too | 12:50 | ||
Curiously, Java has actually got those at long last :) | |||
MasterDuke | yeah, i should read it again and see how much things are better | 12:52 | |
FROGGS | jnthn++ # blog | 12:53 | |
jnthn | I guess one of the things I've found a tad frustrating with Java (and C# to a degree too) is that in a well-meaning quest to get people to write good OO code, they made OO code the only code you could write. But OO isn't easy, and badly done OO tends to make things worse rather than better. | 12:55 | |
ZzZombo | so I'm generating a method dynamically, is it possible to change the invocant part of my method handler(Any:D: $self,|c) from Any:D to a $class:D that I know only from a string? | 12:56 | |
jnthn | It's like autotune. When every single pop song is using it, it all becomes a bit naff. :P | ||
lunch; bbl :) | 12:58 | ||
13:01
pierre_ left
13:10
cdg joined,
wamba left
|
|||
nine | First draft of lexical module loading docs: gist.github.com/niner/70f7b46eefb7...6bea11efeb | 13:14 | |
Comments/suggestions/patches very welcome :) | |||
13:14
AlexDaniel joined
13:21
perlawhirl joined
|
|||
ZzZombo | method eager(Seq:D:) returns Bool:D | 13:24 | |
Returns an eagerly evaluated List based on the invocant sequence | |||
wut | |||
perlawhirl | m: say 1..10 | 13:26 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«1..10» | ||
perlawhirl | m: say eager 1..10 | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«(1 2 3 4 5 6 7 8 9 10)» | ||
perlawhirl | it eagerly evaluates a lazy list | ||
oh i just saw your first message... are you questioning the Bool thingy | 13:30 | ||
ZzZombo | yes | ||
perlawhirl | umm yeh... that looks wrong | ||
timotimo | that's why it's in boldface :) | 13:31 | |
perlawhirl | timotimo: thanks | 13:32 | |
ok... text appearance setting in my term emulator had boldface disabled | 13:34 | ||
i see it now | |||
timotimo | oh, interesting | ||
perlawhirl | ecureCRT | 13:35 | |
i dunno what happened to the S... SecureCRT | 13:36 | ||
13:40
Tonik left
|
|||
AlexDaniel | ah no | 13:41 | |
let's see | |||
ZzZombo | if I have sub x($blah,|c), how do I refer to c in the body? | 13:43 | |
just |c? | |||
RabidGravy | well just c | ||
ZzZombo | hm | ||
RabidGravy | it's a Capture object | ||
so e.g. | |||
ZzZombo | "Inside a Signature, a Capture may be created by prefixing a sigilless parameter with a vertical bar |. This packs the remainder of the argument list into that parameter." <-- why does it have to be sigilless? | 13:44 | |
RabidGravy | m: sub foo(|c) { say c.list }; foo("ab"); | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«(ab)» | ||
13:44
pierre_ joined
|
|||
ZzZombo | RabidGravy: thanks! | 13:44 | |
timotimo | what happens if you call it |$foo? | 13:45 | |
dalek | c: 97836f7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Type/Seq.pod6: Seq.eager does not return a Bool It is a List for sure |
||
synopsebot6 | Link: doc.perl6.org/type/Seq | ||
timotimo | m: sub x(|$foo) { say $foo.perl }; x(1, 2, 3, :5lol) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Obsolete use of | or \ with sigil on param $fooat <tmp>:1------> 3sub x(|$foo7⏏5) { say $foo.perl }; x(1, 2, 3, :5lol) expecting any of: shape declaration» | ||
timotimo | ah, that's why, i suppose | ||
RabidGravy | fairly good reason :) | 13:46 | |
AlexDaniel | ZzZombo: ok, I think the Bool thingy is wrong indeed, so I fixed it | ||
ZzZombo | eh, why is it obsolete? | ||
AlexDaniel | ZzZombo: thanks for reporting | ||
ZzZombo | doing my part | ||
AlexDaniel | well, you probably meant @foo? | ||
without a question mark though :) | |||
commit: pre-glr sub x(|$foo) { say $foo.perl }; x(1, 2, 3, :5lol) | 13:50 | ||
committable6 | AlexDaniel, gist.github.com/cfeb632a353ec6120a...14c8ea6588 | ||
AlexDaniel | commit: all sub x(|$foo) { say $foo.perl }; x(1, 2, 3, :5lol) | 13:51 | |
committable6 | AlexDaniel, gist.github.com/fee63950b0aaf947b2...1d0aff82cf | ||
AlexDaniel | does anybody have any idea? | ||
perlawhirl | about what... the 'Obselete' thing? | 13:52 | |
it's coming from a $/.CURSOR.panic() inside the Grammar for token parameter | 13:53 | ||
AlexDaniel | … do we still need it? | 13:54 | |
timotimo | depends. when was it not obsolete? what did it mean? | 13:55 | |
does anybody still remember? :) | |||
AlexDaniel | commit: all sub x(|$foo) { say $foo.perl }; x(1, 2, 3) | 13:56 | |
committable6 | AlexDaniel, gist.github.com/45770fc35b46dc7398...90ce153cc6 | ||
timotimo | i think it's been there for years | ||
perlawhirl | *shrug* generally captures are used when you don't want to unpack anything... typically to punt it elsewhere... maybe assigning a capture to a scalar is bad because you giving it a container/shape | ||
AlexDaniel | it is a pre-moar thing | ||
14:00
bjz_ left
14:03
pierre_ left
14:04
andrzejku joined
|
|||
ZzZombo | Quoted method name requires parenthesized arguments. | 14:05 | |
return $self."%accessors<setter>"(c.kv.eager); <--here | |||
how to fix? | |||
AlexDaniel | hmmm what is $self? | 14:06 | |
ZzZombo | object | ||
AlexDaniel | I'm just wondering why not "self" | 14:07 | |
viki | m: my $self = 'FF'; my %accessors = setter => 'parse-base'; say $self."%accessors<setter>"(16) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«255» | ||
ZzZombo | because a Wizard made it so | ||
AlexDaniel | m: $self = ‘FF’; my %accessors = setter => ‘parse-base’; say $self."%accessors<setter>": 16 | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$self' is not declaredat <tmp>:1------> 3<BOL>7⏏5$self = ‘FF’; my %accessors = setter => » | ||
AlexDaniel | m: my $self = ‘FF’; my %accessors = setter => ‘parse-base’; say $self."%accessors<setter>": 16 | 14:08 | |
camelia | rakudo-moar 7c5ea3: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.at <tmp>:1------> 3se-base’; say $self."%accessors<setter>"7⏏5: 16» | ||
viki | m: my $self = 'FF'; my %accessors = setter => 'parse-base'; my \c = class { method kv { 16 } }; say $self."%accessors<setter>"(c.kv) | ||
camelia | rakudo-moar 7c5ea3: OUTPUT«255» | ||
viki | ZzZombo: can't reproduce. | ||
AlexDaniel | viki: well it's right there ↑ if you omit parens | ||
so it is just unparseable this way, use parens | |||
viki | AlexDaniel: yes and "fixing it" would be using parantheses, which ZzZombo's example does. | 14:09 | |
AlexDaniel | u: shrug | ||
unicodable6 | AlexDaniel, U+1F937 SHRUG [So] (🤷) | ||
ZzZombo | sorry, turned out there was a stray line indentical to that, guess I accidentally made a copy I didn't notice before. | 14:10 | |
AlexDaniel | \o/ | ||
u: raising | 14:12 | ||
unicodable6 | AlexDaniel, U+1F64B HAPPY PERSON RAISING ONE HAND [So] (🙋) | ||
AlexDaniel, U+1F64C PERSON RAISING BOTH HANDS IN CELEBRATION [So] (🙌) | |||
AlexDaniel | ok after a recent update all of these are rendered with a female character instead of a neutral smiley face or genderless human outline… great | 14:16 | |
I remember there was a person here trying to figure out which font is used to render a specific character | |||
viki | On my box they're rendered as a bald dude with a very sickly skin colour: i.imgur.com/VmLb0tS.png | 14:20 | |
AlexDaniel | 🤷🙋 | 14:21 | |
viki: I guess it is better than this: files.progarm.org/2016-11-26-16213..._scrot.png | |||
ZzZombo | Any help would be appreciated: | 14:23 | |
m: gist.github.com/ZzZombo/5caa51f9b2...556920a0d8 | |||
camelia | rakudo-moar bdc7a9: OUTPUT«("\$!name" => "name", Attribute.new, ("\$!name",))5===SORRY!5=== Error while compiling <tmp>Too many positionals passed; expected 4 arguments but got 5at <tmp>:58» | ||
AlexDaniel | viki: and obviously better than this: files.progarm.org/2016-11-26-16231..._scrot.png | ||
14:23
pierre_ joined
|
|||
ZzZombo | that's what I made for Delphi-like attribute accessors. | 14:24 | |
Except that error is in my way! | |||
viki | ZzZombo: what are :$handled [:$setter=True,:$getter=True] ? is that destructuring? | 14:25 | |
ZzZombo | Citing Sub.pod6: "Use destructuring to call traits with complex arguments.", so I guess so? | ||
timotimo | hack.p6c.org/~timo/mysterious_but_h...ess_binary - feel free to download and run this binary and guess why i'm pretty proud of it :) | 14:26 | |
viki, nine, others | |||
ZzZombo | timotimo: rusty click of the day? | ||
viki | ZzZombo: does it need a comma after $handled? | ||
timotimo | ZzZombo: i don't program in rust, though i'm intrigued about it | 14:27 | |
ZzZombo | timotimo: it was a pun on the word "risky" :) | ||
AlexDaniel | 🙌 | ||
timotimo | thought so | 14:28 | |
AlexDaniel | nope, didn't work | ||
ZzZombo | viki: I don't understand, do you ask if there should be a comma? | ||
viki | ZzZombo: yeah | ||
ZzZombo | I don't see one in the examples. | 14:29 | |
viki doesn't run random executables to guess why someone is proud | |||
AlexDaniel | timotimo: soo… that's moar | ||
timotimo | AlexDaniel: and? :) | 14:30 | |
AlexDaniel | timotimo: it's in a single binary file | ||
timotimo | well, yeah, moar is always only a single binary file | ||
except it usually has libmoar.so to go with it, which this one don't | |||
but that's not exciting at all | |||
viki | you made it relocatable? | ||
AlexDaniel | is it small or something? | 14:31 | |
viki | I'm just being asked if I want to open it with notepad.exe | ||
timotimo | viki: you're on windows, then? :\ | 14:32 | |
this isn't what i'd call "relocatable" | |||
AlexDaniel | :D | ||
viki | timotimo: I'll answer with a visual aid: i.imgur.com/GLz8lFK.png | 14:33 | |
:) | |||
timotimo | and at a whooping 15 megabytes, that's definitely not small | ||
AlexDaniel | SO WHAT DID YOU DO? | 14:34 | |
timotimo | fair enough. so you *can* run it :) | ||
AlexDaniel | :) | ||
14:34
pierre_ left
|
|||
viki | I don't want to | 14:34 | |
timotimo | trusting me or not is your choice, of course | ||
viki | I have bad experience with "harmless binaries" | ||
timotimo | yeah, okay, i'll spill the beans :( | ||
you're no fun | |||
viki | And even if I trust you, what if you messed up :) | ||
timotimo | you remember how people kept saying "it can't be done! you're crazy!" | ||
viki | no | 14:35 | |
timotimo | about putting a program into a single binary with the moar binary? | ||
viki | and your binary is a hello world packaged into a single binary? | ||
timotimo | no | ||
it's nqp packaged into a single binary | |||
viki | :o | ||
timotimo | unmodified nqp | ||
AlexDaniel | timotimo: how do I run it? | 14:36 | |
pmurias | timotimo: why are you trying to convince people to run binaries downloaded over unencrypted http? ;) | ||
timotimo | chmod +x it, ./ it | ||
AlexDaniel | ERROR: please be so kind and provide an arbitrary single commandline argument. | ||
timotimo | yes, do as it says please | ||
AlexDaniel | --help gives moarvm help | ||
viki | timotimo++ cool! | ||
timotimo | try "lol" or "wat" or "arbitrary" | ||
055af1619093f1812ee62df6c3e6dc17dc1c53b0 mysterious_but_harmless_binary | |||
sha1sum of the binary for pmurias | |||
AlexDaniel | Illegal instruction ? | 14:37 | |
timotimo | uh oh | ||
why is that? | |||
AlexDaniel | you remember how people kept saying "it can't be done! you're crazy!" | 14:38 | |
timotimo | turs out they just meant "it's illegal to do that"? | ||
viki | ZzZombo: you can add --ll-exception switch and it'll give you more stuff in the error | ||
AlexDaniel | no, but at least this particular binary does not seem to work :) | ||
timotimo | it can't give more info with Illegal instruction | ||
pmurias | timotimo: the binary should fire up a NQP REPL? | 14:39 | |
timotimo | that's a "the CPU is upset and kills your process" | ||
pmurias: if you don't give it an nqp script, yes | |||
viki | ZzZombo: and at a guess, you don't need $class in add_method | ||
ZzZombo: (from docs) method add_method(Metamodel::MethodContainer: $obj, $name, $code) <-- it has a colon after MetamodleMethodContainer, that indicates it's the invocant | 14:40 | ||
AlexDaniel | timotimo: soo… do I need to have it in a specific place or do I need to have some kind of a file around? | 14:41 | |
ZzZombo | what is $obj then? | ||
also that switch didn't really tell me anything. | |||
timotimo | AlexDaniel: can you gdb it? does the sha1sum match? what exactly are you doing to cause the error? | 14:42 | |
AlexDaniel | timotimo: sha1sum matches | ||
timotimo | you have a 64bit system? | ||
AlexDaniel | ./mysterious_but_harmless_binary lol | ||
Illegal instruction | |||
yes | |||
ZzZombo | oh wait | ||
viki | s: 42.HOW, 'add_method' | 14:43 | |
SourceBaby | viki, Something's wrong: ERR: X::Multi::NoMatch exception produced no message in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 33 in block <unit> at -e line 6 | ||
ZzZombo | if I look at the file names, it says "(C:\rakudo\share\nqp\lib/Perl6/Metamodel.moarvm:add_method)", so probably you are right. But still, the state of add_method is unclear. | ||
14:43
chris2 left
|
|||
timotimo | AlexDaniel: so ... gdb it, please? | 14:44 | |
viki | ZzZombo: looks like a typo in the docs. Should be add_method(Metamodel::MethodContainer $obj: $name, $code) | ||
14:44
cdg left
|
|||
viki | ZzZombo: oh, no, I see why it's written that way | 14:44 | |
ZzZombo | I think even better would be to use $class instead of $obj, the latter implies an instance rather than a type. | 14:45 | |
14:45
domidumont joined
|
|||
AlexDaniel | timotimo: anything specific? gist.github.com/AlexDaniel/91dd4da...7ad1e0ae99 | 14:45 | |
timotimo | "run lol" please | ||
viki | ZzZombo: you see, $foo.^add_method(<a b c>) is the same as $foo.HOW.add_method($foo, <a b c>) | ||
ZzZombo | viki: why? | ||
RabidGravy | it is an object | ||
viki | And in the docs the method is documented without the ^ | ||
ZzZombo | so the ultimate conclusion on the use of it? | 14:46 | |
AlexDaniel | oh, this is interesting | ||
ZzZombo | get rid of $class in param list? | ||
AlexDaniel | timotimo: gist.github.com/AlexDaniel/8b0a685...b2749f9394 | ||
viki | ZzZombo: yes | 14:47 | |
timotimo | AlexDaniel: but there's nothing special about that line? :\ | ||
oh! | |||
OH! | |||
haha, i'm silly | |||
ZzZombo | m: gist.github.com/ZzZombo/5caa51f9b2...556920a0d8 | 14:48 | |
camelia | rakudo-moar bdc7a9: OUTPUT«("\$!name" => "name", Attribute.new, ("\$!name",))5===SORRY!5=== Error while compiling <tmp>Missing blockat <tmp>:101------> 3<BOL>7⏏5<EOL>» | ||
timotimo | i configured my moar with -march=native | ||
ZzZombo | err | ||
viki | ZzZombo: what's with c.kv.eager? | 14:49 | |
m: gist.github.com/zoffixznet/21fff13...195ed2e2fe | |||
camelia | rakudo-moar bdc7a9: OUTPUT«("\$!name" => "name", Attribute.new, ("\$!name",))New name: Bob, old name: unnamed.A.new» | ||
timotimo | AlexDaniel: so since you don't have the exact same cpu as me, it probably uses some optimization-related instruction your cpu doesn't have | ||
AlexDaniel | timotimo: ok, fix it? | 14:50 | |
timotimo: and I'll run it again | |||
timotimo | yes, i'm uploading the new version now | ||
c37e662155612839aceb11a070c5a47a895dcf1e | |||
that's the new sha1sum, it's up at the same address as before | |||
viki | zoffix@VirtualBox:/tmp/tmp.HFcxxlx7fR$ ./mysterious_but_harmless_binary "wat" | 14:51 | |
> nqp::say("Hello world!") | |||
Hello world! | |||
> | |||
14:51
ugjka is now known as UgJkA
|
|||
AlexDaniel | nope | 14:52 | |
ok let's see | |||
ZzZombo | viki: thank you | ||
AlexDaniel | ah no | ||
it works! | |||
timotimo | hooray | ||
AlexDaniel | timotimo: IT WORKS!! IT WORKS!!!! | ||
ZzZombo | but what does '|' do exactly here? | ||
viki | ZzZombo: it's a slip | 14:53 | |
viki is in the middle of devouring chicken wings.... | |||
ZzZombo | bon appetite | ||
timotimo | AlexDaniel: i'm glad :) | 14:54 | |
14:56
CIAvash joined
|
|||
ZzZombo | viki: what do you think about the whole thing? Any possible improvements? | 14:56 | |
14:58
chris2 joined,
setty1 left
|
|||
ZzZombo | m: sub x('Str:D' $s){put $s};x('meow') | 15:01 | |
camelia | rakudo-moar bdc7a9: OUTPUT«Constraint type check failed for parameter '$s' in sub x at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
ZzZombo | m: sub x(Str:D $s){put $s};x('meow') | ||
camelia | rakudo-moar bdc7a9: OUTPUT«meow» | ||
ZzZombo | what does it attempt to do in the first case? | ||
timotimo | if there was no $s, it'd only match for 'Str:D' | ||
m: sub x('Str:D' $s){put $s};x('Str:D') | 15:02 | ||
camelia | rakudo-moar bdc7a9: OUTPUT«Str:D» | ||
timotimo | it clearly works the same way with a $s after it | ||
viki | ZzZombo: my %accessors=(setter=>$setter,getter=>$getter); can be written as my %accessors= :$setter, $getter; and if c.Bool {...} doesn't need a .Bool. Looks fine other than that, but I know nothing of MOP or traits | ||
timotimo | you missed a : before $getter | ||
viki | yeah | ||
ZzZombo | what line? | 15:03 | |
viki | 10 | ||
Oh, it was *I* who missed the : | |||
but the %accessors is on line 10 | 15:04 | ||
AlexDaniel | m: sub foo(25 $n) { dd $n }; foo 25 | ||
camelia | rakudo-moar bdc7a9: OUTPUT«25» | ||
ZzZombo | I don't see anything like that... ah | ||
AlexDaniel | I have never seen that | ||
titsuki | hi #perl6 | ||
Does [email@hidden.address] currently work ? I can't send a bug report. | |||
AlexDaniel | titsuki: it was working yesterday, I think | 15:05 | |
viki | titsuki: what happens when you do send something? | ||
titsuki | viki: it returns the following message: gist.github.com/titsuki/0f4e610ad5...6c9bfff965 | 15:06 | |
AlexDaniel | m: sub foo(True $n) { dd $n }; foo False | 15:07 | |
camelia | rakudo-moar bdc7a9: OUTPUT«Bool::False» | ||
AlexDaniel | bug or not? | ||
viki | m: sub foo(True) { dd 'meow' }; foo False | ||
camelia | rakudo-moar bdc7a9: OUTPUT«"meow"» | ||
viki | well, that certainly is :D | ||
AlexDaniel | OOPS | 15:08 | |
bisect: sub foo(True) { dd 'meow' }; foo False | |||
bisectable6 | AlexDaniel, On both starting points (old=2015.12 new=bdc7a91) the exit code is 0 and the output is identical as well | ||
AlexDaniel, Output on both points: "meow" | |||
TimToady | notabug | ||
m: say False ~~ True | |||
camelia | rakudo-moar bdc7a9: OUTPUT«Potential difficulties: Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead at <tmp>:1 ------> 3say False ~~ 7⏏5TrueTrue» | ||
viki | Sure, but it doesn't show that warning when used in sig. | ||
ZzZombo | m: sub foo(True $n) { dd $n }; foo 'KAABLAAAAM' | 15:09 | |
camelia | rakudo-moar bdc7a9: OUTPUT«Type check failed in binding to $n; expected Bool but got Str ("KAABLAAAAM") in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
TimToady | you're supposed to know the principle by the time you start writing multi-siggies :) | ||
AlexDaniel | well, not exactly | ||
viki | titsuki: lemme try to send one as a test... | 15:10 | |
titsuki | viki: thx! | ||
TimToady | .oO(humongous backlog is humongous) |
15:11 | |
ZzZombo | uh, I thought to call foo with such signature you would have to call it as foo <expression returning True> <Any> | ||
why does it bind parameters straight to $n? | 15:12 | ||
viki | titsuki: yeah, I got the same error | 15:17 | |
titsuki: what was the bug anyway? | |||
15:17
setty1 joined
|
|||
titsuki | viki: Here: gist.github.com/titsuki/11a483c0aa...8491698f51 | 15:19 | |
viki | :o | 15:20 | |
titsuki | viki: I'll try to send it later. thx! | ||
AlexDaniel | viki: so I guess I'll rakudobug it because there is no warning? | ||
viki | that looks scary :) | ||
AlexDaniel | viki: or should we just document it as a trap | 15:21 | |
viki | AlexDaniel: well, you can try, but RT is broken | ||
AlexDaniel: well, IMO it should warn, just like it does with regular smartmatch, but you also have TimToady's comments above... and well, Rule 1? :) | |||
AlexDaniel | f∞×↓⋆ng RT | 15:22 | |
ZzZombo | how can I get the default value for an attribute? | ||
TimToady is fine with a warning there too, for the record | |||
viki | \o/ | ||
TimToady | which is why I had a smiley above | ||
viki | AlexDaniel: titsuki: I emailed perlbug-admin at perl.org and the email seems to have gone through... so... let's wait | 15:23 | |
AlexDaniel | ok, Rule 1.1: Rule 1 does not apply if there is a smiley | ||
viki | :D | ||
ZzZombo | [23:10:55] <ZzZombo> uh, I thought to call foo with such signature you would have to call it as foo <expression returning True> <Any> | 15:28 | |
[23:11:54] <ZzZombo> why does it bind parameters straight to $n? | |||
anyone knows that? | |||
viki | ZzZombo: well, the True thing is wrong, since the thing uses smartmatch | 15:29 | |
ZzZombo: foo('meow' $n) {} ... on the other hand. That lets you specify an exact value $n must be for that sub to be called and, yeah, usually you wouldn't use $n (since you know what it should be), but I guess it works with it specified too | 15:30 | ||
15:30
araujo left
|
|||
ZzZombo | I meant this: | 15:31 | |
m: sub foo(True $n) { dd $n }; foo 'KAABLAAAAM' | |||
camelia | rakudo-moar bdc7a9: OUTPUT«Type check failed in binding to $n; expected Bool but got Str ("KAABLAAAAM") in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
ZzZombo | also, shouldn't there be a comma between the args? | ||
so many questions D: | |||
viki | m: multi n(τ) { "tau!" }; multi n(π){ "pi!" }; multi n { "meh, just $^n" }; say n $_ for π, 2*π, 42 | ||
camelia | rakudo-moar bdc7a9: OUTPUT«pi!tau!meh, just 42» | ||
viki | ZzZombo: think of it as sub foo(Bool $n) { dd $n }; foo 'KAABLAAAAM'; it'd blow up the same | 15:32 | |
and you don't need a comma | |||
except instead of a Bool you provide an exact value | |||
15:32
khw joined
|
|||
viki | (which also happens to be incorret in this case due to smartmatching) | 15:32 | |
ZzZombo | m: sub foo('13666' $n) { dd $n }; foo 'KAABLAAAAM' | 15:33 | |
camelia | rakudo-moar bdc7a9: OUTPUT«Constraint type check failed for parameter '$n' in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
ZzZombo | m: sub foo('13666' $n) { dd $n }; foo '13666' | ||
camelia | rakudo-moar bdc7a9: OUTPUT«"13666"» | ||
ZzZombo | I see | 15:34 | |
AlexDaniel | viki: I loved your comment, by the way | ||
viki: about cryogenic chamber | |||
viki | heh | ||
AlexDaniel | viki: you've missed some numbers in the amount of years though, I think | ||
viki shrugs | 15:35 | ||
AlexDaniel | digits I mean | ||
viki | it was 1AM :) | ||
AlexDaniel | yeah, you needed some sleep… | ||
viki: by the way, fwiw, commit messages are normally ≤ 72, not 80 | 15:37 | ||
viki | I'm a rebel ;) | ||
AlexDaniel | that's fine, but the lines wrap around weirdly even on github :) | ||
viki | At least until dalek stops cutting off commit messages that are X-lines long :) | 15:38 | |
seatek | they even go in and pick out all the extra invisible spaces you might have left in your files | ||
viki | Seem to wrap fine on my github: i.imgur.com/pB16vKx.png | 15:39 | |
seatek | i think they're... obsesive ;) | ||
AlexDaniel | viki: files.progarm.org/2016-11-26-17395..._scrot.png and files.progarm.org/2016-11-26-17401..._scrot.png | 15:40 | |
psch | getting frozen inside a cryogenics chamber is probably not particularly conductive to getting unfrozen anyway | 15:41 | |
viki | I see. | 15:42 | |
psch | 'cause, y'know, that's the science of achieving extremely low temperatures and the effect of those temperatures :P | ||
15:43
mscha joined
|
|||
psch | granted, only the cryonicists really care about the distinction | 15:43 | |
i'm not one, i'm too poor /o\ | |||
mscha | m: say (2..36).map({108.base($^b)}); # This works, but ... | 15:44 | |
camelia | rakudo-moar bdc7a9: OUTPUT«(1101100 11000 1230 413 300 213 154 130 108 99 90 84 7A 73 6C 66 60 5D 58 53 4K 4G 4C 48 44 40 3O 3L 3I 3F 3C 39 36 33 30)» | ||
mscha | m: say (2..36).map(108.base(*)); # ... why doesn't this? | ||
camelia | rakudo-moar bdc7a9: OUTPUT«Cannot resolve caller base(Int: Whatever); none of these signatures match: (Int:D $: Int:D $base, *%_) (Int:D $: Cool $base, $digits?, *%_) in block <unit> at <tmp> line 1» | ||
viki blasts www.youtube.com/watch?v=ndOi66foF7o and goes on another bug-fixing marathon | |||
psch | viki: ^^^ that's what i was thinking of wrt Whatever vs Block-closures! | 15:45 | |
viki | mscha: * when it's a term on its own turns into a Whatever, not WhateverCode | ||
psch | mscha: the Whatever binds to the base method call, hence you're calling 108.base(*) 35 times, and the first of those already doesn't work because Whatever isn't meaningful as a base | ||
15:46
cdg joined
|
|||
mscha | Thanks, viki, psch. | 15:46 | |
15:50
cdg left
15:57
wamba joined
15:58
kyclark_ joined
16:10
mxco86 left
16:11
araujo joined
16:17
seatek left
16:19
kyclark_ left
16:29
chris2 left
16:39
CIAvash left
16:40
mscha left
16:43
chris2 joined
|
|||
viki | grrr... need a faster box | 16:45 | |
I'm fixing bugs faster than spectest can finish... | |||
or, put another, way: I'm breaking too many things in my fixes that constantly fixing them and re-running spectest is annoying ^_^ | 16:47 | ||
16:49
cibs left
16:50
cibs joined
|
|||
AlexDaniel | viki: what about making rakudo faster? | 16:51 | |
:) | |||
viki | heh | ||
m: say 579 / 154 | 16:53 | ||
camelia | rakudo-moar bdc7a9: OUTPUT«3.759740» | ||
viki | my 24-core VM runs stresstest almost 4 times faster than my current box... That's a lot of making-rakudo-faster to do :) | ||
But I can't use Atom on that VM ('cause I ssh)... Can't win :( | 16:54 | ||
gfldex | viki: you can tunnel nfs via ssh | 16:57 | |
viki | What's nfs? Wasn't it a Windows file system or something? | 16:59 | |
RabidGravy | well a Sun file system | ||
viki | I tried sshfs, but Atom just freezes, 'cause I think it tries to read all the files to make things in its tree view or something | ||
AlexDaniel | I use sshfs a lot | 17:01 | |
but yes, if your editor does that kind of stuff then it is a problem | 17:03 | ||
viki: oh, another option is to rsync after you save | 17:14 | ||
viki | yah, worth tryingh | 17:15 | |
17:24
finanalyst left
17:26
firstdayonthejob joined
17:28
adu joined
|
|||
viki | m: dd Version.new("...|||||||.") | 17:31 | |
camelia | rakudo-moar 085145: OUTPUT«Version.new» | ||
viki | m: dd Version.new("...|||||||.") leg v6.c | ||
camelia | rakudo-moar 085145: OUTPUT«Order::Less» | ||
viki wonders how come bogus version strings in there don't just throw | |||
Like there's a condition for that case: # get "v" highlanderelse { self.new } | 17:32 | ||
17:32
Actualeyes left
17:33
telex left
17:34
telex joined
17:36
cdg joined
17:40
cdg left
|
|||
viki | Ah, I guess it's 'cause you can generally feed it any old slop and it'll make something sensible: | 17:41 | |
m: say Version.new("34\x[308]5:###meow77.|[43") | |||
camelia | rakudo-moar 938d4d: OUTPUT«v34̈5.meow.77.43» | ||
geekosaur | fsvo sensible | 17:42 | |
viki | m: use v34̈5.meow.77.43 | 17:43 | |
camelia | rakudo-moar 938d4d: OUTPUT«===SORRY!===Error encoding ASCII string: could not encode codepoint 776» | ||
FROGGS | hehe | 17:45 | |
good CATch | 17:46 | ||
viki | It was Zefram, actually. I'm debugging 'it :) | ||
vendethiel | .u ĐÐ | 17:48 | |
yoleaux | U+00D0 LATIN CAPITAL LETTER ETH [Lu] (Ð) | ||
U+0110 LATIN CAPITAL LETTER D WITH STROKE [Lu] (Đ) | |||
vendethiel | ugh | ||
AlexDaniel | .u axCCx88 | 17:49 | |
yoleaux | U+0061 LATIN SMALL LETTER A [Ll] (a) | ||
U+0308 COMBINING DIAERESIS [Mn] (◌̈) | |||
17:49
adu left
|
|||
AlexDaniel | u: axCCx88 | 17:49 | |
unicodable6 | AlexDaniel, U+00E4 LATIN SMALL LETTER A WITH DIAERESIS [Ll] (ä) | ||
AlexDaniel | I wonder what kind of the output most people expect | 17:50 | |
viki | my terminal is all messed up with those | 17:51 | |
i.imgur.com/qphXsZF.png | |||
geekosaur | doesn't handle utf8 very well, does it? | 17:54 | |
17:56
zakharyas joined
18:02
mxco86 joined,
lizmat_ joined
|
|||
tailgate | can a multi-dispatch proto in NQP have different number of arguments? | 18:03 | |
18:05
lizmat left
18:07
mxco86 left,
BenGoldberg joined
|
|||
tailgate | class methods, or subs I mean | 18:07 | |
viki | FROGGS: is it actually a catch or DIHWIDT? | 18:12 | |
use v\d+blah is only for perl versions, innit | 18:13 | ||
oh | 18:14 | ||
v34̈5.meow.77.43 | |||
dasd | |||
FROGGS | would still be nice if it failed differently | ||
viki | m: say v34̈5.meow.77.43 v42 | ||
camelia | rakudo-moar 2f72fa: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3say v34̈5.meow.77.437⏏5 v42 expecting any of: infix infix stopper postfix statement end statement mod…» | ||
viki | m: say v34̈5.meow.77.43 cmp v42 | ||
camelia | rakudo-moar 2f72fa: OUTPUT«Less» | ||
18:18
revere joined
18:28
Lucas_One left
18:34
eisen74 joined
|
|||
RabidGravy | ok I think I may have hit the buffers on my MOP hackery du jour | 18:35 | |
viki | m: say "a\x[308]" leg "b\x[308]" | 18:36 | |
camelia | rakudo-moar 2f72fa: OUTPUT«More» | ||
viki | m: say "b\x[308]" leg "k\x[308]" | 18:38 | |
camelia | rakudo-moar 2f72fa: OUTPUT«More» | ||
viki | m: say .ords for "b\x[308]", "k\x[308]" | ||
camelia | rakudo-moar 2f72fa: OUTPUT«(98 776)(107 776)» | ||
viki | How come it's More? | ||
psch | j: say "b\x[308]" leg "k\x[308]" | 18:41 | |
camelia | rakudo-jvm 76b061: OUTPUT«Less» | ||
psch | r: use nqp; say nqp::cmp_s("b\x[308]", "k\x[308]") | 18:43 | |
camelia | rakudo-jvm 76b061: OUTPUT«-1» | ||
..rakudo-moar 2f72fa: OUTPUT«1» | |||
geekosaur | o.O | 18:44 | |
psch | that's kinda interesting | ||
apparently an MVMGrapheme32 is really just an MVMint32 | |||
18:45
cdg joined
|
|||
psch | and on moar the grapheme for "b\x[308]" isn't numericall (i.e. C) less-than than "k\x[308]" | 18:45 | |
'cause that's what cmp_s does, in the end | |||
...well, minus "maybe my MVM src is out of date" :) | 18:46 | ||
github.com/MoarVM/MoarVM/blob/mast...ps.c#L1397 | 18:47 | ||
RabidGravy | I've got a weird that is a bit too complicated to post a snippet, but it involves two different EXPORTHOW::DECLARE thingies over-ridding ClassHOW in different ways | ||
now if I nest them in a declaration, if there is a compose() over-ride on the inner one then it blows up with | 18:48 | ||
"Representation must be composed before it can be serialized" | |||
psch | RabidGravy: shouldn't you export a new declarator instead of overriding the ClassHOW to get class to behave differently? | ||
RabidGravy | works fine without the compose() method | ||
18:48
cdg left
|
|||
psch | i mean, i assume you have your reason, but maybe that could solve it? | 18:49 | |
RabidGravy | psch that's what I'm doing | ||
psch | ah, okay, i guess i misinterpreted "overriding ClassHOW" | ||
18:49
cdg joined
|
|||
RabidGravy | class EXPORTHOW::DECLARE::foo is Metamodel::ClassHOW does Somerole { } | 18:49 | |
18:50
andrzejku left
|
|||
mst | ohhh, EXPORT HOW, my brain was trying to parse it as <something> THROW | 18:54 | |
RabidGravy | :) | ||
psch | well, the only thing i can think of is that you're not setting is_composed | 18:55 | |
or that some stuff happens out of order for some reason (which probably helps even less as a guess or advice) vOv | |||
RabidGravy | it certainly seems like something happening out of order in some way | 18:56 | |
all the compose do callsame | 18:57 | ||
18:57
araujo left
19:02
eisen74 left
19:06
kyclark_ joined
19:10
araujo joined,
araujo left,
araujo joined
19:12
zakharyas left
|
|||
psch | RabidGravy: can't you golf it by removing most of the new stuff in the ClassHOW subclasses? | 19:12 | |
RabidGravy: maybe that already gives insight too | |||
RabidGravy | yeah just what I was thinking, it's tricky in the sense that you need three separate files | 19:14 | |
psch | fwiw, that's a feature i wished for a while camelia would have | 19:15 | |
as in, gists with multiple files etc | |||
not sure how easy that actually is, i think she creates tmp file names for gists | |||
19:18
kyclark_ left
|
|||
RabidGravy | yep, it "works" in the degenerate case too, 'ang on I'll just them | 19:18 | |
19:19
zakharyas joined
|
|||
AlexDaniel | psch: yeah I know github.com/perl6/whateverable/issues/36 | 19:22 | |
psch | AlexDaniel: well, i suppose if whateverable does it camelia doesn't have to | 19:23 | |
AlexDaniel | sure. Not yet though :( | ||
RabidGravy | psch, gist.github.com/jonathanstowe/9db3...794be0b19b - simply tested with "perl6 -I. -MBar" | ||
psch | but yeah, camelia does create 'evalbot-file-XXXXXXXXXX' which means module loading is kinda not doable | ||
RabidGravy | remove the compose from "inner" and it doesn't blow up | 19:24 | |
psch | i suppose shifting everything into tmpdirs per eval call would be possible, but... idk | ||
AlexDaniel | once we actually start running stuff in containers for whateverable this won't be an issue at all | ||
psch | AlexDaniel: well, if whateverable annexes 'm:' at least... :) | ||
19:25
andrzejku joined
|
|||
psch | RabidGravy: gotta build r-m first, but i'll try and see if i can figure something out | 19:25 | |
AlexDaniel | if everything planned for whateverable gets implemented, I think we won't need camelia at all… :) | 19:26 | |
evalable6: .say for ^1000 | |||
evalable6 | AlexDaniel, rakudo-moar 2f72fa0: OUTPUT«012345678910111213141516171819202122232425262728293031323334…» | ||
AlexDaniel, Full output: gist.github.com/1d5bdf24d4dc69e6c0...f0cd0e64be | |||
AlexDaniel | but that'll need some work. You can't even run something on jvm yet | 19:27 | |
psch | fwiw, the whole EvalServer thing is actually pretty straight forward | 19:28 | |
although i suppose it strongly depends on what you're doing in whateverable and how you're doing it | |||
AlexDaniel | what is the startup time, by the way? | 19:29 | |
I'm wondering how long would it take to do one bisectable query… | |||
psch | well that's the thing | ||
we don't do startup time on j: | 19:30 | ||
because Eval*Server* ;P | |||
AlexDaniel | yea but we can't run 4 thousand evalservers | ||
s | |||
… or can we… | |||
19:30
cdg left
|
|||
timotimo | how does java feel about getting swapped out completely to disk while it's waiting for a socket to receive connections? | 19:30 | |
psch | i'm pretty sure the EvalServer starts a thread per eval request | 19:31 | |
mst | timotimo: betrayed and unloved | ||
timotimo | yo mst | ||
can we do something to make it easier for you to bring your makefile and configure improvements up stream? :) | |||
RabidGravy | so I had occassion to look at Scala again during the week, and I am still confirmed in my opinion of it | 19:32 | |
psch | RabidGravy: huh, *running* Bar works, i.e. './perl6 -I. Bar.pm' | 19:34 | |
timotimo | github.com/rakudo/rakudo/pull/324 - even though it has been resting for a long time, it'd be cool if this could make it into rakudo | 19:36 | |
19:37
stux|RC-only left
|
|||
RabidGravy | Clip Arser!! | 19:37 | |
19:40
stux|RC-only joined
|
|||
AlexDaniel | ohhh | 19:40 | |
so that's for proper command line argument parsing? | |||
finally? | |||
timotimo | parsing arguments to rakudo itself | 19:41 | |
AlexDaniel | ahmmm… | ||
2 years ago, oops | |||
psch | yeah the bit about "join the whole command line invocation with \0 to parse it with <ws=\0>" wasn't too well received vOv | ||
timotimo++ suggested to use some private unicode character for that, no idea if that alleviates those concerns | 19:42 | ||
viki | Clip arser? :) | 19:43 | |
timotimo | that's what RabidGravy came up with | 19:44 | |
viki | Glad I'm not the only one who read it that way. | 19:45 | |
psch | RabidGravy: i don't think i can make anything of your MOP woes :| | 19:46 | |
RabidGravy | yeah, it's way weird, I'm not quite willing to call bug on it as it's on the hairy side anyway | 19:48 | |
psch | m: class A::B {...}; class A { class B { } } | ||
camelia | ( no output ) | ||
psch | the curious thing is, stubbing like that ^^^ doesn't work for the inner | ||
which is kinda weird | |||
i had thought maybe that does something, but it just complains about "stubbed but not defined" | 19:49 | ||
19:51
zakharyas left
19:57
___crlz___ joined
|
|||
RabidGravy | the thing is that it appears to be the presence of the compose there, it seems to crap out without calling the provided compose | 20:01 | |
20:04
rpburkholder joined
|
|||
dalek | c: c72b2e9 | (Daniel Mita)++ | doc/Language/testing.pod6: Remove duplicate done-testing text |
20:06 | |
synopsebot6 | Link: doc.perl6.org/language/testing | ||
c: 66070d3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/testing.pod6: Merge pull request #1020 from mienaikage/remove-duplicate-text Remove duplicate done-testing text |
|||
synopsebot6 | Link: doc.perl6.org/language/testing | ||
psch | RabidGravy: well, the stub not working as it should might mean that it doesn't find the package and thus cannot compose it | 20:09 | |
RabidGravy: but that's a more or less completely blind guess, i'm really not too deep into our MOP, honestly | 20:10 | ||
m: role R { }; class A does R { }; class B is A { }; B.^roles.say | 20:11 | ||
camelia | rakudo-moar 2f72fa: OUTPUT«((R))» | ||
psch | not sure why that would happen, anyway | ||
i mean, missing something related to {Pseudo,}Stash | |||
20:12
domidumont left
20:17
labster joined
|
|||
RabidGravy | yeah, maybe something is getting confused by it it not being a direct descendent of PackageHOW or summat | 20:18 | |
let's try that | |||
20:20
___crlz___ left
|
|||
RabidGravy | nope | 20:21 | |
20:22
___crlz___ joined
|
|||
RabidGravy | this only came about because I was thinking about expressing the relationship between a schema and the tables in an ORM-like thing | 20:22 | |
vendethiel | .oO( He said it! The Pattern That Shall Not Be Named ) |
20:26 | |
RabidGravy | :) | 20:28 | |
conceptually I don't find it difficult, it's finding a nice way to express things in a way that plays to Perl 6 strengths that is difficult | 20:29 | ||
20:30
B3AN joined
20:31
B3AN left
20:37
adu joined
20:42
chris2 left
20:44
TEttinger joined
|
|||
RabidGravy | but doing it nicely with like "schema Foo { table Bar {}; table Baz {} };" seems off the cards for the problem stated above | 20:45 | |
20:52
rindolf left
20:58
chris2 joined,
lizmat_ is now known as lizmat
21:00
rindolf joined
|
|||
moritz | perlpunks.de/paste/show/5839f868.76a3.3ad why does this die? | 21:02 | |
$.left seems to be a BinaryTree[Int], not an Int, no? | 21:03 | ||
21:04
ranguard joined
|
|||
geekosaur | why are the type objects claimed to be T instead of Int by .perl? | 21:05 | |
moritz | good question | 21:06 | |
is the exception an error in rakudo, or in me? | 21:07 | ||
moritz too tired to tell | |||
geekosaur | code looks reasonable to me | 21:08 | |
geekosaur was wondering if maybe that stray T was actually a hint as to what was going wrong... | |||
21:09
ranguard left
|
|||
moritz | I'll submit a rakudobug | 21:11 | |
AlexDaniel | moritz: please tell if that works | ||
ah, there was a bug reported 2 hours ago | 21:12 | ||
so the issue is probably gone | |||
moritz | just checking if the bug still exists with today's rakudo: | 21:16 | |
m: gist.github.com/moritz/5fe8be21269...10b3f1ec58 | |||
camelia | rakudo-moar 2f72fa: OUTPUT«LL[Int].new(item => 5, next => LL[Int].new(item => 4, next => LL[T]))5No such method 'visit' for invocant of type 'Int' in method visit at <tmp> line 6 in block <unit> at <tmp> line 15» | ||
21:16
adu left
|
|||
geekosaur specifically wonders: if the type object ended up using T instead of Int, is something else confused and trying to use T instead of Int and complaining about *that* mismatch incorrectly? | 21:19 | ||
moritz | ok, here is the weird thing | ||
the backtrace says it's in the inner invocation of that method | 21:20 | ||
why didn't it call say() in there before recursing? | |||
geekosaur | it did. that was the 5. it's dying on the next call (since only one additional visit in the backtrace) | 21:21 | |
which is why I wonder if that one is somehow looking for, in the gist, LL[T] and throwing on an LL[Int] (and then reporting that badly) | 21:22 | ||
(although that's a weird way to misreport that mismatch... then again iirc some similarly odd mismatch reports of that variety have happened) | 21:23 | ||
moritz | huh, when I change $.next to $!next, it works | 21:28 | |
21:30
adu joined
|
|||
moritz | things are going south here | 21:33 | |
I'm trying to prepare some slides for a training | |||
first I get caught up in a rakudobug | 21:34 | ||
now vim refuses to export syntax-hilighted HTML, which it did nicely a few hours ago | |||
21:35
ranguard joined
21:41
rindolf left
21:44
espadrine left
21:48
trnh joined
21:50
cdg joined
|
|||
tojo | hmm, just installed rakudo with rakudobrew to debian jessie, but can't get IO::Socket::Async examples to work, but with osx precompiled rakudo they work | 21:54 | |
any hints about this or is it just me? | |||
i don't get any error messages, but it doesn't open listening port | 21:55 | ||
RabidGravy | well they work on *Linux* because I wrote some of them | ||
it's not so clever when it can't open the port to listen sometimes | 21:56 | ||
21:56
andrzejku left
|
|||
RabidGravy | try a really high random port number | 21:56 | |
jnthn | Could also check if it shows up in `neststat -l` | 21:57 | |
uh, netstat | |||
tojo | ah | 21:58 | |
tcp6 0 0 localhost:10033 [::]:* LISTEN | |||
ipv6 | |||
how i can change to listening ipv4? | |||
timotimo | hm, do we allow to actually give the bind argument? | 21:59 | |
then it'd probably just be 0.0.0.0? | |||
not sure if that throws out ipv6 reliabley? | |||
tojo | hm, with that it listens on every interface? | 22:00 | |
geekosaur | it should... but I thought linux used the 6to4 stuff | 22:01 | |
so listening on [::] with a port < 65536 should also listen on 0.0.0.0 same port | |||
timotimo | what, does ipv6 have more ports? | 22:02 | |
(well, port is really a tcp-or-udp-related thing | |||
but you get the idea) | |||
geekosaur | it's ulong instead of ushort for port number, yes | 22:03 | |
dalek | c: f381605 | coke++ | doc/Type/Method.pod6: fix typo |
||
synopsebot6 | Link: doc.perl6.org/type/Method | ||
c: f94db38 | coke++ | xt/code.pws: learn new code snippets |
|||
tojo | but yeah, that 0.0.0.0 did the trick, thanks! | ||
geekosaur | you just don't see that much since it can't really be reflected into ipv4 | ||
RabidGravy | for clients it's a pain as libuv seems to prefer v6 so if it can resolve an AAAA it will try that first | ||
geekosaur | and my machine isn't a good test as I only have ipv4 locally | 22:04 | |
hm, no, listed ip6 sockets and the autoconfigure local one is set. so I guess debianoids do distinguish them | 22:05 | ||
22:06
dmaestro joined
|
|||
RabidGravy | ooh does localport work for clients? that would fix a longstanding issue on HUA regarding the tests on a v6 enabled network | 22:08 | |
localhost rather | 22:09 | ||
geekosaur | depends on what's in the hosts file | ||
22:10
adu left,
kurahaupo is now known as kurahaupo_,
kurahaupo_ is now known as kurahaupo__
22:17
FROGGS left
|
|||
RabidGravy | no, specifying the localhost to the client as 0.0.0.0 rather than letting it pick one (possibly v6) | 22:20 | |
geekosaur | that should work if it lets you specify, yes | 22:21 | |
RabidGravy looks at the code | |||
perlawhirl | Does anyone wanna help me bike shed an option name before i push this module to ecosystem | ||
github.com/0racle/p6-Pod-To-Markdown-Fenced | |||
should the config option be 'info' instead of 'lang', given that Commonmark refers to that thing as the 'info string' | 22:22 | ||
RabidGravy | geekosaur, the code would indicate that the IO::Socket::INET will bind to a specfied localhost for both client and servers | 22:24 | |
22:31
adu joined
22:34
___crlz___ left
22:36
___crlz___ joined
22:37
wamba left
22:38
eisen74 joined
22:45
kyclark_ joined
22:48
pmurias left
22:53
seatek joined
22:56
kyclark_ left
22:57
bjz joined
22:58
canopus left
23:03
canopus joined
23:05
wamba joined
23:09
wamba left
23:21
RabidGravy left
23:23
Ven joined
23:25
kurahaupo__ left
23:30
Actualeyes joined,
trnh left
23:33
chris2 left
23:34
mscha joined
23:35
mscha left
23:36
firstdayonthejob left
23:38
adu left
23:48
chris2 joined,
cdg left
23:49
cdg joined
23:53
cdg left
|
|||
viki | titsuki: got reply from the admin: "Please try again. There was a configuration error that has been fixed." | 23:53 | |
23:58
canopus left
|