»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31 Set by jnthn on 28 February 2015. |
|||
00:11
rurban left
|
|||
raydiak | .tell retupmoca github.com/retupmoca/P6-Compress-Zlib/pull/7 | 00:16 | |
yoleaux | raydiak: I'll pass your message to retupmoca. | ||
raydiak | .tell cosimo github.com/cosimo/perl6-string-crc32/pull/5 | 00:17 | |
yoleaux | raydiak: I'll pass your message to cosimo. | ||
00:17
airdisa left
00:20
cognominal left
00:29
BenGoldberg left,
BenGoldberg joined
|
|||
flussence | silly idea: most of the profiler json is a huge nested tree of callframe info, and a lot of that is just the same hash key strings repeated over and over. Maybe it'd be more sensible to use an array... could even put the keys at the beginning of the data so it's still self-describing. | 00:47 | |
flussence goes to experiment | |||
00:51
dayangkun joined
00:52
muraiki joined
00:54
laouji joined
01:16
koo6 left
01:26
Zoffix joined
|
|||
flussence | m: say 2949462 #`{ redundant hash keys and punctuation } / 5228772 #`{ total json filesize } | 01:30 | |
camelia | rakudo-moar d09e62: OUTPUT«0.5640831» | ||
flussence | yeah that's... quite a lot. | 01:31 | |
01:38
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:50
dayangkun left
01:54
raiph joined
02:01
pierrot left,
pierrot joined
02:17
dsm joined
02:21
noganex_ joined
02:24
noganex left,
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
02:33
tinyblak left
02:45
mr-foobar left
02:47
colomon left
02:48
colomon joined
02:51
perlvim joined,
vendethiel joined
02:52
adu joined
|
|||
perlvim | p6: 'string'.&'say' | 02:54 | |
camelia | rakudo-moar d09e62: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileName must begin with alphabetic characterat /tmp/tmpfile:1------> 3'string'.&7⏏5'say' expecting any of: infix infix stopper statement end stat…» | ||
TimToady_ | m: 'string'.$('say') | 02:58 | |
camelia | rakudo-moar d09e62: OUTPUT«Cannot find method 'postcircumfix:<( )>' in block <unit> at /tmp/0rKbKUt59L:1» | ||
TimToady_ | m: 'string'.$::('say') | ||
camelia | rakudo-moar d09e62: OUTPUT«===SORRY!===No such symbol '$::say'» | ||
02:58
thou left
|
|||
TimToady_ | m: 'string'.&say | 02:59 | |
camelia | rakudo-moar d09e62: OUTPUT«string» | ||
TimToady_ | m: 'string'.&::('say') | ||
camelia | rakudo-moar d09e62: OUTPUT«string» | ||
TimToady_ | there you go | 03:00 | |
we intentionally make symbolic refs harder than, er, hard refs | |||
03:01
dsm left
03:05
dayangkun joined
03:06
konsolebox left
|
|||
perlvim | Thanks TimToday_ | 03:06 | |
03:06
konsolebox joined
|
|||
TimToady_ | hmm, I grew a tail... | 03:07 | |
03:07
TimToady_ is now known as TimToady,
TimToady left,
TimToady joined
03:11
dsm joined
03:16
dayangkun left
|
|||
perlvim | TimToady: if the method is not exported to CORE::, how to call it dynamically with name? | 03:17 | |
03:17
gfldex left
|
|||
TimToady | import to your current lexical scope | 03:17 | |
CORE is not special that way, it's just an outer lexical scope | 03:18 | ||
perlvim | TimToday: I see, import the symbols of object.^methods to MY::, then could call it with object.&::('name') | 03:20 | |
TimToady | well, but if you have object methods to begin with, and you merely wish to call a method of arbitrary name, just use object."say"() | 03:21 | |
m: 'string'."say"() | |||
camelia | rakudo-moar d09e62: OUTPUT«string» | ||
perlvim | yes, it is my want | 03:22 | |
03:24
jack_rabbit left
03:27
muraiki left
03:28
jack_rabbit joined
03:30
BenGoldberg left
03:33
tinyblak joined
03:38
tinyblak left
03:50
araujo joined,
araujo left
03:52
araujo joined
03:56
raiph left
04:02
pierrot left
04:03
pierrot joined
04:07
vendethiel left
04:20
laouji left
04:21
laouji joined
04:29
dayangkun joined
04:36
laouji left,
perlvim left,
laouji joined,
haroldwu joined
04:39
laouji left
04:40
konsolebox left
04:41
haroldwu left,
haroldwu joined
04:44
adu left
04:45
laouji joined
04:46
konsolebox joined
04:51
perlvim joined
04:55
kaare__ joined
|
|||
skids | .tell tadzik I sent you a pull request to Grammar::BNF that adds ABNF (popular in modern RFCs) | 05:09 | |
yoleaux | skids: I'll pass your message to tadzik. | ||
05:11
perlvim left
05:14
vendethiel joined
05:38
vendethiel left
05:59
skids left
06:06
dayangkun left
06:10
labster left
06:15
aborazmeh left
06:21
Ven joined,
diana_olhovik_ joined
06:26
labster joined
06:28
quester joined
06:29
hobbs left,
hobbs joined
06:30
laouji left
|
|||
[Tux] | still no Inline::Perl5 | 06:32 | |
06:35
laouji joined
|
|||
quester | Tux... are you still getting the same "No exception handler located for warn"? I just installed Inline::Perl5 on Rakudo Star 2015.03 at $work today and it was an... interesting... install, but I haven't seen that particular error. | 06:41 | |
[Tux] | i run from git, not from star | ||
(rakudobrew) | |||
06:45
Alina-malina left
|
|||
quester | I see... I build from git at home (not rakudobrew, but the using the a script with the manual installation commands from rakudo.org/how-to-get-rakudo/. | 06:48 | |
06:51
vendethiel joined
|
|||
quester | Using a week old Rakudo, panda install Inline::Perl5 runs okay. (Specifically, perl6 version 2015.04-106-g59b8935 built on MoarVM version 2015.04-24-g6ef0f8f). Let me fetch the latest Rakudo... perhaps the problem is there. Or in MoarVM... | 06:51 | |
s/week old Rakudo/two day old Rakudo/ | 06:52 | ||
06:53
hobbs left
06:55
brrt joined
|
|||
brrt | \o | 06:55 | |
06:55
hobbs joined
|
|||
brrt | uhm, let me ask it here. is there any way in which ASSIGN and DECONT can be overriden by user code | 06:55 | |
[Tux] | fail started yesterday (01:00 AM MET) | ||
time is a guess | 06:56 | ||
dalek | kudo/nom: c578247 | TimToady++ | src/core/ (2 files): fooled myself, don't need nodal on multis |
||
07:00
tinyblak joined
07:14
Foxcool joined
07:16
vendethiel left
07:37
alini joined
07:47
zakharyas joined
08:08
virtualsue joined
08:09
virtualsue_ joined
08:12
virtualsue left,
virtualsue_ is now known as virtualsue
|
|||
quester | m: say Any.^methods>>.gist; | 08:13 | |
camelia | rakudo-moar c57824: OUTPUT«invoke Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<…» | ||
08:13
zakharyas left
08:14
darutoko joined,
zakharyas joined
|
|||
quester | The reason that Inline::Perl5 blows up during initialization is that it tries to create many methods named "Method+{<anon>}.new". The second one blows up. | 08:18 | |
08:20
spider-mario joined
08:22
diana_olhovik_ left
08:23
domidumont joined
08:24
Foxcool_ joined
08:27
Foxcool left,
domidumont left,
Ven left
08:28
domidumont joined
08:31
pierrot left,
pierrot joined
08:37
Ven joined
08:44
mr-foobar joined
08:45
vendethiel joined
|
|||
lizmat | quester: |Tux| :I think TimToady's latest patch (revert actually) might fix that | 08:46 | |
rebootstrapping now | |||
and good *, #perl6! | |||
08:47
Rounin joined
|
|||
lizmat | alas :-( | 08:48 | |
jnthn | morning o/ | 08:49 | |
lizmat | jnthn o/ | ||
jnthn | m: say Any.^methods | 08:50 | |
camelia | rakudo-moar c57824: OUTPUT«invoke Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<anon>}.new Method+{<…» | ||
08:50
koo6 joined
|
|||
lizmat | I thought this was the "is nodal" change, but apparently it isn't | 08:50 | |
jnthn | It still looks bust | 08:51 | |
lizmat | yeah | ||
jnthn | m: say Any.^methods.map(*.name) | ||
camelia | rakudo-moar c57824: OUTPUT«invoke exists_key EXISTS-KEY delete_key DELETE-KEY delete_pos DELETE-POS list flat eager hash Hash Parcel List elems end keys kv values pairs antipairs invert pairup squish rotor reverse sort reduce combinations permutations unique uniq pick roll classify …» | ||
jnthn | A method should always gist to its name | ||
quester | As a quick workaround, panda look Inline::Perl5; ./configure.pl6; mv lib/Inline ~/rakudo/install/share/perl6/lib; vim rakudo/install/share/perl6/lib/Inline/Perl5.pm6. Near line 17, change the declaration of $path... | ||
... to include the absolute patch to p5helper.so, something like state Str $path = "/home/ira/rakudo/install/share/perl6/lib/Inline/p5helper.so"; ...then... | 08:52 | ||
08:52
dolmen joined,
rurban joined
|
|||
lizmat | jnthn: oddly enough, that's the only thing that src/core/Method.pm | 08:52 | |
does | |||
jnthn | Yeah | ||
08:53
rindolf joined
|
|||
jnthn | I think the trait that gets shoved on many methods now mixes in to them before the Method class is fully defined, and then we get the usual method cache problems. | 08:54 | |
quester | ... about line 747, after for Any.^methods>>.gist -> $name { ... add a new line... next if $name ~~ / 'Method+{<anon>}.new' /; | ||
lizmat | jnthn: yeah, confirmed, it doesn't call the Method.name method | ||
jnthn: what trait is that anyway and where does it get shoved ? | 08:55 | ||
jnthn | lizmat: I suspect it's the "is nodal" but we had the same issue with "is hidden-from-backtrace | ||
lizmat: It's a related problem to the augment + subclass issue. | |||
quester | At that point it should be usable. The first patch works around the .files method of CompUnitRepo::Local::File apparently not returning anything. The second one works around the extra method names. | ||
lizmat | but "is nodal" was just removed ? | ||
jnthn | lizmat: from multis, but you never get multis from .^methods | 08:56 | |
lizmat | aha | ||
ok | |||
:-( | |||
TimToady's comment was "don't need is nodal on multis", still I see a lot of multis with "is nodal" | |||
quester | .oO( are we having O(fun) yet? ) |
08:57 | |
lizmat | specifically in array_slice | ||
jnthn | Guess I should bump the augment/cache issue a little further up my priority list :) | ||
lizmat tries to remove them from array_slice multis | 08:58 | ||
hmmm.. hash_slice actuallt | |||
*y | |||
jnthn | bbi30; got some erands to do before I can get on with Perl 6 things for the rest of the day | 08:59 | |
Apparently my body decided I needed a lot of sleep last night too... | |||
09:03
telex left
09:04
telex joined,
jack_rabbit left
|
|||
quester | Jnthn: Thanks for looking at that. I guess my second patch should have been to change line 747 from for Any.^methods>>.gist to for Any.^methods>>.name | 09:06 | |
dalek | kudo/nom: a073f5d | lizmat++ | src/core/hash_slice.pm: Remove some more "is nodal" from multis |
||
lizmat | quester: that feels like a valid work around | 09:07 | |
09:07
dolmen left
|
|||
lizmat | afk for a bit | 09:07 | |
quester | .tell [Tux] I have just posted a fairly awkward workaround if you are in a hurry, but it looks like jnthn and lizmat are looking into at least one of the underlying problems, so there is light at the end of the tunnel. | 09:09 | |
yoleaux | quester: I'll pass your message to [Tux]. | ||
quester | ... and to *.all a good night. | 09:10 | |
09:12
Ven left,
Ven joined,
quester left
09:14
RabidGravy joined
09:15
fhelmberger joined
09:16
tinyblak left
09:18
tinyblak joined
09:19
fhelmberger left
09:21
Ven left,
pierrot left,
pierrot joined
09:30
Akagi201_ left,
vendethiel left
09:32
laouji left
09:33
araujo left
09:48
brrt left
09:49
brrt joined
|
|||
RabidGravy | morning | 09:54 | |
masak | good noon, RabidGravy | 09:55 | |
09:59
pierrot left,
laouji joined
10:00
lolisa joined
10:06
pierrot joined
10:10
cdc left,
pecastro_ left
|
|||
|Tux| is not in a hurry | 10:13 | ||
10:20
brrt left
10:28
Ven joined
10:35
hobbs left,
tinyblak left
|
|||
Ven | m: multi f(Ijnt){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; say &f ~~ MultiSub; | 10:35 | |
camelia | rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V9gBhNDmQIInvalid typename 'Ijnt' in parameter declaration. Did you mean 'Int'?at /tmp/V9gBhNDmQI:1------> 3multi f(Ijnt7⏏5){}; multi f(Str){}; subset MultiSub of » | ||
Ven | m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; say &f ~~ MultiSub; | ||
camelia | rakudo-moar a073f5: OUTPUT«True» | ||
10:35
tinyblak joined
|
|||
Ven | m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; multi c(MultiSub $f) { say $f("hey"); } c(&f); | 10:36 | |
camelia | rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZDh45N2tILStrange text after block (missing semicolon or comma?)at /tmp/ZDh45N2tIL:1------> 3 multi c(MultiSub $f) { say $f("hey"); }7⏏5 c(&f); expecting any of: infix i…» | ||
Ven | m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.candidates.elems > 1; multi c(MultiSub $f) { say $f("hey"); }; c(&f); # sigh | ||
camelia | rakudo-moar a073f5: OUTPUT«Cannot look up attributes in a type object in sub c at /tmp/uzOV2Y68Ga:1 in sub c at /tmp/uzOV2Y68Ga:1 in block <unit> at /tmp/uzOV2Y68Ga:1» | ||
10:37
hobbs joined
10:40
tinyblak left
|
|||
jnthn | Ven: *.is_dispatcher maybe | 10:41 | |
Ven | m: multi f(Int){}; multi f(Str){}; subset MultiSub of Sub where *.is_dispatcher; multi c(MultiSub $f) { say $f("hey"); }; c(&f); # sigh | ||
camelia | rakudo-moar a073f5: OUTPUT«Cannot look up attributes in a type object in sub c at /tmp/7JKZ7xuxx7:1 in sub c at /tmp/7JKZ7xuxx7:1 in block <unit> at /tmp/7JKZ7xuxx7:1» | ||
jnthn | Odd... | 10:42 | |
oh, wait | |||
That's a double-closure thing | |||
where already adds a layer of closure | |||
masak | say what? | 10:43 | |
I'm sure I've seen a {} block after `where` | |||
jnthn | Oh, though it should still work there I guess | ||
masak: yes, in that case it doesn't have to | |||
It still seems to get upset without the * though. I don't know why. | 10:44 | ||
lizmat | .tell nine would it be possible for me to get an Inline::Perl5 commit bit ? | 10:46 | |
yoleaux | lizmat: I'll pass your message to nine. | ||
lizmat | I just tried to push quester's workaround for the Inline::Perl5 is nodal breakage | ||
10:49
rindolf left
11:04
gfldex joined
11:08
pippo joined
|
|||
pippo | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str; | 11:09 | |
camelia | rakudo-moar a073f5: OUTPUT«Ḍ» | ||
pippo | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; | ||
camelia | rakudo-moar a073f5: OUTPUT«Ḍ̇» | ||
pippo | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "DD"; say $str; | 11:10 | |
camelia | rakudo-moar a073f5: OUTPUT«Ḍ̇D» | ||
pippo | ^^ bug? | 11:12 | |
11:12
pippo left
|
|||
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.codes | 11:12 | |
camelia | rakudo-moar a073f5: OUTPUT«2» | ||
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]\"; say $str.codes | ||
camelia | rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9tgKI6t_RgUnable to parse expression in double quotes; couldn't find final '"' at /tmp/9tgKI6t_Rg:1------> 3c[COMBINING DOT ABOVE]\"; say $str.codes7⏏5<EOL> expecting any of: meth…» | ||
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]"; say $str.codes | ||
camelia | rakudo-moar a073f5: OUTPUT«1» | ||
lizmat | so it really appears its not combining the 2nd combining dot | 11:13 | |
I would say, bug indeed | |||
jnthn | I think .codes may still be wrong | 11:14 | |
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]"; say $str.NFD # where this the D go? | ||
camelia | rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0307>» | ||
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.NFD | 11:15 | |
camelia | rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0323 0307>» | ||
lizmat | hmm... NFD seems to be correct | ||
jnthn | .codes is about NFC though | ||
On a Str anyway | |||
lizmat | ah, ok... | ||
jnthn | But yeah, it's correct on Moar; I already did that | 11:16 | |
I think the concatenation thing is separate | |||
lizmat | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.graphs | ||
camelia | rakudo-moar a073f5: OUTPUT«Method 'graphs' not found for invocant of class 'Str' in block <unit> at /tmp/P8MI0R9pgn:1» | ||
jnthn | I think we also decided .graphs will go away as it's just a .chars synonym so there's not much point. | ||
lizmat | ok | ||
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; say $str.chars # 2 would be incorrect then? | 11:17 | ||
camelia | rakudo-moar a073f5: OUTPUT«1» | ||
lizmat | good thing it is 1 then :-) | ||
jnthn | 1 is the right answer for .chars there, yes | ||
2 is the right answer for .codes | |||
If you want to know how many codes in NFD then you need to say .NFD.codes | |||
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.chars; | 11:18 | ||
camelia | rakudo-moar a073f5: OUTPUT«2» | ||
jnthn | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str; | ||
camelia | rakudo-moar a073f5: OUTPUT«Ḍ̇» | ||
jnthn | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.codes; | ||
camelia | rakudo-moar a073f5: OUTPUT«3» | ||
jnthn | Odd, the .chars and .codes are right there but something odd goes on at output | ||
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.NFD; | |||
camelia | rakudo-moar a073f5: OUTPUT«NFD:0x<0044 0323 0307 0044>» | ||
jnthn | That's correct too | ||
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.NFC; | |||
camelia | rakudo-moar a073f5: OUTPUT«NFC:0x<1e0c 0307 0044>» | ||
jnthn | As is that | ||
lizmat | yeah, it's only on output | 11:19 | |
11:19
WABSIAX joined
|
|||
lizmat | conversion to utf-8 maybe ? | 11:19 | |
jnthn | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.encode('utf-'); | ||
camelia | rakudo-moar a073f5: OUTPUT«Unknown string encoding: 'utf-' in block <unit> at /tmp/8m4lPRb9wN:1» | ||
jnthn | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]D"; say $str.encode('utf-8'); | ||
camelia | rakudo-moar a073f5: OUTPUT«utf8:0x<e1 b8 8c cc 87>» | ||
jnthn | m: say chr(87) | ||
camelia | rakudo-moar a073f5: OUTPUT«W» | ||
jnthn | Hmm | ||
lizmat | does chr() take hex ? | 11:20 | |
jnthn | oops | ||
lizmat | m: say chr(0x87) | ||
camelia | rakudo-moar a073f5: OUTPUT«» | ||
jnthn | And yeah, thinko :) | ||
Something is wrong in that utf-8 encoded output | |||
I'll investigate/fix/add test for it after lunch...which means shopping... At least I got my admin tasks done. :) | 11:21 | ||
lizmat | :-) | 11:22 | |
11:34
vendethiel joined
11:48
Ven left,
RabidGravy left
11:58
vendethiel left
11:59
cdc joined,
rurban left
|
|||
masak | I found this a fascinating read: boundvariable.org/press/tr-06-163.pdf | 11:59 | |
(and I'm guessing anyone connected with p6cc somehow will, too) | 12:00 | ||
so, today's mini-challenge: implement the Universal Machine from Figure 2 in Perl 6 :) | |||
DrForr pricks up his ear. | 12:01 | ||
12:03
vendethiel joined
|
|||
masak | I like the "(c) 19106" on the first page. I wonder if it's some kind of deliberate humor, or just a Y2K bug in the software that generated that string. | 12:04 | |
12:06
jlbhshluekg joined,
muraiki joined,
jlbhshluekg left,
jlbhshluekg joined,
jlbhshluekg left
|
|||
rarara | there is one thing which stumble me on this construct: my @fib := 1, 1, { $^a + $^b } ... *; why $^a and $^b? Wouldn't have been more general to pass the whole @fib (the calculated part) in an array? | 12:08 | |
masak | rarara: the block takes two parameters, so you get the last two values from the sequence. | ||
rarara: note that there's a difference between the *sequence* you're binding into the array, and the array itself. | 12:09 | ||
rarara | masak ok but if I wanted tribonacci instead of fibonacci I would have to add $^c ? | ||
masak | rarara: yes. | ||
rarara: I usually find it problematic (even with binding, as used here) to talk of the array that's being constructed. usually leads to infinite looping. | |||
rarara | @seq[n] := "The sum of all number from 0 to n? | 12:10 | |
what about this? | |||
masak | m: say [\+] 0..10 | ||
camelia | rakudo-moar a073f5: OUTPUT«0 1 3 6 10 15 21 28 36 45 55» | ||
rarara | this is nice of course; but not the same construct | ||
masak realizes he is not solving the problem on rarara's terms | |||
but that's part of my point: don't do it that way :) | |||
rarara | Ok, would have been nice if it was possble: could have been used for things like convolutions / integrations | 12:11 | |
which fine can be made in other ways | |||
masak | not saying it's impossible. | ||
saying it's not as wise an idea as you might think. | |||
12:12
mr-foobar left
12:14
Guest3343 is now known as felher
12:16
pecastro joined,
cschwenz joined
|
|||
jnthn | I've rejected RT #116525 and RT #117109; they wanted .reverse and .pick to flatten, but we decided in the GLR on a non-flattening policy. | 12:21 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116525 | ||
jnthn | synbot6: Hey, you lazy git! Give *both* links! | ||
masak submits a pull request for that | 12:22 | ||
hm, where's synbot6's repo? | 12:23 | ||
oh, it's still github.com/tadzik/synopsebot | |||
12:23
brrt joined
|
|||
btyler | is there any way to serialize a sub + environment at runtime? I was thinking of a goofy project to hack up a thread scheduler that schedules things on remote boxes instead of threads. | 12:23 | |
brrt | m: my @a = qw[a b c]; if any @a eq 'b' { say "YAY"; } else { say "NOES"; } | ||
camelia | rakudo-moar a073f5: OUTPUT«NOES» | ||
btyler | just for kicks, mind you | 12:24 | |
brrt | m: my @a = qw[a b c]; if any(@a) eq 'b' { say "YAY"; } else { say | ||
"NOES"; } | |||
camelia | rakudo-moar a073f5: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/LdMvyhyXMV:1------> 3any(@a) eq 'b' { say "YAY"; } else { say7⏏5<EOL>Missing blockat /tmp/LdMvyhyXMV:1------> 3any(@a) eq 'b' { say "YAY"; } else { say7⏏5<EOL>…» | ||
brrt | m: my @a = qw[a b c]; if any @a eq 'b' { say "YAY"; } else { say "NOES"; } | ||
camelia | rakudo-moar a073f5: OUTPUT«NOES» | ||
brrt | m: my @a = qw[a b c]; if any(@a) eq 'b' { say "YAY"; } else { say "NOES"; } | ||
camelia | rakudo-moar a073f5: OUTPUT«YAY» | ||
brrt | parsing thingy | ||
is this intended? | 12:25 | ||
jnthn | Not a bug. | ||
brrt | right :-) | ||
jnthn | Yes, list ops drop precedence pretty low :) | ||
brrt | hmm | ||
m: my @a = qw[a b c]; say @a.any eq 'b'; | |||
camelia | rakudo-moar a073f5: OUTPUT«any(False, True, False)» | ||
brrt | hence the preference for method calls i guess | ||
masak | speak for yourself | 12:26 | |
in this case, coulda solved it with `if 'b' eq any @a` | |||
brrt | i speak for... i don't... :-( | ||
yeah | |||
masak | just need to keep in mind that listops have one of them Haskell `$` invisibly attached to them | ||
like an invisible starting paren, with the ending paren coming at the end of the expr | 12:27 | ||
12:30
mj41 joined
|
|||
DrForr | Test::is_deeply() would be more useful with some way to point out where the difference starts. /me makes a note for later. | 12:30 | |
12:30
cognominal joined
|
|||
mj41 | mls: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc" | 12:31 | |
yoleaux | 3 Apr 2015 23:45Z <hoelzro> mj41: the docker folk have added an official repo for rakudo-star | ||
masak just did something that made him go "oh, I've got to blog about this" | |||
jnthn | haha... | ||
char * MVM_string_utf8_encode_substr(MVMThreadContext *tc, | |||
MVMString *str, MVMuint64 *output_size, MVMint64 start, MVMint64 length) { | |||
/* XXX This is terribly wrong when we get to doing NFG properly too. One graph may | 12:32 | ||
* expand to loads of codepoints and overflow the buffer. */ | |||
Except the code is too robust to actually overflow the buffe | |||
So it doesn't, it just drops the codepoints instead :P | |||
masak | darn you, robust code. | ||
jnthn fixes it :) | |||
jepeway | m: use Test; my $s = sub {}; is $s, sub {}, "sub"; # what's the right way to do this? | 12:33 | |
camelia | rakudo-moar a073f5: OUTPUT«Code object coerced to string (please use .gist or .perl to do that) in sub is at lib/Test.pm:135Code object coerced to string (please use .gist or .perl to do that) in sub is at lib/Test.pm:135ok 1 - sub» | ||
mj41 | mls: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc" | ||
moritz | jepeway: what are you trying to do? | ||
jnthn | mj41: Did you mean "m:" :) | ||
moritz | m: use Test; cmp_ok sub { }, &[===], sub { } | 12:34 | |
camelia | rakudo-moar a073f5: OUTPUT«not ok 1 - # Failed test at /tmp/LBBXtpGtq6 line 1Code object coerced to string (please use .gist or .perl to do that) in sub cmp-ok at lib/Test.pm:202# expected: ''Code object coerced to string (please use .gist or .perl to do that) in…» | ||
mj41 | yes, but don't know how it become mls | ||
jnthn | mj41: Tab completion? :) | ||
moritz | mj41: by tab completion :-) | ||
jepeway | test that two "subs" are the "same" | ||
moritz | jepeway: use === (or !===) for that | ||
m: use Test; cmp_ok sub { }, &[!===], sub { } | |||
camelia | rakudo-moar a073f5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DpSkWc2gc1Variable '&infix:<!===>' is not declared. Did you mean any of these? &infix:<===> &infix:<=:=>at /tmp/DpSkWc2gc1:1------> 3use Test; cmp_ok sub { }, &[!===]7⏏5, sub { }…» | ||
moritz | m: use Test; cmp_ok sub { }, { $^a !=== $^b }, sub { } | 12:35 | |
camelia | rakudo-moar a073f5: OUTPUT«ok 1 - » | ||
mj41 | yes, but I do not use <tab> ... probably some xchat bug | ||
mls: say 'ok' | |||
moritz | muhaha | 12:36 | |
12:36
rindolf joined
|
|||
jepeway | ok. er...moritz: ok, gotcha. | 12:36 | |
mj41 | m: say "abc{Uni.new(0x1E0C, 0x0307).Str}abc" | 12:37 | |
camelia | rakudo-moar a073f5: OUTPUT«abcḌ̇ab» | ||
mj41 | fixed, google++ | ||
jnthn | mj41: Yes, that's another case of the utf-8 encoder "I dunno NFG enough yet" thing I'm fixing at the moment :) | 12:38 | |
jepeway | moritz: should &is be smarter? or is it meant to do simple things, and cmp_ok with a comparator is where you're s'posed to go for trickier tests? | ||
mj41 | xchat: Preferences - Input box -> Automatic nick completion (without TAB key) | ||
12:39
laouji left
|
|||
moritz | jepeway: the latter | 12:39 | |
mj41 | thanks, jnthn++ | ||
moritz | jepeway: &is is supposed to do string comparisons, though recently we've made it a bit smarter when comparing to type objects | 12:40 | |
but it shouldn't become too smart, to be able to stay predictable | |||
jepeway | moritz: understood. | 12:41 | |
timotimo | o/ | ||
jepeway | moritz: thankee, btw. | 12:42 | |
moritz | jepeway: you're welcome | 12:43 | |
12:44
domidumont left
|
|||
jepeway | gone. | 12:44 | |
12:46
muraiki left
12:49
pippo joined
|
|||
masak | > I've rejected RT #116525 and botsnack and RT #117109; | 12:50 | |
]]] Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116525 | |||
synbot6 | om nom nom | ||
masak | ]]] om nom nom | ||
]]] Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117109 | |||
hehe | |||
jnthn: ^^^ | |||
submitting pull request now. | |||
jnthn | :) | 12:53 | |
masak++ | |||
masak | tadzik: github.com/tadzik/synopsebot/pull/6 | 12:58 | |
the "oh, I've got to blog about this" thing I did was, before I wrote this patch, I set up a small 11-line REPL that instrumented Synopsebot and with which I could debug it as I wrote the solution. | 12:59 | ||
could also have written tests in much the same way, but that felt a little overengineered in this case. | 13:00 | ||
13:01
lucasb joined
|
|||
lucasb | good friday to you o/ | 13:02 | |
masak | \o | ||
lucasb | m: Failure.new(Exception.new) | ||
camelia | rakudo-moar a073f5: OUTPUT«No exception handler located for catch at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:16475 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:si…» | ||
lucasb | m: Failure.new(Exception.new); 1 | 13:03 | |
camelia | rakudo-moar a073f5: OUTPUT«(signal SEGV)» | ||
lucasb | I don't know why the last statement is special for rakudo... | 13:04 | |
moritz | it's not evaluated in sink context | ||
lucasb | In "2;3;4", only 2 and 3 get warnings for useless use | ||
moritz | which is kinda a bug | ||
lucasb | moritz: oh, thanks | ||
moritz | in the general case, when you have code inside a block, the last statement is returned | 13:05 | |
hence it's not in sink context | |||
and we haven't fixed that for the mainline | |||
m: sub f { 2; 3; 4 }; say f() | |||
camelia | rakudo-moar a073f5: OUTPUT«4» | ||
moritz | it doesn't warn inside subs either :( | ||
jnthn | For the mainline, we didn't fix it 'cus the REPL wants it that way also... | 13:06 | |
moritz | right | ||
lucasb | Maybe this is helping hide some bugs, because I have to put one at the end "...; 1" | 13:08 | |
I thought maybe "sink Failure.new(Exception.new)" would give the same segfault, but maybe I don't know how to use sink | 13:09 | ||
jnthn will investigate the SEGV | 13:10 | ||
lucasb | jnthn: thanks! | ||
moritz | m: Failure.new(Exception.new).sink | ||
camelia | rakudo-moar a073f5: OUTPUT«(signal SEGV)» | ||
moritz | there ya go | ||
lucasb | moritz++ | ||
masak submits rakudobug | |||
jnthn largely re-did the UTF-8 encoder to it'll handle NFG and use less memory in the common case | 13:12 | ||
Currently spectesting. | |||
timotimo | wow, that's ... | ||
moritz | Exception.new leaves $!ex and $!bt undefined | 13:14 | |
pippo | jnthn++ | ||
moritz | but the rest of the code assumes that they are set | ||
13:14
skids joined
|
|||
moritz | and it's the catching/throwing code that generates a new exception and binds $!ex and $!bt into them | 13:15 | |
jnthn | moritz: Still shouldn't SEGV either way... | ||
hoelzro | o/ #perl6 | ||
jnthn | moritz: I'll fix the SEGV at Moar level and leave somebody else to figure out what it should actually do | ||
moritz | m: Failure.CREATE.sink | ||
camelia | rakudo-moar a073f5: OUTPUT«Method 'throw' not found for invocant of class 'Any' in block <unit> at /tmp/zypTeglcI2:1» | ||
masak | rt.perl.org/Ticket/Display.html?id=124434 | 13:16 | |
lucasb | masak++, thanks | 13:17 | |
cognominal | if you want to segfault moarvm rakudo : use rule :s | 13:28 | |
unimplemented pragma should not have license to segfault :) | 13:29 | ||
13:30
rurban joined
|
|||
hoelzro | my @values{1..*} creates a 1-indexed array, right? | 13:31 | |
cognominal | probably use could use some expertise. | ||
masak | cognominal: is this something you can reproduce on camelia? | ||
walk & | 13:32 | ||
13:33
kaare__ left
|
|||
cognominal | maybe I don't want to segfault camelia. What happens then | 13:33 | |
13:33
xfix joined,
xfix left,
xfix joined
|
|||
jnthn | cognominal: It creates a separate Rakudo process, so camelia is unharmed. | 13:36 | |
cognominal | it happens on the Perl 6 shell | ||
m: use rule :s | |||
camelia | rakudo-moar a073f5: OUTPUT«===SORRY!===Could not find rule in any of: /home/camelia/.perl6/2015.04-130-ga073f5d/lib, /home/camelia/.perl6/2015.04-130-ga073f5d, /home/camelia/rakudo-inst-2/share/perl6/lib, /home/camelia/rakudo-inst-2/share/perl6/vendor/lib, /home/camelia/rakudo-in…» | ||
cognominal | So it's Perl 6 shell specific | 13:37 | |
timotimo | perl6 shell? | 13:38 | |
oh, the REPL | 13:39 | ||
the REPL has some ... problems | |||
hoelzro: i don't think that's implemented yet | |||
cognominal | and it happens even if ones launch it as: perl6 --target=parse | ||
13:40
thou joined
13:41
skids left
|
|||
cognominal | timotimo: that's too bad because that's should be the best way for people to dip their toes in the Perl 6 ocean to test its water. | 13:41 | |
timotimo | that's true ;( | 13:42 | |
cognominal | if that clips their toes they will not come back. | ||
I can't understand why that behavior is REPL specific | 13:44 | ||
btyler | cognominal: that doesn't occur for me. think you could bisect the issue? | 13:45 | |
I get the same output in my REPL as camelia gives | 13:46 | ||
hoelzro | timotimo: doesn't seem like it =/ | 13:48 | |
13:49
raiph joined
13:51
adu joined
|
|||
timotimo | funny. just earlier today i thought about arrays that have enum indices | 13:51 | |
13:51
airdisa joined
|
|||
timotimo | cognominal: fwiw, the repl just recently learned to cope with binding better, that makes a gigantic difference because you use binding so often to keep lists lazy | 13:52 | |
cognominal | nice | 13:53 | |
btyle what version of rakudo do you use on what platform? | 13:55 | ||
btyler what version of rakudo do you use on what platform? | 13:56 | ||
btyler | I'm updating to HEAD on moar/nqp/rakudo and rebuilding at the moment, osx 10.10 | ||
13:57
koo6 left
13:58
adu left
|
|||
cognominal | that's about time I learn about git bisect | 13:58 | |
DrForr | Better than hashes with enum indices :) | 14:01 | |
jnthn | masak: Mebbe you have a moment to review rt.perl.org/Ticket/Display.html?id=117307 and see if current sequence semantics either do what you want, or if the ticket is otherwise no longer needed? | 14:06 | |
dalek | p: 861faf7 | jnthn++ | tools/build/MOAR_REVISION: Get various MoarVM string-related fixes. |
14:12 | |
kudo/nom: 8a7e9c4 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for MoarVM with string fixes. |
|||
ast: fa3bfee | jnthn++ | S15-nfg/from-buf.t: Test round-trip of synthetics with encode/decode. |
14:13 | ||
ast: bf3811c | jnthn++ | S04-exceptions/fail.t: Test for RT #118785 (use fatal semantics). |
|||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118785 | ||
cognominal | oops, when compiling the version tagged Vladivostok, I get No registered operation handler for 'readlineintfh' :( | ||
I am probably doint it wrong :( | 14:15 | ||
14:17
adu joined
|
|||
cognominal | indeed it uses an already installed nqp-m :( | 14:17 | |
14:20
koo6 joined
14:24
pecastro left
14:25
raiph left
14:27
raiph joined
14:29
alini left,
tinyblak joined
14:31
brrt left
|
|||
timotimo | right; we have "need at least this version for new-enough ops", but not "must not use this newer version with an op removed" | 14:32 | |
cognominal | :) | 14:34 | |
need some rest :( | 14:35 | ||
14:37
alini joined
14:40
adu left
14:52
RabidGravy joined
14:53
rindolf left
14:57
diana_olhovik joined
|
|||
notjack | m: say.WHAT | 14:59 | |
camelia | rakudo-moar 8a7e9c: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/ih2PWknpI1:1------> 3say7⏏5.WHATOther potential difficulties: Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or …» | ||
notjack | I wonder how many common emoticons have legitimate interpretations in p6 | ||
hoelzro | does the fact that @*INC is now @?INC mean that one can't manipulate the module search path at runtime? | 15:01 | |
notjack | m: say(.WHAT); | ||
camelia | rakudo-moar 8a7e9c: OUTPUT«(Any)» | ||
hoelzro | also, is there a generic equivalent to <=? like before= or something? | 15:03 | |
dalek | kudo/nom: ea8c01a | jnthn++ | src/Perl6/Actions.nqp: Make { 1 R=> 'a' } and { %*h } construst hashes. |
15:05 | |
ast: 9854a68 | jnthn++ | S05-mass/named-chars.t: Unfudge tests unbusted after Moar NFG fix. |
15:07 | ||
ast: 9fad51e | jnthn++ | S06-other/anon-hashes-vs-blocks.t: Tests for RT #114966 and RT #123641. |
|||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=114966 | ||
15:11
Vlavv left
15:12
pecastro joined
|
|||
dalek | ast: 7ad6596 | jnthn++ | S14-roles/mixin.t: Tests for RT #122756 and RT #114668. Two already-fixed-in-Rakudo mixin bugs. |
15:14 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122756 | ||
jnthn | Was expecting to fix those, then found I already had at some point :) | ||
15:18
kaare__ joined
15:22
ugexe_ is now known as ugexe,
cschwenz left
15:23
Vlavv joined
|
|||
lizmat | m: %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a | 15:31 | |
camelia | rakudo-moar ea8c01: OUTPUT«Died in sub a at /tmp/QSq6CQ0Sre:1 1 *%*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a in block <unit> at /tmp/QSq6CQ0Sre:1 1 *%*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; sub a { die }; a» | ||
lizmat | m: %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1;sub a { die };a | 15:32 | |
camelia | rakudo-moar ea8c01: OUTPUT«Died in sub a at /tmp/ioBp0ggUiH:2 1 %*ENV<RAKUDO_VERBOSE_STACKFRAME>=1; 2 *sub a { die }; 3 a in block <unit> at /tmp/ioBp0ggUiH:3 2 sub a { die }; 3 *a» | ||
lizmat | :) | ||
arnsholt | hoelzro: That's infix:<le> | 15:33 | |
hoelzro | arnsholt: le isn't Str-specific? | ||
RabidGravy | jnthn, you have been dobbed in as the design authority of channels and I want to clarify the way that earliest is intended to work before I document it further ;-) | ||
arnsholt | Oh, right. For some reason I though those were generic | ||
jnthn | RabidGravy: Trouble is, I didn't design much of the way things are now... :S | 15:34 | |
RabidGravy | ah, | ||
jnthn | There was no syntax sugar at first. By now, we have syntax sugar I don't actually understand either... | 15:35 | |
RabidGravy | my specific question was is the behaviour that if there are any channel specific more statements, then the more * are totally ignored deliberate or just "lets just do it" | 15:36 | |
lizmat | hmmm... if it isn't jnthn, it must have been me? | 15:37 | |
must have slipped my mind :-( | |||
jnthn | I think several people worked on the construct | ||
Not just you, lizmat | |||
lizmat | *phew* :-) | ||
jnthn | So I don't think it's just bad memory on your part ;P | 15:38 | |
lizmat | well, old geezesses tend to lose their memory :-( | ||
RabidGravy | my expectation (which I think might be what most people would think) is that is there is a "earliest @channels { more $channel {} more * {} } that the "more *" would get called on all the other channels that aren't $channel | 15:39 | |
dalek | kudo/nom: 0e30f48 | lizmat++ | src/Perl6/World.nqp: Don't force the default SHORT-ID here |
||
RabidGravy | this seems to be entirely opposite to the case that is coded | ||
jnthn | RabidGravy: That seems a reasonable enough expectation... | ||
RabidGravy | right now if there are any channel specific more or done blocks then the wildcard ones don't get used at all | 15:40 | |
15:41
airdisa left
|
|||
RabidGravy | the spec on this is somewhat handwavey | 15:41 | |
in src/core/asyncops.pm for anyone who may be playing along at home | 15:42 | ||
dalek | kudo/nom: 6887699 | lizmat++ | src/core/Backtrace.pm: Move emphasis to line number |
15:46 | |
15:46
airdisa joined
15:49
zakharyas left
|
|||
RabidGravy | the change is quite small really but I'd like to get the opinion of the person who wrote the EARLIEST there because their understanding of the spec might be completely different | 15:49 | |
lizmat | RabidGravy: we're all pretty much handwavy there | 15:51 | |
if it makes sense to jnthn and you, that's good enough for me :-) | |||
15:52
khisanth_ joined
|
|||
lizmat | meanwhile, I'm looking at a weird action-at-a-distance bug | 15:54 | |
DrForr | Okay, I'm now scared. I just added 3 AST keys to the ANTLR4 rules, added the tests, and it worked the first time. | ||
lizmat | working on CompUnitRepo, I break set tests: the file only does a "use Test" :-( | ||
15:55
Khisanth left,
pierrot left,
pierrot joined
|
|||
dalek | p: 6ac09e8 | jnthn++ | t/qregex/ (2 files): Unbitrot and run goal tests. |
15:56 | |
p: 413aa65 | jnthn++ | t/qregex/rx_goal: Tests for /a ~ (c) (b)/ capture order issue. Todo'd until I get it fixed. |
|||
lizmat | well, it also broke panda, so it must be unit loading specific | ||
15:58
diana_olhovik left
|
|||
ugexe | is there a better way to write: if once {1} || $some-cond { ... } | 16:03 | |
16:04
araujo joined,
lucasb left
16:05
araujo left,
araujo joined,
araujo left
|
|||
raydiak | ugexe: since the once {1} will run the {1} once but return the 1 every time, the easier way to write it is "if True { ... }" which collapses to "..." :) | 16:08 | |
timotimo | how about | 16:10 | |
my $do-it; once { $do-it = 1 }; if $some-cond || $do-it { ... }? | |||
16:11
cygx joined
|
|||
raydiak | I'd probably end up doing my $first = True; if $first || $something-else { $first = False; ... } | 16:12 | |
you could put the $first = False; in a once { } if you wanted to optimize prematurely :) | 16:13 | ||
16:14
muraiki joined
16:18
rindolf joined
|
|||
cygx | so, S19, S28 and Rakudo do not agree on what goes into $*PROGRAM, $*PROGRAM_NAME, $*EXECUTABLE, $*SHEBANG, $?COMPILER | 16:18 | |
timotimo | maybe you really want a state variable instead? | ||
16:18
eli-se joined
|
|||
eli-se | hi | 16:19 | |
dalek | kudo/nom: 5fa3ffb | lizmat++ | src/Perl6/Actions.nqp: Make $?RAKUDO_MODULE_DEBUG a proper constant |
16:20 | |
ugexe | state variables didn't seem to work the way i needed with taps | ||
dalek | p: 5b57c74 | jnthn++ | src/ (4 files): Fix /a ~ (c) (b)/ capture order bug. Introduce a new node type that desugars, but lets us easily get the capture order straightened out. |
16:21 | |
p: 3d7bdf2 | jnthn++ | t/qregex/rx_goal: Untodo tests for /(a) ~ (c) (b)/. |
|||
16:21
vendethiel left
|
|||
lizmat | ugexe: a once block is mothing more than a piece of code that gets run depending on a (hidden) state variable | 16:23 | |
*nothin | |||
16:24
Ven_ joined
|
|||
timotimo | state variables get "cloned" when a closure of the block they're defined in gets taken | 16:25 | |
lizmat | ah, perhaps the one of a once block doesn't get cloned, which would explain the different behaviour? | ||
16:26
vendethiel joined
|
|||
lizmat | afk for dinner& | 16:26 | |
timotimo | dunno | ||
i don't work with once blocks often enough | |||
dalek | kudo/nom: 676c250 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for ~/capture regex fixes. |
16:27 | |
ast: e3fb0a3 | jnthn++ | S05-metachars/tilde.t: Unfudge RT #77616 test (~/capture interaction). |
|||
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77616 | ||
jnthn | 5 tickets to go until we've a page less of RTs :) | 16:28 | |
cygx | oO( time to submit new tickets ) | ||
timotimo | sure | 16:29 | |
jnthn | cygx: That's happening too :) | ||
There's 4 new and unresolved ones from within the last week. | |||
Just that for the moment we seem to be eating them faster than others are feeding new ones in. :) | 16:30 | ||
cygx | m: class Foo { has int $.bar; submethod BUILD(:$!bar) {} }; Foo.new(:bar(42)) | 16:31 | |
camelia | rakudo-moar 688769: OUTPUT«Cannot modify an immutable int in submethod BUILD at /tmp/tv8r9sdpwt:1 in block <unit> at /tmp/tv8r9sdpwt:1» | ||
cygx | ^known? | ||
jnthn | Yes, that one's already in RT :) | ||
cygx | ;) | ||
timotimo | the up and down is what makes perl6 better | ||
jnthn | Oh, for sure. One of the fun things about fixing RTs is knowing that somebody won't get bitten in *that* particular way again. :) | 16:32 | |
cygx | m: my uint $i = 2 ** 63; say $i | 16:33 | |
camelia | rakudo-moar 688769: OUTPUT«-9223372036854775808» | ||
cygx | that was the 2nd one I encountered recently | 16:34 | |
jnthn | Yeah, unsinged ints are only partially implemented (in native arrays, and in nativecall) | 16:35 | |
16:37
rurban left
|
|||
jnthn | Time for a break and some dinner :) bbl | 16:37 | |
RabidGravy | right, lizmat, jnthn , <anyone else who cares> I'll change the implementation of EARLIEST as I described about, alter the S17 such that it is more specific about the behaviour and add the one test (which is where all this started) to the roast. Then document it in the concurrency doc as I had planned to :-) | ||
seem like a plan? | 16:38 | ||
(I won't get to this until Monday being Beltaine and a big piss-up and all) | 16:40 | ||
colomon spent 45 minutes this morning playing music for elementary kids to dance around a Maypole | 16:46 | ||
16:47
fhelmberger joined
16:48
wtw left
16:49
eternaleye left
16:50
konsolebox left
|
|||
moritz made a big rhubarb crumble, and served it with ice cream | 16:53 | ||
16:53
domidumont joined,
eternaleye joined
|
|||
RabidGravy | colomon++ # playing music | 16:54 | |
16:56
cognominal left
|
|||
timotimo | RabidGravy: thank you very much | 16:58 | |
RabidGravy | I haven't done it yet ;-) | 17:05 | |
timotimo | ++RabidGravy | ||
17:06
telex left
17:07
Ven_ left
17:08
telex joined
|
|||
RabidGravy | :-) | 17:10 | |
17:15
tinyblak left
17:25
kaare__ left
17:26
kaare__ joined
17:35
eli-se left
|
|||
TimToady | hoelzro: there's just !before and !after currently | 17:38 | |
17:41
airdisa left
|
|||
cygx | TimToady: is $*EXECUTABLE going to stay, or will it be replaced by S28 $*SHEBANG? | 17:45 | |
17:45
cognominal joined
|
|||
cygx | TimToady: Also, what about the S19 examples (eg parrot perl6.pbc) where a single IO::Path object doesn't make much sense? | 17:45 | |
TimToady doesn't recollect ever seeing $*SHEBANG | |||
17:46
eli-se joined
|
|||
cygx | S28 talks about $?COMPILER and $*SHEBANG to get at compiler and interpreter, respectively | 17:47 | |
TimToady doesn't really count himself among the IO experts these days... | |||
$*SHEBANG is cute, but ultimately misleading | 17:48 | ||
17:49
koo6 left
|
|||
TimToady | especially since the interpreter is often started without a shebang at all | 17:49 | |
TimToady investigates whether there are any nodal tests... | 17:52 | ||
17:54
rindolf left,
rindolf joined
17:58
airdisa joined,
nbdsp joined
|
|||
cygx | currently, there does not appear too be a way to re-execute the interpreter if --execname is not passed to the moarvm binary | 17:58 | |
I wonder if something should be done about that... | 17:59 | ||
18:00
vendethiel left
18:02
vendethiel joined
18:05
liztormato joined
|
|||
liztormato | cygx: check the code of CompUnit.precomp. It does just that | 18:06 | |
18:08
spider-mario left
|
|||
masak | jnthn: rt.perl.org/Ticket/Display.html?id=117307 looks closable to me. | 18:08 | |
m: say .[*-1] given "perl" ... { 3 == ++state $ } | |||
camelia | rakudo-moar 676c25: OUTPUT«pern» | ||
18:09
liztormato left
|
|||
TimToady | m: say .[*-1] given "perl" ... { 3 == ++$ } | 18:10 | |
camelia | rakudo-moar 676c25: OUTPUT«pern» | ||
hoelzro | TimToady: thanks! | ||
masak | if the compiler is found through $?COMPILER, maybe the interpreter should be found through $*INTERPRETER ? | 18:11 | |
m: say ++$ | |||
camelia | rakudo-moar 676c25: OUTPUT«1» | ||
masak | m: say ++$; say ++$ | ||
camelia | rakudo-moar 676c25: OUTPUT«11» | ||
18:11
eli-se left
|
|||
TimToady | .oO(you think that's obvious today...) |
18:11 | |
(re $*INTERPRETER) | 18:12 | ||
cygx | lizmat: thanks | ||
lizmat: it goes through $*EXECUTABLE (ie moarvm --execname) as well, though... | 18:13 | ||
18:17
rindolf left
18:19
koo6 joined
18:24
vendethiel left
18:28
airdisa left
|
|||
jnthn | RabidGravy: Seems like a reasonable plan to me. | 18:30 | |
18:31
vendethiel joined
|
|||
jnthn | masak: What'd it take to actually close it? :) | 18:31 | |
18:37
domidumont left
|
|||
jnthn | TimToady: I'm looking at RT #75586 and RT #77564, which are about quantified things that make no progress | 18:38 | |
synbot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=75586 | ||
jnthn | TimToady: At the moment we retry them forever, so e.g. <.ws>* is a hang. | ||
TimToady: Do we declare that the behavior we want and such constructs erroneous, or do we do the little bit of work to keep track of it? | 18:39 | ||
(And thus be able to not keep matching) | 18:40 | ||
Uh, move on to the next atom, really. | |||
18:40
eli-se joined
|
|||
TimToady | we can probably catch some of low-hanging fruit there without compromising :ex and such | 18:43 | |
in the absence of :ex we can bump the start like P5 does, I suppose | 18:44 | ||
jnthn | TimToady: Can you give an example of what :ex thing we don't want to break? I'm not quite seeing it... | 18:47 | |
18:49
dwarring joined
|
|||
TimToady | anything starting with .*? might appear to make no progress in that atom until subsequent atoms progress, so you can't just look at the first atom, is all | 18:49 | |
lunch & | 18:50 | ||
hoelzro | does anyone else get bitten by passing invalid keyword args to methods like I do? | 18:52 | |
I know that methods accept any kwargs for the purposes of passing them to other methods in the inheritance/role chain, but I feel like there's got to be a better solution | |||
labster | like a way of declaring a kwargs whitelist? | 18:56 | |
PerlJam | hoelzro: All you have to do is invent the appropriate stricture pragma for it ... ;) | ||
hoelzro | heh | 18:57 | |
labster: I'm not really sure | |||
I just know that I was trying [ ... ].min(:by(&func)), and was puzzled why &func wasn't being called | |||
maybe I'm the only one with this problem | |||
labster | The compiler goes out of its way to warn you about most typos, but kwargs typos are silently accepted. | 18:58 | |
geekosaur | it would be nice if some e.g. debug/warning mode would report that some kwarg was never inspected | ||
labster | It would especially be nice at compile time, though that's not always possible. | 18:59 | |
raiph | TimToady on the topic: irclog.perlgeek.de/perl6/2015-03-01#i_10199490 | 19:02 | |
19:02
nbdsp left
|
|||
labster | PerlJam might have the right idea here. Or something like method foo( $a, :$name :nomorekwargspls ) { ... } | 19:04 | |
raiph | (above was TimToady on the topic of unused kwargs) | 19:05 | |
hoelzro | ah, thanks raiph | ||
19:21
kaare__ left
19:29
airdisa joined
19:30
airdisa_ joined
19:34
airdisa left,
cygx left
19:35
notjack left
19:37
airdisa joined,
airdisa_ left
19:39
fhelmberger left,
fhelmberger joined
19:44
fhelmberger left,
ahuegyua joined
19:45
ahuegyua left
19:47
mj41 left,
diana_olhovik joined
19:52
diana_olhovik left
19:58
airdisa left
19:59
Vlavv left,
cognominal left
20:01
vendethiel left
|
|||
masak | "kwargs" is so Python. :) we typically call them "named parameters" (on the callee side). | 20:04 | |
20:06
xfix left,
dolmen joined
|
|||
moritz | **kwargs | 20:07 | |
masak | I see you're all starry-eyed about kwargs. | 20:08 | |
lizmat | .oO( I prefer quargs ) |
||
hoelzro | masak: I use kwargs as a term because it's easy to type =) | 20:10 | |
geekosaur | qwarks? | 20:12 | |
20:12
Vlavv joined,
diana_olhovik_ joined
|
|||
hoelzro | I like lizmat's term, though =) | 20:12 | |
masak | clearly "quargs" are arguments to a quantum processor. | 20:13 | |
lizmat is a bit ahead of the curve here. | |||
lizmat | .oO( shiny! ) |
||
20:13
avalenn left
20:15
domidumont joined,
domidumont left,
domidumont joined
|
|||
moritz | and you interpolate quargs with /\quargs, right? | 20:17 | |
20:17
diana_olhovik_ left
|
|||
lizmat | actually, you put them in a closed cone shaped container, and generate a force from that :-) | 20:20 | |
moritz puts himself into a rectangular container | 20:26 | ||
'night folks | |||
jnthn | 'night, moritz | 20:27 | |
lizmat | good night, moritz | ||
masak | 'night, moritz | 20:28 | |
PerlJam | moritz: sleep well and awaken refreshed :) | 20:29 | |
masak | that's an order! | 20:30 | |
20:32
domidumont left
|
|||
PerlJam | Are .ast and .made going to remain synonymous or will .ast eventually disappear? | 20:33 | |
20:33
domidumont joined
|
|||
masak kinda hopes the former | 20:36 | ||
to me, .ast is way more evocative than .made | |||
I also cannot think of another case where we have a pair of things similar to the `make`/`.made` pair | 20:37 | ||
PerlJam | I have no feelings one way or the other except that make/made seem more naturally dual than make/ast | ||
masak | I believe that's why .made was introduced | ||
it didn't make me switch over, though :) | |||
but I'm just one data point. maybe the rest of the world is crazy about .made | 20:38 | ||
jnthn | I've no objections to .ast continuing to exit. | ||
*exist | |||
PerlJam | I would have liked to see make turn into something that feels more ASTy, but I didn't and don't have any ideas on that. | ||
masak | .ast is a noun. .made is the past form of a verb | ||
my biggest beef with `make` is that it is kind of invisibly coupled with the $/ variable in the caller's scope. | 20:39 | ||
20:39
domidumont left
|
|||
masak | I don't find that very elegant, but the fact is that it's good enough for most uses. | 20:39 | |
jnthn | masak: You can use $other-match.make(...) | 20:40 | |
PerlJam | What would be elegant? | 20:41 | |
masak | jnthn: oh, that's nicer. | ||
but also obviously longer and less convenient. | |||
jnthn | We have various things ($0, $<foo>...) that work against $/ | ||
But none of these things are the only way to do it, just convenient in the common case. | |||
masak | yeah. also neither of those are calls. | 20:42 | |
pippo | m: my $str = "\c[COMBINING DOT BELOW]D\c[COMBINING DOT ABOVE]"; $str ~= "D"; say $str; | ||
camelia | rakudo-moar 676c25: OUTPUT«̣ḊD» | ||
lizmat | fwiw, I sorta envisioned a future where .ast would actually check whether it generated an AST or not | ||
masak | m: my $str = "\c[COMBINING DOT BELOW]D\c[COMBINING DOT ABOVE]"; say $str.chars | 20:43 | |
camelia | rakudo-moar 676c25: OUTPUT«2» | ||
lizmat | so .ast would be stricter in "typing" than .made | ||
jnthn | 2 is right there, the first acts as...gah, does the Unicode spec call them solitary or isolated...I forgot :) | ||
masak .oO( bachelor code points ) | 20:44 | ||
jnthn | I'd have remembered it if they called them something that colorful :P | ||
20:44
darutoko left
20:50
rurban joined
|
|||
pippo | my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; | 20:56 | |
m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; | |||
camelia | rakudo-moar 676c25: OUTPUT«Ḍ̇D» | ||
jnthn | pippo: If you're seeing something different from ^^ locally it's 'cus there was a UTF-8 encoder bug | 20:57 | |
20:57
vendethiel joined
|
|||
pippo | ^^ should'nt the dot above the second D be on the first? | 20:58 | |
jnthn | pippo: Here the two dots are on both. | 20:59 | |
uh | |||
The two dots are on the *first* | |||
20:59
airdisa joined
|
|||
PerlJam | huh. I see only a dot below the first D | 21:00 | |
pippo | on my box I have same result as camelia. One on the first and the second (dot) on the second. | ||
jnthn | That is, I see a D with a dot rendered above and below it, though a little awkwardly... | ||
I'm suspecting you're seeing rendering issues rather than issues with anything Rakudo is doing. | 21:01 | ||
geekosaur | fwiw my slightly insane IRC client put the dot below on the first D | ||
jnthn | geekosaur: And the dot above too? | ||
geekosaur | the dot above is over the left guillemet | ||
(!) | |||
masak .oO( the dress is blue and black! no, it's white and gold! ) | 21:02 | ||
Zoffix | On mine, the dot below is on the first D | ||
PerlJam | heh | ||
Zoffix | i.imgur.com/kx52ivw.png | ||
pippo | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str; | 21:03 | |
camelia | rakudo-moar 676c25: OUTPUT«Ḍ̇D» | ||
pippo | ^^ what do you see here ? | ||
Zoffix | Same thing! :O | ||
pippo | I see one dot below the first D and one above the second D | ||
Zoffix | i.imgur.com/KLHUVj0.png | ||
But why are there 2 'D's now? | 21:04 | ||
pippo | $str ~= "D"; | ||
21:04
alexghacker joined
|
|||
PerlJam | he appended a second D | 21:04 | |
jnthn | Here I have jnthn.net/tmp/d.pn | 21:05 | |
Here I have jnthn.net/tmp/d.png even | |||
Zoffix | Ah, then it's all fine. I didn't know ~= was appending in Perl 6. | ||
geekosaur | i.imgur.com/vocaox1.png | ||
21:05
alexghacker left
|
|||
PerlJam | mine looks like geekosaur's | 21:05 | |
pippo | jnthn: You are seeing it correct!! | ||
jnthn | Apparently, Windows + PuTTY + irssi FTW :) | 21:06 | |
pippo | What happened windows became superior ?? :-)) | ||
geekosaur | xchat/hexchat known buggy about this | ||
jnthn | Well, the irssi is running on Linux | ||
geekosaur is procrastinating moving to textual which has some chance of being saner | |||
21:06
colomon left
|
|||
lizmat | geekosaur: Textual is actually saner :-) | 21:07 | |
pippo | I have also irssi on linux. But does not render correctly. Same on mozilla firefox. | ||
geekosaur | irssi is terminal based so the rendering has less to do with irssi than the terminal program | ||
21:08
colomon joined
|
|||
geekosaur | if said terminal uses pango, like mozilla does, then it probably gets it wrong | 21:08 | |
lizmat | any good place to upload an image quickly ? | ||
PerlJam | imgur | 21:09 | |
pippo | geekosaur: sigh! :-(( | ||
here is firefox: imgur.com/kq7PfXj | 21:11 | ||
geekosaur | hm, gets it differently wrong | 21:13 | |
suppose it depends on settings | |||
I am told pango can actually do it right but it takes very careful programming | |||
(and I have yet to see it actually do so) | |||
21:17
espadrine joined,
espadrine left,
espadrine joined
21:19
vendethiel left
21:24
colomon left
21:26
muraiki left
21:28
colomon joined
21:30
colomon left
21:31
yqt joined
|
|||
pippo | FYI: the ipad of my wife renders it correctly. | 21:31 | |
21:33
P1RATEZ joined,
eli-se left
|
|||
P1RATEZ | p6: say 'hi'; | 21:33 | |
camelia | rakudo-moar 676c25: OUTPUT«hi» | ||
21:33
thou left
21:34
Zoffix left
|
|||
PerlJam | with a nick like that, I would have expected something more like ... | 21:34 | |
m: say "ARRRR!" | |||
camelia | rakudo-moar 676c25: OUTPUT«ARRRR!» | ||
masak | m: say <rum grog ships>.join(" and "), "!" | 21:38 | |
camelia | rakudo-moar 676c25: OUTPUT«rum and grog and ships!» | ||
21:40
Ven_ joined
|
|||
masak | m: say <rum grog ships>.pick(*).join(" and "), "!" for ^3 | 21:40 | |
camelia | rakudo-moar 676c25: OUTPUT«grog and ships and rum!grog and ships and rum!rum and ships and grog!» | ||
masak | m: say <rum grog ships>.roll(*).join(" and "), "!" for ^3 | ||
oh, oops. | 21:41 | ||
m: say <rum grog ships>.roll(3).join(" and "), "!" for ^3 | |||
camelia | rakudo-moar 676c25: OUTPUT«(timeout)» | ||
rakudo-moar 676c25: OUTPUT«ships and grog and grog!ships and rum and rum!ships and ships and rum!» | |||
flussence | huh, my irclog for that D shows it wrong, but the actual data is: | ||
00000240: 3235 3a20 4f55 5450 5554 c2ab e1b8 8ccc 25: OUTPUT...... | |||
00000250: 8744 e290 a4c2 bb0a 3232 3a30 333a 3234 .D......22:03:24 | |||
masak | 'night, #perl6 | ||
PerlJam | flussence: I think we all know why unicode is hard by now ;) | 21:42 | |
good night masak! | |||
21:42
pippo left
|
|||
flussence | the cc at the end of the first line and 87 at the start of the second are the \c[COMBINING DOT ABOVE], but shouldn't that be *after* the D? | 21:42 | |
PerlJam didn't get much sleep last night and feels like napping right now himself | |||
21:42
pippo joined
|
|||
PerlJam | (though bed time is 6+ hours away for me) | 21:43 | |
21:43
colomon joined
|
|||
flussence | m: my $str = "D\c[COMBINING DOT ABOVE]\c[COMBINING DOT BELOW]"; $str ~= "D"; say $str.encode('utf-8'); | 21:43 | |
camelia | rakudo-moar 676c25: OUTPUT«utf8:0x<e1 b8 8c cc 87 44>» | ||
21:44
pippo left
|
|||
flussence | oh wait, I'm getting confused. Completely missed the append there... | 21:46 | |
m: say utf8.new(0xe1, 0xb8, 0x8c).decode | |||
camelia | rakudo-moar 676c25: OUTPUT«Ḍ» | ||
21:48
raiph left
|
|||
flussence | now that I'm paying attention, it does render correct for me. irssi/tmux/urxvt here. | 21:48 | |
21:48
Ven_ left
21:49
pippo joined
|
|||
flussence | doesn't work in perl -e though, guess I need to update that :) | 21:50 | |
21:56
BenGoldberg joined
22:06
captain-adequate left,
colomon left
22:07
colomon joined
22:10
yqt left,
colomon left
|
|||
pippo | o/ | 22:15 | |
22:15
pippo left
22:19
dolmen left
|
|||
lizmat | good night, #perl6! | 22:22 | |
japhb | o/ lizmat | 22:23 | |
22:23
virtualsue left
22:32
Foxcool_ left
22:33
colomon joined
22:43
koo6 left
22:44
hobbs left
22:49
hobbs joined
22:56
airdisa left
22:58
RabidGravy left
23:02
Vlavv left
|
|||
labster | m: say q(') | 23:06 | |
camelia | rakudo-moar 676c25: OUTPUT«5===SORRY!5=== Error while compiling /tmp/01dmazliS7Unable to parse expression in single quotes; couldn't find final "'" at /tmp/01dmazliS7:1------> 3say q(')7⏏5<EOL> expecting any of: argument list single quote…» | ||
labster | m: say q/'/ | 23:07 | |
camelia | rakudo-moar 676c25: OUTPUT«'» | ||
labster | std: say q(') | 23:09 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Unable to parse single quotes at /tmp/zETV6b9RIe line 1:------> 3say q(7⏏5')Couldn't find final "'"; gave up at /tmp/zETV6b9RIe line 1 (EOF):------> 3say q(')7⏏5<EOL>Parse failedFAILED 00:00 135m» | ||
labster | am I doing something wrong here? | ||
23:10
rurban left
|
|||
jnthn | labster: foo() is always a function call | 23:11 | |
labster | ah, got it | ||
m: say q (') | 23:12 | ||
camelia | rakudo-moar 676c25: OUTPUT«'» | ||
23:14
Vlavv joined
|
|||
jnthn | sleep time...'night o/ | 23:15 | |
23:15
khisanth__ joined
23:16
khisanth_ left,
P1RATEZ left
23:17
cognominal joined
23:24
alini left
23:32
espadrine left
|
|||
b2gills | m: #`[ is there a way to mark a `gather` block as infinite ] say Bool.roll(*).infinite; | 23:36 | |
camelia | rakudo-moar 676c25: OUTPUT«False» | ||
23:38
pecastro left
23:44
Rounin left
23:49
telex left
|
|||
tony-o | b2gills: you're looking for that to keep rolling? | 23:49 | |
23:49
airdisa joined,
erdic left
23:51
erdic joined
23:52
telex joined,
telex left
|
|||
tony-o | m: print "$_ " for (True,False).roll(*); | 23:52 | |
camelia | rakudo-moar 676c25: OUTPUT«(timeout)True True False True True False True True True False False True False True True False True False False False False False True True False False False True True True True False True True False False False True True True False False True False True F…» | 23:53 | |
23:54
telex joined
|