»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
timotimo | m: multi sub f($target, @outers) { "<apply>" ~ f($target, @outers[1..]) ~ "</apply>" }; multi sub f($target, @($a)) { "<apply>" ~ $a ~ $target ~ "</apply>" }; say f("yippie", <foo bar baz quux>); | 00:00 | |
camelia | rakudo-moar cd9001: OUTPUT«===SORRY!=== Error while compiling /tmp/3vKwgWX1d9Please use ..* for indefinite rangeat /tmp/3vKwgWX1d9:1------> rs) { "<apply>" ~ f($target, @outers[1..⏏]) ~ "</apply>" }; multi sub f($target, » | ||
timotimo | m: multi sub f($target, @outers) { "<apply>" ~ f($target, @outers[1..*]) ~ "</apply>" }; multi sub f($target, @($a)) { "<apply>" ~ $a ~ $target ~ "</apply>" }; say f("yippie", <foo bar baz quux>); | ||
camelia | rakudo-moar cd9001: OUTPUT«<apply><apply><apply><apply>quuxyippie</apply></apply></apply></apply>» | ||
timotimo | oh, i missed something | 00:01 | |
m: multi sub f($target, @outers) { "<apply>" ~ @outers[0] ~ f($target, @outers[1..*]) ~ "</apply>" }; multi sub f($target, @($a)) { "<apply>" ~ $a ~ $target ~ "</apply>" }; say f("yippie", <foo bar baz quux>); | |||
camelia | rakudo-moar cd9001: OUTPUT«<apply>foo<apply>bar<apply>baz<apply>quuxyippie</apply></apply></apply></apply>» | ||
adu | its not a traditional FP combinator | ||
timotimo | this one's recursive, if you like that | ||
adu | ok | 00:02 | |
that's good | |||
00:04
bjz_ left
|
|||
adu | hanks timo | 00:04 | |
*thanks | |||
raydiak | timotimo++ # not completely misunderstanding the question like me :) | 00:05 | |
00:06
denis_boyun_ left
|
|||
smls | Why not just: | 00:10 | |
m: sub f($target, @outers) { [~] @outers.map("<apply>" ~ *), $target, ("</apply>" xx @outers) }; say f("foo", [1, 2, 3]); | |||
camelia | rakudo-moar cd9001: OUTPUT«<apply>1<apply>2<apply>3foo</apply></apply></apply>» | ||
00:15
smls left
|
|||
timotimo | yeah, that's much better | 00:24 | |
TimToady: replacing @!neighbours[$x;$y].any === Burning with .grep( Burning ) makes rc-forest-fire a bit faster; does that sound like an acceptable optimization? | 00:33 | ||
raydiak | m: sub foo ($x is copy, @a) { $x = "<apply>$_$x\</apply>" for @a.reverse; $x }; foo("x", <a b c>).say | ||
camelia | rakudo-moar cd9001: OUTPUT«<apply>a<apply>b<apply>cx</apply></apply></apply>» | ||
00:34
Mouq left
|
|||
timotimo | hm. i need to control for randomness | 00:34 | |
TimToady | you mean in the benchmark? | 00:35 | |
timotimo | yes | ||
TimToady | the purpose of the benchmark is to measure what's slow, not to cheat around it :) | ||
timotimo | haha! i can just use bench to run the benchmark multiple times! | ||
well, i have no clue how to further optimize junctions for now | 00:36 | ||
TimToady | then, er, do it later... :) | ||
timotimo | i guess i had that coming :) | 00:37 | |
TimToady | the best thing to do here is probably wait for the GLR | ||
which may give you a better iterator for any to use | 00:38 | ||
adu | timotimo: sweet! | 00:39 | |
timotimo++ | |||
timotimo | hm? | ||
TimToady | m: say any(1,2,3) == 2 | 00:40 | |
camelia | rakudo-moar cd9001: OUTPUT«any(False, True, False)» | ||
timotimo | TimToady: aye. i'm a bit annoyed by how often i reach a point where i go "well, better wait for the GLR to land for this one" | ||
adu | timotimo: smls's improvement | ||
timotimo | but why do i get a ++ for smls' work? :) | ||
TimToady | you'll note that an any with two False's in it has done some extra work it didn't really need to | 00:41 | |
adu | generalized left-to-right right-most derivation? | ||
smls++ | 00:42 | ||
timotimo: you write the first draft | |||
raydiak was wondering if multiple instances of the same object should collapse to one in a junction | 00:47 | ||
timotimo | it was also the worst draft :) | 00:48 | |
bench claims with .grep it's 32x per second and with any it's 22x | 00:51 | ||
01:00
adu left
01:03
adu joined
01:06
rurban joined
01:12
raiph left
01:13
raiph joined
01:15
Mouq joined
|
|||
timotimo | m: say "building the core setting generates { 9307097 / 1024 } kilobytes of jitted bytecode (that is { 9307097 / 1024 / 1024 } megabytes)" | 01:21 | |
camelia | rakudo-moar cd9001: OUTPUT«building the core setting generates 9088.961914 kilobytes of jitted bytecode (that is 8.87593937 megabytes)» | ||
01:22
alexghacker left
|
|||
timotimo | m: "it's an average of { 9088.961914 / 1725 } kilobytes per frame" | 01:22 | |
camelia | ( no output ) | ||
timotimo | m: say "it's an average of { 9088.961914 / 1725 } kilobytes per frame" | ||
camelia | rakudo-moar cd9001: OUTPUT«it's an average of 5.2689634284 kilobytes per frame» | ||
timotimo | biggest frame is 115834 bytes big, smallest are 152 big | 01:24 | |
that huge frame comes from package_def | 01:25 | ||
01:31
alexghacker joined
01:35
jimmy__ joined
01:40
dadada left
|
|||
jimmy__ | .tell timotimo perl6 --profile -e 'my $n = 0; loop { $n = $n +1; if $n == 10000000 { last; } }' also will be nice to inline infix:<+> and infix:<==>, change assign to bind and it also call infix:<==>, I don't know why... | 01:41 | |
yoleaux | jimmy__: I'll pass your message to timotimo. | ||
01:50
dayangkun joined
01:56
jimmy__ is now known as JimmyZ
|
|||
timotimo | er, are you sure the + and == are not being inlined? | 02:03 | |
yoleaux | 01:41Z <jimmy__> timotimo: perl6 --profile -e 'my $n = 0; loop { $n = $n +1; if $n == 10000000 { last; } }' also will be nice to inline infix:<+> and infix:<==>, change assign to bind and it also call infix:<==>, I don't know why... | ||
timotimo | looking at the spesh output it seemed to be inlined, tbh | ||
02:10
dayangkun left
02:14
d^_^b left
02:25
baest left
02:32
baest joined
|
|||
JimmyZ | timotimo: I'm not very sure, but routines TAB shows them have 10000000 Entries, maybe I'm wrong | 02:35 | |
and have 10000000 alloctions, I think esc will help it | 02:36 | ||
adu | *sigh* | 02:40 | |
JimmyZ | why ;) | ||
adu | should I write my next blog post about why PHP sucks? | ||
JimmyZ | oh, there is already too much | 02:41 | |
adu: eev.ee/blog/2012/04/09/php-a-fracta...ad-design/ | 02:42 | ||
adu | JimmyZ: I just read it | ||
JimmyZ | A language without complains means nobody have ever use it, except the author :) | 02:44 | |
adu | I'm just thinking, it people were somehow forced to rewrite wikipedia, wordpress, joomla, etc. I'm sure someone would surely pick perl6 as the implementation language for something | ||
s/it/if/ | |||
JimmyZ | m: if | 02:45 | |
camelia | rakudo-moar cd9001: OUTPUT«===SORRY!=== Error while compiling /tmp/JJTJswExhYUndeclared routine: if used at line 1» | ||
JimmyZ | m: sub if() {}; if | ||
camelia | ( no output ) | ||
adu | I think one reason why PHP is so popular is that it has 50,000 builtins | 02:46 | |
or, if I don't write my next blog entry about PHP, then all the stupid people will be programming in PHP, and all the smart people will use perl6 | 02:47 | ||
JimmyZ | well, PHP does have a well enough manual ;) | 02:48 | |
02:48
sunnavy left
|
|||
adu | I've been revisiting my C parser lately | 02:49 | |
02:49
sunnavy joined
|
|||
adu | my first two attemps was with clang's API and Haskell's lanugage-c package, both failed | 02:50 | |
JimmyZ | most people like stupid camera | ||
adu | but for some reason my perl6 implementation has been the most successful | ||
camera? | |||
JimmyZ | yeah | ||
adu | what are you talking about? | 02:51 | |
02:51
silug left
|
|||
JimmyZ | I meant most people like stupid things :P | 02:51 | |
adu | I think the world would be a better place without PHP | 02:57 | |
or maybe everyone would switch to VB, which would probably be worse | 02:58 | ||
02:59
KCL_ joined
03:00
chenryn joined
|
|||
JimmyZ | since PHP is on the top of 10 popular lang, I think it's well enough to get the work done | 03:01 | |
:) | |||
03:04
silug joined
|
|||
raydiak | kinda like burning fossil fuels is well enough to provide some obscenely huge % of the world's energy...even if it is killing us :) | 03:09 | |
timotimo | JimmyZ: are you sure you're on the very latest moarvm master? | 03:18 | |
03:19
Mso150 joined
03:20
noganex joined
|
|||
JimmyZ | timotimo: yeah | 03:20 | |
timotimo | VB has "on error resume next" which means far less crashes, which makes software much more stable | ||
JimmyZ | This is perl6 version 2014.11-34-gcd9001e built on MoarVM version 2014.11-52-gf94d036 | ||
timotimo | you're right, there's allocations and the profiler doesn't show inlines for + and == | 03:21 | |
03:23
noganex_ left
|
|||
JimmyZ | and JIT-Compiled Frames show 19999985, which is pretty big | 03:23 | |
timotimo | i ought to go to bed | 03:25 | |
feel free to work on this, though :) | |||
03:25
adu left
|
|||
JimmyZ | good night | 03:26 | |
03:29
raiph left
|
|||
timotimo | oh | 03:31 | |
03:31
raiph joined
|
|||
timotimo | if you look at the speshlog, you'll see that infix:<==> is indeed inlined | 03:31 | |
(it's block 21 in my case) | |||
and it looks like infix:<+> is BB 19 | 03:32 | ||
it's probable that the inliner just straight up inlines the "profiler entered frame" and "profiler exited frame" along with the rest of the code and some flag needs to be updated to set the type of "frame enter" as "jit inlined" | 03:33 | ||
o/ | |||
03:36
konsolebox joined
03:52
Mso150 left
03:57
prime left
04:03
rurban left
04:06
sjn_ joined
04:07
vendethiel- joined,
kshannon_ joined
04:09
prime joined,
hugme left,
nine left,
kshannon left,
nine joined,
sjn left,
vendethiel left
04:10
hugme joined,
ChanServ sets mode: +v hugme,
kaare_ joined,
nine left
04:11
nine joined,
rmgk left,
rmgk joined
04:16
chenryn left
04:19
cognominal left,
cognominal joined
04:24
anaeem1 joined
04:25
anaeem1 left
04:26
anaeem1 joined
04:29
raiph left
04:54
prime left
04:58
prime joined
05:00
kaleem joined
05:13
kaare_ left
05:14
acrussell left
05:17
chenryn joined
05:21
PZt joined
05:22
chenryn left
05:32
silug left
05:33
kurahaupo left
05:34
kaare_ joined
05:35
mr-foobar left
05:37
silug joined,
kaleem left
05:56
telex left
05:58
telex joined
05:59
JimmyZ left
06:01
JimmyZ joined,
JimmyZ is now known as Guest39489
06:06
prime left
06:08
chenryn joined
06:10
Guest39489 is now known as JimmyZ_
06:20
konsolebox left
06:24
alexghacker left
06:41
kurahaupo joined,
alexghacker joined
|
|||
masak | mornings, #perl6 | 06:45 | |
06:47
[Sno] left
|
|||
TimToady | o/ | 06:49 | |
JimmyZ_ | \o | 07:02 | |
07:06
gfldex joined
07:08
kaleem joined
07:14
lizmat left
07:46
jluis joined
07:59
FROGGS joined
|
|||
jnthn | Note that inlined entries to a routien still count as entries | 08:12 | |
But it should say they were inlined too | |||
(e.g. it counts the separately) | |||
08:16
darutoko joined
|
|||
moritz | \o | 08:20 | |
08:21
zakharyas joined
|
|||
masak | o/, moritz | 08:21 | |
08:23
gfldex left
|
|||
jnthn | timotimo: See github.com/MoarVM/MoarVM/blob/mast...ine.c#L695 | 08:24 | |
08:31
ptc_p6 joined
08:33
rurban joined
08:44
Ugator joined
08:46
virtualsue joined
08:54
bjz joined
08:55
[Sno] joined,
oetiker left
08:57
lizmat joined
08:59
dwarring left
|
|||
timotimo | jnthn: the profenter happens before any phi nodes? | 09:02 | |
09:02
Akagi201 joined
|
|||
timotimo | or do inlines never end up beginning with phi nodes? | 09:03 | |
lizmat | good *, #perl6 from the Patch -p2 Hackathon in Lyon | 09:04 | |
moritz | \o lizmat, have fun stripping two slashes :-) | 09:05 | |
lizmat assumes she has to backlog ? | 09:06 | ||
moritz | lizmat: nope :-) | ||
09:06
anaeem___ joined
|
|||
moritz | lizmat: patch -p1 strips one directory and slash from the path to find the file to patch | 09:06 | |
lizmat | -p2 I guess | ||
moritz | yes | ||
lizmat | aha | ||
ok, gotcha | |||
09:06
anaeem___ left
|
|||
lizmat | fwiw, this is the 3rd Patch Hackathon, hence -p2 :-) | 09:07 | |
09:07
anaeem1 left,
anaeem___ joined
|
|||
moritz | the know that counting starts at 0 \o/ | 09:07 | |
*they | 09:10 | ||
09:13
lizmat_ joined
|
|||
lizmat_ | (local wifi not reliable, switched to 3G backup) | 09:13 | |
09:13
sjn_ is now known as sjn
|
|||
sjn | lizmat_: mine's a bit spotty, but not too horrible | 09:14 | |
lizmat_ | well, I'm not going to be in the way anymore... :-) | ||
09:17
lizmat left,
lizmat_ left,
lizmat joined
09:18
salv0 left
|
|||
raydiak | m: say ~dir '/' | 09:20 | |
camelia | rakudo-moar cd9001: OUTPUT«//opt //sys //lost+found //success //run //sbin //lib //home //backup //bin //.readahead //usr //srv //etc //media //lib64 //boot //selinux //tmp //mnt //dev //var //root //proc» | ||
raydiak | ^ "//"? | ||
lizmat | ah... intriguing | ||
lizmat checks | |||
JimmyZ_ | m: say dir '/' | 09:21 | |
camelia | rakudo-moar cd9001: OUTPUT«"//opt".IO "//sys".IO "//lost+found".IO "//success".IO "//run".IO "//sbin".IO "//lib".IO "//home".IO "//backup".IO "//bin".IO "//.readahead".IO "//usr".IO "//srv".IO "//etc".IO "//media".IO "//lib64".IO "//boot".IO "//selinux".IO "//tmp".IO "//mnt".IO "//d…» | ||
raydiak | also..."dir '/'" in restricted setting? | ||
JimmyZ_ | m: say dir '/tmp' | ||
camelia | rakudo-moar cd9001: OUTPUT«"/tmp/snagnTkxj3".IO "/tmp/DbuAo6RGPk".IO "/tmp/JFc_J7THcQ".IO "/tmp/DFYMfbFSny".IO "/tmp/m376NsGWCC".IO "/tmp/uBy0gsXhli".IO "/tmp/PKK8IPgdEf".IO "/tmp/KeRJUfYHwI".IO "/tmp/aWxLmWIQfn".IO "/tmp/9SrcxE6K07".IO "/tmp/t_7DrhIter".IO "/tmp/S_zGqXwlar".IO "/tm…» | ||
09:21
salv0 joined
|
|||
lizmat | moritz: seems I do need to strip two slashes | 09:23 | |
:-( | 09:24 | ||
checking what the newio branch does | |||
raydiak: could you rakudobug this ? | |||
raydiak | lizmat: sure, on it | 09:25 | |
lizmat | hmmm..... newio has the same issue :-( | ||
timotimo | m: say dir " " | 09:26 | |
camelia | rakudo-moar cd9001: OUTPUT«Failed to get the directory contents of '/home/camelia/ ': chdir failed: Unknown system error in method gist at src/gen/m-CORE.setting:13776 in sub say at src/gen/m-CORE.setting:16516 in block <unit> at /tmp/9aWM8Xgo39:1» | ||
timotimo | m: say dir "" | ||
camelia | rakudo-moar cd9001: OUTPUT«"/home/camelia/rakudo-inst-2".IO "/home/camelia/evalbot".IO "/home/camelia/.viminfo".IO "/home/camelia/rakudo-inst-1".IO "/home/camelia/.bashrc".IO "/home/camelia/.ssh".IO "/home/camelia/std".IO "/home/camelia/rakudo-star-2014.09.tar.gz".IO "/home/camelia/…» | ||
huf | that's a bit odd... | ||
09:30
bjz left
|
|||
raydiak | #123308 | 09:31 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123308 | ||
09:31
lizmat left
|
|||
huf | link also has two slashes :D | 09:31 | |
raydiak | hah true | 09:32 | |
09:32
Mso150 joined
09:34
lizmat joined
|
|||
raydiak | lizmat: in case your spotty connection caused you to miss it: #123308 | 09:35 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123308 | ||
JimmyZ_ | timotimo: I saw a spesh log, some BBs only has a return, but has a lot of phi. | 09:37 | |
IIRC | |||
and perl6 tools/graph_spesh.p6 test.log > test.svg doesn't work :( | 09:38 | ||
09:39
Ven joined
|
|||
Ven | o/, #perl6 | 09:39 | |
raydiak | \o Ven | 09:40 | |
09:41
Alina-malina left
09:42
lizmat left
09:46
lizmat joined
|
|||
jnthn | timotimo: Yeah, think it should... | 09:47 | |
lizmat | p: say dir " " | 09:50 | |
camelia | rakudo-parrot cd9001: OUTPUT«Failed to get the directory contents of '/home/camelia/ ': readdir failed: No such file or directory in method gist at gen/parrot/CORE.setting:13715 in method gist at gen/parrot/CORE.setting:1150 in sub say at gen/parrot/CORE.setting:16424…» | ||
jnthn | timotimo: Typically the first BB starts with parameter handling, and you'd not end up with a branch into that.. | ||
lizmat | j: say dir " " | ||
camelia | rakudo-jvm cd9001: OUTPUT«Can't open perl script "/home/camelia/jvm-rakudo/eval-client.pl": No such file or directory» | ||
lizmat | (different code paths for different backend :-( ) | 09:51 | |
jnthn | If you think it may be happening, easy to add a check into the inline code, then build stuff and see if it's hit. | ||
09:53
dakkar joined
|
|||
raydiak | \o good night #perl6 | 09:58 | |
09:58
kjs_ joined
|
|||
lizmat | raydiak o/ | 10:06 | |
hmmm..... t/spec/S17-procasync.kill.t is reliably hanging for me now :-( | 10:11 | ||
ah no, it just got unbelievably slow | 10:12 | ||
ah, I realize now: many more signals to check than before .... | 10:13 | ||
and all timing out because they fail :-( | |||
dalek | kudo/nom: 456d8f0 | (Elizabeth Mattijsen)++ | t/spectest.data: Remove t/spec/S17-procasync/kill.t for now :-( |
10:14 | |
10:22
woolfy joined
10:25
JimmyZ_ left
|
|||
dalek | kudo/nom: 482cc32 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Fix for #123308, raydiak++ for spotting |
10:25 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123308 | ||
10:28
pecastro joined
|
|||
dalek | kudo/newio: cd9001e | (Timo Paulssen)++ | src/Perl6/Actions.nqp: loop { } doesn't need to inspect lexical "True" each iteration |
10:30 | |
kudo/newio: 456d8f0 | (Elizabeth Mattijsen)++ | t/spectest.data: Remove t/spec/S17-procasync/kill.t for now :-( |
|||
kudo/newio: 482cc32 | (Elizabeth Mattijsen)++ | src/core/IO/Path.pm: Fix for #123308, raydiak++ for spotting |
|||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123308 | ||
dalek | kudo/newio: 6c09d1e | (Elizabeth Mattijsen)++ | / (3 files): Merge branch 'nom' into newio |
||
10:31
zakharyas left
|
|||
Ven | Erm, do we have some kind of WSDL client? | 10:33 | |
Ven would very much rather use p6... | |||
moritz | Ven: my experience with WSDL and SOAP is that most libraries suck so much that you want to select your language by library, not by language preference | 10:34 | |
Ven: and no, I don't think we have WSDL stuff for p6 yet | |||
Ven | moritz: and to that you can add the fact that people suck at making nice external APIs. | ||
"hey, you're always sending us an array of values, but we'll give you a different result type depending if you sent us 0, 1 or more IDs to query" | 10:35 | ||
moritz | What's an array? it's all XML! :-) | ||
Ven | <foo></foo><foo></foo> is an array of foo. But yeah. | ||
10:35
Alina-malina joined
|
|||
Ven | this is why we can't have nice things. | 10:36 | |
moritz | and how do you make an XML array of one element? | ||
moritz loves JSON | |||
Ven | you just *know* you want an array. | 10:37 | |
Describe your effin' protocol and stick to it. | |||
moritz | sounds like work :-) | 10:40 | |
FROGGS | sounds like $work | 10:41 | |
huf | you can always stuff json into xml :D | ||
Ven | right, it's $work. and it's terrible | 10:43 | |
why do I have to feel so miserable every single time I want to transfer data over networks | |||
tadzik | sounds like your tools make it painful | 10:44 | |
tadzik reminds #perl6 about github.com/perl6/mu/blob/master/mi...4/schedule | |||
10:45
lucas_ joined
|
|||
moritz | Ven: fwiw we're now experimenting with rabbitmq at work. Currently it doesn't feel very painful; will see how it pans out | 10:46 | |
lucas_ | lizmat: Hi. What about rootdir instead of dir-sep? I know that in the end it means the same thing... | 10:47 | |
moritz | do multi-volume path schemes have a root dir? | 10:48 | |
lizmat | lucas_: that was just a quick fix... that part of the code I hope to have obsoleted soon | ||
moritz: what do you mean with multi-volume path schemes ? | |||
moritz | lizmat: windows for example, where paths start with a volume | 10:49 | |
Ven | moritz: right, rabbitmq is pretty okay. The issue is – I don't have a choice here. | ||
lizmat | C:/foo | ||
moritz: is what you mean ? | |||
moritz | lizmat: yes | ||
lizmat | should have that covered | ||
10:52
Mso150 left
|
|||
FROGGS guesses that the use of mro::invalidate_all_method_caches() points to a bad design... | 10:52 | ||
10:53
erkan joined,
erkan left,
erkan joined
|
|||
Ven reads the p6-one-liners PR and *g*s | 11:01 | ||
11:02
denis_boyun_ joined
11:17
Ven left
11:32
bjz joined
11:39
anaeem1 joined
11:43
anaeem___ left
11:46
rindolf joined
11:51
anaeem1 left
11:52
[Sno]_ joined,
anaeem1 joined
11:54
[Sno] left,
[Sno]_ is now known as [Sno],
anaeem1 left
11:55
anaeem1 joined
11:56
fhelmberger joined
11:58
chenryn left
12:01
Alina-malina left
12:02
Alina-malina joined
12:03
pmurias joined
|
|||
pmurias | arnsholt: ping | 12:03 | |
12:07
ptc_p6 left
|
|||
lucas_ | Do you people like wikis or are averse to the idea? What is your opinion about having a MediaWiki instance installed on wiki.perl6.org? Do you think it would get abandoned and spam-filled? I know about the Socialtext wiki, and I remember existing a git-based wiki also. There's even a Perl 6 wiki on Wikia. But it's not the same experience of having a... MediaWiki. It could get used for project management, sorting out ideas, etc. | 12:07 | |
tadzik | hmm, we had a wiki somewhere | ||
not sure what happened to it | 12:08 | ||
jnthn | Wikis have always tended to fall into disrepair | ||
lucas_ | jnthn: I understand this is a concern... | 12:09 | |
jnthn | For project management things, it's about the folks being managed. | ||
And markdown files or similar kept in the Git repo alongside the project have tended to work out better. | 12:10 | ||
moritz | lucas_: I agree with jnthn. We had a gitit wiki on wiki.perl6.org, it became abandonded and technical debt to run | 12:11 | |
12:13
smls joined
|
|||
dalek | kudo/nom: 1e4fe4a | (Elizabeth Mattijsen)++ | src/core/Failure.pm: Simplify Failure creation I assume the original code is very old and predates any implicit BUILD functionality. |
12:14 | |
lizmat | moritz: any comments on ^^^ ? | ||
jnthn | Yeah. It's not even that I dislike wikis...I have one to keep personal planning etc in and other such things... But to be useful they need a purpose and target audience who actually want to use it to get something done. And we've not found a niche so far where a wiki filled that. | 12:15 | |
moritz | lizmat: looks sane | ||
smls | On my system, «perl6 -e '[*] 1..10000'» takes 0.5 seconds, and «perl6 -e 'say [*] 1..10000'» takes 2.7 seconds. | 12:16 | |
y u so slow, `say`? | |||
jnthn | I/O bound? :) | ||
lizmat: It'll just be slower, that's all. | |||
lizmat: A lot of our custom BUILD things are hot-path. | 12:17 | ||
But if y ou're greating a gazillion failures, well, that's probably a bit of a design failure... :P | |||
12:17
kaleem left
|
|||
lizmat | well, that was my thought also | 12:17 | |
moritz | smls: maybe the [*] in sink context is optimized out? | ||
lizmat | warnings, are they failures ? | 12:18 | |
moritz | nope | ||
smls | moritz: I don't think so... it's still faster/slower for smaller/bigger numbers... | ||
moritz | smls: maybe the stringification of the result? | 12:19 | |
Timbus | its the .gist | ||
moritz | m: say $before = now; [*] 1..10000; say now - $before | ||
camelia | rakudo-moar 482cc3: OUTPUT«===SORRY!=== Error while compiling /tmp/NeHF3xniZrVariable '$before' is not declaredat /tmp/NeHF3xniZr:1------> say $before⏏ = now; [*] 1..10000; say now - $before expecting any of: postfix» | ||
moritz | m: my $before = now; [*] 1..10000; say now - $before | ||
camelia | rakudo-moar 482cc3: OUTPUT«0.14780099» | ||
moritz | m: my $before = now; ~[*] 1..10000; say now - $before | ||
camelia | rakudo-moar 482cc3: OUTPUT«WARNINGS:Useless use of "~" in expression "~[*] 1..10000" in sink context (line 1)1.83699402» | ||
moritz | m: my $before = now; ([*] 1..10000).gist; say now - $before | 12:20 | |
camelia | rakudo-moar 482cc3: OUTPUT«1.8439231» | ||
Timbus | neat warning | ||
moritz | aye | ||
thanks :-) | |||
jnthn | Hm, so it's not say so much as the stringification | 12:21 | |
I wonder what makes that slow... | |||
smls | Ok to be fair, it looks like that number has 35661 digits... :P | ||
moritz | m: say ([*] 1..10000).chars | 12:22 | |
camelia | rakudo-moar 482cc3: OUTPUT«35660» | ||
moritz | p: my $before = now; ([*] 1..10000).gist; say now - $before | ||
camelia | rakudo-parrot 482cc3: OUTPUT«2.0447831» | ||
12:22
woolfy left
|
|||
jnthn | Sure, but I wonder if it's spending the time in libtommath producing the chars, or in something else that is just overhead. | 12:22 | |
FROGGS | p: my $before = now; ([*] 1..10000).Str; say now - $before | ||
camelia | rakudo-parrot 482cc3: OUTPUT«2.0437427» | 12:23 | |
dalek | kudo/newio: 1e4fe4a | (Elizabeth Mattijsen)++ | src/core/Failure.pm: Simplify Failure creation I assume the original code is very old and predates any implicit BUILD functionality. |
||
kudo/newio: 942ffba | (Elizabeth Mattijsen)++ | src/core/Failure.pm: Merge branch 'nom' into newio |
|||
FROGGS | m: my $before = now; ([*] 1..10000).Str; say now - $before | ||
camelia | rakudo-moar 482cc3: OUTPUT«1.8593922» | ||
12:23
lizmat left
|
|||
jnthn | m: my $before = now; (INIT [*] 1..10000).Str; say now - $before | 12:23 | |
camelia | rakudo-moar 482cc3: OUTPUT«1.64522877» | ||
12:23
KCL joined
12:24
SteppenII joined
|
|||
jnthn | m: my $before = now; nqp::tostr_I(INIT [*] 1..10000); say now - $before | 12:24 | |
camelia | rakudo-moar 482cc3: OUTPUT«1.6463615» | ||
jnthn | yowser :) | ||
Well, no silly Rakudo overhead to blame then. | |||
I need a C level profile to see deeper, I think. | 12:25 | ||
And I'm on $teaching-center machine at the moment, so no tools for that :) | |||
Well, or tools but no Rakudo build :) | |||
FROGGS | so you need to C through the surface of the C.... I C | ||
and I have a quite pressing project to finish at $work... so I can't be that active these days :o( | 12:26 | ||
12:26
KCL_ left
|
|||
colomon | smoker run hung on 05_laggyrequest.t | 12:27 | |
12:28
JimmyZ joined,
JimmyZ is now known as JimmyZ_
12:29
lizmat joined
|
|||
moritz | m: my $i = [*] 1..10000; say log($i) / log(2) | 12:32 | |
camelia | rakudo-moar 482cc3: OUTPUT«Inf» | ||
moritz | m: my $i = [*] 1..10000; $i.Str.chars / log(2) * log(10) | 12:33 | |
camelia | ( no output ) | ||
moritz | m: my $i = [*] 1..10000; say $i.Str.chars / log(2) * log(10) | ||
camelia | rakudo-moar 482cc3: OUTPUT«118459.955863683» | ||
jnthn | colomon: hah, laggy indeed... | 12:36 | |
12:39
woolfy joined
|
|||
arnsholt | pmurias++ # Snake stuff | 12:45 | |
jnthn: What're the cases where you need nqp::takeclosure? | |||
12:46
rindolf left
12:48
SteppenII left
12:56
lucas_ left
|
|||
jnthn | arnsholt: When you need to manually control taking closure clones | 13:00 | |
13:01
prime joined
|
|||
jnthn | arnsholt: Taht is, making a copy of a code-ref that closes over teh curent context | 13:01 | |
arnsholt: But if you are using the blocktypes declaration and immediate, code-gen inserts things for you pretty neatly | |||
So it's only if you're using immediatestatic/declarationstatic that you need to manually manage it. | |||
dalek | kudo/newio: 8bbcb2f | (Elizabeth Mattijsen)++ | src/core/IO.pm: Fix dir "/" (for new code) |
13:03 | |
13:03
anaeem1 left
|
|||
arnsholt | Ah, right. I only have immediate and declaration blocks, so I should be good then. Cheers! | 13:03 | |
13:07
torbjorn joined
|
|||
lizmat | FROGGS: am I correct in seeing that PIO doesn't have an accessor for nqp::setinputlinesep ? | 13:10 | |
there is no PIO.inputlinesep? | 13:11 | ||
(like there appears to be a PIO.encoding ?) | |||
pmurias | arnsholt: having print would be great for writing tests that can be run both on snake and python3 | ||
FROGGS | lizmat: I'm not sure... but you should be able to see what nqp::setinputlinesep does in nqp/srv/vm/parrot/...Ops | 13:16 | |
lizmat: maybe it maps to PIO.something | 13:17 | ||
jnthn | arnsholt: Yeah, trust it until it busts :) | 13:20 | |
lizmat | FROGGS: not just talking about parrot | ||
I'll just keep it as an attribute in P6 space for now | |||
(like it is now) | |||
arnsholt | pmurias: Yeah, that's percolating to the top of my queue now, getting a setting library started | 13:21 | |
dalek | ake: c3ba195 | (Pawel Murias)++ | / (3 files): Support defining functions with zero parameters. Add a simple test for that. |
||
arnsholt | Also, that commit you just pushed =D | 13:22 | |
pmurias++ | |||
masak | arnsholt: I'm surprised you extend Python's grammar just to be able to do `nqp::print(a)`. why not just `nqp.print(a)`? | 13:24 | |
13:25
gtodd left
|
|||
arnsholt | Specifically because it's invalid syntax, actually | 13:25 | |
13:26
gtodd joined
|
|||
arnsholt | An object nqp is probably not likely, but I wanted to mark it as clearly non-standard Python | 13:27 | |
13:29
guru joined,
guru is now known as Guest76217
13:30
Guest76217 is now known as ajr_,
rindolf joined
13:32
virtualsue_ joined
|
|||
pmurias | masak: and nqp.print(a) could conflict with a nqp object | 13:33 | |
13:33
virtualsue left,
virtualsue_ is now known as virtualsue
|
|||
torbjorn | how do you match a literal # in a token in a grammar? | 13:33 | |
arnsholt | '#' | ||
13:34
erkan left,
kaare_ left
|
|||
torbjorn | ah, thanks | 13:34 | |
arnsholt | \# should work too I think, but I prefer quoting | ||
torbjorn | \# doesnt seem to work | ||
masak | arnsholt, pmurias: I guess what I'm saying is why the non-standard syntax *for something that already has syntax support in Python* (package lookup) was felt to be necessary. to me, it feels like a nonstandard extension made lightly. | 13:35 | |
in NQP, the syntax is not special. | 13:36 | ||
nor in Perl 6. | |||
arnsholt | That's true, I guess. But when I implemented this, my parser didn't even know about objects | ||
masak | it would be a bit like having the syntax be `nqp->print(a)` in Perl 6 code :) | 13:40 | |
13:41
Alula left
|
|||
lizmat | Q: would it make sense to consider STDIN/STDOUT/STDERR pipes? | 13:41 | |
masak | lizmat: no, I don't think so. because pipes are defined in terms of those. | 13:42 | |
lizmat: STDIN/STDOUT/STDERR are what Unix pipes use to connect to each other. | |||
lizmat | let me rephrase the question: | 13:43 | |
masak | :) | ||
lizmat | if we would have an IO::Pipe object, would STDIN/STDOUT/STDERR be an IO::Pipe or an IO::Handle ? | ||
arnsholt | masak: I dunno. It'll be magic under the hood either way, and I do think I want it to be apparent that it is magical | ||
(Magical in the sense that the symbols aren't looked up via a package or object) | 13:44 | ||
masak | arnsholt: it's fine, we can agree to disagree on this. to me it's more elegant to use a language's own constructs to express something if that construct is sufficient. | ||
lizmat: what else would be an IO::Pipe object? | 13:45 | ||
lizmat | what pipe() returns | ||
if you want to be deprecatable: what open( :p ... ) returns | 13:46 | ||
masak `man pipe` | |||
lizmat | I think they share the same functionality | ||
masak `perldoc -f pipe` | 13:47 | ||
nine | What differentiates an IO::Pipe from any other handle? | 13:49 | |
masak | way I read those pages, a pipe has two ends, each of which is a filehandle. | ||
and in my view, $*IN and $*OUT are filehandles, not pipes. | 13:50 | ||
nine | masak: that's exactly what a pipe is | ||
masak | so I would definitely have $*IN/$*OUT as IO::Handle. | ||
lizmat | nine: well, I don't think pipes are seekable | ||
Mouq wishes a happy Thanksgiving to other Americans in #perl6 | 13:51 | ||
nine | lizmat: that's true for many handles, including file handles that for example point to special block devices | ||
lizmat | nine: good point | 13:52 | |
13:55
Alula joined
|
|||
masak | m: say "" | 13:56 | |
camelia | rakudo-moar 1e4fe4: OUTPUT«» | ||
masak | m: sub MAIN():say "OH HAI" | ||
camelia | rakudo-moar 1e4fe4: OUTPUT«===SORRY!=== Error while compiling /tmp/x4BTSn_BcWMissing blockat /tmp/x4BTSn_BcW:1------> sub MAIN():⏏<EOL> expecting any of: colon pair» | ||
masak | m: sub MAIN();say "OH HAI" | ||
camelia | rakudo-moar 1e4fe4: OUTPUT«===SORRY!=== Error while compiling /tmp/A5naXHrUhHMissing blockat /tmp/A5naXHrUhH:1------> sub MAIN()⏏; expecting any of: statement list prefix or term prefix or meta-prefi…» | ||
carlin | accessing a perl6 cgi script is putting "use of uninitialized value %ENV of type Any in string contenxt in any at sec/gen/m-ModuleLoader.nqp:363" in the webserver error log | 13:57 | |
masak submits NYI rakudobug | |||
Mouq | masak: What's that supposed to do? | ||
masak | Mouq: whole-file MAIN only sub. | 13:58 | |
Mouq | Ooo | ||
masak | S06:3408 | ||
synopsebot | Link: perlcabal.org/syn/S06.html#line_3408 | ||
Mouq | Could be useful for one-liners too... | 13:59 | |
timotimo | how do you pass already-opened file descriptors to a child process in perl5? | 14:01 | |
we don't have that feature in perl6 yet, i believe | |||
also, creating an IO handle from an already opened file descriptor is missing | |||
torbjorn | im writing a grammar to parse this text: fpaste.scsys.co.uk/447383 # ive written this: fpaste.scsys.co.uk/447385 # for some reason i can't get ^^ .+ \n to match a random line | 14:02 | |
FROGGS | timotimo: OpenSSL would also make use of passing file descriptors to it... | 14:03 | |
torbjorn | also judging from Grammar::Tracer it only finds the first card | ||
14:03
oetiker joined
|
|||
FROGGS | timotimo: so it would be awesome to retrieve the fd from an IO::Socket... | 14:03 | |
masak | re #117161, I think we could just trigger an error message if the number has more than 5 digits. and then we can revisit that decision once someone comes to us *complaining* about their *legitimate* use of a million numbered capture groups. | 14:05 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=117161 | ||
masak | ;) | ||
I know we don't do arbitrary limits, but... come on. | |||
at least do a million named captures. | 14:06 | ||
14:07
kurahaupo left
|
|||
carlin | when rakudo gives a warning about something in generated nqp are the linenumbers usually accurate? | 14:07 | |
dalek | atures: 4ccfddd | Matt++ | features.json: Matching streams link to spec I wondered what "Matching streams" meant and found it in the spec |
||
14:08
prime left
|
|||
smls | pmichaud's blog post last month said that the GLR roadmap was, to complete most of it by Thanksgiving. | 14:08 | |
Any update? Was it postponed? | |||
Ulti | erk who gave me commit :S though that is probably harmless enough | ||
FROGGS | carlin: we used to have an off-by-one, but nowadays it should be correct | 14:10 | |
timotimo | torbjorn: did you know that . also matches newlines in perl6 regexes? | ||
FROGGS | carlin: though, some numbers of the backtrace are instructions, not lines | 14:11 | |
lizmat | smls: pmichaud has stated he would work on it this week | 14:12 | |
timotimo | torbjorn: and "token" implies "no backtracking", so the greedy .+ will end up swallowing all stuff until the end and then might not find a \n | ||
FROGGS | torbjorn: you can try /\N+ \n/ for example | ||
timotimo | i suggest first replacing the "token" declaratios with "regex" and seeing what it behaves like then | ||
torbjorn | ah i see how that would change things | ||
14:13
prime joined
|
|||
JimmyZ_ | timotimo: irclog.perlgeek.de/perl6/2014-11-27#i_9728011 # in case you miss it :) | 14:13 | |
it use nqp code as perl 6 module, look like | 14:14 | ||
timotimo | JimmyZ_: you have to spesh_log.p6 excerpt | dot -Tsvg > foobar.svg | ||
JimmyZ_ | oh, so what does graph_spesh.p6 do? | ||
timotimo | it turns a piece of spesh log into graphviz' dot language | 14:15 | |
JimmyZ_ | where is spesh_log.p6? | ||
timotimo | in moarvm/tools | 14:16 | |
sorry, spesh_log.p6 was a type | |||
typo | |||
i meant graph_spesh | |||
i suppose it ought to get a MAIN and usage as well as helpful comments | |||
masak | are we optimizing away routine-ending `return`s yet in Rakudo? | 14:17 | |
colomon | now /07_chunkedrequestecho.t hung | ||
JimmyZ_ | timotimo: but `spesh_log.p6 excerpt` outputs errors :( | 14:18 | |
timotimo | yeah. like "register blah blah has no writer!"? | ||
JimmyZ_ | it said it can't find MAST::Ops .. | 14:19 | |
timotimo | oh, yeah | ||
you may need to run Configure.pl again | |||
14:19
sorear left
|
|||
timotimo | er ... actually it's update_oplist or what it's called | 14:19 | |
JimmyZ_ | yeah, I ran it | ||
timotimo | update_ops.p6 | 14:20 | |
14:20
chenryn joined
14:21
sorear joined
|
|||
carlin | what's the easiest way to print a string to stderr in nqp? | 14:21 | |
JimmyZ_ | but Mast::Ops is a nqp module? | 14:22 | |
timotimo | JimmyZ_: it's a perl6 module that gets created in tools/lib | 14:23 | |
i found it very hard to get at the symbols in the actual nqp module MASTOps | |||
so i decided it'd be easier to just generate a perl6 module in addition to all the other files from update_ops.p6 | 14:24 | ||
JimmyZ_ | so I need to run update_ops.p6 manually before I run graph_spesh.p6 | 14:25 | |
timotimo | yes, but only once ever | ||
JimmyZ_ | ok | ||
timotimo | and if you have a fresh checkout of moarvm, i think it'll be done for you | 14:26 | |
JimmyZ_ | I does have a lastest moarvm | ||
carlin | ah, getstderr and sayfh worked | 14:27 | |
timotimo | "fresh checkout" means the oplist.txt exists, but not the files generated from it | ||
so the makefile would call update_ops for you ... i think? | |||
actually, that makes no sense | 14:28 | ||
colomon | guessing the hangs were either Coro::Simple or HTTP::Server::Async (both new fails today) | ||
timotimo | since update_ops.p6 is a perl6 script | ||
JimmyZ_ | oh, so I didn't have perl6 in tha PATH | ||
*the | 14:29 | ||
14:29
pecastro left,
pmurias left
|
|||
JimmyZ_ | .\install\bin\perl6.bat tools\update_ops.p6 | 14:30 | |
Mouq | Oh, lizmat, did you see irclog.perlgeek.de/perl6/2014-11-26#i_9721007 ? | ||
JimmyZ_ | use of uninitialized value of type Any in string context in any !cursor_init at gen\moar\stage2\QRegex.nqp:678 | ||
lizmat | Mouq: missed that | 14:31 | |
timotimo | should that be slurp-rest? | ||
lizmat | will look at it now | 14:32 | |
14:32
chenryn left
|
|||
Mouq | lizmat++ | 14:33 | |
Mouq & | |||
JimmyZ_ | I think it is missing unbox_s in gen\moar\stage2\QRegex.nqp:678? | 14:36 | |
14:36
chenryn joined
14:40
chenryn left
14:44
kaare_ joined
|
|||
JimmyZ_ | looks like not :( | 14:45 | |
14:50
Mouq left
14:53
[Sno]_ joined
14:54
[Sno] left,
[Sno]_ is now known as [Sno]
14:58
telex left
15:00
telex joined
15:01
rindolf left
15:04
Mouq joined,
virtualsue_ joined
15:05
virtualsue left,
virtualsue_ is now known as virtualsue
15:16
chenryn joined
15:19
chenryn left
15:26
chenryn joined
15:31
pecastro joined
15:35
rindolf joined
15:38
lizmat left,
lizmat joined
|
|||
dalek | kudo/nom: 5823369 | (Elizabeth Mattijsen)++ | src/core/IO/ArgFiles.pm: Fix deprecation warnings |
15:39 | |
kudo/nom: 70df096 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: Fix "slurp", spotted by Mouq++ |
|||
lizmat | Mouq: ^^^ | ||
jnthn | .win 11 | ||
oops :) | |||
FROGGS | wow, jnthn++'s secret project is Win11!! | 15:40 | |
ugexe | i've got a fork of panda that will run a second test on a module 'without' blib *if* the tests fail 'with' blib. this means you can create a list of modules that pass their tests but have compilation problems. should this data be sent with reporter, and if so should it just be like $bone.test-passed-precomp = True? | ||
jnthn | FROGGS: Shhhhh! | 15:41 | |
FROGGS | :P | ||
jnthn | Or I'll need a new secret project for FOSDEM! | ||
:P | |||
FROGGS | *g* | 15:42 | |
colomon | lizmat++ | ||
15:43
pecastro left
|
|||
dalek | kudo/newio: 73b2124 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Adapted merge |
15:44 | |
ast: 3c44a25 | (Elizabeth Mattijsen)++ | S32-io/slurp.t: Fix one deprecation warning |
15:45 | ||
15:46
alexghacker left
|
|||
smls | lizmat: I remember a few months ago, you were trying to come up with a good way to re-use the same `stat` system call for multiple file test operations. What system did you end up designing/implementing? | 15:50 | |
15:50
pecastro joined
|
|||
lizmat | none... | 15:50 | |
the stat buffer is not available to Perl6 or nqp at the moment (afaik) | 15:51 | ||
15:51
alexghacker joined
|
|||
smls | Did you consider adding a (IO, Mu) overload for ~~ that caches a `stat`, then dispatches to normal ~~, and then invalidates the cache? | 15:52 | |
That would allow things like «"foo".IO ~~ :r & :w» to use the same `stat`, since Mu would take the junction as one thing, right? | 15:53 | ||
15:55
pecastro left
|
|||
smls | It might be slightly too magical for some people's tastes, but I think "a single ~~ on an IO reuses the same stat" would be a more contained & predictable rule than "file tests within n milliseconds of each other use the same stat", which is just a race condition waiting to happen. | 15:55 | |
lizmat | smls: I added the .rw and .rwx methods instead | 15:57 | |
but even then they don't share the same stat buffer (well, not yet anyway) | |||
rurban | I'm implementing now the qrpa optimizations into parrot rpa proper. so that qrpa can be removed. and sorting parent PMC (from threads) will also work better. | 15:58 | |
16:06
pecastro joined
16:08
JimmyZ_ left
16:09
[Sno]_ joined
16:10
[Sno] left,
[Sno]_ is now known as [Sno],
kaleem joined
|
|||
dalek | kudo/nom: 2b2857d | (Elizabeth Mattijsen)++ | src/core/IO.pm: We don't need no Junctions :-) |
16:11 | |
16:14
[Sno]_ joined,
kaleem left
16:15
[Sno] left,
[Sno]_ is now known as [Sno]
|
|||
TimToady | at the precaffeine moment, I'm thinking an IO should just stat once implicitly, then never again; subsequent stats would be done with a .stat mutator or so that just returns the same IO with a new statbuffer | 16:24 | |
16:24
jluis left
|
|||
TimToady | which you could use explicitly the first time too, if you're nervous | 16:24 | |
this assumes that most uses of a given statbuf are one-shot | 16:25 | ||
16:26
chenryn left
|
|||
TimToady is not sure how to work lstat into the picture though | 16:26 | ||
TimToady tries caffeine | |||
16:28
denis_boyun_ left
16:42
gfldex joined
|
|||
lizmat | TimToady: I would be in favour of that, but I don't see a way to make this work with the current state of nqp ops | 16:42 | |
TimToady | you can't call the POSIX library with nqp? :) | 16:44 | |
not everything has to be an nqp op... | |||
lizmat | I'll leave that discussion up to you and jnthn :-) | 16:46 | |
16:50
FROGGS left
|
|||
lizmat | timotimo might know this: | 16:56 | |
if I pass a uncontainered nqp object from nqp::open e.g | 16:57 | ||
as a named parameter to a sub/method | |||
is there something special I should do? | |||
seems like I need to decont it on the receiving end | |||
(as passing it will automatically put a container around it, no?) | 16:58 | ||
16:59
anaeem1_ joined
|
|||
dalek | kudo/newio: 5823369 | (Elizabeth Mattijsen)++ | src/core/IO/ArgFiles.pm: Fix deprecation warnings |
17:05 | |
rakudo/newio: 70df096 | (Elizabeth Mattijsen)++ | src/core/io_operators.pm: | |||
rakudo/newio: Fix "slurp", spotted by Mouq++ | |||
17:05
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
lizmat | sorry, dalek | 17:06 | |
lizmat just did github.com/rakudo/rakudo/commit/86...c23f6c698d | 17:08 | ||
17:09
virtualsue left
|
|||
lizmat | and github.com/rakudo/rakudo/commit/56...a6df5467ba | 17:09 | |
lizmat hopes that these two commits will be helpful to jnthn in his quest for OS X fixings | |||
17:12
Mouq left
17:31
spider-mario joined
17:32
alexghacker left
17:35
pecastro left
|
|||
lizmat | Patch -p2 day 1 shutting down& | 17:39 | |
17:39
lizmat left
17:41
woolfy left
17:44
Akagi201 left,
netstar joined,
ajr_ left
17:49
guru joined,
guru is now known as Guest23041
17:52
[Sno] left
|
|||
vendethiel- | oh, is it patch -p2? | 17:52 | |
17:53
Guest23041 left
17:54
kurahaupo joined,
Sqirrel left,
mr-foobar joined
17:55
Sqirrel joined
17:59
ajr joined,
ajr is now known as Guest72527
18:00
dakkar left,
Guest72527 is now known as ajr_
18:03
kjs_ left
18:08
bjz_ joined
18:09
alexghacker joined,
bjz left
18:11
fhelmberger left
|
|||
rurban | That's about act, not p2, right? | 18:11 | |
18:13
PZt left
18:19
Mouq joined
|
|||
torbjorn | how do you match a literal colon? | 18:21 | |
ie in a case like this: perl6 -e 'say "foo:bar" ~~ token { $<var>=[\N+] \: }' | |||
trying to get var to match foo | |||
delimited by that colon | |||
ugexe | quote it? | 18:22 | |
torbjorn | doesnt help | 18:24 | |
18:27
netstar left
18:31
Alina-malina left
|
|||
smls | m: say "foo:bar" ~~ / [\N+] \: / | 18:31 | |
camelia | rakudo-moar 2b2857: OUTPUT«「foo:」» | ||
18:32
Alina-malina joined
|
|||
smls | m: say "foo:bar" ~~ / $<var>=[\N+] \: / | 18:32 | |
camelia | rakudo-moar 2b2857: OUTPUT«「foo:」 var => 「foo」» | ||
torbjorn | m: say "foo:bar" ~~ token { $<var>=[\N+] \: } | 18:33 | |
camelia | rakudo-moar 2b2857: OUTPUT«Nil» | ||
torbjorn | hm its the token that does it | ||
TimToady | token won't backtrack | ||
arnsholt | token doesn't backtrack | 18:34 | |
18:34
FROGGS joined
|
|||
TimToady | m: say "foo:bar" ~~ token { $<var>=[\N+?] \: } | 18:34 | |
camelia | rakudo-moar 2b2857: OUTPUT«「foo:」 var => 「foo」» | ||
arnsholt | So \N+ will eat all the way to EOS, and there's no colon there | ||
torbjorn | right | ||
TimToady | m: say "foo:bar" ~~ token { $<var>=[<-[:]>+] \: } | 18:35 | |
arnsholt | m: say "foo:bar" ~~ token { $<var>=[<-[:]>+] \: } # Should work too, I think | ||
camelia | rakudo-moar 2b2857: OUTPUT«「foo:」 var => 「foo」» | ||
arnsholt | Heh. Synchronized | ||
TimToady | jinx | ||
18:35
ajr_ left
|
|||
TimToady | if you hadn't typed the comment, you'd've won :) | 18:35 | |
torbjorn | real question is, which reply from camelia was ment for whom | 18:36 | |
FROGGS | m: say "foo:bar" ~~ token { <var=-[:]>+ \: } | ||
camelia | rakudo-moar 2b2857: OUTPUT«「foo:」 var => 「f」 var => 「o」 var => 「o」» | ||
FROGGS | ahh, well | ||
18:37
guru joined,
guru is now known as Guest8395,
Guest8395 is now known as ajr_
18:38
Mouq left,
ajr_ left
18:39
ajr_ joined
18:41
ajr_ left
18:42
bcode joined,
cognominal left
18:45
Mso150 joined,
denis_boyun joined
|
|||
raydiak | g'morning #perl6...happy thanksgiving, whether or not it is observed in your respective locales :) | 19:00 | |
19:01
cognominal joined
|
|||
ugexe | m: my &code = { ENTER {say "original ENTER"}; say "work"; }; my &start = {say "phaser-ENTER"}; my &done = {say "phaser-LEAVE"}; &code.add_phaser("ENTER", &start); &code.add_phaser("LEAVE", &done); &code(); | 19:04 | |
camelia | rakudo-moar 2b2857: OUTPUT«original ENTERphaser-ENTERwork» | ||
ugexe | is there a better way to add a new phaser type to a code block without declaring it in the code block, i.e. `LEAVE {}`? | ||
m: my &code = { ENTER {say "original ENTER"}; say "work"; LEAVE {}; }; my &start = {say "phaser-ENTER"}; my &done = {say "phaser-LEAVE"}; &code.add_phaser("ENTER", &start); &code.add_phaser("LEAVE", &done); &code(); | 19:06 | ||
camelia | rakudo-moar 2b2857: OUTPUT«original ENTERphaser-ENTERworkphaser-LEAVE» | ||
19:07
cognominal left
19:09
ajr joined,
ajr is now known as Guest67005
19:10
Guest67005 is now known as ajr_
19:11
[Sno] joined,
spider-mario left
|
|||
TimToady | in theory a block is immutable, though making it into a sub doesn't seem to help with this | 19:12 | |
unfortunately, you'd probably need a pragma to pessimize all your blocks | 19:13 | ||
19:13
denis_boyun left
|
|||
TimToady | if you're inlining blocks, you don't really want to put a test for a LEAVE list everywhere | 19:14 | |
on the off chance that someone might add one later | |||
19:18
ajr__ joined,
ajr_ left,
spider-mario joined
|
|||
raydiak | how do you type ∈ outside of vim? | 19:20 | |
19:20
anaeem1_ left
19:21
anaeem1_ joined
|
|||
TimToady | what os? | 19:22 | |
raydiak | linux | 19:23 | |
TimToady | under gnome you can type ctrl-shift-u 2208 | 19:24 | |
dunno if the compose keys have anything | |||
raydiak | kde w/altgr and compose key enabled | ||
yeah haven't found anything helpful | |||
all the top search results for '"compose key" "set operators"' are perl 6 blogs and clog | 19:25 | ||
perhaps there just isn't an easy way for this one w/o custom mappings of some sort | 19:26 | ||
TimToady | funny, my compose keys support typing ∉ if you happen to have a ∈ key already :D | ||
yes, there are custome compose keys that'll do that | |||
I haven't been able to get them to work under anthy, and I'd rather be able to type japanese :) | |||
haven't tried recently though | 19:27 | ||
raydiak | heh I wonder how polyglots can keep it all straight...just trying to be able to type english and perl 6 is a lofty enough goal for me to run in to problems :) | 19:28 | |
TimToady has always wanted a compose key that used vim sequences | 19:29 | ||
kurahaupo | if one has a working compose key, what does one need vim's ^K sequences for? (maybe better mnemonics, I suppose) | 19:34 | |
TimToady | and only having to learn one system of them | 19:37 | |
maybe they should all be added as compose sequences starting with ^K :) | |||
raydiak | still can't type ∈ (or probably some other vim digraphs) via compose key w/o custom stuff | 19:38 | |
ajr__ | Damian's probably got keybinding or vim macro, TimToady. :-)* | 19:39 | |
19:44
ggoebel111111113 joined
|
|||
btyler | tony-o: I was using 'wrk', which had a habit of consistently segfaulting MVM or otherwise making things blow up when run using default settings against perl6-http-async | 19:45 | |
tony-o: running it against the recent p6-http-async changes it seems a -lot- more stable! and hitting ~175 requests/second, which is awesome (JVM was more like 15-40, depending on how warmed up the JIT was) | 19:46 | ||
19:46
ggoebel111111113 left
19:47
ggoebel111111113 joined
19:48
rindolf left,
darutoko left
19:53
denis_boyun_ joined
19:59
virtualsue joined
20:02
lucas_ joined
|
|||
lucas_ | Back to the Range "excludes" methods... Having deprecated excludes_{min,max} only work if called as methods, but not if passed as arguments to the constructor. I don't know how to fix this without changing all constructors. Since, normally, range objects will be created with operators, I think this may be a minor issue, but it can break stuff. BTW, I think roast should also check for ranges constructed explicity with Range.new(..., :excludes-m | 20:08 | |
... constructed explicity with Range.new(..., :excludes-mins, :excludes-max). It seems to only test ranges constructed with operators. | |||
20:14
virtualsue left
20:18
ggoebel111111113 left
20:21
Mouq joined
20:23
liztormato joined
|
|||
liztormato | lucas_: Well volunteered ;-) | 20:23 | |
20:26
Mouq left,
liztormato left
|
|||
TimToady | smls: coercers don't *think* they take multiple arguments, but if you pass a parcel or a list, that will be coerced as an object | 20:44 | |
also, functional cursors can be bound earlier than methods | 20:46 | ||
*coercers | |||
masak: yes, <*...> should probably count for both LTM and longest literal, to the extent it actually matches and is literal | 20:50 | ||
21:00
lucas_ left
21:02
virtualsue joined
21:10
virtualsue left
21:15
ggoebel111111113 joined
|
|||
timotimo | o/ | 21:18 | |
21:18
bcode left
|
|||
masak | \o | 21:18 | |
colomon | o/ | 21:19 | |
21:20
bcode joined,
pecastro joined
21:26
gfldex left,
virtualsue joined
21:30
kjs_ joined
21:32
liztormato joined
|
|||
liztormato | timotimo: masak colomon /o | 21:32 | |
colomon | \o | ||
timotimo | heyo liz | 21:34 | |
i don't think i can help you alot with what you asked me in the backlog :( | |||
21:35
smls left,
liztormato left
21:36
liztormato joined
|
|||
liztormato | timotimo: Thanks for looking at it anyway | 21:36 | |
21:39
liztormato left
21:45
virtualsue left
21:47
anaeem1_ left
21:49
pmurias joined
|
|||
pmurias | masak: nqp::print("hi") doesn't call a func from the nqp package it inserts an op | 21:50 | |
masak | pmurias: I know. | 21:55 | |
pmurias: my point isn't about that at all. my point is that (a) it's illegal Python, and (b) the syntax it introduces is Perl 6-think for "package lookup", which already has syntax in Python. | 21:56 | ||
'night, #perl6 | |||
pmurias | illegal Python is a benefit | ||
we could use the python syntax and require a pragma | 21:57 | ||
22:00
kaare_ left
|
|||
Ugator | So how comes there is so much python talk in here? | 22:05 | |
22:08
spider-mario left
22:15
virtualsue joined
22:17
liztormato joined
|
|||
liztormato | Perhaps because of Inline::Python? | 22:18 | |
jnthn | Or maybe because of Snake :) | 22:20 | |
liztormato | Badger xx 26 | ||
22:31
lizmat joined
22:33
liztormato left
22:34
ajr__ left
22:35
telex left
22:36
telex joined
22:40
rurban left
22:43
Mso150 left
22:47
Ugator left
22:53
cognominal joined
23:01
cognominal left,
denis_boyun_ left
23:02
FROGGS left
23:13
chenryn joined
23:18
cognominal joined,
cognominal left
23:24
lizmat_ joined,
lizmat_ left,
lizmat_ joined
23:25
lizmat left,
lizmat_ is now known as lizmat],
lizmat] is now known as lizmat
23:26
chenryn left
23:31
rmgk left,
kjs_ left
23:35
lizmat_ joined
23:36
lizmat left
23:37
rmgk joined
23:43
rmgk left
23:45
kjs_ joined
23:52
rmgk joined
|
|||
timotimo | yup, inline::python is a thing, but i think today all that was talked about was snake | 23:54 | |
23:56
virtualsue left
|
|||
TimToady | so...can the python libraries we want to take over be considered thread safe? | 23:58 | |
lizmat_ | as long as you run in one thread, I guess :-) | 23:59 | |
23:59
lizmat_ is now known as lizmat
|
|||
timotimo | no, you can run inline::python from as many threads as you like, but there'll be a single GIL that'll govern how your python code runs | 23:59 |