»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by masak on 28 November 2015. |
|||
00:00
espadrine left
00:01
Psyche^ left
00:02
kyclark joined
00:04
kyclark left
|
|||
jdv79 | gist.github.com/anonymous/620a5fb5aff539264c1a | 00:05 | |
what am i missing tere? | |||
*there | |||
00:08
Ben_Goldberg joined,
firstdayonthejob left
00:10
BenGoldberg left
00:11
geraud left
00:16
cdg joined,
rhr joined
|
|||
skids | Anyone know what the failure observed in RT#122773 actually was? | 00:18 | |
erm sorry | |||
RT#123272 | |||
As it stands, I had to add a "unit" keyword and after that I can get a "Could not find ABC::Grammar in:" but I don't know if that was what was originally going on. | 00:20 | ||
00:21
adhoc left
00:22
adhoc joined,
kaare_ left
00:24
hankache left
00:26
Zoffix left
00:37
smls_ left
00:41
roguelazer joined
00:43
pierre-vigier joined
00:48
pierre-vigier left
|
|||
jdv79 | This representation (VMArray) cannot unbox to a native string | 00:52 | |
sweet | |||
oh. maybe its time for rest:( | 00:53 | ||
nevermind | |||
00:54
zostay joined
01:04
Ben_Goldberg left
01:05
Ben_Goldberg joined
|
|||
TimToady | m: () while 0 | 01:16 | |
camelia | rakudo-moar 8401e0: OUTPUT«WARNINGS for /tmp/IfJNqYLBY5:Useless use of () in sink context (use Nil instead to suppress this warning) (line 1)» | ||
01:23
xpen joined
|
|||
Hotkeys | when using a named capture after matching does it matter if I do $<name> or $/<name> ? | 01:25 | |
they seem to produce the same result | |||
TimToady | doesn't matter | 01:26 | |
$<name> is just sugar for the $/<name> | |||
dalek | kudo/nom: 1f09c1e | TimToady++ | src/Perl6/ (2 files): because it's Friday and I'm feeling expansive |
01:31 | |
japhb | TimToady++ # For the commit message alone | 01:32 | |
Hotkeys | alright cool | ||
cognominal | to ∞ and beyond | 01:35 | |
dalek | ast: 456134a | TimToady++ | S02-literals/numeric.t: That's one small step for a language... one giant leap for the number line. |
01:38 | |
01:39
davercc` left
01:42
xpen left
01:43
xpen joined
|
|||
dalek | ast: f9d2d49 | TimToady++ | S06-operator-overloading/term.t: test using aleph-zero instead of infinity |
01:44 | |
Ben_Goldberg | Heh | 01:48 | |
m: my (\joy) := \(my $x=3); say ++joy | 01:51 | ||
camelia | rakudo-moar 1f09c1: OUTPUT«4» | ||
Ben_Goldberg | m: my (\joy) := \(my $x=3); say ++joy, ++joy, ++joy; | 01:52 | |
camelia | rakudo-moar 1f09c1: OUTPUT«456» | ||
01:52
pat_js left
02:00
zjmarlow_ left
|
|||
jdv79 | i have a feeling this whole requiring installing of a dist to render pod is gonna turn out to be a "really bad idea" | 02:03 | |
for instance i can't render pod for Audio::Libshout right now because the install fails because it can't find libshout, a prereq. | 02:04 | ||
so something liek a metacpan server will have to have every conceivable pre-req installed? that' pure insanity. | 02:05 | ||
02:11
molaf_ joined
02:15
molaf left
02:24
zjmarlow_ joined
02:25
FROGGS_ joined
02:28
Sqirrel left,
FROGGS left
|
|||
grondilu | cuneiforms? jeez | 02:29 | |
m: 𒑡 × 𒑒 | |||
camelia | rakudo-moar 1f09c1: OUTPUT«WARNINGS for /tmp/t2xCzGK_6E:Useless use of "×" in expression "𒑡 × 𒑒" in sink context (line 1)» | ||
grondilu | this messed up my terminal output in a way very difficult to describe | 02:30 | |
02:30
zjmarlow_ left
|
|||
grondilu | m: 𒑡 × * | 02:31 | |
camelia | rakudo-moar 1f09c1: OUTPUT«WARNINGS for /tmp/K65hVGL5DE:Useless use of "×" in expression "𒑡 × *" in sink context (line 1)» | ||
grondilu | i.imgur.com/LRBctIi.png | ||
m: say 𒑡 × * | 02:32 | ||
camelia | rakudo-moar 1f09c1: OUTPUT«WhateverCode.new» | ||
grondilu | msay : 𒑡 × 𒑒 | 02:33 | |
m: say 𒑡 | 02:34 | ||
camelia | rakudo-moar 1f09c1: OUTPUT«0.166667» | ||
02:38
kid51 left
02:45
ilbot3 left
02:47
ilbot3 joined
|
|||
TimToady | somebody's been reading test files :) | 02:53 | |
02:55
zjmarlow joined
03:00
yqt left
03:01
zjmarlow left
|
|||
Hotkeys | .u א₀ | 03:02 | |
yoleaux | U+05D0 HEBREW LETTER ALEF [Lo] (א) | ||
U+2080 SUBSCRIPT ZERO [No] (₀) | |||
Hotkeys | that right to left nonsense is weird | ||
dalek | kudo/nom: c06c4c4 | TimToady++ | src/Perl6/Actions.nqp: at least annotate the suspect bind as sunk |
03:04 | |
TimToady wonders if they write it ₀א over in those parts of the world... | 03:05 | ||
Hotkeys | is panda broken or is it just me | 03:06 | |
TimToady | I suppose I should've used ℵ instead of א | 03:07 | |
Hotkeys | oh | ||
it's just taking ages to start doing things | |||
dalek | ast: 1e61fd2 | TimToady++ | S06-operator-overloading/term.t: use the alef symbol rather than the letter |
03:09 | |
TimToady | on first run it might be precompiling | 03:10 | |
(other modules) | |||
dinner & | 03:11 | ||
03:13
xpen left
03:16
uruwi joined
03:21
cdg left,
cdg joined
03:26
noganex_ joined
03:28
AndyDee joined,
cdg_ joined
03:29
noganex left
03:32
cdg left,
cdg_ left
03:49
colomon left
|
|||
lucs | m: my regex bar { <[\w]> }; my regex foo { <+ bar - [0..9]> <bar>* }; "asdf" ~~ / <foo> /; # Help? | 03:53 | |
camelia | rakudo-moar c06c4c: OUTPUT«Method 'bar' not found for invocant of class 'Cursor' in regex foo at /tmp/LpynmEE83s:1 in block <unit> at /tmp/LpynmEE83s:1» | ||
04:00
vendethiel joined
|
|||
lucs & # ZZ mañana | 04:02 | ||
04:06
colomon joined
|
|||
awwaiid | lucs: maybe you can't put a regex in for a char list | 04:07 | |
04:10
CQ2 joined
04:12
CQ left,
CQ2 is now known as CQ
04:25
BenGoldberg_ joined
04:27
Ben_Goldberg left
04:30
lichtkind left
04:34
BenGoldberg_ left
04:40
flaviusb left
04:45
pierre-vigier joined
04:50
pierre-vigier left
|
|||
AlexDaniel | Recently I've noticed that line numbers in error messages became wrong | 04:53 | |
instead of saying the number of the offending line it says the line number of the sub declaration (where I have “sub Foo {”) | 04:54 | ||
or even worse, line number of the return statement | |||
am I making it up or the problem is actually there? | |||
TimToady | fixed already | 04:55 | |
AlexDaniel | ooooooh | ||
TimToady: thanks | 04:56 | ||
TimToady | if it's the bug I think it is | ||
when did you last compile? | |||
download/compile? | |||
AlexDaniel | yesterday | ||
TimToady | fixed today | ||
probably | 04:57 | ||
AlexDaniel | well, we'll see :) | ||
by the way, there are a bunch of warnings during the compilation of MoarVM. Is there any reason not to fix those? Or am I the only one who is seeing them? | 04:59 | ||
TimToady | the devs would rather see the warnings than fix them by cluttering things up :) | ||
don't sweat it | |||
AlexDaniel | ah ok then. Though the latter option is possible too because I am on debian unstable and recently I've noticed a bunch of cases when it makes nice warning messages when earlier it did nothing. | 05:01 | |
TimToady | the windows compiler is not so picky, I gather :) | ||
grondilu | with <a b> and <c d>, how can I make (('ac', 'ad'), ('bc', 'bd')) using metaoperators? | 05:03 | |
m: say <a b> X~ <c d> # flattens | |||
camelia | rakudo-moar c06c4c: OUTPUT«(ac ad bc bd)» | ||
AlexDaniel | hm, is there any way to know if rakudo was compiled with JIT support (i.e. non 32-bit stuff)? I am having an interesting case when the kernel is 64-bit but everything else is not… | ||
flussence | check the profiler output | 05:04 | |
AlexDaniel | right | ||
llfourn | m: m: say <a b> X <c d> | 05:05 | |
camelia | rakudo-moar c06c4c: OUTPUT«((a c) (a d) (b c) (b d))» | ||
grondilu | m: say <a b> X[X~] <c d> # flattens | 05:06 | |
camelia | rakudo-moar c06c4c: OUTPUT«((ac) (ad) (bc) (bd))» | ||
llfourn | grondilu: you'd need to group them after the first X somehow | 05:07 | |
TimToady | m: say (<a b> X <c d>).rotor(2) | ||
camelia | rakudo-moar c06c4c: OUTPUT«(((a c) (a d)) ((b c) (b d)))» | ||
AlexDaniel | DrForr: I think that it was decided to “release” on 19th so that we can release on 25th | ||
TimToady | m: say (<a b> X~ <c d>).rotor(2) | ||
camelia | rakudo-moar c06c4c: OUTPUT«((ac ad) (bc bd))» | ||
llfourn | ah yes .rotor! | ||
winnar! | 05:08 | ||
grondilu | I was hoping not using rotor | ||
AlexDaniel | DrForr: if that's what you meant by your question, and if I got everything correctly :) | ||
grondilu | because the array can be of arbitrary size and I don't want to use it more than once. | ||
llfourn | m: m: say (<a b> X~ <c d>).rotor(*) | 05:09 | |
camelia | rakudo-moar c06c4c: OUTPUT«Cannot call Real(Whatever: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at /tmp/YidXjExZFc:1» | ||
grondilu | m: say <a b> X[X~] (<c d>,) | 05:10 | |
camelia | rakudo-moar c06c4c: OUTPUT«((ac ad) (bc bd))» | ||
grondilu | ah ah | ||
m: say <a b> X~ (<c d>,) | |||
camelia | rakudo-moar c06c4c: OUTPUT«(ac d bc d)» | ||
llfourn | oh nice :) | ||
grondilu | X[X~] it is :) | ||
TimToady | mUm: say <a b> XX~ (<c d>,) | ||
m: say <a b> XX~ (<c d>,) | 05:11 | ||
camelia | rakudo-moar c06c4c: OUTPUT«((ac ad) (bc bd))» | ||
AlexDaniel | mum? | ||
TimToady | don't really need the brackets | ||
05:11
vendethiel left
|
|||
TimToady | m: say <a b> XX (<c d>,) | 05:11 | |
camelia | rakudo-moar c06c4c: OUTPUT«(((a c) (a d)) ((b c) (b d)))» | ||
05:12
Actualeyes joined
|
|||
AlexDaniel | OK here goes 3 minute precompilation again… That's like half of the time required to build rakudo? :) | 05:13 | |
grondilu | m: say <a b> XX~ <c d>, | 05:14 | |
camelia | rakudo-moar c06c4c: OUTPUT«((ac ad) (bc bd))» | ||
grondilu | neither the parens | ||
AlexDaniel | nice! | ||
m: say <a b> XZ~ <c d> | 05:15 | ||
camelia | rakudo-moar c06c4c: OUTPUT«((ac) (ad) (bc) (bd))» | ||
AlexDaniel | TimToady: yes, my problem disappeared after updating. Thank you | 05:18 | |
05:37
molaf_ left
05:52
flaviusb joined,
psy_ joined,
Possum left
05:53
Possum joined
05:56
secwang joined
06:03
psy_ left
06:05
psy_ joined
06:06
psy_ left
06:08
psy_ joined
06:11
secwang left
06:15
pierre-vigier joined
06:17
secwang joined
06:19
vividsnow joined
06:21
snarkyboojum joined
06:29
szabgab joined
|
|||
szabgab | Hi, could someone tell me who is venndethiel (full name, link to some home page)? So I can properly attribute the links in the Perl Weekly. | 06:30 | |
yoleaux | 6 Nov 2015 18:30Z <[Coke]> szabgab: cpansearch.perl.org/src/SZABGAB/Syn...e/Perl6.pm looks more like a Perl 5 highlighter, no? | ||
TEttinger | Ven is usually online around now... | 06:31 | |
github.com/vendethiel appears to be the veninator | 06:32 | ||
06:32
cpage_ left
|
|||
TimToady | ven usually prefers to just go by vendethiel | 06:32 | |
dunno why there's two N's in the article, offhand | 06:33 | ||
06:33
nige1 joined
|
|||
dalek | ast: 040bac7 | skids++ | S10-packages/precompilation.t: Add passing test for RT#123272 verified not passing on <= 59f7cb9 This seems to adequately represent the since-fixed ABC precomp issues Note that it runs into run_alt problems when run directly from roast where there is no t/spec/packages directory unless you link said path to the roast packages/ directory. Will ensure it works from make spectest after this commit. |
06:38 | |
ast: cee6b12 | skids++ | packages/Example2/ (15 files): Files for previous commit |
|||
06:44
secwang left,
khw left
|
|||
szabgab | thanks for the links | 06:47 | |
06:51
pierre-vigier left
|
|||
skids | darn. The run_alt issue still kills those tests under "make spectest" | 06:56 | |
TimToady | maybe you found the flapper? | 07:05 | |
skids | Well, the fact that it seems to care what directory .precomp is in seems maybe to be a clue. | 07:07 | |
Huh, now it doesn't and the link trick doesn;t work anymore. Just always run_alt. Sigh. | 07:14 | ||
Up way to late to deal with this, though. | 07:15 | ||
07:16
szabgab left
07:23
CIAvash joined
07:26
skids left,
secwang joined
|
|||
dalek | kudo/nom: 28ab83f | TimToady++ | src/ (2 files): restricted subset of regex for INTERPOLATE Nothing that can execute arbitrary code is allowed into regex interplations now. Probably. Maybe. |
07:29 | |
TimToady | where's Mrs Tables when you need her? | 07:31 | |
07:34
molaf joined
|
|||
TimToady | m: "foo" ~~ / <{ ' foo }; { say "pwned" }; regex { foo ' }> / | 07:36 | |
camelia | rakudo-moar c06c4c: OUTPUT«pwned» | ||
dalek | ast: 20d3fc8 | TimToady++ | S05-metasyntax/litvar.t: fix test new restricted regex caught |
07:41 | |
07:43
RabidGravy joined,
aindilis joined
07:51
hankache joined
|
|||
TEttinger | you know, I bet interplations isn't even a typo if you go into technical enough jargon | 07:55 | |
"it's the jargon called You Know What I Mean" | |||
TimToady | m: "foo" ~~ / <{ ' foo }; { say "pwned" }; regex { foo ' }> / | 07:56 | |
camelia | rakudo-moar 28ab83: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { foo }7⏏5; { say "pwned" }; regex { foo }» | ||
TimToady | m: "foo" ~~ / <{ '$(say "trivially pwned")' }> / | 07:57 | |
camelia | rakudo-moar 28ab83: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex {7⏏5 $(say "trivially pwned")}» | ||
TimToady | anyway, everyone feel free to try to break into it :) | 07:58 | |
TEttinger | j: "foo" ~~ / <{ '$(say "trivially pwned")' }> / | ||
camelia | ( no output ) | ||
TEttinger | j: "foo" ~~ / <{ ' foo }; { say "pwned" }; regex { foo ' }> / | 07:59 | |
camelia | rakudo-jvm 6c0f93: OUTPUT«pwned» | ||
TimToady | hasn't recompiled | ||
TEttinger | I can dream | ||
hankache | good morning #perl6 | 08:00 | |
TimToady | why, so it is...I should go to bed | ||
08:05
labster joined
08:06
raiph left
|
|||
labster | Well, it looks like all of my modules broke right before Christmas. So I guess it's time to fix them. | 08:12 | |
08:13
darutoko joined
|
|||
hankache | labster good luck | 08:13 | |
labster | although make install is failing at this step: ./perl6-m tools/build/install-core-dist.pl An exception occurred while evaluating a constant | 08:14 | |
at /Users/brent/code/rakudo/install/share/perl6/sources/37AE7E5299896B2ED5DA605854BE14140B241038:13 | |||
Exception details: | |||
Could not find symbol '&bool' | |||
08:17
nige1 left
|
|||
Woodi | TimToady++ # (security++)++ | 08:24 | |
hi today #perl6 :) | 08:25 | ||
labster | good morning Woodi | 08:30 | |
TimToady | labster: you have to rm the install dir to clear that one | 08:34 | |
hankache | anyone having problems installing Terminal::ANSIColor? | 08:36 | |
lol it's already installed. | 08:37 | ||
Woodi | I wonder do we have to much numeric types... maybe int and Int could be same thing in int-range ? (if they arn't already) | ||
hankache needs coffee | |||
Woodi | hankache++ ;) | 08:38 | |
hankache | morning Woodi | ||
labster | Worked, thanks TimToady | 08:40 | |
_nadim | Good morning all | 08:44 | |
Woodi | hi _nadim | ||
hankache | morning _nadim | 08:45 | |
RabidGravy | marnin | 08:46 | |
08:46
xpen joined
|
|||
Woodi | about OO Design :) : so, looks by now we discovred basic atoms and electrons and we are like physics in XIX century - "we know everything! rest is about just measuremen accuracy" :) | 08:47 | |
assuming that's true then next inventions will just group basic objects into bigger things like family of objects -> clans -> tribes -> nations and finally global objects ! ;) | 08:49 | ||
hankache | morning RabidGravy | 08:50 | |
newbie question: I want to store html+javascript in a variable so i can output it in bailador | 08:53 | ||
the html and javascript in on multiple lines, how can i do it? | |||
Woodi | hankache: newbie answer: $string or @list ? | 08:54 | |
hankache | knowing that the string has quotes, backslashes etc. and escaping them is not an alternative | ||
Woodi | hankache: so that text in varible is already escaped for html output ? | 08:57 | |
hankache | Woodi no | 08:58 | |
i saw something for perl5 and don't remember it well, q{} or qq{} something close | 08:59 | ||
labster | In the future, we will put the entire program in a string, and put EVAL in front. | 09:00 | |
Woodi | labster: I heard once some company used LDAP database to keep thousand of SQL queries ;) | 09:02 | |
_nadim | hankache: Q<<{ your text on multiline }>> | ||
09:02
cpage_ joined,
TEttinger left
09:03
TEttinger joined
|
|||
Woodi | hankache: so you need to add all that &xxxxxx things ? | 09:04 | |
_nadim | doc.perl6.org/language/quoting | 09:06 | |
dalek | kudo/nom: 6942dc1 | TimToady++ | src/Perl6/Actions.nqp: inside of gather is a sink context |
09:07 | |
09:09
pmurias joined
|
|||
hankache | _nadim thanks | 09:12 | |
Woodi no not for thi example | |||
this** | |||
RabidGravy | hankache, maybe a "here document" doc.perl6.org/language/quoting#Heredocs%3A_%3Ato ? | ||
labster | ah, so IO::Handle.seek no longer accepts the Int argument for whence. And the design docs are wrong. What is happening to the world when we can't use confusing integer flags in our code? :P | 09:13 | |
hankache | RabidGravy thanks | 09:14 | |
Woodi | hankache: problem is: I don't quite know what input format you have and what output format you are expecting... so human-fpga can't help a lot, just heurestics :) | ||
labster | m: SeekType.new(0).say | 09:15 | |
camelia | rakudo-moar 6942dc: OUTPUT«Cannot unbox a type object in block <unit> at /tmp/UqQM8bcq3Z:1» | ||
RabidGravy | oof | ||
but the simple cast works | |||
m: say SeekType(0) | 09:16 | ||
camelia | rakudo-moar 6942dc: OUTPUT«SeekFromBeginning» | ||
09:16
nige1 joined
|
|||
hankache | Woodi I want to put this gist.github.com/hankache/b1d39936f6bfba178709 in a variable | 09:17 | |
labster | m: SeekType.new(0).perl | 09:18 | |
camelia | rakudo-moar 6942dc: OUTPUT«Use of uninitialized value $!key of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/9W3xtoluRZ:1» | ||
hahainternet | hankache: RabidGravy gave you the right link, this: doc.perl6.org/language/quoting#Heredocs%3A_%3Ato | ||
labster | lol thanks error message. | ||
hankache | hahainternet Woodi RabidGravy _nadim thanks everyone | 09:22 | |
09:23
smls joined
|
|||
dalek | kudo/nom: 19d84be | TimToady++ | src/Perl6/Grammar.nqp: regex interpolation falsely rejected <alpha> |
09:24 | |
cognominal | m: EVAL "say q:to<END>\nhi hankache\nEND" | 09:25 | |
camelia | rakudo-moar 6942dc: OUTPUT«hi hankache» | ||
TimToady | note wrt regex interpolation, S05-metasyntax/angle-brackets.t is known to fail because it is violating the rules; we need a monkey pragma to enable bypassing the rules for testing | 09:27 | |
too late to do it tonight though... | |||
smls | ooh, so we have safe interpolation now? | ||
s/safe/safer/ | 09:28 | ||
TimToady | m: "foo" ~~ / <{ '$(say "trivially pwned")' }> / | ||
camelia | rakudo-moar 6942dc: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex {7⏏5 $(say "trivially pwned")}» | ||
hankache | m: say "salut cognominal" | ||
camelia | rakudo-moar 6942dc: OUTPUT«salut cognominal» | ||
TimToady | m: "foo" ~~ / <{ ' foo }; { say "pwned" }; regex { foo ' }> / | ||
camelia | rakudo-moar 6942dc: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { foo }7⏏5; { say "pwned" }; regex { foo }» | ||
TimToady | m: "foo" ~~ / <{ '<alpha>' }> / | 09:31 | |
camelia | ( no output ) | ||
TimToady | m: say "foo" ~~ / <{ '<alpha>' }> / | ||
camelia | rakudo-moar 19d84b: OUTPUT«「f」» | ||
TimToady | that's the one I just fixed, was bailing out too early | ||
m: say "foo" ~~ / <{ '<foo("anything")>' }> / | 09:32 | ||
camelia | rakudo-moar 19d84b: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { <foo(7⏏5"anything")>}» | ||
09:32
Sqirrel joined
|
|||
TimToady | that's illegal though | 09:32 | |
m: say "foo" ~~ / <{ '<foo::bar>' }> / | |||
camelia | rakudo-moar 19d84b: OUTPUT«===SORRY!===Could not locate compile-time value for symbol foo» | ||
TimToady | that's legal | ||
hankache | so the html+javascript that we put in a scalar using heredoc is being used correclty by bailador. | ||
TimToady | m: say "foo" ~~ / <{ '<foo::bar:baz(42)>' }> / | ||
camelia | rakudo-moar 19d84b: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { <foo::bar7⏏5:baz(42)>}» | ||
TimToady | that's not | ||
m: say "foo" ~~ / <{ ' "oo" ' }> / | 09:33 | ||
camelia | rakudo-moar 19d84b: OUTPUT«「oo」» | ||
hankache | the only issue being <script src="library.js"></script> is not being picked up | ||
TimToady | m: say "foo" ~~ / <{ ' "o{say 'gotcha'}o" ' }> / | ||
camelia | rakudo-moar 19d84b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BWtWGDLTAJTwo terms in a rowat /tmp/BWtWGDLTAJ:1------> 3say "foo" ~~ / <{ ' "o{say '7⏏5gotcha'}o" ' }> / expecting any of: infix infix stopper statement end…» | ||
TimToady | m: say "foo" ~~ / <{ ' "o{say q/gotcha/}o" ' }> / | ||
camelia | rakudo-moar 19d84b: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { "o7⏏5{say q/gotcha/}o" } expecting any of: double quotes» | ||
hankache | although it is in the same folder | ||
TimToady | m: say "foo" ~~ / <{ ' "$_" ' }> / | 09:34 | |
camelia | rakudo-moar 19d84b: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { "7⏏5$_" } expecting any of: double quotes» | ||
Woodi | hankache: what request Bailador is getting from client ? | ||
TimToady | not sure why that one fails, probably overkill | ||
Woodi | ' "$_" ' should't be just "literal": "$_" ? | 09:37 | |
09:38
FROGGS_ left
|
|||
Woodi | Woodi: should and that's the problem ? | 09:38 | |
09:48
hankache left,
hankache joined
|
|||
TimToady | ah well, won't get that one fixed tonight either... | 09:48 | |
zzz & | |||
09:49
secwang left,
cognominal left
|
|||
hankache | Woodi: i am not really sure i understand the question. This is the first time i use bailador | 09:50 | |
i loaded the html+javascript using heredoc and bailador outputs it correctly. the only issue is this line <script src="library.js"></script> | 09:52 | ||
09:53
kaare_ joined
|
|||
hankache | bailador can't find it | 09:53 | |
*can't find the .js | |||
Woodi | hankache: bailador sends web page to client and client should ask for library.js in subsequent request | 09:55 | |
I was asking what request bailador got for library.js | 09:56 | ||
hankache | Woodi: here is my code gist.github.com/hankache/b1d39936f6bfba178709 | 09:59 | |
09:59
xpen left,
nige1 left
|
|||
pmurias | hankache: do you have Chart.js somewhere? | 10:00 | |
10:01
rindolf joined
|
|||
hankache | pmurias yes in the same directory where i call the pl6 file containing the code | 10:01 | |
10:02
firstdayonthejob joined
|
|||
hankache | so if i copy/paste the content of $html in a .html file and save it in the same directory it wors | 10:02 | |
works* | |||
but when run using bailador, it can't figure out the path to it | |||
10:03
spider-mario joined
|
|||
pmurias | hankache: the simplest option would be to just replace src="Chart.js" with src="cdnjs.com/libraries/chart.js" | 10:03 | |
hankache | pmurias of course it works then | ||
pmurias but i was trying to provision for offline use | 10:04 | ||
pmurias | hankache: looking at the Bailador source code it doesn't seem to read files by default | 10:05 | |
so you would have to add a route for Char.js that reads the file and sends it | 10:06 | ||
something like get 'Chart.js' => sub { slurp 'Char.js' }; | 10:09 | ||
pmurias didn't test that | |||
hankache | pmurias thanks dear | 10:10 | |
pmurias: i'll see what can be done. | |||
hope slurp works | |||
pmurias | hankache: maybe it should be get '/Chart.js' => sub { slurp 'Char.js' }; | 10:14 | |
do we have a Perl 6 framework other than Bailador? | 10:15 | ||
hankache | pmurias not that i know of | 10:16 | |
AlexDaniel | pmurias: I don't think so | ||
pmurias: is there something wrong with Bailador, by the way? | 10:17 | ||
pmurias: because I am using it for rather simple stuff and it works just fine | |||
hankache | eureka!! | ||
pmurias: get '/Chart.js' => sub { slurp 'Char.js' }; did the job | |||
AlexDaniel | aaaah | ||
hankache | pmurias: thanks a lot | ||
AlexDaniel | hankache: yeah, that's what I do too :) | ||
hankache | AlexDaniel :) | 10:18 | |
AlexDaniel I am just starting to learn how to use bailador | |||
AlexDaniel | hankache: not sure if that's the right way to do it, but oh well, it works | 10:19 | |
hankache | AlexDaniel if it works, it works | ||
AlexDaniel | hankache: well kinda, what if you want to serve a binary file? | ||
pmurias | AlexDaniel: I haven't used it so I don't have a strong opinion, seems to look a bit like a quick hack | ||
hankache | AlexDaniel no idea :) | 10:20 | |
pmurias: at least i can keep going for the moment. thanks again | |||
AlexDaniel | hankache: you might also need this kind of thing | 10:21 | |
get ‘/raw’ => sub { header(‘Content-Type’, ‘text/plain’); return ‘some text here’ }; | |||
hankache: for JS stuff too, I think. | |||
though it is not going to be text/plain | 10:22 | ||
hankache | ok | ||
AlexDaniel | pmurias: yeah. Well, my problem with Bailador is that it seems to look a bit like a half-dead project | 10:23 | |
some commits now and then but no real development | 10:24 | ||
for me it's OK if it is somewhat hacky, but it's not OK if things are not moving forward… | 10:25 | ||
hankache: ah yeah, if you are going to need POST params then read this: github.com/tadzik/Bailador/pull/44 | |||
10:26
Skarsnik joined
|
|||
AlexDaniel | hankache: long story short: you have to apply this patch in the pull request, then apply my fix, then it is going to work | 10:26 | |
I did not submit a pull request because it looks like it has to be named “p6sgi”, feels like it was just forgotten | 10:27 | ||
so the original pull request is fine, it is just that it does not work with the current code base… | |||
oops I meant “psgi” | 10:28 | ||
hankache | aha | ||
10:28
labster left
|
|||
AlexDaniel | good ni… *! o/ | 10:29 | |
hankache | good night AlexDaniel | ||
RabidGravy | off out to laugh at the desperate masses, ttfn. | 10:32 | |
10:34
AlexDaniel left
10:36
RabidGravy left
10:37
labster joined
|
|||
smls | Did Rakudo nom somehow become three times slower since yesterday? | 10:41 | |
s/three times/1.5 times/ | 10:43 | ||
10:46
rurban joined
10:54
hankache left
10:56
labster left
11:03
psy_ left
11:05
eyck left
11:06
eyck joined
|
|||
masak | good noon, #perl6 | 11:06 | |
11:10
Begi joined
11:11
vividsnow left
11:12
vividsnow joined
11:13
bpmedley left
|
|||
Skarsnik | Hello | 11:16 | |
masak | \o | ||
11:25
psy_ joined
11:26
psy_ left,
psy_ joined
11:34
hankache joined
|
|||
lizmat | good *, #perl6! | 11:34 | |
smls: spectest seemed slower the past days, yes | |||
hankache | hiya lizmat! | ||
lizmat | hankache o/ | ||
dalek | kudo/nom: 5e0c0ca | (Sylvain Colinet)++ | lib/NativeCall.pm6: Change the way you can specify the API/ABI version in NC. previous implementation would fail under win32 because based on a : separator |
11:39 | |
kudo/nom: 29c460d | lizmat++ | lib/NativeCall.pm6: Merge pull request #641 from Skarsnik/nom Change the way you can specify the API/ABI version in NC. |
|||
hankache | is there a way of making all class attributes rw instead of saying is rw for each attribute? | ||
Skarsnik | class A is rw | 11:40 | |
hankache | thanks Skarsnik | ||
Skarsnik | thx lizmat x) | 11:41 | |
11:41
_nadim left
|
|||
hankache | thanks lizmagic | 11:41 | |
;D | 11:42 | ||
Skarsnik | oh wait I forget to commit the test file :( | 11:47 | |
12:02
vividsnow left
|
|||
timotimo | yawn | 12:03 | |
not feeling so great today :\ | |||
12:03
vividsnow joined
|
|||
timotimo | and then somebody says rakudo got 1.5x slower, that's bad news | 12:03 | |
12:04
eyck left,
eyck joined
|
|||
timotimo | smls: did you have some code that measures the slowdown somewhat directly? | 12:06 | |
smls | timotimo: not golfed | 12:07 | |
12:08
eyck left
12:09
eyck joined,
kid51 joined
|
|||
dalek | kudo/nom: 522e03c | (Sylvain Colinet)++ | t/04-nativecall/17-libnames.t: Add the missing test file related to NC api version stuff |
12:10 | |
kudo/nom: f7adf8f | lizmat++ | t/04-nativecall/17-libnames.t: Merge pull request #642 from Skarsnik/nom Add the missing test file related to NC api version stuff |
|||
lizmat | Files=1092, Tests=51291, 349 wallclock secs (15.65 usr 4.17 sys + 2273.45 cusr 175.97 csys = 2469.24 CPU) | 12:11 | |
^^^ on a cold machine... wallclock and CPU are about 1.5 to what I was used to until earlier this week | |||
timotimo | huh | 12:12 | |
lizmat | yes, some tests were added, but not that many | 12:13 | |
timotimo | it's not the great sink refactor, is it? | ||
smls | Can I safely downgrade Rakudo with rakudobrew? | 12:14 | |
lizmat | timotimo: I would hope not.... but fear that it is... | ||
timotimo | you can nuke your moar first, smls | 12:15 | |
lizmat | I mean, adding just a little bit of overhead to each line, e.g. all of that wanted stuff | ||
timotimo | it's a little bit of extra data, but it's only compilation overhead | 12:16 | |
though on the other hand ... spec tests is almost dominated by compilation | |||
i think it'd be interesting to actually measure that exactly | 12:17 | ||
like, hack stagestats to write to a file and collect the whole combined output for all of the spec test suite | |||
smls | The difference I saw in my script was run-time, though, as measured by «my $time = now; ...; note $time - now» | ||
timotimo | OK | 12:18 | |
are you on the MOAR_REVISION or on moar master? | |||
NQP_REVISION, likewise | |||
jnthn | Various bits of code-gen also look out for a wider range of register types due to the sized stuff, but I'd rather doubt that's to blame. | ||
Not for such a large factor | 12:19 | ||
Spectest seems slower here too | |||
smls | timotimo: Whatever "rakudobrew build moar" decided to build ;) | ||
timotimo | i think unless you use "rakudobrew triple nom master master" you get the "recommended" revisions | 12:20 | |
Skarsnik | I get sink warning with use NativeCall :ALL; (or :something) is that normal? x) | ||
timotimo | yeah, the :foo triggers it, right? | ||
Skarsnik | Useless use of ":TEST" in sink context (line 3) | 12:21 | |
moritz | m: use Test :ALL; | ||
camelia | ( no output ) | ||
moritz | m: NativeCall :ALL; | ||
timotimo | could already be fixed | ||
camelia | rakudo-moar 29c460: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yTkuPFA3uWYou can't adverb NativeCallat /tmp/yTkuPFA3uW:1------> 3NativeCall :ALL7⏏5; expecting any of: pair value» | ||
timotimo | m: use NativeCall :ALL; | ||
camelia | ( no output ) | ||
timotimo | seems like. Skarsnik you can update :) | ||
Skarsnik | it's like from 2-3 days ago x) | 12:22 | |
timotimo | right now, our velocity of changes is pretty big | ||
Skarsnik | If it's fixed it's alright ^^ | 12:23 | |
timotimo | yeah, seems like it is | ||
lizmat | FWIW, wrt to slowdown, it doesn't seem to come from bare startup | 12:25 | |
m: use Test; say now - BEGIN now | 12:26 | ||
camelia | rakudo-moar 29c460: OUTPUT«0.0140953» | ||
lizmat | m: use Test; say now - BEGIN now | ||
camelia | rakudo-moar 29c460: OUTPUT«0.013673» | ||
lizmat | $ time perl6 -e 'use Test' | ||
real0m0.482s | |||
almost *500* msecs to load Test ? | 12:27 | ||
perhaps it's not precomped ? | |||
timotimo | hm, isn't precomping built-in modules part of "make install" now? | ||
jnthn | m: say now - BEGIN now; use Test; # otherwise we used it before the BEGIN | 12:28 | |
camelia | rakudo-moar 29c460: OUTPUT«0.4339159» | ||
lizmat | ah, duh | ||
timotimo | good catch | ||
lizmat | so, loading a precomped Test.pm is taking 3.5 times as long as loading the precomped settings ? | ||
jnthn suggests --profile-compile | 12:29 | ||
lizmat | just checked with RAKUDO_MODULE_DEBUG=1 that Test is loaded from precomp | ||
SET RMD: going to load Test: {} | |||
SET RMD: Loading precompiled /Users/liz/.perl6/2015.11-673-g19d84be/precomp/1DAE02D8B6FD637CEF34FD20C67DEB9295F3BD75.1450524878.91246/80/80C98A14C9019B13A73CF13AB9D6DEE5E285B127 | |||
jnthn | The precomp file is pretty small too | 12:30 | |
timotimo | .o( those filenames ) | ||
jnthn | perl6-m --profile -e "require Test" # spits out a 6MB profile?! | 12:34 | |
timotimo | o_O | ||
jdv79 | is there any chance the filenames could be made readable? | ||
its pretty frustrating to try to figure out what a trace means with them in it | 12:35 | ||
timotimo | or a profile | ||
jdv79 | yeah | ||
timotimo | jnthn: i have the profile actually loaded in my browser now. i don't dare click a header to sort the routine list, but looking through it shows 71.68% inclusive as well as exclusive is spent in get | 12:39 | |
IO::Handle's get method | 12:40 | ||
Skarsnik | I think the backtrace should try to gather the name of the compiled stuff | ||
timotimo | it's only called 9 times ... | 12:41 | |
jnthn | Hm, my --profile for "uest Test" shows get called 15 times | 12:42 | |
But what's really odd | |||
Is that even though I'd assume it should be loading it from pre-comp, it seems to actually want to compile it first time also | |||
timotimo | okay, so could the slowdown in spec tests come from accidentally recompiling Test for every single .t file? | ||
jnthn | Not sure | 12:43 | |
Woodi | can be that Test build into compiler ? :) | ||
timotimo | no, please not | 12:44 | |
the core setting is already bursting at the seams | |||
pmurias | Woodi: no | ||
Woodi | timotimo: but looks test module is as standard as object and grammars thes days... | 12:45 | |
jnthn | timotimo: Does your profile show from-json using a lot of time? | ||
pmurias | Woodi: different people like different test modules | 12:46 | |
timotimo | 0.2ms exclusive, but 12.8% inclusive | ||
ah, it uses a grammar | |||
jnthn | For me it's called 3 times and used 46% | ||
*uses | |||
Woodi | pmurias: include test during compiler compilation ? | ||
moritz | "panda --force install Inline::Python" failed here: perlpunks.de/paste/show/567551ac.13a4.20f | ||
is that a rakudobug or a pandabug? | 12:47 | ||
timotimo | in total, require Test used up 1739ms and from-json only took 211.9 of those | ||
12:47
aristotle joined
|
|||
aristotle | lists.swift.org/pipermail/swift-ev...01948.html | 12:47 | |
pmurias | Woodi: the Test module should be precompiled yes, I hope it doesn't need to be treate magically | ||
timotimo | could it be "require" just can't properly do the precomp dance yet? or something? | ||
aristotle | ^^ static vs dynamic discussed in the context of Apple’s Swift | 12:48 | |
12:48
aristotle left,
Begi left
12:50
Actualeyes left
|
|||
masak | we should think about having a sufficient slowdown percentage counting as "breaking the build" and being reported by Travis CI. | 12:53 | |
12:54
Begi joined
|
|||
smls | timotimo: Switching between "moar-2015.11" and "moar-nom" with rakudobrew, I can confirm that my script is about 1.5 times slower with the latter. :( | 12:54 | |
12:54
Actualeyes joined
|
|||
jnthn | smls: Slower to run, or slower to compile? | 12:54 | |
smls | run time | ||
12:54
_nadim joined
|
|||
jnthn | OK, then we shouldn't be looking at module loading | 12:54 | |
smls | I'll try to golf it down a little, but here's the whole script + input files: gist.github.com/smls/9adf4b6707938445c050 | 12:55 | |
jnthn | lizmat: Was the .lines pessimization before or after 2015.11? | 12:56 | |
lizmat | jnthn: but still, loading a precomped Test.pm taking 3.5 times as long as loading the precomped settings ? | ||
I think before | |||
jnthn | lizmat: It's not the loading | ||
lizmat: Well, let me put that better | 12:57 | ||
It's not what happens from the point we say "OK, that .moarvm file" | |||
lizmat | ok | ||
jnthn | The actual bytecode load/deserialize of the module is way down the profile | ||
timotimo | smls: to be fair, 2015.11 is "a long time" ago now in terms of commits, but it's still good you still had that around :) | ||
12:57
vendethiel joined
|
|||
nine | We do precompile on install but usually also have to precompile on first load because there's the user-repo ahead in the chain | 12:57 | |
lizmat | .lines pessimisation is from 2015-11-14, so before the 2015.11 release | 12:58 | |
jnthn | nine: Yeah, I just noticed that | ||
lizmat: OK, then it ain't that. | |||
lizmat | and it's something that happened in the past few days | ||
12:58
kid51 left
|
|||
vendethiel | TimToady: "venndethiel" was used because "vendethiel" was already taken -- that's the issue when using an elvish name generator ;-). So I pun'd "ven" to "venn", which means "friend" in swedish/finnish/.. IIRC | 12:58 | |
timotimo | jnthn: i wonder if i should make an effort to get my JSON::Fast code included inside rakudo to replace the grammar-based one? | ||
nine | moritz: that's an...interesting error | ||
jnthn | timotimo: Not this close to release | 12:59 | |
timotimo | oh, ohai nine :) | ||
jnthn: aye | |||
jnthn | nine: (makes sense, too) | ||
lizmat | nine: on first load: that implies if I do it again right after that, it should have the precomped one now ? | ||
12:59
Ven joined
|
|||
jnthn does see a big difference between first perl6 -e "use Test" and second | 12:59 | ||
Ven | Computer, messages | 13:00 | |
yoleaux | 18 Dec 2015 16:43Z <ZoffixW> Ven: Ven++ good Advent post... After years of hearing the term I now know that REPL is not PERL spelt weirdly to name the weird code eval thing :P | ||
13:00
Ven left
13:02
kid51 joined,
hankache left
|
|||
dalek | ast: b4b75e1 | jnthn++ | S17-supply/syntax.t: Try a more robust way to de-flappy this test. |
13:04 | |
13:05
zengargoylew joined
|
|||
timotimo | computer messages | 13:07 | |
pmurias | should rakudobrew build-panda install me a panda? | 13:08 | |
nine | I'm currently working on loading precomped dependencies directly using the precomp id from the .deps file. That will remove quite a bit of JSON loading (except for the modules use'd by the top level compunit) | 13:10 | |
smls | Simpler script, which takes 15 sec on 2015.11 and 21 sec on nom: gist.github.com/smls/c51b5d7b328e1fdf8c08 | ||
13:12
hankache joined
13:13
geever joined
|
|||
jnthn | smls: Can you reproduce the difference with just for ('127.0.0.1', '127.0.0.1', 'foo') xx 10000 { ... } ? | 13:14 | |
pmurias | vendethiel: hi | ||
jnthn | (Which eliminates the I/O) | ||
vendethiel | hi pmurias | ||
masak | vendethiel++ # perl6advent.wordpress.com/2015/12/...ospection/ | 13:15 | |
pmurias | vendethiel: re github dicussion I'm planning to cleanup the array handling in nqp-js at some time in the future and get rid of all the hacks | ||
vendethiel | okay, that sounds good :-) | ||
hankache | vendethiel++ #adebt post | ||
#advent**** | 13:16 | ||
which module should i use for json? | |||
pmurias | vendethiel: it also seems to be that if nqp-runtime gets loaded multiple time in independent places loads of stuff will break | ||
13:17
sammers left,
rurban left
|
|||
vendethiel | ah, that's very possible, yeah.. | 13:20 | |
then just forget about it I guess :) | |||
smls | jnthn: Yes, in fact the difference got larger... gist.github.com/smls/5626453188e4e20eef2b | 13:21 | |
13:22
rurban joined
|
|||
_nadim | Hi, I have a method that uses a set of properties. Those properties are part of the class. One can pass, to the method call, a bunch of overrides that are valid during the call only. how would you handle that? | 13:23 | |
jnthn | Maybe something like my %effective-props = self.Capture.hash, %overrides; # then look in %effective-props | ||
timotimo | i wonder if we should put an oxford comma into the descriptions on perl6.org | 13:24 | |
Object-oriented programming including generics, roles [oxford comma here?] and multiple dispatch | |||
_nadim | jnthn: where "Capture" is ? | ||
Skarsnik | Oxford comma is dumb, but yes, it should probably be here | ||
jnthn | _nadim: Coercing an object to a Capture is used for destructuring. | ||
_nadim | timotimo: Yes, Oxford comma | 13:25 | |
timotimo | Skarsnik: it's dumb? | ||
Skarsnik | It only make sense for english native probably. And I know lot of english speaking people that does not really like it x) | 13:26 | |
jnthn | _nadim: The default is to put all of the attribute with accessors into a hash so they can be unpacked as nameds | ||
timotimo | vendethiel: but ('a'..'z').pick(50) doesn't actually create a string for you ... you're relying on the list to stringify to its values with spaces in between, eh? | ||
jnthn | Skarsnik: I never really cared until I saw that "We invited the strippers, JFK and Stalin" poster, and never forgot about it since :P | 13:27 | |
13:27
a3r0 joined
|
|||
jnthn | t\04-nativecall\17-libnames.t is explodey on Windows | 13:27 | |
timotimo | yeah, it's a very ... candid image :) | ||
_nadim | jnthn: OK, I got it, access the hash that is, behind the curtain, containing all attributes with accessor via Capture. Would you, shortly, or via a link, tell me a bit about the Capture and destruction dance? | 13:28 | |
hankache | json::Tiny or json::Fast ?? | 13:29 | |
vendethiel | timotimo: uhm, I thought I edited the blogpost, but apparently I only changed my testfile :| whoops | ||
Skarsnik | jnthn, is does not get skipped? | ||
13:29
sammers joined
|
|||
vendethiel | timotimo: fixeth | 13:29 | |
i did | |||
timotimo | :) | ||
_nadim: www.youtube.com/watch?v=Xecz3VdPixM - this kind of destruction? | 13:30 | ||
jnthn | m: class Steak { has $.cookedness; has $.sauce; }; my $s = Steak.new(cookedness => 'medium', sauce => 'gorgonzola'); sub describe($steak (:$cookedness, :$sauce)) { say "A $cookedness steak with $sauce sauce" }; describe($s) | 13:31 | |
camelia | rakudo-moar f7adf8: OUTPUT«A medium steak with gorgonzola sauce» | ||
jnthn | The nested signature there is bound against $s.Capture | 13:32 | |
m: class Steak { has $.cookedness; has $.sauce; }; my $s = Steak.new(cookedness => 'medium', sauce => 'gorgonzola'); say $s.Capture; | |||
camelia | rakudo-moar f7adf8: OUTPUT«\(:cookedness("medium"), :sauce("gorgonzola"))» | ||
jnthn | I've not seen folks take advantage of this much yet, but you can even write a custom Capture method to describe how your own objects can be unpacked | ||
Anyway, for your case I was just taking advantage of this to get a hash of the properties, and then relying on hash concatenation taking the latest value it sees for a key. | 13:34 | ||
dalek | p/js-cps: b76959f | (Pawel Murias)++ | src/vm/js/ (3 files): [js] Implement --cps=off compiler flag to avoid emitting code to support continuations. |
13:35 | |
smls | jnthn: Better golfed script, with a strange result: gist.github.com/smls/a78edfd46a70e9f1010c | 13:36 | |
The result is that with the "flat" line it's fast on both versions, but with the "|" line is fast on 2015.11 and slow on nom | |||
Even though the @input constructionh is not part of the measured time interval | 13:37 | ||
But somehow it affects the following loop | |||
jnthn | In the profile I'm seeing, the calls to postcircumfix:<[ ]> now seem to always miss the multi-dispatch cache | 13:38 | |
It's worse than that | 13:39 | ||
The infix +< and so forth do also | |||
nine | We often need a second run for precompilation because mtime has seconds granularity and we think a precomp file is out-dated because it was compiled in the same second as a dependency | ||
jnthn | The multi-dispatch cache being missed would easily cause an epic regression | ||
_nadim | jnthn: thanks, timotimo ... lol! | 13:40 | |
dalek | kudo/nom: 650c228 | jnthn++ | src/ (3 files): Implement CLOSE phaser for supply blocks. This provides a way to do resource management when a tap is closed (or the supply otherwise completes). For example, a supply block that establishes a connection to, say, a message queue can disconnect from it in the CLOSE block. |
13:41 | |
ast: 31be61e | jnthn++ | S17-supply/syntax.t: Tests for CLOSE phaser in supply blocks. |
|||
jnthn | I think we can call that the last feature before xmas :) | ||
nine | I think it would actually be better to just delete all rev-deps when we encounter an outdated precomp file (we already delete the file itself). We have all the information there. | 13:43 | |
lizmat | re precomping within the same second: perhaps add a global counter to the mtime? | 13:44 | |
Skarsnik | jnthn, how does t/17-libname explode on win32? | ||
jnthn | 1..7 | ||
ok 1 - # SKIP 7 | |||
# Looks like you planned 7 tests, but ran 1 | |||
skip 7; # that doesn't do what you think it does :P | 13:45 | ||
nine | lizmat: I compare the mtimes of a precomp files dependencies with the precomp file to detect when it has become outdated. The state of the global counter would have to be kept within the precomp store, so other processes use the same counter. | ||
Actually: why don't we unlink all rev-deps when _writing_ a precomp file? That's what Repository::Installation does on install already and there should be no reason to keep outdated files around at all. They can only hurt. | |||
dalek | kudo/nom: 9b40ea6 | jnthn++ | t/04-nativecall/17-libnames.t: Fix skipping. |
||
Skarsnik | skip-rest? | 13:46 | |
lizmat | nine: sounds like a plan to me | ||
jnthn | Skarsnik: Looks at the plan and how many tests have been run, and does the right number of skips :) | ||
Skarsnik: So if you update the test file later and also the plan, no need to fix the number elsewhere | |||
nine: Sounds reasonable, yes. | |||
smls | jnthn: How do you explain my last result though? ("|" vs "flat" influencing the loop performance on nom but not 2015.11) | 13:47 | |
13:47
nige1 joined
|
|||
jnthn | smls: | and flat are quite different code paths. | 13:47 | |
smls: I can easily imagine flat hitting multi-dispatches and | not | 13:48 | ||
(And it flattens lazily) | |||
smls | Yeah but they happen before the benchmarked loop | ||
_nadim | jnthn: I think the example you gave above would make an interesting advent entry, specially if there is some "handles" examples too. | ||
jnthn | smls: Well, you could look at the profiler to get answers instead of asking me to guess. :P | ||
That's how I found out it's seemingly a multi-cache regression. | 13:49 | ||
_nadim | aprpos "handles", is it completely implemented, I read in one of jnth's presentation, tha some parts were not in Rakudo yet. | ||
jnthn | _nadim: How old was the presentation? :) | ||
_nadim: I don't know of any holes in it | |||
smls | jnthn: It's not a small difference either. About factor 4 difference depending on wich of the "@input = ..." lines is uncommented in gist.github.com/smls/a78edfd46a70e9f1010c | 13:50 | |
jnthn added some extra handles tests yesterday to make sure a handles in a role is composed | |||
13:50
ellybelly joined
|
|||
Skarsnik | I am confused according to doc.perl6.org/language/testing#Skipping_tests skip-rest will skip what come after | 13:51 | |
13:51
cygx joined
|
|||
cygx | o/ | 13:51 | |
_nadim | jnthn: don't remember which one but I remember that you wrote that regexes in "handles" was not there yet | ||
cygx is still waiting for a decision on whether IO::Path.lines/split/comb/... should fail or throw... | 13:52 | ||
_nadim | jnthn: what commit wasit you put tests in, maybe I can look at those for examples | ||
jnthn | smls: Yeah, I can reproduce it | ||
5a0c386d68880 | 13:53 | ||
_nadim: ^ | |||
cygx: Probably throw since they'd normally return an array | 13:54 | ||
cygx: Well, a Seq | |||
13:55
hankache left
|
|||
jnthn | cygx: And so you could end up accidentally iterating over the failure | 13:55 | |
(as an item) | |||
smls: I'll look into the multi-dispatch cache miss issue, from the earlier benchmark, and maybe that helps the second one also | 13:56 | ||
cygx | so I'll need to update my moar/nqp/rakudo, and will submit a new pull request | ||
smls | ok | ||
jnthn | lunch first, though :) | 13:58 | |
smls | I'm not sure what to look for in these profile outputs, but the two most obvious differences from the first two tabs are: | 14:01 | |
1) The slow version has 10% specialized frames, the fast version has none. | |||
2) The slow version spends a pretty larger percentage of exclusive time in &sink-all and <anon>; The fast version much more in &pull-one. | |||
14:03
jvcakg joined
|
|||
smls | s/larger/large/ | 14:03 | |
pmurias | nine: re unlinking outdated reverse dependencies, isn't that only a heuristic | 14:05 | |
? | |||
nine: would using both mtimes and a checksum solve false positives caused by mtime low resolution? | 14:10 | ||
jvcakg | any templating development for perl6? web? | ||
14:11
llfourn left
|
|||
Skarsnik | look at modules.perl6.org | 14:12 | |
jvcakg | ok | ||
I would like to stamp my name here | 14:13 | ||
14:13
adhoc left
|
|||
mspo | isn't mojo templating built-in? | 14:13 | |
14:14
adhoc joined
|
|||
Skarsnik | There are already like 6 templates modules | 14:15 | |
jvcakg | nice | 14:18 | |
what are they I don't want to go to the list | 14:19 | ||
Skarsnik | search template in the search field? | ||
14:20
andreoss joined
|
|||
_nadim | jnthn: are you sure it is 5a0c38.... can't seem to find that commit | 14:20 | |
14:24
vividsnow left
14:30
jvcakg left
14:34
dwarring left
|
|||
nine | pmurias: during a process' runtime, precomp files are only loaded from a single store. So removing outdated files from that store is safe enough. We also know all precomp files in that store that depend on a certain file. | 14:35 | |
pmurias: So unlinking them if the file changes should be quite safe | |||
14:37
rurban left
14:43
cdg joined
|
|||
cygx | github.com/rakudo/rakudo/pull/643 # running a spectest right now | 14:45 | |
14:46
nige1 left
14:47
RabidGravy joined
|
|||
andreoss | masak: could there be a role which would separate scalars from arrays? like `class Val::Int does Val does Val::Scalar { ... }` | 14:47 | |
masak | andreoss: hm, 007 doesn't really have the concept of "scalar"... | 14:48 | |
14:48
cdg left
|
|||
masak | andreoss: there's only values. there are no sigils, and there's no flattening. | 14:48 | |
dalek | c: 52c4358 | Adriaan++ | .travis.yml: add graphviz |
||
c: dbbce3e | Adriaan++ | / (2 files): travis runs make html |
|||
c: 4b23aca | moritz++ | / (2 files): Merge pull request #250 from sylvarant/master Travis runs make html |
|||
andreoss | masak: [1,2] xx 2 == [[1,2], [1,2]] or [1,2,1,2]? | 14:49 | |
masak | the latter. :) | ||
andreoss | but that's flattening, isn't it? | ||
masak | but not because of flattening, just because of the way the operator is defined. | ||
no. :) well, you could call it that, but that's not what Perl usually means by "flattening". | 14:50 | ||
flattening would be something like `my a1 = [1, 2]; my a2 = [3, 4]; my a3 = [a1, a2]; say(a3);` resulting in "[1, 2, 3, 4]" | 14:51 | ||
or arrays interacting with arguments/parameters somehow. | |||
neither of which is true in 007. | |||
andreoss | okay | ||
masak | I am toying with the idea of introducing some kind of Iterable base type, so that user-defined types can participate in `for` loops. but it's very much not on a critical path, so it doesn't even have an issue right now | 14:52 | |
andreoss | if they are all values, why don't refactor Val::Array.elements to .value? | 14:53 | |
vendethiel | masak: uhm, I don't see how that's not flattening, if xx is defined as "repeat". unless it's defined as "repeat values"? | 14:54 | |
m: say [] x 3; #that's just for strings | |||
camelia | rakudo-moar 9b40ea: OUTPUT«» | ||
vendethiel | so the flattening makes it strictly less powerful than a non-existing non-flattening one | ||
smls | m: dd [1,2] xx 2 | ||
camelia | rakudo-moar 9b40ea: OUTPUT«List $var = $([1, 2], [1, 2])» | ||
andreoss | m: ((1,2) xx 2).perl.say | 14:55 | |
camelia | rakudo-moar 9b40ea: OUTPUT«((1, 2), (1, 2))» | ||
andreoss | m: ((1;2) xx 2).perl.say | ||
camelia | rakudo-moar 9b40ea: OUTPUT«((1, 2), (1, 2))» | ||
14:55
cdg joined
|
|||
masak | andreoss: .value would be the only reason to call Val::Int and Val::Str scalars :) but it doesn't hold up completely, because Val::None doesn't have (or need) a .value, being empty/featureless | 14:56 | |
14:56
hankache joined,
pmurias_ joined
|
|||
masak | vendethiel: the semantix of 007's infix:<xx> is closer to Python's infix:<*> for arrays | 14:57 | |
semantics* | |||
>>> [1, 2] * 3 | |||
[1, 2, 1, 2, 1, 2] | |||
vendethiel | kk | ||
masak | vendethiel: it's the lack of flattening in the language that necessitates starting with an array on the lhs. not doing so is a type error. | 14:58 | |
pmurias_ | nine: where can I find the current precompile code? | ||
andreoss | what about ::? [1,2] :: [1,2] == [[1,2], 1,2] ? | ||
hankache | m: say my $datajson = to-json((data => [28, 48, 40, 19, 86, 27, 90])); | ||
camelia | rakudo-moar 9b40ea: OUTPUT«{ "data" : [ 28, 48, 40, 19, 86, 27, 90 ]}» | ||
masak | andreoss: that looks correct. | 14:59 | |
hankache | how come this works^^^^ without "use JSON::Tiny"?? | ||
masak | andreoss: in other words, the semantics is `scalar :: list ==> list` | ||
moritz | hankache: rakudo has a built-in json implementation for reading META.info files etc. | ||
hankache: which is based on JSON::Tiny iirc | 15:00 | ||
15:00
pmurias left
|
|||
nine | pmurias_: it's all in the CompUnit:: namespace. Especially CompUnit::PrecompilationRepository | 15:00 | |
15:00
pmurias_ is now known as pmurias
|
|||
pmurias | nine: in rakudo nom? | 15:00 | |
nine | yes | ||
hankache | ok so i can use to-json and from-json without using any module? | ||
and this behavior is supposed to be supported in the future? | 15:02 | ||
moritz | hankache: it seems to work, but it's neither documented nor tested in roast, so it's more of an easter egg | ||
smls | m: say to-json [4, 6] | ||
camelia | rakudo-moar 9b40ea: OUTPUT«[ 4, 6]» | ||
smls | Huh, I didn't know that. | ||
Skarsnik | I will say, don't use it x) | ||
jnthn | That needs to move to Rakudo::Internals. | ||
moritz | jnthn: so it's not part of the public API, right? | 15:03 | |
jnthn | Right | ||
hankache | so to be on the safe side i should "use JSON::Tiny" ? | ||
moritz | hankache: yes | ||
hankache | moritz thanks | 15:04 | |
nine | I slowly get the impression that precompilation as it is now only works exactly due to the mtime race condition. Adding a sleep 1; after precompiling a file breaks install-core-dist.pl | 15:06 | |
mspo | nine: sounds like a feature! | ||
nine | Source of this mess is that precomp ids include the identity of the part of the chain following the repo we install to. Repos typically are home,site,vendor,perl6,/. We want to install into perl6, so the precomp id contains the "/" | 15:09 | |
Now we precompile a file and encounter a use statement. So we fire off another process to do the precompilation. In this process, we again have the full home,site,vendor,perl6,/ chain, i.e. we get a different id | 15:10 | ||
moritz | that sounds decidedly less-than-awesome | 15:11 | |
nine | I can also hardly always use the full $*REPO chain's id, because the id of an Installation repo changes when its contents changes. | 15:12 | |
I seriously wonder how this could have worked so well so far | 15:13 | ||
15:14
vendethiel left
15:18
vividsnow joined
|
|||
grondilu | m: say ("one", "two" ... "ten") | 15:30 | |
camelia | rakudo-moar 9b40ea: OUTPUT«(one two twn twm twl twk twj twi twh twg twf twe twd twc twb twa tvz tvy tvx tvw tvv tvu tvt tvs tvr tvq tvp tvo tvn tvm tvl tvk tvj tvi tvh tvg tvf tve tvd tvc tvb tva tuz tuy tux tuw tuv tuu tut tus tur tuq tup tuo tun tum tul tuk tuj tui tuh tug tuf tue…» | ||
Skarsnik | interesting x) | ||
grondilu | I wish this was working | 15:31 | |
Skarsnik | There is no plan for translation stuff in the specs? it left as a module to do it? | 15:33 | |
15:33
vendethiel joined
|
|||
smls | Translation? | 15:34 | |
15:34
ashevchuk joined
|
|||
Skarsnik | yeah stuff for i18n | 15:35 | |
hankache | m: my \one := 1; my \two := 2; my \ten := 10; say (one, two ... ten); | 15:36 | |
camelia | rakudo-moar 9b40ea: OUTPUT«(1 2 3 4 5 6 7 8 9 10)» | ||
pmurias | Skarsnik: why put that in core? | ||
smls | Skarsnik: Yeah, that's for modules to solve. | ||
Skarsnik | To have translation in the core (like for error messages)? | 15:37 | |
smls | m: multi infix:<...> ("one", "ten") { <one two three four five six seven eight nine ten> }; say "one"..."ten"; | 15:38 | |
camelia | rakudo-moar 9b40ea: OUTPUT«(one two three four five six seven eight nine ten)» | ||
smls | grondilu: ^^ User code (or modules) can add that ;) | 15:39 | |
dalek | p/js-cps: 2258177 | (Pawel Murias)++ | src/vm/js/bin/run_tests.pl: [js] Run the qregex.t test with continuations disabled |
||
p/js-cps: b5463a5 | (Pawel Murias)++ | / (2 files): [js] Add a test for the continuation support we have. |
|||
grondilu | if I were to add a "ordinal" method to Int, I would have to do MONKEY-TYPING though. | ||
sorry, meant "cardinal". | 15:41 | ||
smls | grondilu: I imagine a Lingua::EN::Ranges module that adds support for all kinds of words ranges like "one"..."twenty"; "Mon".."Fri"; etc. | ||
s/Ranges/Sequences/ I guess? | 15:42 | ||
Skarsnik | well you can write it, we are like 20 modules away for 500 for x-mas x) | 15:44 | |
15:45
ggoebel9 joined
|
|||
cygx | jnthn: another thing that hasn't been decided yet: what should happen to open(:bin) | 15:48 | |
RabidGravy | Skarsnik, for the localisation of errors maybe some $*LANG or something that provides a class that has the messages, but a bastarding big job | 15:50 | |
15:53
raiph joined
15:55
skids joined
|
|||
dalek | kudo/nom: 13e8b21 | (Stefan Seifert)++ | src/core/CompUnit/Repository (2 files): Fix passing the repo-chain to the precomp process We have to make sure that the process precompiling one of our dependencies uses exactly the same repository chain as the process trying to load the module. For that we skip the normal repository setup and instead serialize the parent's repositories into an environment variable and restore them later. The special purpose repository implementations AbsolutePath, NQP and Perl5 did not register their path-spec prefixes properly with the RepositoryRegistry, so on deserialization we believed them to be FileSystem repositories, thereby altering the repository chain and ending up generating different precomp-ids. |
15:55 | |
nine | Ok, that ^^^ was the real reason for different precomp-ids. With this the "sleep 1" failures seem to be fixed. | 15:56 | |
15:57
TimToady left
15:59
TimToady joined
|
|||
moritz | nine++ | 15:59 | |
that sounds like some serious debugging was required :-) | |||
nine | Pages and pages of debug output. But I don't mind. It's one of the problems where that will eventually get you to the bottom. I wish I had already found a working strategy for run_alt :/ | 16:00 | |
Juerd | Why is the 1st dimension of a shaped array called dimension 1, instead of dimension 0? | 16:05 | |
nine | Truth is, that I could have avoided the whole bug by finding out what we need those path-spec thingies for. But I'm lazy an impatient, so I just added methods that looked good. | ||
Skarsnik | I am pondering of adding some check on type parameter of sub declared as native with NC (Like I do in my NC::Typediag module) in NC itself to avoid people mistakes ~~ | 16:06 | |
16:06
ashevchuk left
|
|||
mst | agh | 16:08 | |
16:09
hankache left
|
|||
mst | rakudobrew still hard to find, rakudo.org/how-to-get-rakudo/ in the wrong order | 16:09 | |
tadzik: would you object if I cpanified rakudobrew? | 16:10 | ||
tadzik: not being able to get it from cpan -sucks- | |||
RabidGravy | mst, +1 on that :) | 16:12 | |
mst | argh, and no POD | ||
oh, there's a README.md | |||
I love how we've taken github centric development and used it to be as hostile as possible to newbies | |||
tadzik | mst: no objections | 16:13 | |
mst | tadzik: note, this is me griping as I go along | ||
I will totally try and fix stuff | |||
jdv79 | do people get perlbrew from cpan? | ||
Juerd | My README.md says to go look for the POD :) | ||
moritz | jdv79: I usually don't | 16:14 | |
16:14
zengargoyle left,
Skarsnik left
|
|||
mst | I usually do | 16:14 | |
jdv79 | that's why i asked. cause i've always gotten it from its site. | ||
huh | |||
mst | though, also, I usually use Perl::Build | ||
since perlbrew is a big set of extra moving parts I don't want or need | |||
16:15
xpen joined
|
|||
mst | ok, rakudobrew init is trying to add an element to my $PATH that's already in my $PATH | 16:15 | |
and defining a shell function that looks completely weird | |||
16:15
zengargoyle joined
|
|||
mst | I ... don't understand | 16:15 | |
mst tries 'rakudobrew build moar', wonders what'll happen | 16:16 | ||
RabidGravy | don't worry I don't understand a lot of things most of the time | 16:17 | |
mst | I understand exactly what it's doing | ||
I've just no idea what the point is | 16:18 | ||
tadzik: is there an explanation of what the shell function actually does somewhere? :) | |||
jdv79: my usual bootstrap is "get local::lib, get a basic set of tools like App::Ack, get Perl::Build, use perl-build to build a more recent perl" | 16:19 | ||
16:19
xpen left
|
|||
mst | note that I'm trying rakudobrew on cygwin. I am not going to consider it anybody's fault if this blows up horribly, but I figured I may's well find out | 16:19 | |
pmurias | mst: +1 cpanify rakudobrew | ||
jdv79 | cool | 16:20 | |
mst | I'm basically the canary for most of the modern perl stack on cygwin at this point | ||
the only other name who uses cygwin is reini, and he mostly doesn't use any of the modules I care about | |||
geekosaur has kinda given up on *brew portability, since making the mistake of trying to use perlbrew on solaris | |||
mst | geekosaur: if Perl::Build doesn't work on solaris I would like to help you debug that. | 16:21 | |
pmurias | why is panda throwing "Dynamic variable $*REPO not found"? | 16:22 | |
16:23
zengargoyle left,
zengargo1le joined
|
|||
mst | well, that was ... suboptimal | 16:25 | |
pmurias | mst: what happened? | ||
geekosaur | I don't think I reached that point. the bootstrap script was a bash script that knew that it was a /bin/sh script running on an all GNU system | 16:27 | |
mst | pmurias: paste.scsys.co.uk/503137 | ||
geekosaur: that's why I asked about Perl::Build | |||
geekosaur: which is a single fatpacked perl script | |||
geekosaur: which is why I use that, because perlbrew is a bunch of extra overly clever crap that tends to be linux kiddie only | |||
I'm ok with the linux kiddies liking it | |||
but not my thing | |||
geekosaur | actually I think I did get that far and it was again running some linux specific shell stuff | ||
I didn['t spend much time on it, maybe I'll spin up a solaris vm and try again with logging | 16:28 | ||
(I didn't really have tome to debug at the time, was trying to set up a reproduction environment for a customer reported bug) | |||
16:30
pmurias left
|
|||
andreoss | m: my &say = { $*SPEC.devnull.IO.spurt: * }; say "hi"; | 16:30 | |
camelia | rakudo-moar 13e8b2: OUTPUT«Cannot call spurt(IO::Path: Whatever); none of these signatures match: (IO::Path:D $: Blob $contents, :$bin, |c is raw) (IO::Path:D $: Cool $contents, :$bin, |c is raw) in block <unit> at /tmp/8JGWqJHczS:1» | ||
andreoss | m: my &say = -> { $*SPEC.devnull.IO.spurt: $_ }; say "hi"; | 16:31 | |
camelia | rakudo-moar 13e8b2: OUTPUT«Too many positionals passed; expected 0 arguments but got 1 in block <unit> at /tmp/9XZlMTjHQW:1» | ||
andreoss | m: my &say = { $*SPEC.devnull.IO.spurt: $_ }; say "hi"; | ||
camelia | ( no output ) | ||
jdv79 | was there a serious install slowdown y'day? or was i just immagining things? | 16:32 | |
16:32
khw joined
|
|||
lucs | m: my regex bar { <[\w]> }; my regex foo { <+ bar - [0..9]> <bar>* }; "asdf" ~~ / <foo> /; # Help? | 16:33 | |
camelia | rakudo-moar 13e8b2: OUTPUT«Method 'bar' not found for invocant of class 'Cursor' in regex foo at /tmp/TndWYP__mo:1 in block <unit> at /tmp/TndWYP__mo:1» | ||
nine | .tell pmurias are you doing something strange, using an outdated panda or did I screw something up? | ||
yoleaux | nine: I'll pass your message to pmurias. | ||
16:34
Skarsnik joined
|
|||
lucs | Re. that ^^ code: something similar works in a grammar. | 16:35 | |
16:37
geever left
|
|||
lucs | ^^ gist.github.com/lucs/c062e3b8e0d72b54f395 | 16:38 | |
16:38
rurban joined
|
|||
mst | tadzik: thoughts on where I should start debugging paste.scsys.co.uk/503137 ? | 16:38 | |
16:40
andreoss left
16:42
pmurias joined
|
|||
pmurias | nine: a old rakudo was in my $PATH | 16:42 | |
yoleaux | 16:33Z <nine> pmurias: are you doing something strange, using an outdated panda or did I screw something up? | ||
mst | hrmf | ||
are there instructions for building everything the long way? | |||
TimToady | INSTALL.txt | 16:43 | |
16:43
vividsnow left
|
|||
mst | ah, I think the nqp-m thing might be an indicator the moar build didn't | 16:44 | |
mst goes to kick moar first | |||
16:44
Actualeyes left
|
|||
mst | TimToady: I figure if I go repo by repo and do moar, then nqp, then rakudo, without using their sugar for building the lower levels, I'm more likely to understand what breaks if it breaks | 16:45 | |
TimToady | .oO(Q: What's my new job title? A: Guinea Canary. Q: How's that different from a Guinea Pig? A: ...) |
16:46 | |
I'd at least let it try once, to put things in the right place, then you can cd down into nqp or nqp/MoarVM to do it by hand | |||
mst | I already tried unsuccessfully with rakudobrew calling it | 16:47 | |
I should -probably- try the rakudo sugar directly next, sure | |||
but I'm annoyed now, so that means "time to go the cranky minimalist route so everything else that goes wrong is my fault" | |||
Skarsnik | perl Configure.pl should work? | 16:48 | |
TimToady | lovely word, "should" | ||
pmurias | mst: you can tell rakudo to build you an nqp | ||
16:48
firstdayonthejob left
|
|||
mst | pmurias: yes. but it didn't. | 16:48 | |
ah, here we go | |||
3rdparty/libuv/include/uv-unix.h:152:9: error: unknown type name ‘pthread_barrier_t’ | |||
right, so, is that unfixable or can I mallet it ... *looks* | 16:49 | ||
TimToady | cool, now that almost looks like a real error :) | ||
pmurias | mst: there is a closed libuv issue with "we don't support cygwin" :/ | 16:50 | |
mst | yep, and it leads me to "UV is unsupported on cygwin because it doesn't have enough of a pthread implementation" | ||
pmurias: which I just found | |||
16:50
firstdayonthejob joined
|
|||
mst | buggereth. | 16:50 | |
and apparently they're not sure how well their general mingw support works either | 16:51 | ||
this is going to be a "get a proper windows toolchain, do a windows build, call it from cygwin" job, I suspect | |||
TimToady | soundeth like | ||
cygx | mst: you can build and run rakudo on mingw (eg using Strawberry perl) | 16:52 | |
the tests are not clean but it 'works' otherwise | |||
mst | yeah, I think I'll try that next rather than gazing into the abyss that is visual studio | ||
that or build perl6 on a proper box | 16:55 | ||
and write the cygwin part in Tcl | |||
mst decides to start off by getting a build on a proper box | 16:57 | ||
masak .oO( is "buggerth" some kind of Lisp dialect? ) | 17:01 | ||
pmurias | the lisp dialect gimp used before switching to proper scheme should have been called so | 17:02 | |
flussence | df | 17:04 | |
whoops, ww | |||
mst | ah, and then the executable requires ./perl6 | 17:05 | |
pmurias | is it possible to turn off newline translation in nqp? | 17:14 | |
dalek | kudo/nom: fc29540 | cygx++ | src/core/IO/Path.pm: Simplify some Cool methods on IO::Path Let's them throw on failed .open instead of returning a handled failure as they formerly did |
17:18 | |
kudo/nom: 8d6581a | lizmat++ | src/core/IO/Path.pm: Merge pull request #643 from cygx/cool-path Simplify some Cool methods on IO::Path |
|||
17:31
aindilis left
17:32
Skarsnik_ joined,
bbkr_ joined,
noganex joined,
cygx_ joined,
_nadim left,
bapa1 joined,
baest_ joined,
aindilis` joined
|
|||
flussence is staring in despair at a shell command I wrote that ends in ’)}”"' | 17:32 | ||
dalek | p: 2aeefe9 | (Pawel Murias)++ | tools/build/ (2 files): [js] Improve ugly build hack. |
||
p: 3a2f9cd | (Pawel Murias)++ | tools/build/ (2 files): [js] Install the tap module. |
|||
17:33
noganex_ left
|
|||
smls | m: sub foo { say "expensive computation here"; 42 }; say [||] 5, 10, foo; | 17:34 | |
camelia | rakudo-moar 8d6581: OUTPUT«5» | ||
17:34
Skarsnik left,
cygx left,
baest left
|
|||
smls | ^^ wow, nice | 17:34 | |
TimToady bows | |||
smls | TimToady++ | ||
TimToady | that's all the thunkity stuff that went in last week | 17:35 | |
dalek | ast: 905dcc3 | TimToady++ | S32-exceptions/misc.t: test sinking of gather |
17:36 | |
17:37
cdg left
|
|||
pmurias | is reading a file always expected to turn \r\n into \n on linux? | 17:37 | |
mst | I thought it turned it into a thing-representing-platform-newline | ||
TimToady | I don't think linux does any IO-based newline translation, so \r\n oughta turn into a grapheme there, distinct from \n | 17:39 | |
and on Windows, I'd expect \r\r\n to turn into the synthetic grapheme CRLF, mebbe | 17:40 | ||
or \r\n from a socket | |||
17:41
Begi left
|
|||
pmurias | nqp-m is reading \r\n in as \n on linux | 17:41 | |
TimToady | amazing how a teeny tiny decision way in the past can have such repercussions... | ||
well, perhaps that is a bug | |||
jnthn: ^^ | |||
dalek | kudo/nom: 96e407c | TimToady++ | src/Perl6/Actions.nqp: undetach useless Pair messages Also, suppress useless Pair symbol messages when part of a Pair.new we should have caught earlier. (Also, catch it earlier... :) |
17:42 | |
17:42
cygx_ left
17:44
Skarsnik_ is now known as Skarsnik
|
|||
TimToady | m: say "foo" ~~ / <{ q{ $_ } }> / | 17:45 | |
camelia | rakudo-moar 8d6581: OUTPUT«「foo」» | ||
TimToady | m: say "foo" ~~ / <{ q{ "$_" } }> / | ||
camelia | rakudo-moar 8d6581: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { "7⏏5$_" } expecting any of: double quotes» | ||
TimToady | I think simple variable interpolation in double-quotes is okay, but how to allow that without also allowing "$_{YOUR AD HERE}"... | 17:46 | |
can't just check after the parse, since that doesn't prevent "$_{ BEGIN say 'pwned' }" | 17:47 | ||
so I need a simplevar escape, or some such | |||
smls | Isn't a variable invocation still a security risk if the regex is user-supplied? | 17:48 | |
TimToady | we're not invoking the variable | ||
17:48
FROGGS joined
|
|||
TimToady | we're only including it into a double-quote string as text | 17:48 | |
smls | yes, wrong word :) | 17:49 | |
I mean, accessing the variable's contents | |||
TimToady | it's true that any "foo $_ bar" could be rewritten as "foo " $_ " bar" | ||
well, certainly accessing backreferences is safe-ish | 17:50 | ||
smls | true | ||
TimToady | and we'd probably want to disallow dynvar introspection | ||
17:53
vendethiel left
|
|||
TimToady | m: say "foo" ~~ / (\w) <{ q{ $0 } }> / | 17:53 | |
camelia | rakudo-moar 96e407: OUTPUT«Nil» | ||
TimToady | m: say "foo" ~~ / (o) <{ q{ $0 } }> / | 17:54 | |
camelia | rakudo-moar 96e407: OUTPUT«Nil» | ||
TimToady | doesn't have access to outer $/ anyway | ||
m: say "foo" ~~ / (o) <{ q{ $CALLER::0 } }> / | |||
camelia | rakudo-moar 96e407: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Variable '$CALLER' is not declaredat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5$CALLER::0 }» | ||
TimToady | m: say "foo" ~~ / (o) <{ q{ $CALLER::<0> } }> / | 17:55 | |
camelia | rakudo-moar 96e407: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Variable '$CALLER' is not declaredat /home/camelia/EVAL_0:1------> 3anon regex { 7⏏5$CALLER::<0> }» | ||
flussence | uh oh: «==> Installing Linenoise===SORRY!===Type check failed in assignment to $!dist-id; expected Str but got Any» | 17:56 | |
smls | perl -E 'my $x = "secret"; my $input = "$1"; "__" =~ m/^(_)$input$/; say $&' # no match | ||
perl -E 'my $x = "secret"; my $input = "$x"; "secret" =~ m/$input/; say $&' # no match | 17:57 | ||
not even with use re 'eval'; | |||
flussence | smls: try qr// instead of m// | 17:58 | |
smls | err, in the second line, "$x" was meant to be "\$x" | ||
TimToady | m: say "foo" ~~ / <{ q{ (o) $0 } }> / | 17:59 | |
camelia | rakudo-moar 96e407: OUTPUT«「oo」» | ||
TimToady | m: say "foodie" ~~ / <{ q{ (o) $0 "die" } }> / | ||
camelia | rakudo-moar 96e407: OUTPUT«「oodie」» | ||
TimToady | m: say "foodie" ~~ / <{ q{ (o) "$0die" } }> / | 18:00 | |
camelia | rakudo-moar 96e407: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex { (o) "7⏏5$0die" } expecting any of: double quotes» | ||
TimToady | but nothing like that | ||
m: say "foodie" ~~ / <{ q{ (o) $0[abc] "die" } }> / # should warn | 18:01 | ||
camelia | rakudo-moar 96e407: OUTPUT«Nil» | ||
18:01
roboticus joined
|
|||
TimToady | m: say "foodie" ~~ / <{ q{ (o) $0[die] } }> / # should warn | 18:01 | |
camelia | rakudo-moar 96e407: OUTPUT«「oodie」» | ||
TimToady | hmm | ||
smls | perl -E 'my $input = "\\1"; my $r = qr/^(_)$input$/; "__" =~ $r; say $&' | ||
^^ matches | |||
TimToady | m: say "foodie" ~~ / (o) $0[die] / # should warn | ||
camelia | rakudo-moar 96e407: OUTPUT«「oodie」 0 => 「o」» | ||
TimToady | m: say "foodie" ~~ / (o) $0[42] / # should warn | ||
camelia | rakudo-moar 96e407: OUTPUT«Nil» | ||
TimToady | hmm, where'd that warning go? | 18:02 | |
m: my $foo; / $foo[42] / | 18:05 | ||
camelia | rakudo-moar 96e407: OUTPUT«Potential difficulties: Apparent subscript will be treated as regex at /tmp/nWCxf94fLZ:1 ------> 3my $foo; / $foo7⏏5[42] /getlexrelcaller needs a context in block <unit> at /tmp/nWCxf94fLZ:1» | ||
18:06
bbkr_ left
|
|||
tadzik | mst: huh, weird | 18:09 | |
mst | tadzik: moar failed because libuv doesn't support cygwin and the error disappeared somewhere | ||
18:09
nige1 joined
|
|||
mst | tadzik: nothing wrong with rakudobrew, I think the bug, if any, is that nqp's auto-build-of-moar throws away errors | 18:10 | |
tadzik | mst: I'm confused why there is totally no error message in your paste | ||
mst: and no indication that moar was built at all | |||
mst | tadzik: I was ass-u-me-ing that you had nqp build it, and nqp did that silently for whatever reason | ||
tadzik | mst: yeah, that's the idea | 18:11 | |
I mean, that nqp is responsible | |||
jnthn | We should probably make Moar's configure blow up immediately on cygwin | 18:12 | |
Since it's never going to work out. | |||
At least, not until libuv supports it. | |||
mst | but then looking at nqp's Configure.pl and tools/lib/NQP/Configure.pm I don't see anything that would've eaten that output | 18:13 | |
18:14
Ven joined
|
|||
jnthn | pmurias, TimToady: \r\n translation is done on file handles cross-platform, otherwise the moment a file written on Windows shows up on Linux you'll get bustage | 18:14 | |
That is, input translation is | |||
Output translation of \n -> \r\n only happens on Windows | |||
This like iteration 3 of things, I'm not doing an iteration 4 :) | 18:15 | ||
mst | every possible combination of behaviours is going to confuse -somebody- | ||
jnthn | Exactly. | ||
mst | I particularly like perl5's approach for source code of hard-coding a C-level source filter for every file that strips the \r | ||
it's both utterly beautiful, and very very perl5, for better and for worse ;) | 18:16 | ||
jnthn | We have the compiler and runtime running on the same VM, using the same I/O layer, so we get consistent semantics over the two for free :) | ||
mst | tadzik: if you want me to run specific tests later, throw 'em into /msg | ||
dinner with a girlfriend now so & | 18:17 | ||
jnthn | Ah, and on the newline thing: no, we don't do any translation when it's a socket. | ||
TimToady | jnthn: didn't get to the binding vs binding bug, fixed regex interpolation instead :) | 18:18 | |
jnthn | I did CLOSE, did a bunch of paperwork, went for a walk, came back feeling rotten and slept for a while...so I didn't get to it yet either. | 18:19 | |
jnthn should probably eat... | 18:20 | ||
TimToady | I tried just adding a Nil when I notice it in unwanted, but that lacks a context somehow | ||
and I tried to grok the statement isolation down in codegen but didn't get far enough | 18:21 | ||
18:22
cdg joined,
roboticus left
|
|||
TimToady | I think now I need to add some kind of MONKEY-MUMBLE to be equiv to p5's use re 'eval' | 18:23 | |
and maybe attach it to EVAL as well | |||
jnthn | Yeah, I was thinking of throwing the Nil in | 18:26 | |
"lacks a context"? | |||
TimToady | getlexrel or some such | ||
iirc | 18:27 | ||
jnthn | Odd...I may be able to figure that out | ||
m: say :(Int $a, Str $b) === :(Int $a, Str $b) | 18:28 | ||
camelia | rakudo-moar 96e407: OUTPUT«False» | ||
18:28
Ven left
|
|||
TimToady | lemme try it again here | 18:28 | |
jnthn | m: say :(Int $a, Str $b) eqv :(Int $a, Str $b) | ||
camelia | rakudo-moar 96e407: OUTPUT«True» | ||
jnthn | TimToady: The other xmas RT left that actually needs a decision is rt.perl.org/Ticket/Display.html?id=124393 | ||
Basically, can you stub multis in roles | |||
Since we already have signature equivalence implemented, we could do something here I think | 18:29 | ||
18:30
bapa1 is now known as bapa
18:31
Ven joined
|
|||
jnthn | Without trying it, I don't see a downside. The current semantics are useless (you get the stub in the candidate list, and then end up with ambiguous dispatch) | 18:31 | |
18:31
nanis joined
|
|||
TimToady | sounds like a go then | 18:33 | |
jnthn | Alrighty. With luck it'll be an hour or two's effort. | 18:34 | |
TimToady | huh, adding the Nil seems to have worked this time, go figure... | 18:35 | |
better test everything though | |||
pmurias | jnthn: is it possible to turn the \r\n conversion off? | ||
jnthn | pmurias: Read the file as binary and .decode it yourself. | 18:36 | |
(Only the decoders attached to handles do it) | |||
I suspect in the future we may also offer an option for this | 18:37 | ||
For now it's a more useful default. | |||
nomming & | 18:38 | ||
18:39
_nadim joined
18:40
smls left
18:42
abraxxa joined
18:43
abraxxa left
|
|||
[Tux] | almost X-mas | 18:43 | |
18:45
vendethiel joined
18:48
pmurias left
|
|||
DrForr cues the Mannheim Steamroller. | 18:48 | ||
[Tux] | \o/ no more run_alt | ||
18:49
sjn_phone joined
|
|||
[Tux] | but a lot of tests now fail on EOL. Have to investigate | 18:49 | |
all \r\n return as \n | |||
nanis | Hope this question makes sense: How do I ensure `perl Configure.pl` from a fresh rakudo clone picks up the most recent MoarVM commit? | ||
18:51
nige1 left
|
|||
nanis | Also, does t\spec\S17-supply\throttle.t hang for anyone else? (Windows 10, MSVS2013) | 18:53 | |
TimToady | jnthn: the problem with just blithely appending Nil is that it blows up KEEP/UNDO, which should work even in sink context | 18:55 | |
[Tux] | *massive* slowdown since last succesful timing :( | 18:56 | |
test 50000 40.615 40.503 | |||
test-t 50000 47.886 47.774 | |||
18:57
ellybelly left,
ellybelly joined
|
|||
TimToady | I think that one's a :'( | 18:58 | |
flussence | lot of people having a bad day today :/ | ||
18:59
rurban left
|
|||
[Tux] | gist.github.com/Tux/c6a0c794293b729a78a2 full timing table. not to be happy about | 19:04 | |
19:10
nanis left
|
|||
jnthn | TimToady: Um, in sink context where to KEEP/REDO get a value to test from? | 19:12 | |
[Tux]: Something recent seems to have busted multi-dispatch caching; didn't bisect it down to an individual commit yet. | 19:14 | ||
(Also it's not in all cases) | |||
lizmat | [Tux]: glad to see you're confirming what we found earlier today | 19:15 | |
[Tux]: when was the last successful timing ? | 19:16 | ||
jnthn | I'll be away for the next hour or so...if anyone wants to do some bisecting, it'd be helpful | ||
lizmat | [Tux]: looks like the last one you posted was on 14 Dec | 19:18 | |
bartolin_ | m: my $counter = 0; my $subrule = '{$counter++; \'<alpha>\'}'; 'abc' ~~ /<$subrule>/; # aborting test file S05-metasyntax/angle-brackets.t | 19:20 | |
camelia | rakudo-moar 96e407: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0Malformed regex interpolationat /home/camelia/EVAL_0:1------> 3anon regex {7⏏5 {$counter++; '<alpha>'}}» | ||
[Tux] | 2015-12-14 13.856 | ||
in between I wasn't able to test due to the run_alt issue | 19:21 | ||
masak hopes the slowdown is due to something we can revert easily | |||
19:21
nige1 joined
|
|||
[Tux] | lizmat, any idea what causes the EOL fail's with Text::CSV? | 19:22 | |
TimToady | did we actually get a run_alt fix, or did you just lucky this time? | ||
if we did get a fix, we could retrofit older versions to bisect with | |||
lizmat | afaik, there has not been an run_alt fix yet | 19:23 | |
bartolin_ | the error in S05-metasyntax/angle-brackets.t might be related to commit 19d84be006 | ||
lizmat | but that's judging from the git log, not from the backlog | ||
TimToady | bartolin_: that is known to fail due to the new regex policy | ||
bartolin_ | TimToady: ah, thanks! | 19:24 | |
TimToady | and we don't yet have a MONKEY-SEE-NO-EVAL | ||
masak | these MONKEY pragmas are just getting more and more ridiculous | 19:25 | |
as is the fearmongering around EVAL... :/ | 19:26 | ||
TimToady | jnthn: fix appears to be to append True instead (but only if the final thing was a bind) | ||
well, the alternative is to introduce a 'use strict' for anything remotely attached to the web | 19:27 | ||
[Tux] | m: my Str$s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8") | ||
camelia | ( no output ) | ||
TimToady | don't just look at this from the developer's perspective | ||
[Tux] | still randomly segfaults | ||
TimToady | I don't want thousands of companies depending on insecure code by default | 19:28 | |
19:28
Ven left
|
|||
TimToady | people *will* use these features by accident on untrustworthy data | 19:29 | |
and every one of them is a zero-day exploit-in-waiting | 19:30 | ||
19:30
eyck left,
eyck joined
|
|||
TimToady | and if the ecosystem is already heavily depending on EVAL, it only proves the point | 19:30 | |
flussence | I'll agree the regex interpolation thing *really* needed that fix, it's not obvious at all that it's a "run arbitrary code in string" vector | 19:31 | |
TimToady | Fear-mongering is justified when there's something to be justifiably afraid of... | ||
19:31
gauss joined
|
|||
TimToady | certainly EVAL is easier to scan for, but people won't by default | 19:32 | |
whereas MONKEY puts a positive roadblock (yes it's inconvenient for us) in place that might just slow people down and make them think, as well as something generic to scan for, if you want a rough corporate policy of 'No MONKEY without authorization' | 19:34 | ||
JS is only now cleaning up their eval mess, and I'd just as soon not get into one in the first place | 19:35 | ||
lizmat | [Tux]: I have an idea re EOL fails, but focusing on the slowdown atm | ||
masak | TimToady: I don't think we will be able to statically detect that people aren't using EVAL. | 19:36 | |
TimToady | that's not the point | ||
[Tux] | I'll have a look tomorrow | 19:37 | |
lizmat | TimToady: since EVAL depends on nqp::getcomp, maybe nqp would need a MONKEY as well ? | ||
[Tux] | too tired after helping a friend DIY | ||
masak | [Tux]: how can you *help* someone else to do it yourself? :P | 19:38 | |
TimToady | the point is to avoid an attractive nuisance that accidentally opens security holes, not to prevent people from cheating when they need to be clever in their own code, and know what they're doing | 19:39 | |
masak | m: sub EVAL($) { say "OH OOPS" }; EVAL("say 2 + 2") | 19:40 | |
camelia | rakudo-moar 96e407: OUTPUT«OH OOPS» | ||
TimToady | we've been sheltered up till now, but we're entering the era when people will actively abuse any foot cannons we install in other people's code | 19:41 | |
masak | TimToady: JS's cleanup of their eval mess does not involve hiding it behind a pragma (what we're doing) -- it involves disallowing overriding of the eval function (which we still allow) | ||
TimToady | that's not a problem, since the check is in the built-in | ||
masak | ok | ||
TimToady | s/is/would be/ | 19:42 | |
as it is in <{ " $(say 'pwned') " }> | |||
lizmat | ok, I reverted rakudo until before last [Tux] test-t, and it's still bad | 19:44 | |
which means to me, the slowdown is either in nqp or moar | |||
TimToady | |Tux|: you didn't happen to leave any DISABLE envvars sitting around, did you? | 19:45 | |
lizmat | alas, plenty of stuff in nqp / moar that could have caused the slowdown :-( | 19:46 | |
Woodi had some problems with glibc in last 2 days... | 19:47 | ||
dalek | kudo/nom: 97020cb | usev6++ | src/core/Pair.pm: Avoid NullPointerException in S02-types/baghash.t the following code resulted in a NPE on JVM my $b = BagHash.new( (a=>"b") ); $b.keys[0] ~~ ("a" => "b") |
19:48 | |
kudo/nom: 8456169 | lizmat++ | src/core/Pair.pm: Merge pull request #644 from usev6/NPE_baghash Avoid NullPointerException in S02-types/baghash.t |
|||
kudo/nom: 09aaf93 | TimToady++ | src/Perl6/Actions.nqp: assume final bind statement in sink is True This is so that we don't accidentally throw a failure in sink context after binding a failure. Part of the fix for RT #125769. |
19:51 | ||
vendethiel | TimToady: at least, for us, SEQ(0; EVAL) means the same as EVAL :P | 19:54 | |
to be clear, JS' eval is still an insane mess. The fact that `eval(..)` and `(0, eval)(..)` are different is totally crazy | |||
19:55
labster joined
|
|||
TimToady | for dev purposes, we could also have something in the environment that overrides monkeys | 19:56 | |
and EVAL could certainly be allowed in REPLy spots | 19:57 | ||
[Tux] | my constant $opt_v = %*ENV<PERL6_VERBOSE> // 1; | ||
that is the only ENV in my code | |||
19:58
uruwi left
|
|||
TimToady | just a thought | 19:58 | |
vendethiel | TimToady: allowing something in the environment seems like a really nice WTF factor though | 19:59 | |
TimToady | yeah, there's a waterbed here somewhere | 20:00 | |
20:00
uruwi joined
20:01
gauss left
|
|||
lizmat | so, if I checkout a certain commit in rakudo, is it enough to nuke nqp and install to get the right MoarVM/nqp for that rakudo checkout ? | 20:01 | |
TimToady | but by default perl6 should wake up in production mode, not dev mode | 20:02 | |
lizmat | TimToady: agree with you there | ||
TimToady | I think . config.status is sufficient | ||
but my one and only bisect has scrolled off to a land faraway... | 20:03 | ||
vendethiel | masak: also I disagree | 20:04 | |
JS' cleanup of their eval mess *involves* a pragma ;-) | |||
20:04
uruwi left
|
|||
TimToady | or maybe a galaxy faraway... | 20:05 | |
well, not for another million years or so, I guess, if you count speed of light | |||
DrForr | Longer than that, you'll have to outrun the expansion of the universe :) | 20:06 | |
TimToady | I didn't say it had to get to all galaxies! | ||
DrForr | Doesn't matter, the expansion (much like the Force) is all around us :) | 20:07 | |
TimToady | m: say ∞ ** ∞ | ||
camelia | rakudo-moar 96e407: OUTPUT«Inf» | ||
hoelzro | I just noticed that linenoise fails to install since nine's change to panda yesterday; I have to drive back to Chicago now, but I'll try to fix it when I arrive | ||
20:09
uruwi joined
|
|||
TimToady | is there a way to grep the ecosystem, or at least Task::Star? | 20:11 | |
dj_goku | ack? | 20:12 | |
TimToady | well, but it's in a bunch of repos, ain't it? | ||
does panda leave source code around? | 20:13 | ||
dj_goku | good question | ||
mspo | sounds like a crawler + indexer is in order | 20:14 | |
TimToady | doesn't look like it | ||
flussence | moritz has an all-in-one repo for doing that kind of thing | ||
dj_goku | brew/moar-nom/panda | 20:15 | |
johnny5:panda dj_goku$ ls ~/.rakudobrew/moar-nom/panda/ext/ | |||
lol whoops | |||
flussence | perl6-community-modules or something like that | ||
dj_goku | ahh whoops the ext are external depenedencies panda needs. | 20:16 | |
TimToady | well, it's mostly only to satisfy my curiousity about our current exposure; probably doesn't actually bear on the decision itself | 20:17 | |
20:18
telex left
20:19
uruwi left
|
|||
dj_goku | more ~/.rakudobrew/moar-nom/install/share/perl6/site/panda/state | 20:19 | |
20:19
darutoko left
20:20
yqt joined
|
|||
dj_goku | that shows a list of modules installed. | 20:20 | |
20:20
telex joined,
krunen left
20:21
regreg joined
|
|||
TimToady | lunch & | 20:21 | |
20:21
rurban joined
|
|||
masak | vendethiel: heh -- that's missing the point. in JS, `eval` is available both before and after "use strict;" is applied | 20:22 | |
vendethiel | masak: yes, yes ;-). | ||
CIAvash | Is there a way to reset a subroutine's cache, when `is cached` is used? | 20:23 | |
20:23
jack_rabbit joined
|
|||
grondilu | I doubt it. Also notice that the 'cached' trait is now considered experimental. | 20:23 | |
masak .oO( ...naming and CIAvash invalidation... ) | |||
lizmat | CIAvash: no there wasn't | 20:26 | |
but if you look at the implementation of "is cached" inside lib/experimental.pm | |||
you will see it's trivial to make your own, according to your own wished | 20:27 | ||
*wishes | |||
CIAvash | OK, thanks | 20:28 | |
masak: ? | 20:31 | ||
20:31
cdg left
|
|||
timotimo | [Tux]: the utf8-c8 thing doesn't randomly segfault; it only(?) segfaults when an invalid utf8 thing is at the very start of the thing. no time actually spent on making it work yet, though. but it's been golfed and it is known | 20:31 | |
20:34
eyck left,
eyck joined
|
|||
timotimo | lizmat: someone here news.perlfoundation.org/2015/12/per...t-gra.html asked if it's possible to just contribute "a few hours worth of money"; can you post a little something there? | 20:36 | |
lizmat | argh, there should be a donate button there somewhere :-( | 20:37 | |
labster | I was going to say, I feel like I've donated to this grant before. | ||
20:37
cdg joined
|
|||
lizmat | there's a "Make a donation" button at the bottom | 20:38 | |
and "Perl 6 Development" is mentioned as one of the options | |||
timotimo | if it's enough to just point that out, that'd be fine by me | ||
20:41
rurban_ joined
|
|||
lizmat | posted a comment, now being vetted I guess :-( | 20:43 | |
20:44
lucasb joined
|
|||
timotimo | yeah, it's moderated | 20:44 | |
but that's probably a good thing | |||
raiph: did you see my comment about the post on perl6 on cpan on reddit? | |||
20:45
nige1 left
|
|||
raiph | timotimo: looking | 20:45 | |
timotimo | you fell prey to a spam blog :( | ||
DrForr | Test.pm may have broken again, rebuilding Rakudo &c just to make sure. - I'm seeing 't/01-print.t line 1' for 4 tests in a row, all on different lines. | ||
jnthn back | |||
raiph | timotimo: post deleted | 20:46 | |
timotimo++ | 20:47 | ||
timotimo | glad to help | ||
raiph | (raiph--) | ||
20:47
hankache joined,
regreg left
|
|||
DrForr | Heh, rebuild fixed it. | 20:48 | |
lucasb | lizmat: hi, sorry to bother you. did you see my comment about a tiny regex bug? | 20:51 | |
Skarsnik | Is there some dayly build of rakudo-star to see if there is some issue with modules? x) | ||
flussence | if I could build anything newer than 2015.11 on gentoo, I'd offer to do that... | 20:52 | |
20:54
uruwi joined
20:55
dalek left
|
|||
lizmat | lucasb: no, I haven't | 20:55 | |
jnthn: bisecting the slowdown | |||
checking out 680da780fb42b3a8d33bc2 now | 20:56 | ||
20:56
dalek joined,
ChanServ sets mode: +v dalek
|
|||
jnthn | lizmat: OK, cool. I'm seeing if I can do something about RT #124393 | 20:56 | |
lucasb | lizmat: irclog.perlgeek.de/perl6/2015-12-18#i_11740717 | 20:57 | |
lizmat | lucasb: I think that's an oldy, but worth of rakudobugging | 20:58 | |
m: /o/ | |||
camelia | rakudo-moar 09aaf9: OUTPUT«getlexrelcaller needs a context in block <unit> at /tmp/QLMMuEYEvw:1» | ||
lizmat | m: { /o/ } | ||
camelia | ( no output ) | ||
lizmat | only happens if you do that in the mainline | ||
brb | |||
20:58
pierre-vigier joined
|
|||
grondilu | m: sub f(@a where 3) { say "ok, argument is 3 elems" }; f rand xx 3 | 20:59 | |
camelia | rakudo-moar 09aaf9: OUTPUT«ok, argument is 3 elems» | ||
grondilu | m: sub f(@a where 3) { say "ok, argument is 3 elems" }; f rand xx 5 | ||
camelia | rakudo-moar 09aaf9: OUTPUT«Constraint type check failed for parameter '@a' in sub f at /tmp/GghPOC1KVl:1 in block <unit> at /tmp/GghPOC1KVl:1» | ||
20:59
Ven joined
|
|||
grondilu wonders if that's ok to specify an array length constraint like this | 20:59 | ||
20:59
_nadim left
|
|||
lizmat | m: my @a = ^3; say 3 ~~ @a | 21:00 | |
camelia | rakudo-moar 09aaf9: OUTPUT«False» | ||
lizmat | m: my @a = ^3; say @a ~~ 3 | ||
camelia | rakudo-moar 09aaf9: OUTPUT«True» | ||
jnthn | grondilu: Sure, if a little odd to read :) | 21:01 | |
lizmat | m: my @a = ^2; say @a ~~ 3 | ||
camelia | rakudo-moar 09aaf9: OUTPUT«False» | ||
lizmat | grondilu: yup sure | ||
jnthn | It just falls out of smartmatch against a number .Numeric-ing the thing on the left | ||
masak | grondilu: note that it's also working for you in your own examples. | ||
jnthn | I suspect grondilu was more asking if it was liable to break in the future :) | ||
masak | m: my @a = ^3; say @a ~~ 3.0 | ||
camelia | rakudo-moar 09aaf9: OUTPUT«True» | ||
lizmat | wouldn't think so, right ? | 21:02 | |
masak | m: my @a = ^3; say @a ~~ "3" | ||
camelia | rakudo-moar 09aaf9: OUTPUT«False» | ||
masak | m: my @a = ^3; say @a ~~ 3+0i | ||
camelia | rakudo-moar 09aaf9: OUTPUT«True» | ||
masak | lizmat: no, not liable to break in the future :) | ||
grondilu | jnthn: that crossed my mind indeed | ||
jnthn | Anyway, it's reliable | ||
If you expect people to declare their dimensions, then @a[3] works in a signature, but like other type-y things it's a matter of declaration, not structure. | 21:03 | ||
21:04
CIAvash left
21:05
CIAvash joined
21:06
skids left
|
|||
grondilu | m: say 1e6.fmt("%e") | 21:08 | |
camelia | rakudo-moar 09aaf9: OUTPUT«10.000000e+05» | ||
grondilu | ^seems wrong to me | ||
21:08
cdg left
|
|||
grondilu | $ printf "%e" 1000000 | 21:09 | |
1.000000e+06 | |||
timotimo | Skarsnik: github.com/coke/rakudo-star-daily | ||
[Coke]: the rakudo-star-daily readme says it builds a rakudo-star for parrot still | |||
may want to update that | |||
21:10
hankache left
|
|||
timotimo | grondilu: well, it's not wrong per se. just weird | 21:11 | |
21:12
CIAvash left
|
|||
masak | grondilu: please submit a rakudobug | 21:13 | |
lizmat | b422f44e6741a92b5 isn't it either | 21:14 | |
grondilu | masak: ok I will | ||
masak | grondilu++ | ||
lizmat | checking ec18f24d27ce61fa71d177 now | 21:15 | |
jnthn suspects that gets it down to just one or two bumps | 21:17 | ||
21:17
vike left
21:19
rurban left
|
|||
dalek | kudo/nom: fde3d62 | jnthn++ | src/ (2 files): Mechanism to configure multi-sig comparator. Will be used for improving role multi-method interaction. |
21:20 | |
Skarsnik | well eveything fail in github.com/coke/rakudo-star-daily/...odules.log x) | 21:27 | |
21:37
rurban joined
|
|||
TimToady | jnthn: I think I have this one nailed, though turns out I had to go the extra mile for if/unless modifiers, which don't have a Stmts, so I had to make one to poke the extra node into, but it works; except now that if/unless propagate sink, I've got more spurious useless to chase down... | 21:37 | |
it already flushed out the fact that 'when' wasn't marking the succeed, which is a good thing to have learned, after the fact :) | 21:38 | ||
jnthn | :) | ||
Cool | |||
Making progress on the multi/role thing | 21:39 | ||
lizmat | testing 1f09c1e4f760a138208d now | ||
21:40
vike joined
|
|||
lucasb | m: { say ?/o/ } # happens inside block too, but needs explicit bool context | 21:40 | |
21:40
sjn_phone left
|
|||
camelia | rakudo-moar fde3d6: OUTPUT«getlexrelcaller needs a context in block <unit> at /tmp/JWEY1Dyrzo:1» | 21:40 | |
lizmat | lucasb: afaik, this is about ooking fro $/ and not finding one | 21:41 | |
I'll look into it after bisecting | |||
lucasb | lizmat: thanks | 21:42 | |
21:44
AlexDaniel joined,
xfix joined
|
|||
AlexDaniel | m: say ∞ | 21:44 | |
camelia | rakudo-moar fde3d6: OUTPUT«Inf» | 21:45 | |
AlexDaniel | okay! | ||
what now, hmmm… | |||
we have superscripts, fractions, inf, school grade operators… | |||
timotimo | emoji haven't really been explored too much | 21:46 | |
ilmari | m: say 5 ✕ 2 | 21:47 | |
camelia | rakudo-moar fde3d6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tEdphEQYZ7Confusedat /tmp/tEdphEQYZ7:1------> 3say 57⏏5 ✕ 2 expecting any of: infix infix stopper postfix statement end statement modifie…» | ||
ilmari | .u ✕ | ||
yoleaux | U+2715 MULTIPLICATION X [So] (✕) | ||
lizmat | ok, seems 1f09c1e4f760a138208d is the first commit I tried that slows down everything by 2x | ||
masak | m: sub infix:<✕>($l, $r) { $l * $r }; say 5 ✕ 2 | ||
camelia | rakudo-moar fde3d6: OUTPUT«10» | ||
lizmat | testing the one before that | ||
aka 8401e01aa60ce2754bce0 | |||
xfix | ⚠ could make a neat alias for "warn" function (don't do it). | 21:48 | |
labster | Acme::Warn? | ||
lucasb | why the multiplication sign didn't work? didn't it got added in a recent commit? | ||
lizmat | I think it did ? | 21:49 | |
AlexDaniel | lucasb: it's a wrong one | ||
× | |||
ilmari | m: say 5 × 2 | ||
camelia | rakudo-moar fde3d6: OUTPUT«10» | ||
ilmari | .u × | ||
yoleaux | U+00D7 MULTIPLICATION SIGN [Sm] (×) | ||
AlexDaniel | .u ✕× | ||
yoleaux | U+00D7 MULTIPLICATION SIGN [Sm] (×) | ||
U+2715 MULTIPLICATION X [So] (✕) | |||
masak | tricky :) | ||
ilmari | unicode-- | ||
timotimo | damn. | ||
xfix | m: my \Linux™ = "Linux"; say Linux™; | ||
camelia | rakudo-moar fde3d6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fWboxkH84KTerm definition requires an initializerat /tmp/fWboxkH84K:1------> 3my \Linux7⏏5™ = "Linux"; say Linux™;» | ||
lucasb | so many signs, much confused | ||
masak | clearly the right one is in the "math" category, though | ||
xfix | Hm, if ™ was a word character... | ||
jnthn | That moment when all the tests you wrote pass, but you didn't change something you were sure you needed to... | ||
ilmari | .u ✖ | 21:50 | |
yoleaux | U+2716 HEAVY MULTIPLICATION X [So] (✖) | ||
jnthn | That'd be a good metal band name... | ||
timotimo | :D | ||
i'd listen to that | |||
xfix | m: sub term:<Linux™> { "Linux" }; say Linux™ | ||
camelia | rakudo-moar fde3d6: OUTPUT«Linux» | ||
AlexDaniel | well, I'm happy that now I can do this: | 21:51 | |
m: say (* × *)(2, 5) | |||
camelia | rakudo-moar fde3d6: OUTPUT«10» | ||
21:51
vike left
|
|||
AlexDaniel | though maybe I'd love to see a special character for whatever star | 21:51 | |
xfix | ☑ could be true, and ◻ could be false (still terrible ideas). | ||
AlexDaniel | xfix: please leave that for custom operators :) | 21:52 | |
and terms | |||
lizmat | m: sub postfix:<™>(\a) { a ~ "™" }; my $a = "Linux"; say $a™ | ||
camelia | rakudo-moar fde3d6: OUTPUT«Linux™» | ||
21:52
sjn_phone joined
|
|||
AlexDaniel | as well as ☠ ⚠ | 21:52 | |
lucasb | AlexDaniel: yes, I think there are a cool star symbol in unicode that could be an alias for Whatever | 21:53 | |
timotimo | sub foobar($a, $b) is ☠ { } | ||
.u star | |||
yoleaux | U+0001 START OF HEADING [Cc] (␁) | ||
U+0002 START OF TEXT [Cc] (␂) | |||
U+0086 START OF SELECTED AREA [Cc] (<control>) | |||
timotimo | ugh | ||
jnthn | Sometimes I think I should mine this channel for all the really awful ideas suggested over the years, and make a toy language that implements all of them... | ||
AlexDaniel | lucasb: yeah, thousands of star symbols | ||
lizmat | .oO( APL anyone? :) |
21:54 | |
timotimo | did you know we can regex-match on full unicode name of a symbol? | ||
AlexDaniel | jnthn: it would be enough if you just made a top ten list :) | ||
timotimo | just allow anything that has a « star » in its name | ||
jnthn | Well, yeah, I was just realizing "all" might take me a while :) | ||
lucasb | ok, I'll stop suggesting awful ideas :( | 21:55 | |
timotimo | m: for (1 .. 100000).map( *.uniname ).grep(/ « star » /).say | ||
camelia | rakudo-moar fde3d6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gRam7vV3obMissing blockat /tmp/gRam7vV3ob:1------> 3.map( *.uniname ).grep(/ « star » /).say7⏏5<EOL> expecting any of: block or pointy block» | ||
timotimo | m: (1 .. 100000).map( *.uniname ).grep(/ « star » /).say | ||
camelia | rakudo-moar fde3d6: OUTPUT«()» | ||
timotimo | oh, :i | ||
m: (1 .. 100000).map( *.uniname ).grep(/ « STAR » /).map( *.say ) | |||
camelia | rakudo-moar fde3d6: OUTPUT«ARABIC FIVE POINTED STARSTAR EQUALSSTAR OPERATORAPL FUNCTIONAL SYMBOL CIRCLE STARAPL FUNCTIONAL SYMBOL STAR DIAERESISBLACK STARWHITE STARSTAR AND CRESCENTOUTLINED WHITE STARSTAR OF DAVIDBLACK FOUR POINTED STARWHITE FOUR POI…» | ||
labster | I give lucasb a GOLD STAR anyway. | ||
timotimo | so really, you can use "Whatever Star" you like. | 21:56 | |
xfix | T̶h̶e̶ ̶b̶e̶s̶t̶ ̶w̶a̶y̶ ̶t̶o̶ ̶w̶r̶i̶t̶e̶ ̶w̶h̶a̶t̶e̶v̶e̶r̶ ̶s̶t̶a̶r̶ ̶i̶s̶ ̶¯̶\̶_̶(̶ツ̶)̶_̶/̶¯̶,̶ ̶o̶b̶v̶i̶o̶u̶s̶l̶y̶.̶ | ||
AlexDaniel | m: say (0..0x1FFFF ==> grep { .uniname ~~ m/‘STAR’/ })».chr | ||
camelia | rakudo-moar fde3d6: OUTPUT«( ٭ ۞ ༌ ≛ ⋆ ⍟ ⍣ ␁ ␂ ★ ☆ ☪ ⚝ ✡ ✦ ✧ ✩ ✪ ✫ ✬ ✭ ✮ ✯ ✰ ✴ ✵ ✶ ✷ ✸ ✹ ❂ ⧦ ⭐ ⭑ ⭒ 𐫰 🌃 🌟 🌠 🍮 🔯 🝒 🟀 🟁 🟂 🟃 🟄 🟅 🟆 🟇 🟈 🟉 🟊 🟋 🟌 🟍…» | ||
flussence is surprised that worked in urxvt | |||
timotimo | AlexDaniel: that also gives you "START OF *" and such | ||
lizmat | wow, quite a few of those stars didn't render for me | ||
.u 🟀 # first one | 21:57 | ||
yoleaux | U+0020 SPACE [Zs] ( ) | ||
U+0023 NUMBER SIGN [Po] (#) | |||
U+0065 LATIN SMALL LETTER E [Ll] (e) | |||
timotimo | haha | ||
xfix | Fiveof them didn't render to me. | ||
I need better fonts. | |||
timotimo | i only saw a single star in that line | ||
xfix | .u 𐫰 | ||
yoleaux | U+0001 START OF HEADING [Cc] (␁) | ||
U+0086 START OF SELECTED AREA [Cc] (<control>) | |||
U+0096 START OF GUARDED AREA [Cc] (<control>) | |||
xfix | That explains some of that... | ||
.u 𐫰 | |||
yoleaux | U+0098 START OF STRING [Cc] (<control>) | ||
timotimo | m: say (0..0x1FFFF ==> grep { .uniname ~~ m/ « STAR »/ })».chr | ||
i told you, homeboy | 21:58 | ||
xfix | And... | ||
Skarsnik | Good night #perl6 | ||
camelia | rakudo-moar fde3d6: OUTPUT«(٭ ≛ ⋆ ⍟ ⍣ ★ ☆ ☪ ⚝ ✡ ✦ ✧ ✩ ✪ ✫ ✬ ✭ ✮ ✯ ✰ ✴ ✵ ✶ ✷ ✸ ✹ ❂ ⭐ ⭑ ⭒ 𐫰 🌟 🌠 🔯 🟀 🟁 🟂 🟃 🟄 🟅 🟆 🟇 🟈 🟉 🟊 🟋 🟌 🟍 🟎 🟏 🟐 🟑 🟒 🟓 🟔)» | ||
lizmat | checking 627838d00ae509a78da | ||
timotimo | you can't match this. | ||
AlexDaniel | m: say join ‘’, (0..0x1FFFF ==> grep { .uniname ~~ m/‘STAR’/ })».chr | ||
camelia | rakudo-moar fde3d6: OUTPUT«٭۞༌≛⋆⍟⍣␁␂★☆☪⚝✡✦✧✩✪✫✬✭✮✯✰✴✵✶✷✸✹❂⧦⭐⭑⭒𐫰🌃🌟🌠🍮🔯🝒🟀🟁🟂🟃🟄🟅🟆🟇🟈🟉🟊🟋🟌🟍🟎🟏🟐🟑🟒🟓🟔» | ||
AlexDaniel | ok, that's all of them | ||
21:58
Skarsnik left
|
|||
xfix | .u U+10AF0 | 21:58 | |
yoleaux | No characters found | ||
AlexDaniel | irclog.perlgeek.de/perl6/2015-12-19 look at that! | ||
this message is hidden from irclog! | 21:59 | ||
why? | |||
xfix | So, I cannot render U+10AF0. I wonder what font does have it... | ||
www.fileformat.info/info/unicode/bl...upport.htm | 22:00 | ||
That's sure useful, not. | |||
dalek | kudo/nom: b6f0532 | jnthn++ | src/core/Parameter.pm: A little simplification in Parameter.perl. Means we avoid .WHICH on invocant parameters, which is icky if we're trying to .perl a method signature (for example, to include in an error). |
||
kudo/nom: c102648 | jnthn++ | src/Perl6/Metamodel/RoleToClassApplier.nqp: Respect multi's sigs in role composition. This means that a multi foo(Int $x) { ... } in a role will require an exactly matching candidate be provided. Prior to this, you'd get an ambiguous dispatch. Further, a multi in a role with a matching name and signature with one in a class will now hide the one from the role; this was also previously an ambiguous dispatch. |
|||
AlexDaniel | xfix: what is U+10AF0? | ||
dalek | ast: 97e3ee4 | jnthn++ | S14-roles/composition.t: Tests for/around RT #124393. |
||
AlexDaniel | ah I see now | ||
geekosaur | .u 10AF0 | ||
yoleaux | No characters found | ||
xfix | Manichaean Punctuation Star | ||
AlexDaniel | xfix: ok, it is rendered here | 22:01 | |
xfix: unifont has it | |||
basically unifont has everything | 22:02 | ||
dalek | ast: 3c3ac2a | jnthn++ | S14-roles/stubs.t: Unfudge now-passing role stub tests. |
||
AlexDaniel | hmm | ||
mm is this message hidden from irclog? | |||
22:02
sjn_phone left,
sjn_phone joined
|
|||
xfix | [23:02:03] <AlexDaniel> basically unifont has everything | 22:03 | |
That's... interesting. | |||
AlexDaniel | Nice! So that's how you can hide messages! | ||
xfix | I don't like bitmap fonts myself, but I guess it's better than seeing squares. | ||
AlexDaniel | xfix: exactly | ||
.u | |||
yoleaux | U+0001 START OF HEADING [Cc] (␁) | ||
22:04
pierre-vigier left
|
|||
geekosaur | sounds like a bug :) | 22:04 | |
AlexDaniel | it is | ||
22:04
Ven left
|
|||
lucasb | AlexDaniel: the message shows on the other irclogger... colabti | 22:05 | |
AlexDaniel | m: say join ‘’, ((0..0x1FFFF ==> grep { .uniname ~~ m/‘STAR’/ })».chr)[1..*] | ||
camelia | rakudo-moar fde3d6: OUTPUT«٭۞༌≛⋆⍟⍣␁␂★☆☪⚝✡✦✧✩✪✫✬✭✮✯✰✴✵✶✷✸✹❂⧦⭐⭑⭒𐫰🌃🌟🌠🍮🔯🝒🟀🟁🟂🟃🟄🟅🟆🟇🟈🟉🟊🟋🟌🟍🟎🟏🟐🟑🟒🟓🟔» | 22:06 | |
22:06
raiph left
|
|||
AlexDaniel | xfix: well, here's a screenshot of that: files.progarm.org/2015-12-20-00062..._scrot.png | 22:06 | |
xfix | I just realized that I had Xorg configuration disabling all bitmap fonts. Fun. | ||
22:07
RabidGravy left
|
|||
AlexDaniel | xfix: so yes, it is not pretty, but at least I don't have to see annoying squares. | 22:07 | |
xfix: after installing unifont I rarely see squares. Now I see ugly characters instead! Which is way better | 22:08 | ||
xfix | I will need to figure out how to enable Unifont without enabling ugly Arch Linux's Xorg bitmap fonts (especially "Clean" one...) | ||
AlexDaniel | m: say join ‘’, ((0..0x1FFFF ==> grep { .uniname ~~ m/‘SIGN’/ })».chr)[1..*] | 22:09 | |
camelia | rakudo-moar fde3d6: OUTPUT«$%+<=>¢£¤¥§©¬®°±µ¶×÷˖˗̟̠͇ʹ͵ЪЬъь҂҈҉Ҍҍ֍֎֏؉؊؋؎؏ٜؐؑؒؓؔٚٛ٪۽۾ࠜࠝࠞࠟࠠࠡࠢࠣࠥࠦࠧࠩࠪࠫࠬऀँंःऺऻ़ऽािीुूृॄॅॆेैॉॊोौ्ॎॏ॒॑ॕॖॗॢॣ…» | ||
AlexDaniel | m: say join ‘’, ((0..0x1FFFF ==> grep { .uniname ~~ m/‘LOVE’/ })».chr)[1..*] | ||
22:09
sjn_phone left,
inokenty left
|
|||
camelia | rakudo-moar fde3d6: OUTPUT«🏩💌» | 22:09 | |
22:09
sjn_phone joined
|
|||
AlexDaniel | .u 🏩💌 | 22:09 | |
yoleaux | U+1F3E9 LOVE HOTEL [So] (🏩) | ||
U+1F48C LOVE LETTER [So] (💌) | |||
AlexDaniel | love hotel, there you go | ||
m: say join ‘’, ((0..0x1FFFF ==> grep { .uniname ~~ m/‘HEART’/ })».chr)[1..*] | 22:10 | ||
camelia | rakudo-moar fde3d6: OUTPUT«♡♥❣❤❥❦❧⺖⺗⼼🂱🂲🂳🂴🂵🂶🂷🂸🂹🂺🂻🂼🂽🂾🎔💑💓💔💕💖💗💘💙💚💛💜💝💞💟😍😻» | ||
AlexDaniel | m: say join ‘’, ((0..0x1FFFF ==> grep { .uniname ~~ m/^‘SQUARE’/ })».chr)[1..*] | 22:13 | |
camelia | rakudo-moar c10264: OUTPUT«⊏⊐⊑⊒⊓⊔⊞⊟⊠⊡⋤⋥⌑⏍▤▥▦▧▨▩◧◨◩◪⚿⛝⛶⟎⟏⧄⧅⧆⧇⧈⧠⫍⫎⬒⬓⬔⬕⯐⸬㋌㋍㋎㌀㌁㌂㌃㌄㌅㌆㌇㌈㌉㌊㌋㌌㌍㌎㌏㌐㌑㌒㌓㌔㌕㌖㌗㌘㌙㌚㌛㌜㌝㌞㌟㌠㌡㌢㌣㌤㌥㌦…» | ||
AlexDaniel | oh well ㎀㎁㎂㎃㎄㎅㎆㎇㎈㎉㎊㎋㎌㎍㎎㎏㎐㎑㎒㎓㎔㎕㎖㎗㎘㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㎣㎤㎥㎦㎧㎨㎩㎪㎫㎬㎭㎮㎯㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎺㎻㎼㎽㎾㎿㏀㏁㏂㏃㏄㏅㏆㏇㏈㏉㏊㏋㏌㏍㏎㏏㏐㏑㏒㏓㏔㏕㏖㏗㏘㏙㏚㏛㏜㏝㏞㏟㏿ | ||
anyway, enough unicode spam for now | 22:14 | ||
22:14
CQ left
|
|||
DrForr | I'm surprised my terminal survived. | 22:14 | |
masak | was gonna say | 22:16 | |
jnthn | TimToady: So, I fixed RT #124393, but the test I forgot to write was that now we pay attention to signatures for hiding and requirements, we also should for conflicts/resolution. | ||
AlexDaniel | DrForr: have you been here the last time I was doing the same kind of lookups for zalgo text? | ||
22:16
adhoc left
|
|||
jnthn | TimToady: So, got failing tests for those now locally, but a bit tired fixing them so will look at that tomorrow. | 22:16 | |
AlexDaniel | DrForr: it was about 300 combiners on one letter | ||
flussence | huh, looks like urxvt just doesn't support things > 0xFFFF regardless of the fonts I feed it... | 22:17 | |
jnthn | uh, bit tired to be fixing them :) | ||
22:17
adhoc joined
|
|||
AlexDaniel | flussence: files.progarm.org/2015-12-20-00174..._scrot.png | 22:17 | |
jnthn | Anyway, that'll be one more off the xmas list. | 22:18 | |
AlexDaniel | flussence: that's urxvt | ||
.u ㏿ | |||
yoleaux | U+33FF SQUARE GAL [So] (㏿) | ||
AlexDaniel | .u 🄰 | ||
yoleaux | U+1F130 SQUARED LATIN CAPITAL LETTER A [So] (🄰) | ||
AlexDaniel | flussence: ooohh!! You are right! | 22:19 | |
22:19
sjn_phone left
|
|||
AlexDaniel | flussence: I wonder why | 22:19 | |
22:19
sjn_phone joined
|
|||
AlexDaniel | flussence: I've never noticed it… Damn, that's not good | 22:20 | |
lizmat | m: say "\x1F139\x1F135" | ||
camelia | rakudo-moar c10264: OUTPUT«🄹🄵» | ||
lizmat | m: say "\x1F138\x1F134" | ||
camelia | rakudo-moar c10264: OUTPUT«🄸🄴» | ||
lizmat | hmmm... | ||
AlexDaniel | m: say join ‘’, ‘lizmat’.comb.map((*.ord + ‘🄰’.ord).chr) | 22:22 | |
camelia | rakudo-moar c10264: OUTPUT«🆜🆙🆪🆝🆑🆤» | ||
AlexDaniel | whoops… | ||
m: say join ‘’, ‘lizmat’.ords.map((* + ‘🄰’.ord - ‘a’.ord).chr) | 22:24 | ||
camelia | rakudo-moar c10264: OUTPUT«🄻🄸🅉🄼🄰🅃» | ||
jnthn | Time for some rest; 'night perl6 | ||
lizmat | good night, jnthn | ||
timotimo | gnite jnthn | 22:25 | |
22:25
ChristopherBotto joined
|
|||
DrForr | Does .perl enforce any kind of ordering on keys? | 22:26 | |
timotimo | yes | 22:27 | |
22:27
jack_rabbit left
|
|||
DrForr | Cool. I'm writng tests for a pretty printer. | 22:27 | |
AlexDaniel | timotimo: so it just sorts them? | ||
timotimo | github.com/rakudo/rakudo/blob/nom/...pm#L59-L64 | 22:28 | |
AlexDaniel | timotimo: right! Thanks | ||
22:28
_nadim joined
|
|||
flussence has half a mind to go learn C and write a terminal emulator that doesn't suck... knowing full well that's impossible | 22:32 | ||
22:32
skids joined
|
|||
DrForr | Check out Tickit for perl5. | 22:32 | |
22:33
Begi joined,
vike joined
|
|||
ilmari | tickit is a terminal ui kit | 22:36 | |
there's pangoterm by the same guy | |||
which built on libvterm, which he also wrote | |||
LeoNerd++ | |||
22:37
lsm-desktop left
|
|||
ilmari | random speed comparison: AlexDaniel's hearts finder takes takes 25s on my laptop, the equivalent perl 5 takes 1m55 | 22:38 | |
perl -mcharnames -E 'say join " ", map chr, grep charnames::viacode($_) =~ /HEART/, 0..0x1FFFF' | |||
AlexDaniel | .u CHRIST | 22:45 | |
yoleaux | U+1F384 CHRISTMAS TREE [So] (🎄) | ||
U+1F385 FATHER CHRISTMAS [So] (🎅) | |||
ilmari | rakudo does use a lot more memory, though. 90MB vs 27MB | 22:51 | |
timotimo | yeah, but an empty rakudo already takes a bunch of memory anyway | 22:53 | |
lizmat | .tell jnthn commit c040a076e64c3420f322 is causing the slowdown | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
timotimo | 67 megabytes of ram used for "say '1'" | ||
lizmat | well, now that I have found the commit causing the slowdown, I'm going to get some rest | 22:55 | |
good night, #perl6 | |||
22:56
ghost_ joined
|
|||
skids | o/ | 22:58 | |
TimToady | okay, so that's probably just something blowing the jit | ||
"just", he sez... | 22:59 | ||
lucasb | INSTALL.txt mentions --with-moar and -with-nqp but it seems Configure.pl don't use these options | 23:04 | |
I know there is --sdkroot, but I think --with-foo=PATH is more common in other build systems | 23:05 | ||
dalek | p: 03e729e | (Pawel Murias)++ | src/vm/js/nqp-runtime/code-ref.js: [js] Remove debugging console.log. |
23:07 | |
p: fb74f7c | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] Fix matching negated charclass at end of string. |
|||
lucasb | it seems there was --with-parrot and --with-nqp in the past, but they are gone | 23:13 | |
23:17
spider-mario left
|
|||
diakopter | .tell nanis I don't see an answer to your question: anyway, here it is: perl Configure.pl --gen-moar=master | 23:18 | |
yoleaux | diakopter: I'll pass your message to nanis. | ||
dalek | kudo/nom: 091ee75 | TimToady++ | src/Perl6/ (2 files): fix for 125769, binding in sink context throws The wanter now notices such binds at the ends of blocks and install an extra True value afterwards to shield the binding from autothrow semantics. In addition, if/else/with/without now propagage sinkness properly to the then/else clauses, which exposed the fact that lots of instances of $_ weren't wanted yet. |
||
ast: 734565c | TimToady++ | S05-interpolation/regex-in-variable.t: untodo tests for #100232 |
|||
ast: 8b97aa4 | TimToady++ | S32-exceptions/misc.t: test for #125769, if at end of block throws bind (plus additional failure modes caught while fixing this one) |
|||
c/un-unspace: 85fd191 | (Brock Wilcox)++ | htmlify.p6: Remove some unneeded unspace |
23:21 | ||
c: 85fd191 | (Brock Wilcox)++ | htmlify.p6: Remove some unneeded unspace |
23:23 | ||
c: d5a77e6 | (Zoffix Znet)++ | htmlify.p6: Merge pull request #251 from perl6/un-unspace Remove some unneeded unspace |
|||
23:23
kaare_ left
23:24
Begi2 joined
|
|||
awwaiid | would it make sense to have all =head* things added to the search index for doc.perl6.org? | 23:25 | |
23:26
Begi left
|
|||
skids | aww I was kinda hoping my RT would be the last one on the fixmas list :-) | 23:26 | |
diakopter | which one was yours | 23:28 | |
skids | 125769 | 23:29 | |
awwaiid | it is frustrating to read through htmlify.p6 from doc looking for ways to improve indexing, only to find syntax that I don't understand and can't look up | ||
vendethiel | awwaiid: what kind? | 23:30 | |
awwaiid | when :(Str $ where /^The \s \S+ \s \w+$/) { ... } # what is the ":" for? | ||
vendethiel | awwaiid: signature | ||
it's like a multi... but inside a given | |||
awwaiid | hm. so the given is a list, and this is like a destructure match | 23:31 | |
wow... NEAT! | 23:32 | ||
masak | yes, but ISTR that $/ doesn't get set properly... :/ | ||
m: given "foo" { when :(Str $ where /f(..)/) { say $0 } } | 23:33 | ||
camelia | ( no output ) | ||
masak | hm. | ||
skids | m: my $a; my $b; :(Int $b, $a) := { 4,"foo" }(); $b.say; # also works for return values | 23:34 | |
camelia | rakudo-moar 091ee7: OUTPUT«4» | ||
skids | m: my $a; my $b; :(Int $b, $a) := { "4","foo" }(); $b.say; # also works for return values | ||
camelia | rakudo-moar 091ee7: OUTPUT«Type check failed in binding $b; expected Int but got Str in block <unit> at /tmp/hLAH6o8tp6:1» | ||
stmuk | awwaiid: 'git grep' in the doc and roast repos sometimes helps with syntax | ||
dalek | p: f787663 | (Pawel Murias)++ | src/vm/js/nqp-runtime/io.js: [js] Replace \r\n with \n when reading in files. |
23:35 | |
p: 9a0fb49 | (Pawel Murias)++ | t/nqp/19-file-ops.t: Test that readallfh convert \r\n. Skip the readlinefh tests skipped on moar on js. |
|||
23:36
ChristopherBotto left
|
|||
dalek | ast: 1becd7c | TimToady++ | S05-interpolation/regex-in-variable.t: bunch more tests for #100232 |
23:37 | |
diakopter | I'm guessing the slowdown is due to tipping-point JIT op implementation, which is now causing massively greater portions of stuff to be JITted | ||
(and it's taking far longer to JIT now) | |||
masak | 'night, #perl6 | ||
awwaiid | gnight masak! | 23:38 | |
diakopter | masak: g'n | ||
someone could test by comparing to rakudo-j run times | |||
lucasb | m: given \('foo') { when :(Str $ where /(.+)/) { say "<$0>" } } | 23:39 | |
camelia | rakudo-moar 091ee7: OUTPUT«<foo>» | ||
lucasb | m: given :('foo') { when :(Str $ where /(.+)/) { say "<$0>" } } | ||
camelia | rakudo-moar 091ee7: OUTPUT«Use of Nil in string context in block at /tmp/Q6B1H_omlA:1<>» | ||
awwaiid | m: my @stuff = "fish", 42; say @stuff ~~ :(Str, Int), @stuff ~~ :(Str, Str) | ||
camelia | rakudo-moar 091ee7: OUTPUT«TrueFalse» | ||
awwaiid | so cool | ||
There is so much awesome in Perl6 that documenting it sanely is very challenging, I'm finding | 23:40 | ||
23:41
lichtkind joined
|
|||
diakopter | staying sane while documenting? | 23:41 | |
or writing things that keep people sane when reading? | |||
awwaiid | hehe | ||
yes! | 23:42 | ||
diakopter | so.. both | 23:43 | |
awwaiid | m: say :writer|:reader # Any | ||
camelia | rakudo-moar 091ee7: OUTPUT«any(writer => True, reader => True)» | ||
23:44
xfix left
|
|||
pochi | .say for (^5).pick(), (^5).pick(1), (^5).head(), (^5).head(1) | 23:45 | |
m: .say for (^5).pick(), (^5).pick(1), (^5).head(), (^5).head(1) | |||
camelia | rakudo-moar 091ee7: OUTPUT«3(2)(0)(0)» | ||
pochi | shouldn't .head() be more like pick()? | 23:46 | |
23:46
pmurias joined
23:47
TEttinger left
|
|||
dalek | p: 2d13ef7 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (3 files): [js] Drop the iconv-lite dependency. |
23:49 | |
lucasb | m: say ().pick | 23:51 | |
camelia | rakudo-moar 091ee7: OUTPUT«Nil» | 23:52 | |
lucasb | m: say ().pick(1) | ||
camelia | rakudo-moar 091ee7: OUTPUT«()» | ||
lucasb | same thing for .roll | ||
I would like if .pick and .pick(1) meant the same thing | |||
pochi: and yes, I like your suggestion too | 23:54 | ||
pochi | the same goes for .tail as well | ||
23:56
pmurias left,
MadcapJake left
|
|||
Begi2 | lucasb : good question. .roll() and .roll(1) should mean the same thing no ? | 23:58 | |
23:58
Begi2 is now known as Begi,
cdg joined
|
|||
dalek | c: 12d8242 | (Brock Wilcox)++ | doc/Language/syntax.pod: Document signature literals |
23:58 | |
lucasb | Begi: yes, I would have expected so | ||
23:59
cdg left
|
|||
masak | ...before I go to bed... :) | 23:59 |