»ö« 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. |
|||
00:03
nbrown joined
00:05
rurban1 joined
00:06
raiph left,
raiph joined
00:07
nbrown left
00:09
rurban1 left
|
|||
masak | 'night, #perl6 | 00:11 | |
00:19
thou joined
00:23
thou left
00:53
rindolf joined
|
|||
rindolf | Hi all. | 00:55 | |
TimToady: hi, how are you feeling? | |||
01:02
aoseki joined
01:05
akaseki left
01:07
FROGGS__ joined
01:08
rurban1 joined,
kst left,
Sqirrel left
01:09
beastd left
01:10
FROGGS_ left
01:12
rurban1 left
01:28
Sqirrel joined
01:47
klapperl joined
01:51
klapperl_ left
02:05
nbrown joined
02:06
raiph left
02:07
thou joined
02:09
nbrown left
02:12
Ben_Goldberg joined,
thou left
02:14
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
02:20
noganex_ joined
02:23
noganex left
|
|||
TimToady | gah, ophthmalologist, not opth... | 02:39 | |
TimToady blames the optometrists and opticians | 02:40 | ||
rindolf: I feel fine except for a continual low-grade eyestrain headache... | 02:41 | ||
noms & | |||
rindolf | TimToady: bon appetit. | 02:43 | |
timotimo | my ear isn't letting me sleep :| | 03:00 | |
03:08
akaseki joined
03:10
aoseki left,
raiph joined
03:20
kurahaupo is now known as kurahaupo__
|
|||
raiph | .tell avuserow re R* announce; "This is the first Rakudo Star release with..." paragraph needs an update | 03:41 | |
yoleaux | raiph: I'll pass your message to avuserow. | ||
03:47
BenGoldberg left
03:56
thou joined
03:59
atroxaper joined
04:00
thou left
04:10
rurban1 joined
04:14
rurban1 left
04:18
kurahaupo__ left
|
|||
rindolf | TimToady: are you back? | 04:27 | |
04:28
rurban1 joined
04:37
obra_ is now known as obra
04:39
molaf joined,
raiph left,
rurban1 left
04:51
fling joined
05:02
xenoterracide_ left
05:03
atroxaper left
05:06
atroxaper joined
05:08
kst joined
05:10
rurban1 joined
05:12
rurban2 joined
05:14
rurban1 left
05:17
rurban2 left
05:23
darutoko joined
05:37
rurban1 joined
05:38
araujo joined
05:39
hoverboard left
05:40
hoverboard joined
05:41
kaare__ joined,
rurban1 left
05:44
thou joined
05:46
figoe left
05:49
thou left
05:50
atroxaper left
05:52
Sqirrel left
05:57
figoe joined
06:06
FROGGS__ left,
FROGGS__ joined
06:07
nbrown joined
06:11
nbrown left
06:20
atroxaper joined
06:26
atroxaper left
06:50
rindolf left
07:08
coffeeyy joined
07:09
ventica joined
07:32
thou joined
07:36
anaeem1 joined
07:37
thou left
07:39
rurban1 joined,
anaeem1 left
07:43
rurban1 left
07:48
rindolf joined
|
|||
ventica | m: say "Yo " ~ "sup " ~ "#perl6 o/" | 07:54 | |
camelia | rakudo-moar 8db87b: OUTPUT«Yo sup #perl6 o/» | ||
ventica | m: say [~] ("Yo ", "sup ", "#perl6 o/") | ||
camelia | rakudo-moar 8db87b: OUTPUT«Yo sup #perl6 o/» | ||
FROGGS__ | hi ventica | 07:55 | |
ventica | hi :) | ||
07:55
FROGGS__ is now known as FROGGS
|
|||
ventica | m: say [~] "No ", "parens ", "baby"; | 07:56 | |
camelia | rakudo-moar 8db87b: OUTPUT«No parens baby» | ||
itz_ | .tell avuserow re R* announce; you have a pull request on your star branch | 08:03 | |
yoleaux | itz_: I'll pass your message to avuserow. | ||
08:09
nbrown joined
08:10
molaf left
08:13
nbrown left
08:25
xinming joined
08:28
xinming_ left
08:35
ventica2 joined
08:36
ventica left
|
|||
ventica2 | . | 08:38 | |
08:40
rurban1 joined,
akaseki is now known as SailorMercury
08:44
rurban1 left,
dmol joined
08:47
atroxaper joined
08:51
atroxaper left
08:58
Rotwang joined
|
|||
psch | hi #perl6 o/ | 09:03 | |
psch PRs gist.github.com/peschwa/6bd5b97ab7eda8973667 for github.com/eatnumber1/goal | |||
semantically my solution looks very similar to at least one existing js solution, which i find interesting | 09:07 | ||
ah, missed a rule - the sub shouldn't print but return | 09:10 | ||
but that's easily fixable | |||
09:17
SailorMercury is now known as midoriseki,
dmol left
09:20
thou joined
|
|||
psch | gist updated, improvements welcome | 09:24 | |
09:25
thou left,
denis_boyun_ joined
09:40
rurban1 joined
09:41
hoverboard left
09:42
rindolf left
09:45
rurban1 left
09:46
spider-mario joined
10:00
anaeem1 joined
10:11
nbrown joined
10:14
anaeem1 left
10:15
nbrown left
10:25
carlin_ joined,
tgt joined
10:26
carlin_ left
10:30
kivutar joined
10:32
denis_boyun_ left
|
|||
tgt | Hi. Is this a known issue? | 10:40 | |
perl6: say "20" ~~ ^(1 +< 63); say "20" ~~ ^(1 +< 64); say "20" ~~ ^(1 +< 65); | |||
camelia | rakudo-jvm 8db87b: OUTPUT«(timeout)» | 10:41 | |
..niecza v24-109-g48a8de3: OUTPUT«FalseFalseFalse» | |||
..rakudo-{parrot,moar} 8db87b: OUTPUT«TrueFalseTrue» | |||
tgt | Just the parrot/moar one I guess. (Wasn't sure what it'd do on the other backends.) | ||
10:41
rurban1 joined
10:45
rurban1 left
10:47
atroxaper joined
10:51
atroxaper left
10:54
spider-mario left
10:56
dmol joined
11:00
Ven joined
11:09
thou joined
11:14
thou left
|
|||
Ven | Linked my tutorial to a die-hard c# fan that can't stomach most "scripting languages" because they're "too unreadable", but this time he told me that "the code is comprehensible enough, even if it's sugar-y" so I'm happy~. | 11:14 | |
11:16
tgt left
11:26
midoriseki left,
akaseki joined
11:28
pmurias joined
|
|||
pmurias | how should I iterate over all the chars of a string in nqp? | 11:29 | |
using a for? | |||
dalek | osystem: 2a531d7 | colomon++ | META.list: Update META.list Add colomon::App::TagTools to the ecosystem. |
11:34 | |
colomon should really add an README and some tests.... | 11:37 | ||
tadzik | oh :) | 11:39 | |
11:42
rurban1 joined
11:44
mr-foobar joined
11:46
rurban1 left
|
|||
pmurias | nqp-m: say(nqp::escape("¢")) | 11:50 | |
camelia | nqp-moarvm: OUTPUT«¢» | ||
pmurias | nqp-p: say(nqp::escape("¢")) | ||
camelia | nqp-parrot: OUTPUT«\x{a2}» | ||
pmurias | nqp-j: say(nqp::escape("¢")) | ||
camelia | nqp-jvm: OUTPUT«(signal )## There is insufficient memory for the Java Runtime Environment to continue.# pthread_getattr_np# An error report file with more information is saved as:# /home/p6eval/hs_err_pid11874.log» | ||
pmurias | :( | ||
12:04
kurahaupo joined
12:13
araujo left,
araujo joined
|
|||
pmurias | what's the correct way to iterate over all the chars of the string in nqp? | 12:14 | |
I have tried 'for $string -> $char {...}' but that seems to be a parrot specific thing :( | 12:15 | ||
jnthn | Yeah, that doesn't work in Perl 6, and so only accidentally does in NQP | 12:16 | |
m: for nqp::split('', 'abc') { say($_) } | 12:17 | ||
camelia | rakudo-moar 8db87b: OUTPUT«abc» | ||
12:17
Ven left
|
|||
jnthn | There's one way | 12:17 | |
12:18
krunen left
12:25
raiph joined
12:27
Ven joined
12:33
kaare__ left
|
|||
carlin | what should: open('some_directory/').read(42); do? | 12:37 | |
12:42
tgt joined
12:43
rurban1 joined
|
|||
jnthn | carlin: Exception on open, I'd have guessed | 12:44 | |
If I try opening a directory on Perl 5 I get: | |||
perl -e "open('src') or die 'oops: ' . $!" | |||
oops: No such file or directory at -e line 1. | |||
(yes, src exists where I am) | |||
(. gave the same) | |||
At least, that's how it is on Windows. :) | 12:45 | ||
12:46
Ven left
12:47
rurban1 left
|
|||
carlin | same on linux, and moar/rakudo dies on linux, but on freebsd | 12:49 | |
perl6 -e "say open('t').read(7);" | |||
Buf:0x<12 1c 04 00 0c 00 04> | |||
I suspect it might do the same on OS X | |||
jnthn | Wow :) | 12:51 | |
Well, if the OS decides it's meaningful, I guess we needn't ban it Just Because... | |||
12:52
pecastro left
|
|||
jnthn | We've generally decided not to enforce the lowest common demoninator on everyone... :) | 12:52 | |
uh, denominator... | |||
12:57
thou joined
|
|||
geekosaur | o x *does* reject directory reads, fwiw. *bsd-s generally don't | 12:58 | |
itz_ | isn't it traditional UNIX behaviour to try a directory as a file? | 13:00 | |
od -x . errors for me on linux but not FreeBSD | |||
s/try/treat/ | |||
FROGGS | jnthn: I think I've found a copy+pasto in Perl6::Actions... | 13:01 | |
jnthn | åhnejs...what is it? | ||
13:02
thou left
|
|||
FROGGS | here: github.com/rakudo/rakudo/blob/nom/...nqp?#L2533 | 13:02 | |
geekosaur | ancient unix, yes. the main issue with it is that it is only viable when there's only one kind of filesystem layout; otherwise it's potentially constricting | ||
FROGGS | that $past is past along in line 2648 | ||
but nothing assings to it | 13:03 | ||
it seems like being copied from method_def, where $<blockoid>.ast is assigned to it for example | 13:04 | ||
carlin | hmm, because there is a spectest that checks if slurp() on a directory dies. It dies implicitely on linux and Windows, but on FreeBSD it dies because of Malformed UTF-8 | ||
jnthn | FROGGS: uh, yes, that does look rather wrong. | 13:05 | |
FROGGS | jnthn: v5 stumbles there and I dunno if I could toss it or if that wants to be $block | ||
jnthn | Wants to be $block, I think, and get rid of the $past decl | 13:06 | |
FROGGS | ahh wait, in method_def $*W.add_phasers_handling_code pushed to $past... | 13:07 | |
pushes* | |||
ahh, no | |||
I can't read | |||
I fix that in rakudo and report back... | 13:08 | ||
jnthn | FROGGS++ | ||
13:13
nbrown joined
|
|||
FROGGS | okay, looks like method_def was correct, but routine_def and macro_def were not.... spectesting now | 13:14 | |
itz_ | geekosaur: I wonder if OS X allows directory reads on UFS mounts .. HFS+ is rather odd | 13:15 | |
geekosaur | open(2) manpage says it returns ESIDIR in that case | ||
er EISDIR | 13:16 | ||
regardless of filesystem | |||
itz_ | I'd guess solaris behaves as FreeBSD does | ||
13:18
nbrown left
|
|||
geekosaur | checking... | 13:19 | |
carlin | should slurp() failing on a directory be spec'd, given that some OSes will accept it? | 13:20 | |
S32:195 | |||
synopsebot | Link: perlcabal.org/syn/S32.html#line_195 | ||
carlin | S32/IO:195 | 13:21 | |
geekosaur | fwiw omnios with zfs doesn't error out but returns EOF immediately | ||
carlin | openBSD does the same, no error but you get nothing | ||
perlcabal.org/syn/S32/IO.html#slurp | 13:22 | ||
geekosaur | same for oracle sol11 | ||
FROGGS | jnthn: it changes nothing \o/ | 13:23 | |
jnthn | m: class A { my $m = method m() { 'omg' }; say $m(A) } | 13:24 | |
camelia | rakudo-moar 8db87b: OUTPUT«omg» | ||
jnthn | How on earth did that even work with this bug? o.O | ||
oh, wait, routine_def | |||
FROGGS | yep | 13:25 | |
dalek | kudo/nom: 67a13da | (Tobias Leich)++ | src/Perl6/Actions.nqp: fix copy&pasto: use correct block variable in {routine,macro}_def |
13:26 | |
FROGGS | \o/ | 13:34 | |
v5 can declare and run subs now again!! | |||
moritz | \o/ | 13:35 | |
jnthn | \o/ | 13:36 | |
FROGGS++ | |||
13:37
raiph left
13:44
kivutar left
13:47
atroxaper joined
13:49
akaseki is now known as FartDemon
13:51
atroxaper left
13:53
denis_boyun joined
|
|||
carlin | would anyone object to removing, the directory bit in "The routine will fail if the file does not exist, or is a directory." from perlcabal.org/syn/S32/IO.html#slurp ? | 13:56 | |
or changing it to say it fails on platoforms that it fails on | |||
.oO( It fails when it fails, otherwise it succeeds ) |
|||
jnthn | Well, or so ", of if it is a directory and the platform does not support opening a directory like a file" | 13:57 | |
*or if | |||
tgt | Hi. Would someone explain Any ~~ Range to me please. It doesn't do what I'd expect. | 13:58 | |
I'd expect the result to be the same as Any ~~ any(Range) and for Any to be coerced to the type of the range if necessary. | |||
FROGGS | I was thinking that Any ~~ Range is identical to Range.min <= Any <= Range.max | 14:00 | |
jnthn | It pays attention to ^.. vs ..^ too iirc | ||
m: say 3 ~~ 1..5 | |||
camelia | rakudo-moar 8db87b: OUTPUT«True» | ||
jnthn | m: say "3" ~~ 1..5 | ||
camelia | rakudo-moar 8db87b: OUTPUT«True» | ||
jnthn | m: say 33 ~~ 1..5 | ||
camelia | rakudo-moar 8db87b: OUTPUT«False» | ||
jnthn | m: say "33" ~~ 1..5 | ||
camelia | rakudo-moar 8db87b: OUTPUT«True» | ||
FROGGS | tgt: can you provide a snippet? | ||
jnthn | uh, that last one is a surprise... | 14:01 | |
FROGGS | uhh | ||
yay, surprise surprise | |||
:/ | |||
tgt | That last one is basically the issue. | ||
FROGGS | ahh :o) | ||
p: say "33" ~~ 1..5 | |||
camelia | rakudo-parrot 8db87b: OUTPUT«True» | ||
FROGGS | n: say "33" ~~ 1..5 | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«False» | ||
tgt | I'd also expect "20" ~~ "0".."100" to work. | 14:02 | |
FROGGS | m: say ("0".."100").flat | ||
camelia | rakudo-moar 8db87b: OUTPUT«0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88…» | ||
tgt | Although the spec says X.min le $_ le X.max (mod ^'s) for stringy range, so I guess not. | 14:03 | |
FROGGS | me too | ||
14:03
denis_boyun left
|
|||
FROGGS | m: say "33" cmp (1..5).min | 14:03 | |
camelia | rakudo-moar 8db87b: OUTPUT«More» | ||
FROGGS | m: say "33" cmp (1..5).max | ||
camelia | rakudo-moar 8db87b: OUTPUT«Less» | ||
FROGGS | why? | ||
ohh | |||
m: say "33" leg (1..5).min | 14:04 | ||
camelia | rakudo-moar 8db87b: OUTPUT«More» | ||
FROGGS | m: say "33" leg (1..5).max | ||
camelia | rakudo-moar 8db87b: OUTPUT«Less» | ||
TimToady | a numeric range should be using <=> | 14:06 | |
dalek | ecs: 0925cca | Carlin++ | S32-setting-library/IO.pod: Slurping directories makes sense on some OSes Some OSes (eg. FreeBSD) follow the traditional Unix approach of treating directories like files, and so slurp()ing directories on those platforms is allowed |
14:07 | |
FROGGS | m: say ("1" .. 9)[1].WHAT | 14:09 | |
camelia | rakudo-moar 8db87b: OUTPUT«(Str)» | ||
FROGGS | so I guess we check min only... | ||
TimToady | which makes sense for "1"..* | 14:10 | |
but that doesn't explain "33" ~~ 1..5 being wrongly true | 14:12 | ||
14:12
FartDemon is now known as SailorTsundere
|
|||
FROGGS | m: say &infix:«<=>» | 14:12 | |
camelia | rakudo-moar 8db87b: OUTPUT«sub infix:<<=>> (Any, Any $?) { #`(Sub+{<anon>}|139848133633504) ... }» | 14:13 | |
14:13
SailorTsundere is now known as kuroseki
|
|||
FROGGS | TimToady: the code in Range.pm uses cmp everywhere | 14:13 | |
TimToady | that's wrong | ||
FROGGS | I know now :o) | ||
14:13
xenoterracide_ joined
|
|||
TimToady | cmp should be reserved for when leg or <=> aren't the obvious choice | 14:14 | |
and the choice for ~~ must be driven entirely by the RHS | |||
which is not what cmp does | |||
(which you understand, just stating it for the innocent bystanders) | 14:15 | ||
FROGGS | m: my &foo; &foo := &infix:«<=>»; say 1 [&foo] 2 | 14:16 | |
camelia | rakudo-moar 8db87b: OUTPUT«===SORRY!=== Error while compiling /tmp/OK4wa6u3EbCannot use bind operator with this left-hand sideat /tmp/OK4wa6u3Eb:1------> my &foo; &foo := &infix:«<=>»⏏; say 1 [&foo] 2 expecting any of: …» | ||
carlin | is OS X's $*DISTRO.name darwin? | 14:17 | |
14:17
user3 joined
|
|||
FROGGS | m: my $foo; $foo := &infix:«<=>»; say 1 [&($foo)] 2 | 14:17 | |
camelia | rakudo-moar 8db87b: OUTPUT«Less» | ||
tgt | carlin: It's macosx | ||
carlin | tgt: thanks | 14:18 | |
14:18
user3 left
|
|||
TimToady | the optimizer should probably notice ~~ 1..5 and change it to 1 <= $_ <= 5 | 14:19 | |
14:19
kaare__ joined
|
|||
TimToady | likewise for strings | 14:19 | |
though perhaps spesh can pick it up | 14:20 | ||
jnthn | Probably a bit high-level for spesh | ||
Would be far easier in Perl6::Optimizer | |||
TimToady | though it would be interesting to decide if 5 >= $_ >= 1 would tend to fail faster on average | 14:21 | |
certainly on ^5 against an effectively unsigned, you should test the top first | 14:22 | ||
and if known unsigned, don't test the bottom at all | |||
FROGGS | $ perl6-m -e 'say "33" ~~ 1..5' | ||
False | |||
spectest & | 14:23 | ||
14:25
Ven joined
|
|||
TimToady | *ophthalmologist <-- thought I'd get it right at least once this year... | 14:25 | |
FROGGS | eww | 14:27 | |
t/spec/S03-operators/range-basic.t ............................ Dubious, test returned 1 (wstat 256, 0x100) | |||
Failed 5/140 subtests | |||
14:28
rindolf joined
|
|||
pmurias | is there a use for slurping a directory? | 14:31 | |
14:31
lizmat joined
|
|||
TimToady | we should eventually optimize ~~ any($min..$max) as well, for large ranges that we don't really want to generate a huge list of integers | 14:32 | |
pmurias: not really, these days | |||
pmurias | so why do we allow that? | 14:33 | |
FROGGS | any(Range) is very worth it, aye | ||
TimToady | the fact that the BSDs historically allowed you to is kind of a semantic fossil | ||
FROGGS | that is like what the charrange patch did | ||
TimToady | I see no reason to allow slurp(dir) in Perl 6 | ||
it's just an attractive nuisance that some kid is going to drown himself in | 14:34 | ||
carlin | hmm, okay, should I rever that? | ||
*revert | |||
my reasoning was mostly: the platform lets you do it, so why not | 14:35 | ||
(and because changing the spec is easier than making moar/rakudo forbid it :p ) | |||
geekosaur | I'm inclined to agree; the only reason the *bsd-s still support it is backward compat, and there probably isn't even much of that because it's the BSDs that introduced the replacement interface (getdents() and successors) | ||
specifically because of NFS | |||
TimToady | yes, let's just blow up on that | 14:38 | |
with a message that points them to dir perhaps | 14:39 | ||
dalek | ecs: f8b2b16 | Carlin++ | S32-setting-library/IO.pod: Revert "Slurping directories makes sense on some OSes" This reverts commit 0925cca364036d02c0fc3a7c03ffb94a9b72ec5c. "it's just an attractive nuisance that some kid is going to drown himself in" ~ TimToady++ |
||
carlin | open('some_directory') should fail too? | 14:40 | |
geekosaur | no | ||
consider fchdir() | |||
this is actually a security related API | |||
14:40
woolfy joined
|
|||
TimToady | interestingly one(range) and any(range) have the same semantics under smartmatch | 14:41 | |
geekosaur | (it is a permanent "handle" on a directory that some other process cannot alter out from under you, unlike the path-based one) | ||
TimToady | so whatever we do for ~~ any(range) we should do for ~~ one(range) as well | ||
carlin | ah, how about reading from a directory file-handle? open('some_directory').read(42) | ||
14:41
rurban1 joined
|
|||
geekosaur | that said, this kind of file descriptor is in some sense different from a normal one, and p6 perhaps should treat it as such. same goes for *BSD's event filehandles | 14:41 | |
read on a directory (or event) file descriptor should fail | 14:42 | ||
TimToady | we should perhaps distinguish an open to get a file desc with a different name | ||
shower & | 14:43 | ||
14:43
Rotwang left
14:44
Rotwang joined
|
|||
FROGGS | +1 for getting the fd | 14:44 | |
geekosaur | (*BSD has O_EVTONLY, Linux has O_DIRECTORY and O_PATH (O_DIRECTORY is an old attempt at O_PATH semantics) | ||
and in all those cases the resulting file descriptor is not intended for file operations, but as an "inode handle" | 14:45 | ||
14:45
thou joined
|
|||
geekosaur | maybe "inode anchor" might be a better term for that | 14:48 | |
14:50
thou left
|
|||
lizmat is back from a day at the beach | 14:51 | ||
yoleaux | 24 Jul 2014 09:22Z <FROGGS_> lizmat: in some cases you can quote or escape paths, it does not work for all build systems but we should try | ||
jnthn wonders which country lizmat is in :) | |||
FROGGS | hi lizmat | ||
lizmat | jnthn: still in Oregon | 14:52 | |
FROGGS o/ | |||
jnthn | Isn't the day quite...early...still? :) | ||
Hope you enjoyed it, anyways :) | |||
lizmat | almost 8am | ||
it never hurts to take back a few hours of time difference before travelling :-) | 14:53 | ||
jnthn | :) | ||
Good OSCON? How'd your lightning talk go? | |||
lizmat | the lightning talk went well: even got a few laughs when pointing out that | 14:54 | |
if you're willing to use Moose with type checking | |||
and take its performance hit for granted | |||
you should be looking at Perl 6 *now* | |||
jnthn | :) | ||
Ven | lizmat++ :) | ||
lizmat | this was referring to a talk by Piers Cawley earlier, about Moose and typing | 14:55 | |
Piers is now looking into Perl 6, but is hindered by the fact that some submodule of Moar | |||
does not install on a drive that has a space in it :-( | |||
Ven | lizmat: btw, we know have a tutorial to point people to :P. learnxinyminutes.com/docs/perl6/ | 14:56 | |
lizmat | yes, I saw that, Ven++ | ||
is it linked already from perl6.org ? | |||
Ven | I don't think so | ||
jnthn | lizmat: Which one, ooc? | ||
lizmat | I chatted about it on #moar a few days ago | 14:57 | |
FROGGS | jnthn: dyncall | ||
14:58
pecastro joined
|
|||
FROGGS | it is either pretty easy to fix or not possible | 15:01 | |
lizmat | the case in which it breaks right now, is an unquoted 'dirname foo' | ||
FROGGS | lizmat: yes, that is always a problem... but AFAIK the build systems of the stuff in MoarVM/3rdparty is not very complex, so should be doable | 15:03 | |
lizmat | question is: how do we get that upstream? or don't we have to do that? | ||
or can we fix locally, and alert upstream? | 15:04 | ||
FROGGS | their main repo is also on github | ||
we can do that too, yes | |||
lizmat | ok | ||
FROGGS | we forked it I think | ||
lizmat: see github.com/MoarVM | 15:06 | ||
lizmat | I see... | 15:07 | |
seems like the latest fixes #77472 | 15:12 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77472 | ||
lizmat | and some other proto / inlining / optimiziations | ||
dalek | ast: 7833d5d | (Elizabeth Mattijsen)++ | S0 (2 files): Unfudge now passing tests, also for #77472 |
15:14 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77472 | ||
FROGGS | I also see this: | ||
t/spec/S02-names/is_cached.rakudo.moar (Wstat: 0 Tests: 38 Failed: 0) | |||
TODO passed: 34, 38 | |||
but I'm not sure if it is HEAD or my local modifications... | |||
jnthn | Only on MoarVM, but I think I can get a fix that works for JVM/Parrot too | ||
It was the optimizer tweak I did yesterday | |||
15:15
xylixy joined
|
|||
lizmat | ah, so maybe I was too optimistic with unfudging for all :-( | 15:15 | |
carlin | should rakudo handle denying slurp() on a directory, or should moar be changed to forbid it? | 15:17 | |
FROGGS | m: say "d" cmp *; say "d" leg *; say "d" cmp Inf; say "d" leg Inf | ||
camelia | rakudo-moar 67a13d: OUTPUT«WhateverCode.new()WhateverCode.new()LessMore» | ||
FROGGS | BUG BUG OK BUG I'd say | ||
15:18
daxim joined
|
|||
FROGGS | at least the last one is a bug | 15:18 | |
15:21
atroxaper joined
|
|||
FROGGS | m: say Inf.Stringy | 15:22 | |
camelia | rakudo-moar 67a13d: OUTPUT«Inf» | ||
FROGGS | m: say "d" leg Inf; say "m" leg Inf | ||
camelia | rakudo-moar 67a13d: OUTPUT«MoreMore» | ||
FROGGS | m: say Inf.Stringy.WHAT | 15:26 | |
camelia | rakudo-moar 67a13d: OUTPUT«(Str)» | ||
FROGGS | m: say Inf.Stringy.chars | ||
camelia | rakudo-moar 67a13d: OUTPUT«3» | ||
FROGGS | m: say "d" leg Inf; say "M" leg Inf | ||
camelia | rakudo-moar 67a13d: OUTPUT«MoreMore» | ||
FROGGS | m: say "D" leg Inf; say "M" leg Inf | ||
camelia | rakudo-moar 67a13d: OUTPUT«LessMore» | ||
FROGGS | that's insane | ||
(and sorry for the noise, I thought I was in privmsg with camelia) | |||
15:27
denis_boyun_ joined
15:44
xylixy left
|
|||
timotimo | o/ | 15:47 | |
carlin | .u WATER WAVE | 15:48 | |
yoleaux | U+1F30A WATER WAVE [So] (🌊) | ||
15:49
Ven left
15:55
denis_boyun_ left
16:04
kivutar joined
16:15
nbrown joined
16:19
nbrown left
16:23
akaseki joined
16:24
kuroseki left
16:25
denis_boyun_ joined
16:31
denis_boyun_ left,
kivutar left
16:33
Ven joined
16:34
thou joined
16:38
thou left
16:40
pippo joined
|
|||
pippo | Hello perl6! | 16:40 | |
timotimo | hey pippo | ||
pippo | o/ | 16:41 | |
Doeas anybody have an idea of how can I dump a large hash to file for later use? I have tried JSON5::Tiny but had to wait 70 minutes in order it could generate 5.5megabytes of data. | 16:42 | ||
*Does | |||
Ven | m: macro infix:<< |>= >>($var, $fn) { quasi { {{{$var}}} = {{{$fn}}}({{{$var}}}) } }; my $a = 1; sub add($n) { $n + 1}; $a |>= &add; say $a | 16:45 | |
camelia | rakudo-moar 67a13d: OUTPUT«2» | ||
Ven | \o/ masak++ | ||
Ulti | pippo can't you just do .perl and save it to a file then exec later? | ||
timotimo | pippo: did you get the very latest moarvm? | ||
moarvm "recently" got improvements to string concatenation that drastically improves performance | 16:46 | ||
pippo | timotimo: latest git! :-) | ||
timotimo | and that still gives you that timing? | ||
that's bad :( | |||
Ulti | timotimo didn't drastically improve perf for me shaved off 2 seconds out of 35 for something that wouldn't register as miliseconds in P5 | ||
though if I used Moose it would be slower :S | 16:47 | ||
timotimo | Ulti: i know that feeling ;( | ||
jnthn | m: say 2/35 | ||
camelia | rakudo-moar 67a13d: OUTPUT«0.057143» | ||
timotimo | we ought to aim for "much better than moose" | ||
Ulti | 2 seconds out of 35 is good | ||
timotimo | since our object stuff is so "built in" | ||
pippo | Ulti: I can dump with .perl. But how can I get back my hash? | ||
jnthn | > 5% win is nice | ||
Ulti | since its still two whole seconds | ||
timotimo | pippo: slurp.EVAL :) | ||
jnthn | But yeah, should do better overall | ||
Ulti | jnthn yeah I'm not complaining about the win, but its currently not the game changer | ||
timotimo | the coolest thing is that most of our optimizations can actually benefit custom object systems if anybody ever has a reason to come up with one :) | 16:48 | |
Ulti | tbh it might not be strings slowing me down | ||
pippo | Ulti: timotimo: I'll try! Thank you! | ||
pmurias | timotimo: isn't Moose mostly a startup hit? | ||
Ulti | I use a lot of ott list operators | ||
timotimo | pmurias: i don't know, to be honest | ||
"ott"? | |||
over the top? :) | |||
Ulti | if I made a lot of stuff explicit loops I think it might get optimised more | ||
timotimo: yeah sorry British acronym failure | 16:49 | ||
so it might be its way more than 5% for the stringy bits of my program | |||
I make a lot of objects and then ignore them | |||
which I'm going to guess is probably expensive | |||
timotimo | hmm | 16:50 | |
having lots of medium-long-lived objects is indeed expensive | |||
as in: it'll keep your ram usage up | |||
since our gen2 doesn't free blocks | |||
pages* | |||
Ulti | yeah RAM isn't too bad once I removed the startup RAM usage | ||
jnthn | It does re-use them, though | ||
timotimo | yes | ||
jnthn | It's only a rpoblem if you have loads of objects of one bunch of sizes, then stop using them and start making loads of objects of a different bunch of sizes. | 16:51 | |
timotimo | that's a good point | ||
Ulti | depends if strings are going to be counted as just a reference in the object | 16:52 | |
timotimo | we don't do extremely well with strings at the moment %) | 16:53 | |
ren1us | jnthn: Thank you for just mentioning the caveat that I've been trying to hunt down in my code for about a month. Any workaround for that case? | ||
Ulti | as in a variable length string attribute doesnt change the size of the object | ||
timotimo | that's correct | ||
strings are references | |||
Ulti | I'm not sure any languages do anything else? | ||
Ven | compounds operators are limited to OP + assign, right ? like a+=, we're not combining other operators with it, are we ? | ||
jnthn | The actual blob of data for the string isn't allocated in the fixed size heap, no | 16:54 | |
timotimo | do we malloc data for strings? | ||
jnthn | timotimo: Yes | 16:55 | |
timotimo | mhm | ||
japhb | Good morning, all. o/ | ||
timotimo | at some point, i should probably re-measure the duplication of strings again | 16:56 | |
jnthn: was there something fundamentally flawed with the notion of wanting to put all strings seen in a nursery collection and flatten all references to equal string data to point at the same piece of memory? | |||
jnthn | ren1us: Not that I can immediately think of. It's one of those places where I made the assumption (held in many programs) that if you do something a bunch, you're probably going to do it again. | 16:59 | |
timotimo | that's assuming my measurements were correct and some strings occur hundreds of times | ||
jnthn | ren1us: It's not an unsolvable problem at the VM level - gen2 would need some kind of compaction scheme. | 17:00 | |
timotimo | jnthn: doesn't that give us problems with the assumption that gen2 objects never move? | ||
ventica2 | m: say [~] reverse '6', 'l', 'r', 'e', 'p', '#', ' ', 'm', 'g'; | 17:01 | |
camelia | rakudo-moar 67a13d: OUTPUT«gm #perl6» | ||
17:01
Alina-malina left
|
|||
jnthn | timotimo: Yes. | 17:01 | |
Ven | (I'll take it that we only have compound operators made of assignment + X) | ||
jnthn | timotimo: Which is what makes it a bunch more fun. | ||
17:01
Alina-malina joined
|
|||
jnthn | timotimo: Though I've always had that as a "soft" assumption | 17:01 | |
timotimo: One I expected to re-visit and partially break some day. | |||
timotimo | aye; recently we had discussions about WHICH for objects ... | ||
gtodd | hmm Sunday golfing ... codegolf.stackexchange.com/question...le-quickly | ||
timotimo | the hope was we could just move any object we take the WHICH of to gen2 | 17:02 | |
.o( or was that WHERE? ) | |||
jnthn | Yeah | ||
No, WHICH | |||
timotimo | ok | ||
jnthn | But there are solutions even then; since we know places we're going to rely on non-movement we can just mark the thing pinned if needed. | ||
gtodd | with 50million lines /me wonders how different perl6 on jvm vs moarvm would be ... | 17:03 | |
timotimo | hopefully we do know these :) | ||
nothing's worse than having assumptions like this implicitly encoded in logic without pointing it out explicitly | |||
and then having to revisit stuff everywhere | |||
oh well. we're probably going to do fine | |||
jnthn | Well, the places that switch to gen2 allocation in order to not trigger GC are alreaady "marked out" | 17:04 | |
Taht's actually what Moar relies on mostly these days. | |||
timotimo | ah, right | ||
jnthn | I think the JIT may be the only thing that relies on non-movement of gen2 | ||
And WHICH could | |||
timotimo | OK | 17:05 | |
i'm looking forward to when we turn heap allocations into stack allocations when escape analysis is here :) | |||
in very tight code, like numeric calculations, that might keep the GC asleep for long, long whiles :) | 17:06 | ||
jnthn | Well, the big thing it may also do is make a lot of Scalar containers be stack allocated. | ||
timotimo | that would be nice, too | ||
rindolf | TimToady: hi, are you there? | 17:07 | |
timotimo | we have those all over the place | ||
they are also quite likely to die young, right? | |||
oh. does p6decontrv strip the scalar container off a sub's return value? | |||
jnthn | wany will, yes | ||
Often | 17:08 | ||
*many | |||
timotimo | ah, that seems like a somewhat simple case for escape analysis to find | ||
anyway. enough theory, i'll let you get back to work :) | 17:09 | ||
Ulti | has anyone started down making an expression or line level profiler for Rakudo? | 17:12 | |
17:13
colomon left
|
|||
Ulti | since I dont actually know where my code is slow at the moment I assumed it was strings but it could just be one really bad expression on my part | 17:13 | |
timotimo | nobody has, so far ... but our bytecode specialization framework on moarvm would be a good place to start (i seem to recall someone claim that) | ||
17:14
btyler joined
|
|||
pmurias | in modules.perl6.org there is a panda icon for comformance with the S11 module spec, how can modules not comform? | 17:15 | |
timotimo | the "provides" key in the meta.info | ||
pmurias | the provides key is not mentioned in S11 | 17:16 | |
timotimo | oh | ||
hmm. | |||
maybe in s22 though? | |||
pmurias | yes | ||
timotimo | s22 and s11 were kind of bunched up at some point, if i recall correctly | 17:17 | |
pippo | timotimo: Ulti: 8 minutes to dump the hash to file instead of 70!!! A gret win!! Thank you!! | 17:18 | |
timotimo | awesome! | ||
pippo | :-)) | ||
timotimo | (still way too slow, but i'll take it!) | ||
jnthn | That's still, like, forever... | ||
pippo | jnthn: There is room for improving things ;-). | 17:20 | |
timotimo | maybe we should have a benchmark for generate_json instead of just parse_json; but that's not that easy to scale | ||
pippo: is that just from updating moarvm or does it come from switching from json5 to .perl? | |||
pippo | my perl6 is latest git. This come from switching from JSON5 to .perl. | 17:21 | |
timotimo | ah, damn | ||
pippo | I used this: to-json(%table) ==> spurt('table.json'); | 17:23 | |
pmurias | timotimo: shouldn't the icon reflect the split up? | ||
timotimo | er ... well volunteered? ;) | ||
the branch in which these things were developed was called "eleven" for a long time | 17:24 | ||
gtodd | ooh much more interesting ... 150 point bounty for code golfing an IBAN validator codegolf.stackexchange.com/question...-validator | 17:25 | |
17:25
btyler left
17:27
spider-mario joined
17:29
kst left
17:30
raiph joined
|
|||
lizmat welcomes discussion about S11 and S22 | 17:32 | ||
timotimo | i'm a bit surprised json5's to-json is that much slower than our built-in .perl | 17:36 | |
one of them is a method call, the other is a multi-dispatch, right? | |||
that shouldn't be problematic, no? | |||
17:40
woolfy left,
woolfy joined
17:43
akaseki is now known as DrSeki
17:44
japhb left
17:46
atroxaper left
|
|||
pippo | timotimo: suppose I spurt to 'table.perl' I get back my hash with "my %b = slurp.EVAL('table.perl')"? | 17:46 | |
timotimo | no, slurp('table.perl').EVAL | 17:47 | |
but the rest seems to be correct | |||
17:47
japhb_ left
|
|||
pippo | OK Thank you! I'll see how much time is necessary to get the hash back now. | 17:48 | |
17:54
woolfy left
17:58
Ven left
|
|||
pippo | :-( after 9 minutes: Error while compiling op callstatic (source text: ","): Too many arguments in flattening array. | 18:00 | |
dalek | p-js: c88fd30 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Rewrite quote_string not to use regexes. In the self-hosting compiler the regex-lib is not avalible in this part. |
18:03 | |
p-js: c44b24f | (Pawel Murias)++ | src/vm/js/HLL/Backend.nqp: Fix --target=ast in the self hosting compiler. |
|||
p-js: a3fb1dd | (Pawel Murias)++ | src/NQP/World.nqp: Fix NQP::World::libs method for the js backend. |
|||
p-js: 844054c | (Pawel Murias)++ | tools/build/ (2 files): Install more modules to node_modules. Build a gen/js/stage2/NQP.nqp (which compiles and supports --target=ast for -e '1') |
|||
masak | pmurias: can you give us a sense of how it's going. I can't be the only one who is really curious! | 18:04 | |
s/\./?/ | |||
18:04
rurban1 left
|
|||
pmurias | just recently started work on nqp-js again, I'm trying to make a self-hosting nqp-js (running without parrot work) | 18:05 | |
masak | nice \o/ | ||
pmurias: speaking only for myself, a self-contained demo in the browser would mean a *lot*. | 18:06 | ||
though a self-contained demo outside of the browser would do in a pinch, too. | |||
pmurias | I previously had done so on a strangely hacked together version of nqp, now I'm trying to integrate into the NQP build system so things are more sane | ||
18:07
lizmat left
|
|||
jnthn | pmurias++ | 18:08 | |
18:08
japhb joined
|
|||
masak | pmurias++ | 18:08 | |
Ulti | pmurias++ | 18:10 | |
pmurias | masak: the node specific part is kept separate: github.com/pmurias/nqp-js/tree/mas...ntime-node | ||
masak | sounds sane. | ||
pmurias | masak: so turning a standalon version into a browser one is mostly a matter of smartly concatenating the various node-module styles together | 18:11 | |
18:12
raiph left
|
|||
masak | pmurias: hint: browserify. | 18:12 | |
18:13
raiph joined
|
|||
pmurias | I tried to use that in my past attempt at doing a browser demo | 18:14 | |
had problems with browserify assumping stuff about the node_modules format and parsing code (?!) | |||
masak | oh, huh. | 18:15 | |
pmurias | s/assumping/assuming/ | ||
is there an accepted format for client side js modules? | 18:16 | ||
pippo | bye perl6 o/ | ||
18:16
pippo left
|
|||
masak | modules are an ES6 thing, and as such "not quite there yet". | 18:16 | |
18:16
atroxaper joined
|
|||
masak | as I understand it, people are still debating the specifics on the mailing lists. | 18:16 | |
pmurias | have you used browserify before? | 18:21 | |
18:21
atroxaper left
18:22
thou joined
|
|||
vendethiel | pmurias: I have | 18:22 | |
18:26
thou left
|
|||
pmurias | hmm, requirejs seems to be saner for nqp-js in the browser | 18:29 | |
18:37
hoverboard joined
|
|||
FROGGS | okay, now I spent more than two hours to fix Range... and I swap one spectest change for another... I'll git clean now and do something else -.- | 18:42 | |
18:47
darutoko left
18:49
rindolf left
18:50
rurban1 joined
|
|||
carlin | what's the Right Way to stop slurp() etc. on directories? `fail if self.d()` at the start of the various methods...? | 18:52 | |
18:52
beastd joined
18:58
colomon joined
18:59
Ven joined,
hoverboard left,
vendethiel left
|
|||
Ven | Damn, I'll have to explain flattening. | 19:00 | |
19:13
dwarring joined
|
|||
dalek | rl6-bench: 7e86722 | (Geoffrey Broadwell)++ | microbenchmarks.pl: Fix and improve charrange microbenchmarks They were originally creating bogus data, testing only successful and not unsuccessful matches, and tended to take an untenable time to finish. All of these issues are now fixed, though the extra complexity needed for these tests makes me wonder if we need special structure for regex tests. Note to test submitters: If you're unsure of your test and are just committing to share the WIP, please mark the test 'enabled => 0' so that general users won't get tripped up. |
19:15 | |
19:15
rurban1 left
|
|||
19:16
denis_boyun_ joined
|
|||
pmurias | is there an utility which makes a sound when make finishes? | 19:26 | |
timotimo | "beep" | ||
dalek | kudo-star-daily: 18680f2 | coke++ | log/ (14 files): today (automated commit) |
19:29 | |
rl6-roast-data: d975992 | coke++ | / (5 files): today (automated commit) |
|||
FROGGS | ahh, now I wanna see fresh bench run :/ | ||
timotimo | how come? | ||
dalek | p-js: 69527b4 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Fix a bug in quoting strings. |
19:30 | |
FROGGS | timotimo: the charrange benchmarks were fixed | ||
timotimo | ah | ||
19:34
denis_boyun___ joined
19:36
denis_boyun_ left
19:38
spider-mario left
19:42
raiph left
19:51
raiph joined
19:58
anaeem1_ joined,
aoseki joined,
smash_ joined,
jlaire_ joined,
Maddingu1 joined
|
|||
avuserow | o/ | 19:59 | |
yoleaux | 03:41Z <raiph> avuserow: re R* announce; "This is the first Rakudo Star release with..." paragraph needs an update | ||
08:03Z <itz_> avuserow: re R* announce; you have a pull request on your star branch | |||
timotimo | o/ | ||
avuserow | yoleaux: you are surprisingly slow | ||
20:00
firnsy_ joined,
firnsy_ left,
firnsy_ joined
|
|||
FROGGS | avuserow: the bundled parrot is 6.5.0 but it should be 6.6.0 | 20:00 | |
avuserow | so I am learning that I should not have tried to proofread announcements late at night -_- | ||
20:00
thilp_ joined
|
|||
FROGGS | avuserow: and I was not successful fixing jsonrpc, but I will try again tomorrow | 20:01 | |
avuserow | hmm. for future reference, where can I find that information? | ||
20:01
telex left
|
|||
FROGGS | avuserow: the parrot version? | 20:01 | |
avuserow | yes | ||
20:01
telex joined
|
|||
FROGGS | nqp/tools/build/PARROT_REVISION | 20:01 | |
20:02
telex left
|
|||
FROGGS | and parrot tells it when it starts compiling, and your perl6-p --version also shows it | 20:02 | |
avuserow | oh... I haven't rebuilt a regular rakudo in forever then :\ | ||
20:02
kaare__ left
|
|||
avuserow | I see, that file is typically updated in the configure step since it's in NQP's subdir | 20:03 | |
20:03
Bucciarati_ joined,
Gothmog__ joined,
anocelot_ joined,
nickpatc1 joined
20:04
fling_ joined,
telex joined,
huf_ joined
|
|||
avuserow | okay. I shall rebuild everything for star and try to do it right this time | 20:05 | |
... after looking at itz_++'s PR :) | 20:06 | ||
20:06
daxim_ joined,
__sri joined,
charsbar__ joined
20:07
Celelibi_ joined
20:10
rurban1 joined,
thou joined
20:11
raiph left,
DrSeki left,
daxim left,
fling left,
firnsy left,
Bucciarati left,
charsbar_ left,
anocelot left,
thilp left,
jlaire left,
Celelibi left,
ilbot3 left,
Gothmog_ left,
nickpatch left,
Maddingue left,
smash left,
huf left,
_sri left,
dmol left,
virtualsue joined
20:12
Gothmog__ is now known as Gothmog_
20:14
kivutar joined,
thou left
|
|||
timotimo | we have a candidate for chrs that takes a slurpy, but no candidate for a single argument; would that be a good optimization to give that a candidate with only one arg? | 20:15 | |
20:15
dmol joined
|
|||
jnthn | Probably | 20:16 | |
Make sure you benchmark before/after though | |||
I did that for push, fwiw | |||
dalek | p-js: b40eecf | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Remove bit of dead code. |
20:17 | |
p-js: 0d6b269 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Replace a use of subst with a loop over the chars. |
|||
20:22
gfldex left
20:23
ilbot3 joined
|
|||
dalek | kudo/nom: 9515bb7 | jnthn++ | src/core/ (4 files): Tweak some protos for better Junction failover. We can make the proto itself be (Any, Any), meaning it fails to bind. However, this also means that the multi-dispatcher never gets chance to sneak an entry into the cache for the Junction case, so we have to go through the slow-path binder to fail over every time, rather than cheaply identifying we should hit the Junction dispatcher. |
20:25 | |
timotimo | i assume seeing this commit be pushed to nom proves that it was worth it? :) | ||
jnthn | Yeah. We even hit it a couple of times on startup, so it's a small win on that too | 20:26 | |
timotimo | oooh, i like that | ||
20:32
thou joined
|
|||
dalek | ast: aa9100f | (David Warring [email@hidden.address] | integration/99problems-11-to-20.t: fix warnings |
20:32 | |
ast: afadbbd | (David Warring [email@hidden.address] | integration/99problems-21-to-30.t: mark tests for RT #122414 |
|||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122414 | ||
p-js: 8cb2e07 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Rewrite use of subst. |
20:34 | ||
timotimo | i wonder if method perl would get faster if we had %esc as a nqp hash instead of a perl6 hash | 20:37 | |
20:37
Alula_ left
|
|||
timotimo | hm, and i wonder if nqp::substr would be faster on an unboxed str than self.substr would be at the moment | 20:38 | |
20:38
Alula_ joined
20:41
zakharyas joined
20:42
ventica2 left
|
|||
dalek | p-js: de2bc9a | (Pawel Murias)++ | TODO: Add item to TODO, mark easy tasks. |
20:44 | |
20:49
thilp_ is now known as thilp,
thilp left
20:50
thilp joined
20:52
ventica2 joined
21:05
dmol left,
Rotwang left
21:09
ggoebel111118 joined
21:10
ggoebel111117 left,
[particle]1 joined
21:11
[particle] left,
firnsy_ is now known as firnsy
|
|||
Ven just broke the 1k lines, yay. | 21:12 | ||
21:14
Celelibi_ is now known as Celelibi
|
|||
Ven | Eventually I'll need to explain flattening. But I now know why it doesn't flatten directly. You couldn't have .tree and other meta ops | 21:15 | |
21:15
thou left
|
|||
ventica2 | m: %hash = (:a<foo>, :b<bar>); %hash<a>; %hash<a b c>; %hash<a b c> :v; | 21:16 | |
camelia | rakudo-moar 67a13d: OUTPUT«===SORRY!=== Error while compiling /tmp/P4c3QRLZXwVariable '%hash' is not declaredat /tmp/P4c3QRLZXw:1------> %hash⏏ = (:a<foo>, :b<bar>); %hash<a>; %hash<a expecting any of: postfix» | ||
ventica2 | m: my %hash = (:a<foo>, :b<bar>); say %hash<a>; say %hash<a b c>; say %hash<a b c> :v; | ||
camelia | rakudo-moar 67a13d: OUTPUT«foofoo bar (Any)foo bar» | ||
ventica2 | m: my %hash = (:a<foo>, :b<bar>); say %hash<a> :exists; | 21:18 | |
camelia | rakudo-moar 67a13d: OUTPUT«True» | ||
21:19
Ven left
|
|||
ventica2 | m: my %hash = (:a<foo>, :b<bar>); say %hash{any <a b c>} :exists; say %hash{all <a b c} :exists; | 21:20 | |
camelia | rakudo-moar 67a13d: OUTPUT«===SORRY!=== Error while compiling /tmp/q2gHaRgPAuUnable to parse expression in quote words; couldn't find final '>' at /tmp/q2gHaRgPAu:1------> :exists; say %hash{all <a b c} :exists;⏏<EOL> …» | ||
ventica2 | m: my %hash = (:a<foo>, :b<bar>); say %hash{any <a b c>} :exists; say %hash{all <a b c>} :exists; | ||
camelia | rakudo-moar 67a13d: OUTPUT«any(True, True, False)all(True, True, False)» | ||
ventica2 | m: my Bool $b; my %hash = (:a<foo>, :b<bar>); $b = %hash{all <a b c>} :exists; say $b; | 21:21 | |
camelia | rakudo-moar 67a13d: OUTPUT«Type check failed in assignment to '$b'; expected 'Bool' but got 'Junction' in block at /tmp/2Z0SAD11kp:1» | ||
21:24
denis_boyun___ left
|
|||
dalek | ast: 4d174ed | (David Warring [email@hidden.address] | integration/99problems-41-to-50.t: tweaked/unfudged P49, P50 |
21:30 | |
21:49
spider-mario joined
21:50
anaeem1_ left
21:53
anaeem1 joined
21:54
raiph joined
21:58
anaeem1 left,
LordVorp left
22:01
beastd left
22:08
tgt left
|
|||
masak | 'night, #perl6 | 22:10 | |
22:17
cooper_ joined
22:21
pmurias left
22:24
thou joined
22:28
thou left
|
|||
[Coke] | cc | 22:30 | |
22:31
Psyche^ joined
22:32
zakharyas left
22:34
Psyche^_ left
22:45
xenoterracide_ left,
kivutar left
22:46
kivutar joined
22:47
spider-mario left
|
|||
dalek | p: ed4b9f0 | jnthn++ | / (5 files): Numerous performance improvements to QAST -> MAST. Includes a MoarVM revision bump to get MAST::Node improvements. |
22:50 | |
p: 4e02ce3 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Sprinkle native types in QAST op registration. Means we need to do a load less boxing at startup, only to throw it all away again. |
|||
kudo/nom: 319a78b | jnthn++ | / (2 files): Get QAST -> MAST improvemnets; follow changes. |
22:51 | ||
jnthn | You should now be able to enjoy a bit faster NQP/Rakudo builds and spectests. | ||
timotimo | "a bit"? :) | ||
jnthn | Shaved 30s off my "make spectest" here. | 22:52 | |
And fastest Rakudo and NQP build times I've seen in a while. | |||
timotimo | sweet! :) | ||
jnthn++ | |||
22:53
psch left
|
|||
jnthn | An NQP build from scratch for me is 36s now. | 22:53 | |
22:53
psch joined
|
|||
timotimo | those dynamic vars you turned into attributes will surely do good | 22:53 | |
have we explored spesh opportunities for spesh/inlining yet? | 22:54 | ||
jnthn | And I've got a Rakudo build down to 77s. | ||
(Again, from clean) | |||
[Coke] | pmurias++ | 22:55 | |
22:55
raiph left
|
|||
[Coke] | I wonder how many times I have a two letter thing in backlog (which is me trying to see if my connection has died, and it hasn't.) | 22:57 | |
timotimo | ah, i was wondering what that was :) | 22:58 | |
[Coke] will try to train his fingers to do something else. | 23:00 | ||
timotimo | well, i don't mind, i was just mildly surprised | ||
23:01
dmol joined
23:18
psch left
23:19
jlaire_ is now known as jlaire
23:20
psch joined
23:21
nbrown joined
|
|||
timotimo | faster mast compiler would also mean panda installs and smoking modules ought to be faster | 23:24 | |
23:25
nbrown left
23:30
cognome left,
cognominal left
|
|||
timotimo | dwarring: did you see the recent discussion of junctions on the left-hand-side of ~~? | 23:35 | |
dwarring | timotimo: umm no | ||
how recent? | 23:36 | ||
timotimo | i think we decided that ~~ should not autothread | ||
like, 1 or two days? | |||
dwarring | right | ||
r: say ?(all(1,3,5) eq any(1..6)) | 23:37 | ||
camelia | rakudo-{parrot,moar} 9515bb: OUTPUT«True» | ||
..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' in (gen/jvm/main.nqp)» | |||
dwarring | r: say ?(all(1,3,5) == any(1..6)) | ||
camelia | rakudo-{parrot,moar} 9515bb: OUTPUT«True» | ||
..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' in (gen/jvm/main.nqp)» | |||
dwarring | r: say ?(all(1,3,5) ~~ any(1..6)) | ||
camelia | rakudo-{parrot,moar} 9515bb: OUTPUT«False» | ||
..rakudo-jvm 9515bb: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' in (gen/jvm/main.nqp)» | |||
dwarring backlogging | 23:38 | ||
23:46
dmol left
23:48
BenGoldberg joined
23:52
xragnar_ joined,
xragnar left,
xragnar_ is now known as xragnar
|
|||
dalek | blets: 2f2aa1b | (Herbert Breunung)++ | docs/ (5 files): chenging cookbook to classtree |
23:52 | |
dwarring | timotimo: around irclog.perlgeek.de/perl6/2014-07-27#i_9087840 to irclog.perlgeek.de/perl6/2014-07-27#i_9087839 | 23:53 | |
dalek | blets: a39f05b | (Herbert Breunung)++ | docs/appendix-c-cookbook.txt: Delete appendix-c-cookbook.txt its now part of delta |
23:54 | |
dwarring | "the choice for ~~ must be driven entirely by the RHS" | 23:56 | |
timotimo | jnthn: t.h8.lv/p6bench/2014-07-28-one-more-day.html | ||
while_int2str_native seems to have regressed? | 23:57 | ||
oh, no | |||
it's just not the right order | |||
the 319 one is the newer one | |||
dalek | p: 957e862 | jnthn++ | src/vm/moar/QAST/QAST (2 files): Get regex compiler using more attrs, less dynamics Improves performance a bit further, since attribute lookups can be far cheaper (and will JIT better). |
23:58 | |
p: 6fd6df9 | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Avoid repeated $*REGALLOC lookups. Especially helpful in list-constructing loops. |
|||
dwarring | godd catch timotimo++ | ||
timotimo | yw :) | 23:59 | |
dwarring also jnthn++ performance, pmurias++ nqp-js |