»ö« 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. |
|||
dpk | p6: say 'xß' ~~ rx:i/XSS|YS/ | 00:01 | |
camelia | Nil | ||
dpk | p6: say 'xss' ~~ rx:i/XSS|YS/ | 00:02 | |
camelia | 「xss」 | ||
dpk | p6: say 'xß' ~~ rx:i/Xß|YS/ | ||
camelia | 「xß」 | ||
dpk | p6: say 'xss' ~~ rx:i/Xß|YS/ | ||
camelia | Nil | ||
dpk | ⬑ this seems like a bug | ||
00:03
gregf_ left
|
|||
dpk | though beware there is also the more complicated case (from an implementation perspective) of rx:i/[XS|Y]S/ | 00:03 | |
none of the regexp engines i've tried has got that one right, and only Ruby (oniguruma) has got the previous examples right too | 00:04 | ||
00:05
ryn1x left
|
|||
dpk | (i've tried re2, pcre, perl 5, and egrep) | 00:05 | |
00:15
mson left
00:21
lookatme joined
|
|||
lookatme | o/ | 00:21 | |
tyil | \o | 00:23 | |
00:25
Khisanth left
00:30
kaare_ left,
kaare_ joined
00:32
ryn1x joined
00:33
MasterDuke joined
00:35
silug left
00:36
mudman left
00:38
Cabanossi left,
Khisanth joined
00:40
Cabanossi joined
|
|||
dpk | okay, even ICU's regexp engine does not bother to try to match (?i:(XS|Y)S) against xß 'correctly' | 00:41 | |
so i think that case can safely be ignored | |||
00:45
eliasr left
00:51
aborazmeh joined,
aborazmeh left,
aborazmeh joined
00:53
sena_kun left
00:55
char_var[buffer] left,
char_var[buffer] joined
00:57
silug joined
|
|||
lookatme | I am curious if I collect the everything(include lib, precomp) moar needed, is it possible run it in another pc. | 00:58 | |
01:00
silug left
01:04
silug joined,
markong left
|
|||
ryn1x | When uploading to CPAN on PAUSE do I need to put Perl6 in the 'Target Directory' field? | 01:17 | |
01:19
cdg joined,
dayangkun joined
01:23
cdg left
01:33
mudman joined
01:37
Cabanossi left
01:40
Cabanossi joined
01:42
b2gills left
01:45
pilne left
01:50
b2gills joined
01:55
cdg joined
|
|||
ZzZombo | m: say "\n" ~~ /<ws>/ | 01:58 | |
camelia | 「 」 ws => 「 」 |
||
01:59
cdg left
02:00
lizmat joined
|
|||
ZzZombo | Eh, why does the regex doc page omit info for `<ww>` despite using the negated form in 4 places towards the end of it? | 02:03 | |
What does exactly it do? | |||
buggable | New CPAN upload: Terminal-Spinners-0.0.3.tar.gz by RYNIX cpan.metacpan.org/authors/id/R/RY/...0.3.tar.gz | ||
geekosaur | ZzZombo, it's in there. look for 'Predefined subrules:' | 02:05 | |
geekosaur notes a typo, reading on therefrom... | 02:06 | ||
ZzZombo | Why is it written with the '?'?? It makes no sense, and made Ctrl+F to fail. | 02:08 | |
Also, shouldn't the dot be used to suppress capture? | |||
geekosaur | that is explained in the description | 02:10 | |
*any* symbol character prevents capture; '?' is used because it implies 'this is an assertion that matches a *state*, as opposed to something that actually matches one or more characters' | 02:11 | ||
lookatme | m: say "123" ~~ /<.ww>/; say "123" ~~ /<?ww>/; say "123" ~~ /<ww>/; | 02:12 | |
camelia | 「」 「」 「」 ww => 「」 |
||
geekosaur | whereas <.ww> would suggest that <ww> matches some character or characters | ||
lookatme | What's the difference `.` and `?` | ||
geekosaur | in this case they;re the same from a perl 6 standpoint, it's consistency for the reader that matteers | ||
ok, what I said above was mumblenonsense | |||
lemme see if I can figure out a different way to say it | |||
perl 6 actually does not care what symbol you use to say 'this is non-capturing'. (in some specific circumstances using ! has meaning.) | 02:13 | ||
lookatme | I found ` <alpha> # match a letter and capture to $alpha (eventually $<alpha>) | 02:14 | |
<.alpha> # match a letter, don't capture | |||
<?alpha> # match null before a letter, don't capture` in design doc | |||
geekosaur | from a *human* standpoint, using '.' is intended to say 'this matches some text, and would give it to us but we told it not to' | ||
from a *human* standpoint, using '?' means 'this matches a particular state instead of a particular set of characters' | |||
so like <?before foo> means "match the state of being just before 'foo'", as opposed to "match 'foo'" | 02:15 | ||
02:17
mudman left
|
|||
geekosaur | <ww> is an assertion that you are between word characters. it doesn't match and wouldn't capture any actual characters; it is a state. as such, it doesn't make much sense normally to use it in default capturing mode, since the capture would aways be empty | 02:17 | |
02:18
kitsunenokenja joined
|
|||
geekosaur | *but* in some contexts (like building regexes programmatically) it is useful for all such things to behave consistently, so you don't need to have special cases "this <xxx> captures, but this <xxy> doesn't" | 02:18 | |
so all rules behave the same way: they add *something* to the list of captuires, unless they start with a symbol in which case they do not. | 02:19 | ||
so, if you say <ww> in a regex, if it matches it doesn't match *haracters*, but it still records an empty capture for consistency | 02:20 | ||
lookatme | m: say "fp" ~~ /<alpha><alpha>/; say "fp" ~~ /<.alpha><alpha>/; say "fp" ~~ /<?alpha><alpha>/; # this make sense | ||
camelia | 「fp」 alpha => 「f」 alpha => 「p」 「fp」 alpha => 「p」 「f」 alpha => 「f」 |
||
geekosaur | and . and ? don't actually mean anything different. but for human readers . implies it would capture characters but ? implies it's about a certain condition being true instead of about what character(s) it would match | 02:21 | |
it's just convention | |||
02:21
khw left
|
|||
lookatme | Hmm | 02:21 | |
ZzZombo | But the question what exactly constitutes "within word" still stands. | 02:25 | |
geekosaur | that's defined a little before that in \w | 02:28 | |
"matches a single word character; i.e., a letter (Unicode category L), a digit or an underscore." | |||
02:29
espadrine left
|
|||
geekosaur | so <?ww> matches between two things that match \w, and <?wb> matches between two things where one matches \w and the other matches \W | 02:29 | |
lookatme | m: say "123abc" ~~ /\d+<?ww>\w+/ | 02:30 | |
camelia | 「123abc」 | ||
02:30
mudman joined
|
|||
ZzZombo | thanks | 02:31 | |
lookatme | m: say "123 abc" ~~ /<?wb>\w+/ | ||
camelia | 「123」 | ||
geekosaur | huh, maybe it's smarter than p5's, that would be nice. (one thing that always annoyed me about the p5 version was I had to separately handle the "start/end of line" case( | 02:32 | |
ok, filed doc bug :) | 02:33 | ||
02:33
khw joined
|
|||
geekosaur | (unrelated, I just noticed it while ooking at the doc) | 02:33 | |
that said, the doc wshould probably be clearer about what those chars mean if it's not already stated somewhere | 02:34 | ||
the speculation was clear about it | |||
02:39
stmuk_ joined
02:41
stmuk left
02:45
ilbot3 left
02:55
kitsunenokenja left,
ilbot3 joined,
ChanServ sets mode: +v ilbot3
03:02
noganex joined
03:05
noganex_ left
03:08
dmaestro joined
|
|||
dmaestro | m: use Inline::Perl5 | 03:09 | |
camelia | ( no output ) | ||
03:10
ufobat_ joined
|
|||
dmaestro | m: use Inline::Perl5 ; my $a = EVAL "[ 1, 2 ]", :lang<Perl5>; say $a.elems | 03:10 | |
camelia | 2 | ||
dmaestro | m: use Inline::Perl5 ; my $a = EVAL "[ ]", :lang<Perl5>; say $a.elems | 03:11 | |
camelia | 0 | ||
03:11
konsolebox left,
entonian joined
03:12
konsolebox joined
|
|||
dmaestro | Interesting, I don't get the above result (0 elements for an empty Inline::Perl5::Array) on my Mac running Rakudo Star 2017.10 | 03:13 | |
03:13
entonian left,
ufobat___ left
|
|||
dmaestro | > my $a = EVAL "[]", :lang<Perl5> ; say $a.elems | 03:14 | |
4294967296 | |||
Inline::Perl5:ver<0.29>:auth<github:niner> | 03:19 | ||
geekosaur | looks like a fixed bug to me | ||
dmaestro | How recently? version? | 03:20 | |
Is there a way to ask camelia what version of a module is loaded? | 03:24 | ||
geekosaur | I think there is b ut it's not easy and I'm not sure of details. means messing with CompUnitRepos | 03:28 | |
dmaestro | ok, thanks. I haven't found a reference to that bug in Inline::Perl5 - could it have been a rakudo bug on Mac? | 03:30 | |
03:31
BenGoldberg joined
|
|||
geekosaur | also possible, yes | 03:34 | |
it could even be a perl 5 bug | |||
(or worse, not a bug but somehow a mismatch because perl 5 got replaced/upgraded/it's running the wrong one) | 03:35 | ||
03:50
konsolebox left
03:53
Cabanossi left
|
|||
dmaestro | Well, turns out an attempted re-install of Inline::Perl5 failed because of too-new version of Module::Runtime - I had the latest version in my local::lib. | 03:53 | |
I removed the local::lib version so it would fall back on the system installed module. Inline::Perl5 reinstalled OK and the bug disappeared. | 03:54 | ||
03:55
troys_ is now known as troys,
Cabanossi joined
03:56
konsolebox joined,
dmaestro left
|
|||
geekosaur | there you go then. probably mismatched versioning, then; different perl 5 releases have subtly different internals and macros like (iirc) PvAV will not necessarily work right against a different perl library | 03:57 | |
03:59
noganex_ joined
04:02
dmaestro joined
|
|||
dmaestro | I removed the local::lib version so it would fall back on the system installed module. Inline::Perl5 reinstalled OK and the bug disappeared. | 04:02 | |
Nope, only seemed to disappear - the correct result is given the first time I run it! Subsequent attempts fail. | 04:03 | ||
04:03
noganex left
|
|||
geekosaur | wow. that sounds like a precomp issue | 04:03 | |
.tell nine colabti.org/irclogger/irclogger_log...11-24#l119 possible precomp bug? (cf colabti.org/irclogger/irclogger_log...1-24#l156) | 04:04 | ||
yoleaux | geekosaur: I'll pass your message to nine. | ||
dmaestro | m: use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ] | 04:05 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$b' is not declared at <tmp>:1 ------> 3Perl5; my $a = EVAL "[]", :lang<Perl5>; 7⏏5$b = EVAL "[]", :lang<Perl5>; say [ $a.e |
||
dmaestro | m: use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; my $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ] | ||
camelia | [0 0] | ||
dmaestro | doug$ perl6 -e 'use Inline::Perl5; my $a = EVAL "[]", :lang<Perl5>; my $b = EVAL "[]", :lang<Perl5>; say [ $a.elems, $b.elems ]' --> [0 4294967296] | 04:07 | |
geekosaur | hm, that's not even precomp, it's just weird. | 04:13 | |
well, left message for nine, maybe they can decipher it | |||
04:18
konsolebox left
04:19
konsolebox joined
|
|||
dmaestro | Posted details in github.com/niner/Inline-Perl5/issues/106 | 04:22 | |
04:22
Cabanossi left
04:24
Cabanossi joined
04:25
dmaestro left
04:28
konsolebox left
04:34
konsolebox joined,
mudman left
|
|||
ZzZombo | m: say 'asd' ~~ /(.*)/ | 04:35 | |
camelia | 「asd」 0 => 「asd」 |
||
ZzZombo | m: say 'asd' ~~ /(.)*/ | ||
camelia | 「asd」 0 => 「a」 0 => 「s」 0 => 「d」 |
||
04:43
ivans left
04:44
kshannon joined
04:47
konsolebox left
04:49
ivans joined
04:53
konsolebox joined
05:06
Cabanossi left
05:09
Cabanossi joined
05:10
kaare_ left,
kaare_ joined
05:15
konsolebox left
05:16
konsolebox joined
05:23
ragnor4k joined
05:24
ragnor4k left
05:29
aborazmeh left
05:31
konsolebox left
05:32
konsolebox joined
05:36
Cabanossi left
05:39
Cabanossi joined
05:51
khw left
06:08
Cabanossi left
06:09
Cabanossi joined
06:19
konsolebox left,
wamba joined
06:20
konsolebox joined
06:22
s0me0ne-unkn0wn joined
06:25
s0me0n3-unkn0wn left
|
|||
ZzZombo | Why does this keep on matching indefinitely: | 06:29 | |
token string { \h* [<header> || <key-value>]? <comment>? \h* [\n || $] } | |||
on the last line of my file, which is empty. | |||
m: say '' ~~ /$/ | 06:31 | ||
camelia | 「」 | ||
ZzZombo | m: my token a { \h* [\n || $] };say '' ~~ &a | 06:42 | |
camelia | 「」 | ||
ZzZombo | what | ||
06:44
mojca joined,
mojca left,
mojca joined
06:49
mojca left
|
|||
Geth | doc: 523f616499 | (Alex Chen)++ (committed using GitHub Web editor) | doc/Language/regexes.pod6 Fix typo, geekosaur ++ close #1683 |
06:51 | |
synopsebot | Link: doc.perl6.org/language/regexes | ||
06:53
troys is now known as troys_
07:00
mojca joined,
mojca left,
mojca joined
|
|||
ZzZombo | m: my token a { (\h* [\n || $])* };say '' ~~ &a | 07:01 | |
yeah, this works to show my issue. | |||
camelia | (timeout) | ||
ZzZombo | ^ | ||
07:05
domidumont joined
07:06
mson joined
07:07
darutoko joined
07:10
geospeck joined
|
|||
ZzZombo | m: my token a { (\h* [\n || $])+ };say '' ~~ &a | 07:10 | |
camelia | (timeout) | 07:11 | |
07:11
domidumont left
|
|||
geekosaur | the expression can match nothing, and can do so repeatedly | 07:11 | |
07:12
domidumont joined
|
|||
geekosaur | and will do so at the end of input because the $ will always match there and match empty string for \h* | 07:12 | |
lookatme | m: say "" ~~ /(<?>)/ | 07:13 | |
camelia | 「」 0 => 「」 |
||
lookatme | m: say "" ~~ /(<?>)*/ # will timeout | ||
camelia | (timeout) | ||
geekosaur | (potentially it's worse than that because iirc $ matches before newline whereas $$ means actual end of input, but the alternation with \n catches that screw case) | ||
07:13
lowbro joined,
lowbro left,
lowbro joined
|
|||
lookatme | m: say "" ~~ /(<?>)**1..3/ # will timeout | 07:14 | |
camelia | 「」 0 => 「」 0 => 「」 0 => 「」 |
||
lookatme | Interesting :) | ||
geekosaur | basically anything that can match zero characters and succeed, that is then repeatable with no stop case (that is, nothing following that can match), will always loop forever matching end of input | ||
and yes, that too, if instead of * or + you give it a range, it'll match the maximum number of times | 07:15 | ||
ZzZombo | so, what can I do to avoid that? Keep in mind that for my purposes, empty or consisting of only whitespace documents are valid. | 07:16 | |
geekosaur | I would generally make sure the action tokens always match something, and write the grammar with whitespace tokens in positions that don't get to repeat forever. (this means for example letting the TOP token end with a single, nonrepeated, optional whitespace match --- and, again, the whitespace rule should always match *something*) | 07:19 | |
it's rather difficult to make grammar engines or parser generators handle this for you; the halting problem will always find some way to bite you | 07:20 | ||
07:36
lizmat left,
lizmat joined
07:39
parv joined
07:42
markong joined
|
|||
buggable | New CPAN upload: Terminal-Spinners-0.0.4.tar.gz by RYNIX cpan.metacpan.org/authors/id/R/RY/...0.4.tar.gz | 07:43 | |
07:47
wamba left
07:52
Cabanossi left
07:54
Cabanossi joined
07:55
llfourn left
07:56
Ven joined,
Ven is now known as Guest66176
08:02
pecastro left
08:03
dayangkun left,
pecastro joined
08:19
dayangkun joined
|
|||
Geth | ecosystem: e28a057086 | (Jarkko Haapalainen)++ (committed using GitHub Web editor) | META.list App::Platform moved to CPAN |
08:30 | |
08:32
abraxxa joined
08:37
wamba joined
08:38
Cabanossi left
08:39
Cabanossi joined
08:43
scimon joined
08:46
BenGoldberg left
08:56
ryn1x left
09:08
Cabanossi left,
konsolebox left
09:09
Cabanossi joined
09:10
konsolebox joined
09:16
mson left,
lizmat left
09:19
wamba left
09:25
robertle joined
09:35
mojca left
09:36
Cabanossi left
09:37
mojca joined,
mojca left,
mojca joined
09:39
Cabanossi joined
09:45
wamba joined
|
|||
Geth | mu: 97bba7fbcd | (Moritz Lenz)++ | misc/perl6advent-2017/schedule p6advent: claim day 8 |
09:46 | |
09:47
dayangkun left
09:54
char_var[buffer] left,
xi- left
09:58
xi- joined
10:04
lizmat joined
10:06
ZzZombo left,
ZzZombo joined
10:13
wamba left
10:16
sena_kun joined
10:19
eliasr joined
10:20
mojca left
10:26
mojca joined,
mojca left,
mojca joined
10:27
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:29
mojca left
|
|||
Geth | doc: gfldex++ created pull request #1686: be precise when to early is to early for constant |
10:36 | |
10:37
Cabanossi left
10:39
Cabanossi joined
10:42
wamba joined
10:44
Guest66176 left
10:45
mojca joined,
mojca left,
mojca joined
10:46
Ven joined
10:47
Ven is now known as Guest10002,
Geth left
10:48
Geth joined,
ChanServ sets mode: +v Geth
10:50
lizmat left
10:55
ryn1x joined
11:02
ryn1x left,
Guest10002 left
11:06
Ven joined,
Ven is now known as Guest67205
11:15
Guest67205 left
|
|||
ZzZombo | m: my $b=Str;my $a is default(Int)=$b;say $a.new; | 11:16 | |
camelia | |||
ZzZombo | m: my $b=Nil;my $a is default(Int)=$b;say $a.new; | ||
camelia | Any.new | ||
ZzZombo | what is this? | 11:17 | |
I expect the second to be `Int.new` in effect. | 11:18 | ||
nvm | |||
m: my %b;my $a is default(Int)=%b<asd>;say $a.new; | 11:19 | ||
camelia | Any.new | ||
ZzZombo | hm | ||
this is fucked up | |||
how then can I pass a TYPE as a parameter, and have a default value for it at the same time? Obviously I can't do `my $class=$arg // $default` for this. | 11:21 | ||
11:30
mojca left
|
|||
El_Che | ZzZombo: you should look into mult | 11:35 | |
multi | |||
jnthn | m: sub foo($x = 'default value') { dd $x }; foo 42; foo Int; foo; | 11:37 | |
camelia | Int $x = 42 Int $x = Int Str $x = "default value" |
||
11:38
bisectable6 left,
bisectable6 joined
11:47
aborazmeh left
11:52
Cabanossi left
11:54
Cabanossi joined
12:00
araraloren joined
12:01
astj left
12:02
astj joined,
mojca joined,
mojca left,
mojca joined
12:06
astj left
|
|||
gfldex | m: my $b := Nil; my $a is default(Int) = $b; say $a.new; | 12:07 | |
camelia | 0 | ||
gfldex | m: say Int.new; | ||
camelia | 0 | ||
gfldex | ZzZombo: ^^^ | 12:08 | |
ZzZombo | I do not want a multi. I get the parameter from a hash. | ||
gfldex, thanks. | 12:09 | ||
m: my %b;my $c:=%b<asd>;my $a is default(Int)=$c;say $a.new; | |||
camelia | Any.new | ||
ZzZombo | ? | 12:10 | |
12:12
konsolebox left
|
|||
gfldex | ZzZombo: `is default` reacts only to Nil, not just any undefined value. And Hash will autovivify to Any. | 12:12 | |
m: my %b of Nil; my $c:=%b<asd>; my $a is default(Int)=$c; say $a.new; | 12:13 | ||
camelia | 0 | ||
12:13
konsolebox joined
|
|||
gfldex | ZzZombo: ^^^ | 12:13 | |
ZzZombo | nice | ||
jnthn | m: my %b of Nil; %b<x> = 42 | 12:14 | |
camelia | Type check failed in assignment to %b; expected Nil but got Int (42) in block <unit> at <tmp> line 1 |
||
jnthn | Only so nice ;) | ||
ZzZombo | oh | ||
m: my %b;my $c:=%b<asd> // Nil;my $a is default(Int)=$c;say $a.new; | |||
camelia | 0 | ||
ZzZombo | this | ||
jnthn | m: my %b is default(Nil); my $c:=%b<asd>; my $a is default(Int)=$c; say $a.new; | ||
camelia | 0 | ||
jnthn | Also this | ||
12:16
Ven joined
12:17
Ven is now known as Guest48862
12:20
gfldex left
|
|||
jnthn | lunch & | 12:20 | |
12:21
cpage_ joined
12:25
jeromelanteri joined,
konsolebox left
|
|||
timotimo | i'd use :exists to see if something's in there rather than relying on a specific value being returned by accessing | 12:26 | |
12:26
konsolebox joined
12:28
ZZZzz joined,
ZZZzz left
12:32
rindolf joined
12:36
Cabanossi left,
wamba left
12:39
Cabanossi joined
12:50
jeromelanteri left
12:53
zakharyas joined
12:57
zakharyas left
13:03
nuk9 joined
13:10
raschipi joined
13:20
kitsunenokenja joined
13:23
pmurias joined
|
|||
Altreus | Why doesn't the if version require a block? docs.perl6.org/language/py-nutshel...rehensions | 13:25 | |
13:27
tlaxkit joined
|
|||
teatime | I think in perl5 at least that form of if was described as a "statement modifier" | 13:28 | |
13:29
abraxxa left
13:32
Zoffix joined
|
|||
Zoffix | Altreus: because those are statement modifiers and none of them require a block. I think the writer of that section simply didn't realize `for` doesn't need it either | 13:33 | |
raschipi | m: .say for 1..4 | ||
camelia | 1 2 3 4 |
||
Zoffix | What happened with ugexe? I got a flood of notifications about closed PRs from him this morning | 13:34 | |
m: sub foo { $^a * 2 }; say (&foo for ^3) | 13:36 | ||
camelia | (sub foo ($a) { #`(Sub|61255088) ... } sub foo ($a) { #`(Sub|61255088) ... } sub foo ($a) { #`(Sub|61255088) ... }) | ||
Zoffix | m: say (-> $ {42} for ^3) | ||
camelia | (42 42 42) | ||
Zoffix | I would've expected the block form to behave same as the sub form above. Basically the same as a block at the end of a routine (it'd get returned as a block, unless it's a bareblock | 13:37 | |
13:37
Cabanossi left
|
|||
Geth | doc: 403d0fea02 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/py-nutshell.pod6 Tweak list comprehension examples - These are blocks, not anonymous functions - Show a block-less `for` example irclog.perlgeek.de/perl6/2017-11-24#i_15489899 |
13:39 | |
synopsebot | Link: doc.perl6.org/language/py-nutshell | ||
13:39
Cabanossi joined,
wamba joined
|
|||
Zoffix | ) | 13:39 | |
MasterDuke | Zoffix: re ugexe, i would guess it's related to irclog.perlgeek.de/perl6/2017-11-23#i_15486662 and the subsequent conversation | ||
Altreus | Zoffix: we tested it, and it complains about sink context | ||
well, without the arrow | |||
m: ( $_ + 1 for 1,2,3 ) | 13:40 | ||
camelia | WARNINGS for <tmp>: Useless use of "+" in expression "$_ + 1" in sink context (line 1) |
||
Altreus | like this | ||
whereas | |||
m: ( $_ + 1 if $_ > 1 for 1,2,3 ) | |||
camelia | WARNINGS for <tmp>: Useless use of "+" in expression "$_ + 1" in sink context (line 1) |
||
Altreus | oh that's new | ||
on our rakudo that didn't complain | |||
Zoffix | m: say ( $_ + 1 for 1,2,3 ) | 13:41 | |
camelia | (2 3 4) | ||
Altreus | oh it's because I didn't store it in an array isn't it | ||
m: my @saddfga = ( $_ + 1 for 1,2,3 ) | |||
camelia | ( no output ) | ||
raschipi | Yeah, it detected you're just throwing the value away and warned you of that. | ||
m: ( quietly $_ + 1 for 1,2,3 ) | 13:42 | ||
camelia | WARNINGS for <tmp>: Useless use of "+" in expression "$_ + 1" in sink context (line 1) |
||
raschipi | m: ( quietly ($_ + 1) for 1,2,3 ) | ||
camelia | WARNINGS for <tmp>: Useless use of "+" in expression "$_ + 1" in sink context (line 1) |
||
Altreus | so it's a feature of the REPL, I guess, that it complains about sink context and then echoes the result anyway? | ||
13:42
silug left
|
|||
raschipi | REPL is weird | 13:43 | |
Zoffix | It won't work. `quietly` is for silencing CX::Warn and those ^ I think come from optimizer complaining | ||
Altreus: doesn't do it for me. What code are you using? | |||
13:44
Guest48862 left
|
|||
raschipi | It didn't complain in the REPl for me either | 13:44 | |
Zoffix | It's possible you're using a very old Rakudo, Altreus | ||
raschipi | Oh, sorry. It did | ||
Altreus | yes I think it's just a version thing :) | ||
raschipi | > ( $_ + 1 for 1,2,3 ) WARNINGS for <unknown file>: Useless use of "+" in expression "$_ + 1" in sink context (line 1) | 13:45 | |
13:45
comborico1611 joined
|
|||
Zoffix | That shows for me too. `( $_ + 1 if $_ > 1 for 1,2,3 )` doesn't show it tho. Weird. | 13:46 | |
Altreus | aha, must be the REPL and not the eval bot | 13:47 | |
raschipi | camelia doesn't use the REPL | ||
Zoffix | MasterDuke: thought so. Thanks. | 13:48 | |
Zoffix & | |||
13:48
Zoffix left
|
|||
Geth | doc: 80d2f04df9 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Language/py-nutshell.pod6 Make references to routines actual links to their docs |
13:49 | |
synopsebot | Link: doc.perl6.org/language/py-nutshell | ||
13:50
Ven joined,
wamba left,
Ven is now known as Guest20721
|
|||
Altreus | does perl6 have any built in partial application for functions? | 14:03 | |
moritz | Altreus: yes, see method "assuming" | ||
and for operators there's a syntax | 14:04 | ||
m: say $plus-two = * + 2; say $plus-two(5) | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$plus-two' is not declared at <tmp>:1 ------> 3say 7⏏5$plus-two = * + 2; say $plus-two(5) |
||
moritz | m: my $plus-two = * + 2; say $plus-two(5) | ||
camelia | 7 | ||
Altreus | yo | 14:05 | |
imma look this up | |||
can't catch this language out can I? | |||
moritz | well, you can ask for homocionicy or whatever it's called :) | 14:06 | |
14:06
cpage_ left
|
|||
timotimo | homoiconicity i think | 14:06 | |
Altreus | well I'd never heard of it to ask | 14:08 | |
14:08
Cabanossi left
|
|||
Altreus | now you've ruined it ;) | 14:08 | |
14:09
Cabanossi joined
|
|||
raschipi | That is what Python does, using whitespace to represent syntax. | 14:09 | |
lucs | Am I supposed to keep synchronized the version number of my module both in the .pm6 file (unit module Foo:ver<1.1>) and in the META6.json file ("version" : "1.0",)? (whoops! they're different!) | 14:10 | |
14:10
Aaronepower joined
|
|||
lucs | s/to keep/to manually keep/ | 14:11 | |
14:12
MasterDuke left
14:14
geospeck left,
geospeck joined
14:15
geospeck left
|
|||
pmurias | raschipi: nope, homoiconicity means the program text has the same structure as the program AST | 14:15 | |
yoleaux | 23 Nov 2017 00:26Z <samcv> pmurias: that is a little bit complex. simply see this table unicode.org/reports/tr10/#Comparis...able_Table the full definition is complex, but non-ignorable just means nothing is ignored except the baseline levels of the UCD spec | ||
SmokeMachine | m: react whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say} | 14:17 | |
camelia | (timeout)(0 0) | 14:18 | |
14:19
konsolebox left
|
|||
SmokeMachine | m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 11 {say "timed out"; done} | 14:19 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing block at <tmp>:1 ------> 3r Promise.in: 11 {say "timed out"; done}7⏏5<EOL> |
||
SmokeMachine | m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 11 {say "timed out"; done}} | 14:20 | |
camelia | (0 0) (1 1) (2 2) (3 3) (4 4) (5 5) (6 6) (7 7) (8 8) (9 9) timed out |
||
SmokeMachine | m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^10)) {.say}; whenever Promise.in: 15 {say "timed out"; done}} | 14:21 | |
camelia | (0 0) (1 1) (2 2) (3 3) (4 4) (5 5) (6 6) (7 7) (8 8) (9 9) timed out |
||
SmokeMachine | m: react { whenever Supply.zip(Supply.interval(1), Supply.from-list(^2)) {.say}; whenever Promise.in: 15 {say "timed out"; done}} | 14:22 | |
camelia | (0 0) (1 1) timed out |
||
14:22
geospeck joined
|
|||
jnthn | If you're trying to get it to not bother wiht the timed out thing once the zip is over, then add ;LAST done after the .say | 14:23 | |
*with | |||
raschipi | pmurias: Like in Lisp? | 14:24 | |
14:24
konsolebox joined,
Guest20721 left
14:25
Ven joined,
Ven is now known as Guest25826
14:26
Guest25826 left
|
|||
pmurias | raschipi: yes | 14:30 | |
SmokeMachine | jnthn: I think it's different from the docs... it says that the resulted supply will be done when any of the supplies be done... | 14:31 | |
m: react { whenever Supply.zip(Supply.interval(.1), Supply.from-list(^10)) {.say}} | |||
camelia | (timeout)(0 0) | ||
jnthn | Hm, interesting | 14:35 | |
SmokeMachine | I think its will only be done when every supply is done: github.com/rakudo/rakudo/blob/mast...y.pm#L1224 | ||
jnthn | Yup, that's what the impl reads like to me also | 14:36 | |
SmokeMachine | s/its/it/ | ||
jnthn | Wonder what roast things | ||
*thinks | |||
SmokeMachine | docs.perl6.org/type/Supply#method_zip | ||
14:39
Ven joined,
Ven is now known as Guest92717
|
|||
jnthn | Yeah, agree the impl isn't in line with the docs | 14:41 | |
Also, what the docs want is surely the more useful thing | |||
SmokeMachine | it does not test with live/on-demand supplies... github.com/perl6/roast/blob/d1baf2...pply/zip.t | 14:42 | |
I agree... | |||
jnthn | Doesn't test the current behavior that we don't like though, so we're free to fix it :) | 14:43 | |
SmokeMachine | :) | 14:44 | |
jnthn | Goodness, the folks doing construction work outside my office have a machine that's creating so much vibration, my keyboard is shaking... | 14:45 | |
SmokeMachine | :-o | ||
I think zip-latest has the same problem... | 14:46 | ||
timotimo | jnthn: yes, for the other thing, see "zip-latest" i guess? | 14:47 | |
14:47
astj joined
14:49
philomath joined
|
|||
SmokeMachine | adding a LEAST {done} on each whenever would fix that? | 14:49 | |
jnthn | LAST, but yes | ||
Think so, anyway | |||
I don't have time to try it right now | 14:50 | ||
14:50
cdg joined
|
|||
SmokeMachine | yes, LAST, sorry! | 14:50 | |
14:50
Guest92717 left
|
|||
SmokeMachine | Ill do that when I come home... | 14:50 | |
jnthn | Cool :) | ||
SmokeMachine++ | 14:51 | ||
SmokeMachine | :) | ||
14:53
Ven joined,
Ven is now known as Guest9401
14:54
nuk9 left
|
|||
raschipi | LAST but not LEAST | 14:56 | |
jnthn | ;) | ||
14:58
geospeck left
|
|||
SmokeMachine | :) | 14:58 | |
14:59
geospeck joined
15:00
astj left
15:01
Guest9401 left,
astj joined
15:03
geospeck left
15:07
kitsunenokenja left
15:09
Ven_ joined,
ryn1x joined
15:11
philomath left
15:16
astj left
15:17
astj joined,
ryn1x left
15:20
tlaxkit left
15:25
ryn1x joined
15:29
Ven_ left
15:34
mojca left,
Ven_ joined
15:38
ufobat_ left
15:42
raschipi left
15:46
gfldex joined
15:47
cdg left,
cdg joined
|
|||
comborico1611 | Question on printing unsigned integer into bits. value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary? | 15:48 | |
15:49
raschipi joined
15:51
cdg left
|
|||
comborico1611 | Raschipi, Question on printing unsigned integer into bits. value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary? | 15:52 | |
raschipi | Is that Perl6? | 15:53 | |
comborico1611 | Heh, no. | ||
15:53
john_parr left
|
|||
raschipi | So I have no idea | 15:53 | |
15:53
ryn1x left
|
|||
comborico1611 | Oh, alright. Thanks, though. | 15:53 | |
raschipi | Everything is binary, modern computers know nothing else. | 15:54 | |
15:54
john_parr joined
|
|||
comborico1611 | Hmm. | 15:54 | |
15:54
Ven_ left,
Ven joined
15:55
Ven is now known as Guest32335
|
|||
raschipi | In the past there were decimal computers and even before that there was analog computers, But it has been decades that's not used anymore. | 15:55 | |
So I can answer with confidence it is indeed binary. | 15:56 | ||
15:56
jstuder joined
|
|||
comborico1611 | But the purpose of the program is to print an integer into binary. | 15:57 | |
I suppose it is possible that giving an integer to bitwise& automatically converts integer into binary. | 15:58 | ||
raschipi | integer is binary | 15:59 | |
gfldex | m: my Int $i = 49152; say $i.base(2); | 16:00 | |
camelia | 1100000000000000 | ||
raschipi | comborico1611: If displaymask has only one bit set, doing an AND on it with a number will tell if the same bit is set on the number | ||
comborico1611 | That's a nice clean binary. | 16:01 | |
16:01
ryn1x joined
|
|||
comborico1611 | I don't know why this is so confusing to me. | 16:02 | |
16:03
Guest32335 left
|
|||
raschipi | here is something similar in P6: | 16:04 | |
m: my $num = 116; say so $num +& 2** $_ for 1,2,3...30 | |||
camelia | False True False True True True False False False False False False False False False False False False False False False False False False False False False False False False |
||
raschipi | Or with 0 and 1: | ||
m: my $num = 116; say + so $num +& 2** $_ for 1,2,3...30 | 16:05 | ||
camelia | 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
||
raschipi | Do you get the algorithm? | 16:08 | |
16:12
ggg joined
|
|||
ggg | hi? | 16:13 | |
tyil | hi | ||
16:14
ggg left
16:15
wamba joined
|
|||
comborico1611 | I'm sorry, no. Thanks for trying. | 16:15 | |
raschipi | let's go over it, one bit at a time | ||
comborico1611 | I do understand how to bitwise and operator works. But how a particular code works, I don't understand. | 16:16 | |
raschipi | You didn't get the one you posted or the ones in Perl6 too? | 16:17 | |
comborico1611 | 1 & 0 = 0 1 & 1= 1. And so on. | ||
The one i posted. | 16:18 | ||
raschipi | Can you provide context for it? | 16:19 | |
What it does depends on the value displaymask has. | |||
comborico1611 | User enters an integer. The program simply outputs it's binary equivalent. It uses a for Loop to go bit by bit, and it is that for Loop that is strange to me. | 16:20 | |
raschipi | So the part that is strange you didn't post? | ||
It probably multiples displaymask by 2 or bit shifts it one position over (which is the same thing for integers) | 16:21 | ||
comborico1611 | I did: value = 65000; putchar( value & displaymask ? '1' : '0' ) ; Is value still 65000, or somehow miraculously binary? | ||
The worst part of this is I'm typing from my phone. | 16:22 | ||
raschipi | putchar probably outputs to the screen and has no side effects | ||
probably | |||
comborico1611 | Correct. | 16:23 | |
16:23
Morfent joined,
gagalicious joined
|
|||
raschipi | So, what's the matter? | 16:23 | |
comborico1611 | But bit mask is 10000000 00000000 . That & with 65000 (binary) yields all zeros. Yet his program prints 65000 in binary. | 16:24 | |
So there is something I'm missing. | 16:25 | ||
I wish i could post photos on here. | |||
El_Che | I am happy you can't | 16:26 | |
:) | |||
comborico1611 | Haha. Good point! | ||
El_Che | many people have slack/mattermost/... allergies | 16:27 | |
raschipi | m: say + so 0b0000000000100000 +& 65000 | ||
camelia | 1 | ||
16:27
dmaestro joined,
prettty-girl joined
|
|||
raschipi | 10000000 00000000 & with 65000 is 0 because the corresponding bit in the number is 0. Do you know AND can be applied to numbers bigger than 1 bit, right? | 16:28 | |
comborico1611 | I wasn't sure if it could. | 16:29 | |
It treats them as 1? | |||
raschipi | You do it "bit by bit", like when summing you go digit by digit summing them. | 16:30 | |
comborico1611 | Correct. | ||
raschipi | So, if a number has just one of it's own bits set, the result will have a 1 only if the other number has a 1 in the corresponding position | 16:31 | |
comborico1611 | Correct. Hey, thank you for trying, but i need to take a break. | 16:32 | |
raschipi | Right, another time then | ||
comborico1611 | If i figure this thing out, I'll try to remember to tell you what my hang-up was. | ||
Morfent | when i run make rakudo-test when compiling rakudo star from source on freebsd 12, t/04-nativecall/02-simple-args.t fails with "Dubious, test returned 1 (wstat 256, 0x100)" | 16:36 | |
timotimo | can you ./perl6 t/04-nativecall/02-simple-args.t and see what it outputs? | ||
16:37
Cabanossi left
|
|||
Morfent | hastebin.com/rupepocuxo.go | 16:37 | |
i'm wondering if the issue's related to the tests that are skipped on mac os x, since its kernel uses parts of freebsd's | 16:38 | ||
timotimo | this should be too far from the kernel to matter :\ | ||
Morfent | ah | ||
is this something i'd need to worry about though? | 16:39 | ||
16:39
Cabanossi joined
|
|||
timotimo | i could imagine perhaps "unsigned short" not meaning "16bit integer" on your system | 16:40 | |
that would certainly mess this test up | |||
maybe our C code for these tests should fprint diagnostics when they don't get the right value | 16:41 | ||
so maybe putting an fprintf(stderr, "# value received: %hd\n", x); before the "return 0" in 02-simple-args.c tells us something interesting | 16:42 | ||
Morfent | i'll give that a shot | 16:45 | |
timotimo | though perhaps %hx is nicer to look at than %hd | 16:46 | |
16:47
khw joined
|
|||
Morfent | # value received: -2 | 16:48 | |
timotimo | hm, isn't that correct though? | ||
like, if you use %hx it'll use unsigned logic and display as hexadecimal and that should correspond to 0xFFFE | 16:49 | ||
well, 0xfffe in the case of %hx, 0xFFFE with %hX | |||
Morfent | i was in the middle of running make when you mentioned to use %hx | ||
16:50
lowbro left
|
|||
timotimo | you shouldn't need to run make again i think | 16:50 | |
16:50
MilkmanDan joined
|
|||
timotimo | though i'm not sure how exactly compile_test_lib is implemented | 16:50 | |
Morfent | i wasn't sure, so i was running it again just to be safe | 16:51 | |
16:51
domidumont left
|
|||
Morfent | # value received: fffe | 16:52 | |
timotimo | OK, so the C code we have there is not what we expect | ||
i mean, it doesn't compile the same way on your system as on others | |||
i.e. we're relying on undefined behaviour? | |||
raschipi | Morfent: which compiler do you have? | 16:53 | |
Morfent | clang 4.0.1 | ||
i have clang 5.0.0 installed, i'll check again with that | 16:54 | ||
raschipi | Is Perl6 even tested on Clang? | ||
timotimo | it is | 16:55 | |
oh | |||
moarvm is, but that only runs nqp's test suite | |||
and those don't contain nativecall stuff, or at least not much of it | 16:56 | ||
16:56
troys_ is now known as troys
|
|||
raschipi | Morfent: Can you try GCC? | 16:56 | |
Morfent | sure | ||
timotimo | you're on freebsd, right? any more details than that? | 17:01 | |
freebsd 12 | |||
Morfent: just to verify, the fprint you have goes between both return statements, right? | 17:02 | ||
Morfent | it goes before both | 17:03 | |
timotimo | oh | ||
well, that changes things a whole lot | |||
17:03
setty1 joined
|
|||
timotimo | now it could be it's correctly running the "return 11" but we're somehow not taking the return value correctly | 17:04 | |
rather than giving us 0xfffe but comparing against 0xfffe giving "false" | |||
can you make that change and re-run? | |||
17:06
Cabanossi left
|
|||
Morfent | sure | 17:07 | |
wait what change do you mean? | 17:08 | ||
17:08
Cabanossi joined
|
|||
timotimo | put the fprintf between "return 11" and "return 0" | 17:10 | |
such that it only gets run when the code is about to return 0 | |||
Morfent | same deal, # value received: fffe | 17:12 | |
timotimo | now that is interesting! | ||
um, could you change the wording inside the message so we can be sure that it actually compiled the change you made? | |||
17:13
parv left
|
|||
timotimo | i don't want to be surprised by compile_test_lib being "clever" about caching or something :) | 17:13 | |
scimon | Can I apologise in advance for anything I say in my talk at LPW tomorrow that's wrong. :D | 17:16 | |
17:16
scimon left
|
|||
Morfent | # value received, different message: fffe | 17:16 | |
timotimo | okay that's weird! | ||
Geth | ecosystem: a34a96fb5c | (David Warring)++ (committed using GitHub Web editor) | META.list Font::AFM to CPAN |
17:18 | |
timotimo | can you operate gdb and/or lldb? | 17:19 | |
Morfent | never used them before | ||
timotimo | how complicated is it to get a freebsd 12 VM up and running containing a working perl6? | 17:21 | |
17:21
robertle left
|
|||
timotimo | doesn't look trivial to get at a freebsd 12 | 17:22 | |
buggable | New CPAN upload: Font-AFM-1.24.2.tar.gz by WARRINGD cpan.metacpan.org/authors/id/W/WA/...4.2.tar.gz | 17:23 | |
raschipi | This download links in the PAUSE new upload messages are kinda useless. I think linking to the module home page would be better. | 17:25 | |
Morfent | the os itself is relatively simple to get installed, but there's a bit of work involved to get it to run properly in virtualbox | ||
timotimo | damn (: | ||
:( | |||
17:26
lizmat joined
|
|||
Morfent | i'm not sure if virtualbox additions will run correctly or not since 12 is on the dev branch atm | 17:26 | |
i can install virtualbox and get a vm set up to see if it'll work | |||
17:27
raschipi_ joined
|
|||
timotimo | i'm not sure if i'll have much time to look into this today | 17:27 | |
17:27
raiph joined
|
|||
timotimo | would you be okay with a guided gdb session over irc? | 17:28 | |
17:29
pmurias left,
raschipi left,
raschipi_ is now known as raschipi
|
|||
Morfent | sure | 17:30 | |
timotimo | cool. we have a ./perl6-gdb-m script that'll land you right inside a gdb session | 17:31 | |
it'll run the program to completion if you don't ctrl-c, but we can just re-run it after setting up break points and such | |||
so you'd run ./perl6-gdb-m t/04-nativecall/...t | |||
then set a break point with "break TakeUInt16" | 17:32 | ||
when you "run" it'll reach that point and wait for us to do whatever | |||
dmaestro | I'm trying to do a deep comparison (eqv), but I want cmp semantics between Cool values. Any way to lexically modify the eqv op behavior to do that? | ||
timotimo | oh, but a moarvm without --debug=3 and with anything but --optimize=0 will make debugging a pain | ||
Morfent | Could not open t/04-nativecall/...t. Failed to stat file: no such file or directory | 17:33 | |
timotimo | well, the ... would be ... what, 02-simple-args i think? | ||
17:33
ryn1x_ joined,
Morfent left
17:34
ryn1x left,
Morfent joined
17:36
ryn1x_ left,
ryn1x joined
17:38
pmurias joined
|
|||
Morfent | ok, tried again with ./perl-gdb-m t/04-nativecall/02-simpleargs.t | 17:38 | |
timotimo | Morfent: did you get my last message? you'd have t/04-nativecall/02-simple-args.t in the argument list | ||
Morfent | i don't think i did | ||
timotimo | needs one more hyphen i believe? | ||
17:39
eliasr left
|
|||
dmaestro | Wishing I could hook into the (presumed) recursive behavior of eqv, but this doesn't work: | 17:39 | |
say { multi sub infix:<eqv>(Cool $l, Cool $r) { $l cmp $r === Same }; [42.0] eqv ['42'] }() | |||
timotimo | dmaestro: aye, the implementations of eqv all look only in *their* lexical scope for the other operators, which is the core setting | ||
dmaestro | m: say { multi sub infix:<eqv>(Cool $l, Cool $r) { $l cmp $r === Same }; [42.0] eqv ['42'] }() | ||
camelia | False | ||
timotimo | lexically speaking your own implementations are unreachable | 17:40 | |
dmaestro | Yeah, I figured that was the reason ... | ||
evalable6 | False | ||
dmaestro | Any other features of Perl6 that conveniently reach deep into nested structures I might use? | 17:41 | |
timotimo | hypers kind of do that | 17:42 | |
m: say [[1, 1], 2] »==« [[1, 2], 2] | |||
camelia | [[True False] True] | ||
timotimo | m: say [[1, 1], 2] »==« [1, [2, 2]] | ||
camelia | Lists on either side of non-dwimmy hyperop of infix:<==> are not of the same length while recursing left: 2 elements, right: 1 elements in block <unit> at <tmp> line 1 |
||
dmaestro | hmm... | ||
timotimo | if you catch that exception in case things are odd-shaped | 17:43 | |
dmaestro | That might actually work for what I'm doing ... | ||
timotimo | and you'll then have to break the structure down | ||
17:43
geospeck joined
|
|||
timotimo | because [False] is a list with one element, and therefor it'll booleanify to True | 17:43 | |
Morfent | i'm not really sure what you mean by needing one more hyphen timotimo | 17:44 | |
timotimo | the file name | ||
you wrote "simpleargs" i thought it should be "simple-args" | |||
Morfent | oh, that was a typo | 17:45 | |
timotimo | OK | ||
Morfent | Function "TakeUInt16" not defined. Make breakpoint pending on future shared library load? (y or [n]) | ||
timotimo | oh, the i must be lower case | 17:46 | |
dmaestro | m: say [42.0] »cmp« ['42'] | 17:47 | |
camelia | [Same] | ||
Morfent | that was it | 17:48 | |
Thread 1 hit Breakpoint 1, 0x000000080dc9ca54 in TakeUint16 () from /usr/home/morfent/Downloads/rakudo-star-2017.10/rakudo/lib02-simple-args.so | |||
17:48
silug joined
|
|||
timotimo | OK, good | 17:48 | |
now "print x" gives you what? | 17:49 | ||
Morfent | No symbol "x" in current context. | ||
timotimo | oh? | ||
hm, compile_test_lib is perhaps not compiling any debug info into the files | |||
AlexDaniel | squashable6: next | 17:50 | |
squashable6 | AlexDaniel, ⚠🍕 Next SQUASHathon in 6 days and ≈16 hours (2017-12-02 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
AlexDaniel | If someone has any suggestions for the next squashathon, please let me know | ||
17:51
mson joined,
Cabanossi left
|
|||
moritz | maybe Perl 6 websites? | 17:52 | |
perl6.org, examples.perl6.org, modules.perl6.org etc. | |||
dunno if that's a good idea | 17:53 | ||
17:54
Cabanossi joined
|
|||
timotimo | Morfent: try editing t/04-nativecall/CompileTestLib.pm to have -O0 -g3 after the $cfg<cflags> and $cfg<ldflags> in lines 16 and 16 | 17:54 | |
16 and 17 | |||
Morfent | done | 17:57 | |
dmaestro | timotimo: I think this will do 90% of what I want. Thanks! | ||
m: say so all([42] »cmp« ['42']) === Same | |||
camelia | True | ||
timotimo | cool | ||
17:59
araraloren_ joined,
domidumont joined
|
|||
Morfent | The spawned command 'clang -shared -fPIC -O3 -DNDEBUG -Wl,-rpath,"//usr/home/morfent/Downloads/rakudo-star-2017.10/install/lib" -lm -lpthread -lkvm -o -O0 -g3 lib02-simple-args.so 02-simple-args.o' exited unsuccessfully (exit code: 1) | 18:00 | |
timotimo | bleh, does it hate multiple -O flags? | 18:01 | |
Morfent | yeah, -O3 and -O0 | ||
er | |||
timotimo | okay, put .subst("-O3", "") after the closing " in those lines | ||
that's terrible, but it'll get us what we want for now | 18:02 | ||
Morfent | still fails | ||
18:02
araraloren left
|
|||
timotimo | oh | 18:02 | |
Morfent | oh, those flags are showing up after -o | ||
timotimo | yes, that's the problem here | ||
OK, then put it *before* the cflags and ldflags :D | |||
18:03
troys is now known as troys_
|
|||
timotimo | i mean ideally you'd rebuild moarvm with --optimize=0 --debug=3 in the flags for its Configure.pl | 18:04 | |
Morfent | ...now the test passes | ||
timotimo | :o | ||
Morfent | oh wait i forgot to remove the second set of flags on line 16 | 18:05 | |
18:05
araralonre__ joined
|
|||
Morfent | but now i can print x | 18:05 | |
$1 = 65534 | |||
timotimo | m: say 0xfffe | 18:06 | |
camelia | 65534 | ||
timotimo | that's correct | ||
which makes sense because the test passes | |||
18:07
llfourn joined
|
|||
timotimo | without disassembling the code and looking directly at register contents we won't make headway here it seems? | 18:07 | |
Morfent | i was running this after fixing my typo | ||
the test still fails | |||
timotimo | oh? the test fails but x prints 65534? | ||
Morfent | yeah | ||
timotimo | what does "print 0xfffe" give you? | ||
18:07
BenGoldberg joined
18:08
araraloren_ left
|
|||
Morfent | $2 = 65534 | 18:08 | |
timotimo | OK, now you can step through the code with "n" and see what it does. "list" will output a piece of source code | 18:09 | |
Morfent | it segfaults at some point | 18:11 | |
hastebin.com/yoceqikulu.cs | 18:12 | ||
18:13
lizmat left
|
|||
timotimo | the trap would have been interesting. it's supposed to output information before crashing though i think? | 18:14 | |
SmokeMachine | im having a problem compiling rakudo... | 18:15 | |
www.irccloud.com/pastebin/jC1gQLFO/ | |||
Morfent | this is what list shows just after the trap hastebin.com/kaxacerewa.cpp | 18:16 | |
SmokeMachine | does any one knows why? | ||
timotimo | Morfent: it doesn't have line number or source code info for where it actually is (which is moarvm's interpreter loop) so it just outputs what it last had | ||
SmokeMachine: are you working from a clean state? i.e. "make clean" and everything? | 18:17 | ||
SmokeMachine | trying to make clean... | ||
timotimo | Morfent: how were you compiling rakudo? did you have a Configure.pl with --gen-moar in the commandline? | 18:18 | |
Morfent | perl Configure.pl --backends=moar --gen-moar | ||
timotimo | OK, you can give moar options there, too, let me look | 18:19 | |
Morfent | perl version's v5.24.3 | ||
AlexDaniel | moritz: interesting idea. There are only 27 open issues (from all mentioned repos) so maybe that does not provide enough room for the squashathon | ||
timotimo | --moar-version=--optimize=0 --moar-version=--debug=3 | ||
SmokeMachine | timotimo: make cleaned... im trying to make again... | ||
same error... | 18:20 | ||
AlexDaniel | I was also thinking about a bot squashathon, but at the moment you can't really run whateverable locally… :S | ||
18:21
geospeck left,
geospeck joined
|
|||
timotimo | SmokeMachine: that's very strange because the step right before it should have used Perl6/Grammar.moarvm just the same way as this one? | 18:23 | |
18:23
Morfent left,
Morfent joined
|
|||
SmokeMachine | www.irccloud.com/pastebin/gxZwnh85/timotimo | 18:24 | |
timotimo | SmokeMachine: but it already gave you a step with "stage parse" and other timings, right? | ||
SmokeMachine | yes | 18:25 | |
www.irccloud.com/pastebin/FNWCTq0Z/ | |||
18:26
geospeck left,
geospeck_ joined
|
|||
timotimo | that doesn't make sense to me :( | 18:26 | |
Morfent: with those flags to Configure.pl you'll have to rebuild, but it'll let you actually use gdb properly | 18:27 | ||
Morfent | alright | ||
SmokeMachine | :( | 18:28 | |
18:29
dmaestro left
18:30
Morfent left
18:31
Morfent joined,
geospeck_ left,
geospeck joined
18:35
s0me0ne-unkn0wn left
|
|||
raschipi | Can you imagine a bot squashaton, 300 bots connected at the same time to the channel for debugging? | 18:35 | |
timotimo | we'll just set up an irc server docker container :P | ||
18:38
robertle joined
18:42
wamba left
18:43
cdg joined
|
|||
Morfent | timotimo: after running perl Configure.pl --backends=moar --gen-moar --moar-option=--debug=3 --moar-option=--optimize=0, make still compiles with -O3 | 18:49 | |
timotimo | did it recompile moar at all? | ||
i.e. did you see many short lines with "3rdparty" and such? | 18:50 | ||
Morfent | yep | 18:51 | |
18:51
robertle left
18:52
cdg left
|
|||
Morfent | hastebin.com/rorafedeni.m | 18:52 | |
timotimo | hm, yes, indeed :\ | 18:55 | |
well, you can cd into the nqp/moarvm folder or where it is exactly | |||
check out the Makefile for a list of options that were originally passed to Configure.pl in there | |||
tweak that and re-run Configure.pl inside moarvm, then "make install" | |||
after that, no real need to recompile anything else | |||
18:55
darutoko left
|
|||
SmokeMachine | timotimo: I cloned again, and that worked... | 18:57 | |
timotimo | i'm afraid i have to leave for a bit now | 18:58 | |
18:59
dmaestro joined
|
|||
AlexDaniel | raschipi: in debug mode *ables only join #whateverable tho :) | 19:02 | |
19:09
redhands joined
|
|||
raschipi | AlexDaniel: Why would people run them on debug mode? | 19:12 | |
19:12
MasterDuke joined
|
|||
AlexDaniel | IIRC it's harder to run them otherwise :D | 19:12 | |
raschipi | Right, then problem solved | 19:14 | |
19:14
MasterDuke_ joined
19:17
stmuk joined,
MasterDuke left
19:19
stmuk_ left
|
|||
jstuder | Hey all, for the docs I rewrote a section on "Truncating slices" in the subscripts page to address some inaccurate info and submitted the PR a few days back. I was hoping that someone more senior could give it a once over to make sure everything is accurate. | 19:23 | |
Or should I just commit it and any inaccuracies can be addressed after the fact? | |||
Morfent | timotimo: after doing that, gdb gives something a bit different hastebin.com/fecosawula.cs | 19:27 | |
19:29
mojca joined,
mojca left,
mojca joined
|
|||
AlexDaniel | jstuder: OK, first of all thanks for the awesome PR | 19:30 | |
jstuder: PRs that have lots of effort put to them often require lots of effort to review them, that's why it took so long :) | 19:31 | ||
jstuder: so it is totally correct to come here and to kick some asses to get the job done | |||
jstuder: here's one thing: “produced one-after-another up until the point that the subscript no longer yields a defined value from the collection” | 19:32 | ||
m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*] | |||
camelia | (d (Any) f) | ||
AlexDaniel | jstuder: so [4] was actually not defined, but it didn't stop | ||
jstuder | AlexDaniel: no problem. I'm not trying to kick any asses, just wasn't sure anyone was aware. | 19:33 | |
AlexDaniel: i see. | |||
AlexDaniel | my point is that you should feel free to kick some asses :) | ||
jstuder | ok i appreciate it. | ||
AlexDaniel | m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*]' | 19:34 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3tters[4]:delete; say @letters[lazy 3..*]7⏏5' expecting any of: infix infix stopper postfix statement end … |
||
AlexDaniel | m: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*] | ||
camelia | (d) | ||
AlexDaniel | hmmm… but that's a bug, right? | ||
c: 2015.12 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[lazy 3..*] | 19:35 | ||
committable6 | AlexDaniel, ¦2015.12: «(d)» | ||
AlexDaniel | or is it? | ||
jstuder | Hmm I guess there could be more to this than I thought. | 19:42 | |
I appreciate you looking into it. | |||
19:45
domidumont left
|
|||
AlexDaniel | jstuder: ok, here's something to consider | 19:49 | |
c: 2015.12 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; | 19:50 | ||
committable6 | AlexDaniel, ¦2015.12: «(d)» | ||
AlexDaniel | c: HEAD my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; | ||
committable6 | AlexDaniel, ¦HEAD(3166400): «(d (Any) f)» | ||
AlexDaniel | let's see what was the justification for the change | ||
bisect: my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; | |||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.12 new=3166400) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/2bca83b3f25f8043ca...d09264a640 | |||
AlexDaniel, (2017-10-08) github.com/rakudo/rakudo/commit/45...51c42a52ff | |||
AlexDaniel | c: 456358e3c3^,456358e3c3 my @letters = <a b c d e f>; @letters[4]:delete; say @letters[3..*]; | 19:51 | |
committable6 | AlexDaniel, ¦456358e3c3^: «(d)» ¦456358e: «(d (Any) f)» | ||
AlexDaniel | :S | ||
19:54
MasterDuke_ left
|
|||
AlexDaniel | jstuder: alright, I created this ticket: github.com/rakudo/rakudo/issues/1268 | 19:56 | |
jstuder | I guess we'll find out what the intended behavior is and I'll revise the PR accordingly. | 19:59 | |
AlexDaniel: that bisectable bot is pretty cool. | |||
AlexDaniel: is there some way to use it without displaying all the results on the channel? I'd love to give it a try but wouldn't want to drive everyone crazy. | 20:01 | ||
20:01
silug left
|
|||
moritz | jstuder: you can try to /msg the bot | 20:05 | |
jstuder | moritz: thanks. I'm definitely going to give that a try. | 20:06 | |
20:12
someuser joined
20:13
raschipi left
|
|||
jstuder | bisectable says it's too private in there :( | 20:13 | |
oh well, there is always git bisect | |||
20:14
committable6 left
20:15
committable6 joined,
ChanServ sets mode: +v committable6
20:19
kerframil joined,
silug joined
|
|||
AlexDaniel | jstuder: you can go to #whateverable and do as many queries as you like :) | 20:21 | |
20:21
zakharyas joined
|
|||
jstuder | AlexDaniel: thanks | 20:22 | |
20:24
jstuder left,
mojca left
20:25
jstuder joined
20:28
cdg joined
20:32
cdg left
20:35
zakharyas left
20:36
zakharyas joined
20:37
zakharyas left,
Cabanossi left,
zakharyas joined
20:39
Cabanossi joined
20:48
dmaestro left
20:49
zakharyas left
21:03
kerframil left
21:04
vike left
21:09
Guest31287 joined
21:11
vike joined
21:26
Guest31287 left
21:27
Guest31287 joined
21:30
espadrine joined
21:32
kitsunenokenja joined
21:33
s0me0ne-unkn0wn joined
21:34
Morfent left
21:37
Cabanossi left
21:39
Cabanossi joined
21:40
Cabanossi left
21:41
Cabanossi joined
21:42
Morfent joined
|
|||
Geth | mu: 85fa828441 | (Jonathan Worthington)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Add myself to the Advent shcedule |
21:49 | |
jnthn | Such typing! | 21:50 | |
moritz | jnthn: for the advent post you'll have the option to correct your typing before it goes live :-) | 21:53 | |
22:04
japhb joined
|
|||
Geth | doc: f4b6bd9707 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/glossary.pod6 add item LGTM |
22:10 | |
synopsebot | Link: doc.perl6.org/language/glossary | ||
22:10
setty1 left
|
|||
jnthn | moritz: Phew! :) | 22:11 | |
22:18
cdg joined
22:20
comborico1611 left,
comborico1611 joined
22:21
Guest31287 left
22:22
cdg left
|
|||
timotimo | Morfent: hey | 22:25 | |
Morfent | hey | ||
22:25
pi2 joined
|
|||
timotimo | Morfent: can you send me the .so file that gets compiled for the test that was failing? | 22:26 | |
i have a compiler expert sitting next to me :P | |||
alternatively, go back to the break point in TakeUint16 and ask gdb to "disassemble" | 22:27 | ||
22:29
pilne joined
|
|||
Morfent | this is what disassemble outputs hastebin.com/wekabonemu.pl | 22:30 | |
22:30
japhb left
|
|||
timotimo | can you also give the output of "info registers" | 22:31 | |
22:32
japhb joined
|
|||
Morfent | hastebin.com/yecewegimi.go | 22:32 | |
22:35
Thrush joined
22:37
Cabanossi left
|
|||
Thrush | Has anybody here tried the challenges on code-golf.io ? | 22:37 | |
Perl 6 often dominates. | 22:38 | ||
22:39
Cabanossi joined
|
|||
AlexDaniel | well… yes | 22:39 | |
s0me0ne-unkn0wn | But still cannot beat golf-oriented languages like Jelly | 22:40 | |
22:40
geospeck left,
geospeck joined
|
|||
s0me0ne-unkn0wn | Perl 6 with its whitespace enforcement is not the best golf language imho :) | 22:41 | |
AlexDaniel | golf-oriented languages make no sense to me really. I remember there was one that mapped typical golfing problems to each ascii character, so every solution was 1 byte… | ||
Thrush | There's the prime-number puzzle, and the top score is 22 chars. I can get it down to 23 chars, but I can't figure out how to squeeze out an extra char. | ||
Perl 6 is nice for golf puzzles with prime numbers, due to the .is-prime method. | 22:42 | ||
AlexDaniel | Thrush: use unicode character instead of a normal numeric | ||
m: say 10; say ⑩ | |||
camelia | 10 10 |
||
s0me0ne-unkn0wn | golf-oriented languages make no sense beyond code gold, to be precise :) | ||
AlexDaniel | Thrush: no, for the number | 22:43 | |
s0me0ne-unkn0wn | AlexDaniel: They usually count bytes, not characters in golf competitions | ||
Geth | mu: deepnext++ created pull request #29: Update schedule |
||
AlexDaniel | s0me0ne-unkn0wn: not that particular website | ||
s0me0ne-unkn0wn: well, “bytes” makes no sense to me either… | 22:44 | ||
Thrush | AlexDaniel: There's a unicode character for 10? And for 100? | ||
AlexDaniel | like, in what encoding, right? | ||
timotimo | Morfent: hi, this is timotimos so-called "expert" speaking | ||
AlexDaniel | Thrush: that you'll have to figure out :) | ||
Thrush: also relevant: github.com/perl6/mu/blob/master/mi...hedule#L25 | |||
timotimo | the trouble is that the c function expects the upper bits of the 16-bit argument to be clean, but as you can see from "info registers", they're clearly not | ||
s0me0ne-unkn0wn | Probably some language somewhere in India have a dedicated character for "100" and if it's on unicode table you can use it with Perl 6 :) | 22:45 | |
timotimo | i have had a look in the ABI, but it unfortunately remains quiet on the issue. | ||
22:45
geospeck left
|
|||
timotimo | the safe thing is probably for the caller to clear those bits if some callees expect that | 22:45 | |
and with that, back to timotimo | 22:46 | ||
AlexDaniel | I'll just leave this here… :P gist.github.com/AlexDaniel/52b203c...6ec335336c | 22:47 | |
Thrush | This is very interesting. I never knew there was a unicode character for 10 (or 100) before. | ||
s0me0ne-unkn0wn | Wow, 1000000000000 even | 22:49 | |
22:50
mcmillhj joined
|
|||
AlexDaniel | s0me0ne-unkn0wn: so -0.5 is not that interesting, huh? :P | 22:51 | |
timotimo | Morfent: can you do another recompile of moarvm? this time with --moar-option=--has-libffi in the mix? | 22:52 | |
er, i mean, you're using moarvm's configure.pl directly, so use --has-libffi directly | 22:53 | ||
Thrush | m: say 100; say ௱ | 22:54 | |
camelia | 100 100 |
||
Thrush | Wow... I got it! | ||
I found the symbol for "௱" (TAMIL NUMBER ONE HUNDRED) at www.fileformat.info/info/unicode/ca...o/list.htm . | 22:55 | ||
22:55
mcmillhj left
|
|||
s0me0ne-unkn0wn | AlexDaniel: Well, right now I live in Croatia and I have the clock with glagolic characters in place of normal digits on my wall so digits lower than 13 represented by single character don't surprise me a lot, but 1000000000000... | 22:55 | |
Thrush | Glagolic? Do you mean "glagolitic"? | 22:57 | |
Morfent | timotimo: probing whether your compiler thinks that it is gcc Can't compile simple gcc probe, so something is badly wrong at build/probe.pm line 147. | 23:01 | |
Geth | mu: 570da66916 | deepnext++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Update schedule |
||
mu: 077e632f57 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | misc/perl6advent-2017/schedule Merge pull request #29 from deepnext/patch-1 Update schedule Thanks! |
|||
timotimo | Morfent: hg.dyncall.org/pub/dyncall/dyncall/..._x64.c#l74 - check this out | 23:04 | |
see how it passes short args by pretending they are longlong | |||
Morfent | yeah | ||
ryn1x | Does CPAN store statistics anywhere? Like number of downloads? | 23:05 | |
s0me0ne-unkn0wn | Thrush: Exactly, excuse me for my English, I speak mostly Slavic languages :) | ||
timotimo | that's where the upper bytes of the regsiter get filled by sign extension | ||
the question becomes: do we have functions that would expect sign extension for the upper bytes? | 23:07 | ||
Thrush | Quite all right, s0me0ne-unkn0wn. I just googled the term, and google was correcting me slightly. | ||
s0me0ne-unkn0wn: Ĉu vi parolas Esperanton? (Do you speak Esperanto?) | 23:08 | ||
El_Che | utf8 pr0n hour at #perl6, /me thinks :) | 23:09 | |
23:10
mcmillhj joined
|
|||
s0me0ne-unkn0wn | Thrush: Unfortunatelly no, my first language is Russian, I also speak Croatian, Bosnian an Serian (which are mosly the same language), very limited Polish and Bulgarian and also Perl (as native) and Perl 6 (as foreign) :) | 23:11 | |
AlexDaniel | El_Che: softcore, real unicode porn will be in the advent post :P | ||
23:11
lizmat joined
|
|||
El_Che | AlexDaniel: haha | 23:12 | |
23:15
mcmillhj left
|
|||
lizmat | . | 23:15 | |
El_Che | lizmat: that the most boring utf8 of the evening :) | 23:18 | |
lizmat | sorry, it was only intended as ascii :-) | ||
El_Che | :) | 23:20 | |
(there was a utf8 conversation going on before you joined) | 23:21 | ||
Thrush | Thanks for your help, guys. I have to leave now. | 23:23 | |
23:25
Thrush left
23:29
wamba joined
23:39
mudman joined
23:41
comborico1611 left
23:42
comborico1611 joined
23:44
raschipi joined
23:48
kitsunenokenja left
23:50
comborico1611 left
23:56
redhands left,
Herby_ joined
|
|||
Herby_ | o/ | 23:57 | |
mudman | \ o | ||
raschipi | \o | ||
23:58
comborico1611 joined
|