»ö« 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:00
cognominal joined
00:05
Entonian left
|
|||
raiph | github.com/raiph/rakudo-debugger/c...nt-6177323 would appreciate response by someone who knows how to use github to do updates of pull requests | 00:06 | |
00:09
cognominal left
00:11
rurban left
00:32
cognominal joined
00:38
moistcherry joined
00:41
moistcherry is now known as hoverboard
|
|||
dwarring | raiph: I'm no github expert by any stretch | 00:56 | |
github automatically creates a branch for each PR | 00:57 | ||
that PR is on branch patch-4 | 00:58 | ||
I'd try: git checkout patch-4 | 00:59 | ||
raiph | dwarring: thanks for help | ||
dwarring++ # for advent fixing too | 01:00 | ||
dwarring: I don't currently use git but I guess it's time to change that :) | |||
dwarring | it's fun | 01:02 | |
have picked up lots of tips and techniques along the way | |||
still most of 2010 & 2011 open | 01:04 | ||
if anyone else wants to do some | |||
raiph | i've used git over the last couple years for a couple things but not with github repos nor with my current rakudo dev environment (feather) | 01:05 | |
dwarring | github adds another layer of magic | 01:07 | |
afk | 01:08 | ||
01:08
Sqirrel_ joined
01:10
Sqirrel left
01:22
xenoterracide_ joined
01:31
FROGGS joined
01:53
FROGGS left
01:54
klapperl_ left
01:55
klapperl joined
01:56
hoverboard left,
Su-Shee left,
FROGGS joined
01:57
xinming_ left
01:58
Su-Shee joined,
xinming_ joined
02:04
hoverboard joined
02:06
FROGGS left,
btyler left
|
|||
japhb | When a particular method of a common class in the setting does not make sense on some backends, what's the usual way to handle this? Hide the method entirely on those backends? Do an X::NYI.new(feature => 'The::Class.the-method').fail? | 02:06 | |
dalek | kudo/nom: 6023d81 | (Geoffrey Broadwell)++ | src/core/IO.pm: Add an IO::Path.watch convenience method |
02:12 | |
japhb just picked one | |||
02:23
hoverboard left
02:27
BenGoldberg left
02:29
BenGoldberg joined
02:33
xragnar_ joined,
xragnar is now known as Guest12522,
Guest12522 left,
xragnar_ is now known as xragnar
02:41
hoverboard joined
|
|||
colomon | hmmm, is there a way to do something in a loop every time but the first? | 02:44 | |
02:44
thou joined
02:49
hoverboard left
|
|||
BenGoldberg | while ( blah blah blah ) { state $first; doit() if $first++ } | 02:50 | |
colomon | BenGoldberg++ | ||
BenGoldberg | :) | 02:51 | |
Although you might want to declare $first as a 'my' variable, before the loop | 02:52 | ||
... if this is in a subroutine, and if you *don't* want it to be influenced by previous calls to the subroutine. | |||
03:03
dayangkun left
03:13
hoverboard joined
03:15
dayangkun joined
03:17
dayangkun left,
dayangkun joined
03:18
dayangkun left
03:19
dayangkun joined
03:20
dayangkun left
03:21
dayangkun joined
03:22
dayangkun left
03:23
dayangkun joined
03:24
dayangkun left
03:25
dayangkun joined
03:41
stux joined
03:45
thou left
03:55
BenGoldberg left
04:03
kaare_ joined
04:04
thou joined
04:09
zacts joined
|
|||
zacts | is perl6 usable for production projects? | 04:10 | |
04:10
FROGGS joined
04:12
hoverboard is now known as moistcherry
04:17
lvfjf left
04:18
SamuraiJack joined,
lvfjf joined
04:32
rindolf joined
04:34
Psyche^_ left
04:36
lvfjf left,
Psyche^ joined,
lvfjf joined
04:37
FROGGS left
04:39
adu joined
04:42
bjz joined
04:45
jnap1 left
|
|||
TimToady | .tell BenGoldberg using 'my' instead of 'state' is not necessary, since the loop's closure is recloned at the same time the 'my' would have been, so the state resets on re-entry to the outer scope | 04:48 | |
yoleaux | TimToady: I'll pass your message to BenGoldberg. | ||
04:49
moistcherry is now known as hoverboard
05:01
Alula_ left
05:02
kaare_ left
05:14
Alula_ joined
05:16
jnap joined
|
|||
adu | hi | 05:16 | |
05:18
lvfjf left
05:20
jnap left
05:26
kaare_ joined
05:30
sigstuff joined,
sigstuff left
05:34
rindolf left
05:42
telex left
|
|||
vendethiel | o/, #perl6 | 05:43 | |
05:44
telex joined
|
|||
nwc10 | jnthn: only ASAN fail is t/spec/S17-lowlevel/lock.rakudo.moar | 05:50 | |
jnthn: read by thread T3 of somethign freed by T1, allocated by T0 | |||
06:04
hoverboard is now known as moistcherry
06:05
rindolf joined
06:16
jnap joined
06:21
jnap left
06:25
thou left,
cxreg left
06:32
dayangkun left
06:35
cxreg joined
06:36
adu left
06:41
pdcawley left
06:43
pdcawley joined
06:45
kaare_ left
06:46
moistcherry left
06:47
FROGGS joined
06:49
dayangkun joined,
igorsutton joined
06:52
grondilu joined
|
|||
grondilu | std: $_ (-)= set () | 06:55 | |
camelia | std ec3d853: OUTPUT«===SORRY!===Confused at /tmp/RGWoGkVZS_ line 1:------> $_ ⏏(-)= set () expecting any of: feed_separator infix or meta-infix infixed function statement modifier loopParse failedFAILED 00:01 125m» | ||
grondilu | std: $_ = $_ (-) set () | 06:56 | |
camelia | std ec3d853: OUTPUT«===SORRY!===Confused at /tmp/iwM4f_285M line 1:------> $_ = $_ ⏏(-) set () expecting any of: feed_separator infix or meta-infix infixed function statement modifier loopParse failedFAILED 00:01 1…» | ||
nwc10 | jnthn: paste.scsys.co.uk/362401 -- ctx->callsite->has_flattening -- 0x6008003fab6c is located 28 bytes inside of 40-byte | 06:58 | |
no, 28 doesn't make sense to me in terms of structure offset, but it's adamant | 07:00 | ||
07:06
logie left
07:08
zakharyas joined
07:09
pecastro left
07:17
jnap joined
07:22
jnap left,
sqirrel joined,
darutoko joined
|
|||
lizmat | jnthn: didn't get around to testing async IO yet, got stuck with finding out why Supply.delay|stable tests don't work | 07:36 | |
07:40
Sqirrel_ left,
Sqirrel_ joined
07:46
sqirrel left
07:51
denis_boyun_ joined
07:53
thou joined
07:58
thou left
07:59
kaare_ joined
|
|||
dalek | ecs: 02e59c9 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Formally spec Supply.(Channel|Promise) |
08:07 | |
08:07
Ven joined
|
|||
Woodi | hi today :) | 08:08 | |
FROGGS | hi Woodi | 08:09 | |
lizmat | hi Woodi FROGGS ! | ||
FROGGS | hi lizmat :o) | ||
08:12
virtualsue joined
|
|||
dalek | ast: 219a020 | (Elizabeth Mattijsen)++ | S17-supply/Channel.t: Added basic Supply.Channel tests |
08:16 | |
08:18
jnap joined
|
|||
FROGGS | jnthn: I think I need your help after you had your coffee :/ | 08:18 | |
08:19
darutoko- joined
08:21
darutoko left
08:23
jnap left
|
|||
FROGGS | usually a HanderScope is made when I compile my script, which has a (labeled) loop | 08:23 | |
and this is differntly for MapIter, the HandlerScope is already made in the setting | |||
so I cannot attach the label to the handler at that time | |||
I think I need a way to attach/detach a label to a HandlerScope when it runs the MapIter.reify | |||
jnthn: does that seem sane? and how do I get my hands on that HandlerScope? | 08:24 | ||
Woodi | someone could help me how to get items from match object in order they was parsed ? I have files with colums definitions on top then data, then ocassionally columns redefinition. I trying to take this info from match object so working post-parse, no actions. | 08:25 | |
FROGGS | Woodi: can you put that in a gist? a runnable script including sample data? | ||
Woodi | k | ||
08:28
lue left
|
|||
Su-Shee | good morning everyone. | 08:29 | |
lizmat | Su-Shee o/ | ||
dalek | ast: 4ee319e | (Elizabeth Mattijsen)++ | S17-supply/Promise.t: Add basic Supply.Promise tests |
08:33 | |
kudo/nom: 936fb75 | (Elizabeth Mattijsen)++ | t/spectest.data: Make sure we test Supply.(Channel|Promise) |
08:35 | ||
ast: c0fc454 | (Elizabeth Mattijsen)++ | S17-supply/ (2 files): We don't need Test::Tap here |
08:36 | ||
lizmat | afk& | ||
Woodi | hi Su-Shee | 08:37 | |
08:37
darutoko joined
|
|||
Woodi | FROGGS: script and data: pastebin.com/qv7QnSUB | 08:38 | |
08:39
darutoko- left
|
|||
Woodi | probably I trying to mimic Perl5 way, badly etc. but I wonder can grammar be used in DOM/SAX/StAX ways ? :) pl.wikipedia.org/wiki/Streaming_API_for_XML | 08:40 | |
08:41
lue joined
|
|||
Woodi | um, en.wikipedia.org/wiki/StAX :) | 08:44 | |
FROGGS | Woodi: so you want to be able to loop over the headers, and then have the dlines in its header? | ||
Woodi | probably. I need to sums data in columns | ||
for start how to get something like $r.list... | 08:46 | ||
maybe "token lines" including all kinds could help... | 08:47 | ||
FROGGS | token TOP { [ <header> | <.comment> ]+ }; | ||
token header { '=data ' <cs>+ % [\h+] \n [ <dline> | <.comment> ]* }; | |||
I would use these tokens instead | 08:48 | ||
this way you would have the dlines nestid in their headers | |||
and you discard the comments | |||
Woodi | hmm | ||
right, let's build some grammar ;) | |||
FROGGS | then you can do: for @($r<header>) -> $h { for @($r<dline>) -> $dl { ... } } | 08:49 | |
08:49
raiph left
|
|||
masak | antenoon, #perl6 | 08:50 | |
Woodi | hallo masak | ||
FROGGS | Woodi: here is the gist: gist.github.com/FROGGS/3b7cebc3301e050a9b9a | ||
I commented some stuff so it better fits on my screen :o) | 08:51 | ||
hi masak | |||
Woodi | FROGGS: checking | ||
FROGGS: work ! thanx :) | 08:55 | ||
FROGGS | Woodi: you're welcome :o) | ||
Woodi | but still I have problem with understanding something: for @($r<header>) -> $h { for @($r<dline>)... $r<header> is level-one item in hash and $r<dline> is also level-one so normally they are unrelated. looks automagically works but I didn't try this approach becouse I expected <dlines> should be "inside" headers... | 08:58 | |
FROGGS | ohh | 08:59 | |
should be for @($h<dline>) | |||
masak | m: $h = { dline => 42 }; say @($h<dline>); say @$h<dline> | 09:00 | |
camelia | rakudo-moar 6023d8: OUTPUT«===SORRY!=== Error while compiling /tmp/O8M1HLVfJoVariable '$h' is not declaredat /tmp/O8M1HLVfJo:1------> $h⏏ = { dline => 42 }; say @($h<dline>); sa expecting any of: postfix» | ||
masak | m: my $h = { dline => 42 }; say @($h<dline>); say @$h<dline> | ||
camelia | rakudo-moar 6023d8: OUTPUT«42===SORRY!===postcircumfix:<{ }> not defined for type List» | ||
FROGGS | m: my $h = { dline => 42 }; say @h<dline> | 09:01 | |
camelia | rakudo-moar 6023d8: OUTPUT«===SORRY!=== Error while compiling /tmp/pe3EmJv7PLVariable '@h' is not declared. Did you mean '$h'?at /tmp/pe3EmJv7PL:1------> my $h = { dline => 42 }; say @h<dline>⏏<EOL> expecting any of: po…» | ||
FROGGS | ahh, wait, only @<foo> was sugar for @($<foo>) of course | ||
Woodi | ook, so probably my grammar was messing with me. thanx | 09:02 | |
btw. tips for grammars in Perl6: a) forget "rules"; b) use \h, not \s :) | 09:03 | ||
jnthn | FROGGS: No, 'cus that handler scope is static and so shared between all maps | 09:05 | |
FROGGS | and c) if the rules/token look overly complex, one is missing the obvious simple solution :o) | ||
jnthn | FROGGS: So will need to see what label is being thrown, if any, and check it in the handler, I think. | ||
FROGGS | jnthn: but how can I check it in the handler if I cannot attach it to the handler? | 09:06 | |
Woodi | no, no, no... for line-after-line format lines are obvious way ! | ||
FROGGS | I get the thrown payload, but I have nothing to compare it to | 09:07 | |
jnthn | FROGGS: huh? You pass the label into MapIter, no? | ||
FROGGS | Woodi: I wasn't talking about the current piece of code :o) | ||
jnthn: I have it in the MapIter, aye | |||
09:08
virtualsue left
|
|||
FROGGS | hmmm | 09:08 | |
jnthn | And the label is conveyed through the exception object, surely? | ||
FROGGS | the thrown label is in the payload of the exception, yes | ||
09:08
Rotwang joined
|
|||
jnthn | So you get it and compare it? | 09:09 | |
'REDO', $state = 2, | 09:10 | ||
FROGGS | jnthn: are you saying that I should try to get my hands on the thrown exception in MapIter.reify? using nqp::exception()? | ||
jnthn | Like there. | ||
Right. | |||
FROGGS | aha | ||
09:11
darutoko- joined
|
|||
jnthn | I hope at some point we'll compile sink-context for loops into something that doesn't need to go through MapIter. | 09:11 | |
FROGGS | I am all 'for' it :o) | ||
jnthn | :P | 09:12 | |
nwc10 | good appropriate-time-of-day, real-jnthn | ||
jnthn | o/ nwc10 | ||
09:14
darutoko left
09:19
jnap joined
09:23
jnap left
09:35
plobsing left
09:39
denis_boyun_ left
09:43
rindolf left
09:48
spider-mario joined
|
|||
FROGGS | ohh, it seems to work now... damn, that was tricky | 09:52 | |
jnthn | Welcome to Perl 6 impl :P | 09:55 | |
FROGGS | :P | 10:00 | |
jnthn | righty...admin things done, now I can hack :) | ||
nwc10 | good afternoon, jnthn | 10:01 | |
jnthn | ;) | 10:02 | |
I think the VMNull-introducing branch seems to not be busting things. | 10:05 | ||
So I think I'll go ahead and merge. | |||
10:06
dalek left
|
|||
jnthn | Hm, well, it was a ff in Moar :) | 10:06 | |
haha | |||
10:06
dalek joined,
ChanServ sets mode: +v dalek
|
|||
jnthn | github.com/Netflix/RxJava/wiki/Obs...s#parallel # that's a cute supply method idea :) | 10:09 | |
dalek | p: 2b8ad37 | jnthn++ | tools/build/MOAR_REVISION: Bump to a Moar with VMNull changes. |
10:15 | |
masak | this month still wants for a release manager. | 10:17 | |
10:19
jnap joined
10:23
jnap left
10:26
vaskozl joined
10:27
rindolf joined
10:29
ponbiki left
|
|||
dalek | kudo/nom: 7a8d595 | (Timo Paulssen)++ | src/vm/moar/ops/perl6_ops.c: this gets us through CORE.setting. but it's probably wrong. at the very least p6captureouters is not correct this way. |
10:32 | |
10:32
dalek left
10:33
dalek joined,
ChanServ sets mode: +v dalek
|
|||
colomon | …. errr, that's a scary looking commit message. | 10:33 | |
jnthn | colomon: It was the first commit in a branch | 10:34 | |
colomon: Which I just merged | |||
colomon | ah | ||
10:34
vaskozl left
10:38
denis_boyun_ joined
10:51
vaskozl joined
10:57
xinming_ left
|
|||
dalek | rlito: 4242a67 | (Flavio S. Glock)++ | / (4 files): Perlito5 - string parser flags \E \L \U \Q |
11:00 | |
p/async_ops: 7ca649e | (Donald Hunter)++ | src/vm/jvm/runtime/org/perl6/nqp/ (2 files): Implement asyncwritebytes on JVM. |
11:05 | ||
11:06
donaldh joined
|
|||
dalek | rlito: 971dcd9 | (Flavio S. Glock)++ | / (3 files): Perlito5 - AST dumper tweak |
11:08 | |
tadzik | did anyone look into a deserialization bug from p6u? | 11:11 | |
11:12
donaldh left
11:13
donaldh joined
|
|||
FROGGS | tadzik: not yet | 11:16 | |
11:18
xenoterracide_ left,
Alina-malina left
11:20
jnap joined
11:24
pippo joined
|
|||
pippo | o/ #perl6! | 11:24 | |
11:25
jnap left
|
|||
lizmat | pippo o/ | 11:25 | |
pippo | o/ lizmat :-) | 11:26 | |
I have tried this jnthn example here gist.github.com/anonymous/260ffb652a390fa9bb45 | 11:27 | ||
but does not reliably work: gist.github.com/anonymous/4850e487711d1d97dca7 | |||
Is it a know bug? | |||
lizmat tries | 11:29 | ||
pippo | Results differ and I also have unhandled exceptions … | ||
jnthn | If we're unlucky enough that .words uses gather/take, then it's probably the known issue around that. | 11:30 | |
Only on Moar, not JVM. | |||
pippo | jnthn: I confirm JVM works fine. | ||
lizmat | confirmed the problem on moar | 11:31 | |
.words uses .comb, which uses .map | |||
oops | |||
11:32
Alula_ left
|
|||
lizmat | words for defined objects uses com, which uses match, which uses gather | 11:32 | |
although I'm really at a los to understand why gather would be needed here | |||
11:33
Alula_ joined
|
|||
lizmat | *loss | 11:33 | |
dalek | kudo/nom: 7c80abb | jnthn++ | src/vm/moar/ops/perl6_ops.c: Fix a warning. |
11:35 | |
kudo/nom: 2f5809b | jnthn++ | src/vm/moar/ops/perl6_ops.c: Move some reads after lexical lookups. This is in preparation for making allocation of scalars etc. lazier. |
|||
pippo | lizmat: so at the moment gather/take is somehow causing glitches with concurrency on Moar. Thank you lizmat and jnthn. | 11:36 | |
I'll use JVM for that kind of tasks for now. | 11:37 | ||
11:38
pecastro joined
|
|||
lizmat | pippo: that seems like a good temporary workaround | 11:39 | |
jnthn | Yeah. I looked a bit at the gather/take bug. It's hard. | ||
The fix may not be hard | |||
But working out what's going on is. | 11:40 | ||
pippo | jnthn: I am not a pro. Well the contrary of that is more realistic. But if I can help I can have some hours this week-end. | 11:44 | |
afk & | 11:48 | ||
11:50
xinming_ joined
11:59
anaeem1 joined
12:03
anaeem1 left
12:05
denis_boyun_ left
12:16
Alina-malina joined,
SamuraiJack left
12:18
SamuraiJack joined
|
|||
masak | tip for when you know you only need one grammar/actions pair: put the grammar inside the actions class. | 12:18 | |
and then do G.parse(..., :actions(self.new)) | 12:19 | ||
or even $?CLASS.new | 12:20 | ||
12:20
Vlavv left
12:21
jnap joined
12:25
jnap left
|
|||
lizmat senses an opportunity for a blog post :-) | 12:26 | ||
masak | that's what I felt when I discovered this, yes. | 12:29 | |
I also re-used the same actions *object* for several parses, something I hadn't done before. | 12:30 | ||
this tends to be something one wants when parsing a line-based format. | |||
dalek | kudo-star-daily: 0da4854 | coke++ | log/ (5 files): today (automated commit) |
12:35 | |
Ven | github.com/coke/rakudo-star-daily/...0da4854209 -- changes over ~60 days | 12:37 | |
12:37
kurahaupo joined
|
|||
Ven | github.com/coke/rakudo-star-daily/...0da4854209 -- over one month | 12:38 | |
dalek | ecs: b806d66 | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Spec Supply.act |
12:39 | |
12:39
vaskozl left
|
|||
lizmat | m: Supply.new.tap.WHAT.say | 12:48 | |
camelia | rakudo-moar 72f5b9: OUTPUT«(Tap)» | ||
lizmat | m: Tap.WHAT.say | 12:49 | |
camelia | rakudo-moar 72f5b9: OUTPUT«===SORRY!=== Error while compiling /tmp/Rc9_uyKrhRUndeclared name: Tap used at line 1» | ||
lizmat | hmmm.. seems we cannot check if something is a Tap ? | ||
jnthn | Not easily | ||
I think it's a lexical class at the moment within Supply | |||
masak | m: my @fruits = { :apple }, { :orange }, { :orange }; for @fruits { when :(:$apple) { say "apple" }; when :(:$orange) { say "orange" } } | 12:50 | |
camelia | rakudo-moar 72f5b9: OUTPUT«appleorangeorange» | ||
lizmat | jnthn: it is | ||
masak | syntax is a bit quirky, but can definitely use signatures to partially match hash pseudo-objects. | ||
lizmat | is there a reason for having it only inside the Supply role ? | 12:51 | |
jnthn | Mostly because it's only meaningful for Supply to create them. | ||
And I tend to default to encapsulating things I consider implementation details :) | 12:52 | ||
lizmat | indeed, it;s now just hard to test whether .tap actually returns a Tap :-) | ||
jnthn | Aye. | ||
I've no particular feelings on how to fix that :) | |||
lizmat | the odd thing of course, is that .WHAT *does* expose the inner Tap class | 12:53 | |
as (Tap), not as e.g. (Supply::Tap) | 12:54 | ||
masak | lizmat: well, there's your way to check whether something is a Tap, then :P | ||
m: say Supply.new.tap ~~ Supply.new.tap.WHAT | 12:55 | ||
camelia | rakudo-moar 72f5b9: OUTPUT«True» | ||
lizmat | eh... that feels like checking that 42 ~~ 42 | ||
masak | more like 42 ~~ Int | ||
where someone gave you a type and told you it's an Int. | |||
lizmat | would be more like 42 ~~ 42.WHAT | 12:56 | |
I can't specify the Int, *that* is the problem | |||
masak | could declare a Supply.Tap method that returns the Tap type. | 12:57 | |
but I'm not sure that's preferable to just putting Tap outside Supply. | |||
lizmat | well, that's what | ||
brb | |||
masak | if the reason for keeping it inside was to control who gets to create objects. | 12:58 | |
m: my $t1 = Supply.new.tap; my $t2 = $t1.new; say $t2.^name; say $t1 === $t2 | |||
camelia | rakudo-moar 2f5809: OUTPUT«TapFalse» | 12:59 | |
masak | seems you can already. | ||
jnthn | Yeah, it's not any real protection. | 13:00 | |
lizmat | so ok if I take it out of the role ? | 13:01 | |
jnthn | yeah, I guess it won't cause any problems... | 13:02 | |
lizmat | ok, will check if it regresses anything | ||
13:08
Vlavv joined
|
|||
dalek | kudo/nom: 071ee1a | (Elizabeth Mattijsen)++ | src/core/Supply.pm: Move Tap class out of Supply role Mainly so that we can easily check for Tappiness of a tap |
13:12 | |
lizmat | no regresssions | ||
jnthn: is there any reason why you didn't implement act as: | 13:15 | ||
self.tap(&actor,|%_) | 13:16 | ||
? | |||
why the do, when the "more" on the tap would work just as well ? | |||
and we wouldn't need a moreless tap anymore then | 13:17 | ||
13:18
thou joined
|
|||
jnthn | lizmat: act promises actor semantics | 13:20 | |
lizmat: That is, you can be sure that you are only running the tap callback one at a time. | |||
lizmat | ah, and more doesn't | ||
[Coke] | still 2 segfaults in rakudo.moar spectests today (haven't pushed today's results yet) | 13:21 | |
jnthn | lizmat: The things you pass in .tap can run on many threads potentially | ||
[Coke] | still 1 rakudo.parrot failure. | ||
13:22
jnap joined,
thou left
|
|||
lizmat | gotcha | 13:23 | |
13:26
jnap left
|
|||
lizmat | jnthn: the only reason for the "moreless" tap, was act, right? | 13:27 | |
jnthn | lizmat: Yeah, though we may want a .wait() too | 13:28 | |
lizmat | as in Supply.wait ? | 13:29 | |
jnthn | Right | ||
lizmat | what would that do? | ||
jnthn | When you want to wait until a supply is done | ||
lizmat | ah, ok | ||
jnthn | Block until done or quit happens. | ||
It's sometimes useful, when you primarily want to tap a supply for its side-effects | |||
lizmat | ack, will spec and implement and test :-) | ||
jnthn | though tbh I've used it mostly in demonstrations more than real code | 13:30 | |
13:30
Alula_ left
|
|||
lizmat | well, I guess the same goes for await() :-) | 13:30 | |
13:30
virtualsue joined
|
|||
jnthn | No, await is nice in real things :) | 13:32 | |
timotimo | aye | ||
jnthn | Though we probably want to teach it to return the thread to the scheduler. | ||
ala C#'s await | |||
I almost made that happen once, but our continuations on JVM still hit too many barriers | 13:33 | ||
Probably can do it on Moar | |||
dalek | kudo/nom: 0a4dad0 | (Elizabeth Mattijsen)++ | src/core/Supply.pm: Leave some comments for future optimizers |
13:35 | |
13:36
virtualsue left,
virtualsue joined
13:40
bluescreen10 joined
13:43
rurban joined,
darutoko- left
13:44
Alula_ joined
|
|||
dalek | ast: 9c839e2 | (Elizabeth Mattijsen)++ | S17-supply/act.t: Add basic tests for Supply.tap |
13:49 | |
13:50
darutoko joined
|
|||
lizmat | afk for a bit | 13:51 | |
13:55
xinming_ left,
xinming_ joined
13:59
PerlJam left,
thou joined
14:00
Alula_ left,
Alina-malina left,
PerlJam joined,
Alula_ joined
14:02
Alina-malina joined
|
|||
dalek | rlito: 1bf5467 | (Flavio S. Glock)++ | / (3 files): Perlito5 - string parser flags \E \L \U \Q (more) |
14:03 | |
14:06
logie joined
|
|||
masak notices, not for the first time, how often he fails to follow his own advice in strangelyconsistent.org/blog/theres...-wrongness | 14:07 | ||
it's not even spelled out in that post. no wonder. :) | |||
"When testing that something fails, be sure to test for the *type* of failure." | |||
14:09
bluescreen100 joined
14:12
bluescreen10 left
14:15
Rounin left
|
|||
moritz | that's why implemented typed exceptions :-) | 14:16 | |
masak | :) | 14:17 | |
14:17
Rounin joined
|
|||
masak | moritz++ | 14:17 | |
moritz: did you know that Python 2 went through a similar improvement? | 14:18 | ||
from strings to types. | |||
moritz | masak: no, I didn't | ||
masak | Python 3.x finally gets rid of the last vestiges of the string ways to throw exceptions. | ||
moritz | $ git grep throws_like|wc -l | 14:19 | |
226 | |||
$ git grep 'class X::'|wc -l | |||
193 | |||
14:20
donaldh left
|
|||
moritz | the first one was in roast, the second in rakudo | 14:20 | |
seems like we're still a bit away from decent coverage here | |||
14:21
kurahaupo left
|
|||
masak | the second insight, which jnthn++ taught me and which I haven't written a blog post about, is that exception objects are *objects*, representing the interesting state at the time of error, along with the interesting follow-up actions you can take from there (e.g. to fix it). | 14:22 | |
slogan: "good exceptions tell you what to do next" | |||
moritz | that's fine for high-level exceptions | ||
14:22
jnap joined
|
|||
masak | right, my head is in application space ;) | 14:23 | |
moritz | for low-level exceptions like permissin denied", there simply is no good, universal perspective of what to do next | ||
masak | no, those perspectives tend to emerge within a program, not inside the compiler or runtime. | 14:24 | |
14:24
donaldh joined
14:26
treehug88 joined
14:27
jnap left
14:29
xenoterracide joined
14:31
jnap joined
|
|||
dalek | rlito: 96ad233 | (Flavio S. Glock)++ | / (3 files): Perlito5 - string parser flags \E \L \U \Q (more) |
14:36 | |
14:38
bluescreen__ joined
|
|||
moritz | masak: do you happen to remember that article on (weighted) dice rolling whose URL was floating around here a few times? | 14:40 | |
14:41
bluescreen100 left
|
|||
PerlJam | moritz: Are you talking about www.keithschwarz.com/darts-dice-coins/ ? | 14:46 | |
14:46
plobsing joined
|
|||
masak | that's the one. PerlJam++ | 14:48 | |
vendethiel | shouldn't that improvement make perl6 really faster ? | ||
moritz | PerlJam++ | 14:49 | |
masak | vendethiel: Perl 6 is a specification, without any inherent speed. | ||
vendethiel | -.- | ||
rakudo. | |||
masak | vendethiel: by "that improvement", do you mean the above-linked article? | ||
I don't believe weighted dice rolling is something that tends to be on hot paths... :) | |||
14:49
bluescreen__ left
|
|||
jnthn | Only in .roll :P | 14:50 | |
masak | oh, does .roll still do weighted? | ||
jnthn | No idea :) | ||
vendethiel | masak: ah, that's right, there's no mention of that MoarVM commit here | ||
masak | oh, that explains it. | ||
vendethiel | no, I meant lazily allocate $/ and $! | ||
masak | ah, yes. | ||
14:51
daniel-s joined
|
|||
timotimo | i wonder if there's a similarly clever thing to make .pick more efficient when it has n > 1 | 14:56 | |
moritz | timotimo: there are lots of things :-) | 14:57 | |
timotimo: assume you have M elements in the list | |||
timotimo: if M >> n, it makes sense to do n separate pics, with a blacklist of already picked elements, and retry if you hit the blacklist | |||
timotimo | oh | 14:58 | |
moritz | timotimo: if n is close to n, you can do a fisher-yates shuffle, and pick the first n elements | ||
timotimo | ah, i was actually also thinking of bag semantics, but that can be done with a mapping from n to Bag.kxxv | ||
jnthn | r: sub l () { 1, 2 }; my %a; my @z = (%a{'x'} = l, l); say @z.perl | 14:59 | |
camelia | rakudo-jvm 0a4dad: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} 0a4dad: OUTPUT«Array.new($((1, 2), (1, 2)))» | |||
moritz | and inbetween, you can make a copy of the array; pick one, delete it, move the last element its place, repeat | ||
lizmat | masak: fwiw, only scanning the article, I think that's how I implemented Baggy.roll and Baggy.pick | 15:00 | |
timotimo | that does sound pretty nice and should probably be done at some point :) | ||
#LHF | 15:01 | ||
15:01
pecastro left
15:02
Alula_ left
|
|||
jnthn | m: sub l () { 1, 2 }; my %a; say l.perl | 15:02 | |
camelia | rakudo-moar 0a4dad: OUTPUT«(1, 2)» | ||
15:02
pecastro joined
|
|||
jnthn | m: sub l () { 1, 2 }; my %a; say (l, l).perl | 15:02 | |
camelia | rakudo-moar 0a4dad: OUTPUT«((1, 2), (1, 2))» | ||
jnthn | m: sub l () { 1, 2 }; my %a; say (%a{'x'} = l, l).perl | ||
camelia | rakudo-moar 0a4dad: OUTPUT«$((1, 2), (1, 2))» | ||
15:02
lvfjf joined
|
|||
moritz | timotimo: actually, List.pick already uses Fisher-Yates | 15:04 | |
timotimo: and a lazy one at that :-) | |||
timotimo | oh, very good | ||
moritz | timotimo: so the only optimization might be to not clone the array if there's a small number of elements picked | ||
timotimo | like a single one :) | 15:05 | |
moritz | timotimo: not sure if that's work it | ||
maybe for really large lists | |||
timotimo | already does that | ||
15:05
Alula_ joined
|
|||
timotimo | return self.at_pos($elems.rand.floor) if $n == 1; - for list at least | 15:06 | |
PerlJam | Just read a brief discussion on #perl regarding threads and the usual mantra of "don't use threads" was, of course, uttered. It is so nice to never have to say that for Perl 6. :-) | ||
15:06
MilkmanDan left
|
|||
timotimo | okay, all that stuff seems to have already seen a slight optimization pass some time in the past | 15:06 | |
15:07
MilkmanDan joined
|
|||
Ulti | if I get "Error while compiling op call: Iteration past end of iterator" whilst working with a Grammar.parse() any protips on golfing? | 15:07 | |
moritz | Ulti: run with --ll-exception, and nopaste the backtrace somewhere | 15:08 | |
timotimo | that usually happens inside the QAST/Operations.nqp of nqp | ||
moritz detects lighting and thunder, and disconnects his laptop from the power cord | 15:10 | ||
Battery 0: Discharging, 99%, 03:41:34 remaining | |||
that should suffice :-) | 15:11 | ||
15:11
igorsutton left
|
|||
Ulti | pastebin.com/6f7eeCZq | 15:11 | |
code: gist.github.com/MattOates/0a0dac1fd96377da2c35 | 15:12 | ||
15:12
average joined
|
|||
Ulti | though a much simpler version with just the grammar and .parse had the same problem | 15:12 | |
15:12
igorsutton joined
|
|||
Ulti | slurp is all ok | 15:12 | |
also perl6 version 2014.04-117-gc9f2239 built on MoarVM version 2014.04-29-ga109e8d | 15:13 | ||
dalek | rlito: 8dda686 | (Flavio S. Glock)++ | / (4 files): Perlito5 - string parser flags \E \L \U \Q (more) |
15:15 | |
PerlJam | Ulti: What are all of those other letters for in dna/rna? | 15:16 | |
Ulti | various confusion sets | ||
timotimo | bon marcher | ||
er. | |||
Ulti | where you aren't sure which of two nucleotides it is | ||
15:16
igorsutton left
|
|||
Ulti | or they have some modification | 15:17 | |
masak | lizmat: oh -- didn't know that, but very happy to hear it. lizmat++ | ||
Ulti | like you are talking about weird functionalised short bits of RNA or DNA | ||
PerlJam: if you are super interested en.wikipedia.org/wiki/FASTA_format#...esentation | 15:18 | ||
masak | Ulti: so, basically, any() semantics. :) | ||
Ulti | yeah | ||
masak | or one(), I guess. | ||
moritz | Ulti: now that I'm looking at the backtrace, I have no clue. Sorry :( | 15:20 | |
Ulti | heh yeah | ||
I'll try something insanely simple like a trivial grammar | 15:21 | ||
masak | pro tip: develop grammars using TDD. you'll thank yourself. | ||
vendethiel is on an unity project and did not find the "tests" button | 15:22 | ||
timotimo | m: for <1 2 3> Z <a b c> -> $a Z $b { say "$a $b" }; # this could do with a better error message, IMO. | ||
camelia | rakudo-moar 0a4dad: OUTPUT«===SORRY!=== Error while compiling /tmp/lDELijvTtkMissing blockat /tmp/lDELijvTtk:1------> for <1 2 3> Z <a b c> -> $a ⏏Z $b { say "$a $b" }; # this could do wi expecting any of: postfix …» | ||
timotimo | m: for <1 2> Z <a b> -> $a Z $b { $a ~ $b } | 15:23 | |
camelia | rakudo-moar 0a4dad: OUTPUT«===SORRY!=== Error while compiling /tmp/lgqoxfTObLMissing blockat /tmp/lgqoxfTObL:1------> for <1 2> Z <a b> -> $a ⏏Z $b { $a ~ $b } expecting any of: postfix infix stopper …» | ||
TimToady | why are you putting an operator into a signature? | ||
PerlJam | TimToady: that would be the better error message ;) | 15:24 | |
TimToady | well, unrecognized capitalized words in a sig are much likelier to be types | ||
if it's a rare enough failure mode, it's not worth the dwim, and it does, in fact, point at exactly where the problem was | 15:26 | ||
perhaps it could see that a { is nearby, and say "Unrecognized stuff before the {" or some such | |||
or maybe "Missing block or malformed signarue" | 15:27 | ||
s/ru/tur/ | |||
we also don't know that they didn't intend => $a | 15:28 | ||
15:28
Alula_ left
|
|||
TimToady | or suppose they said $a X $b, and really meant $a, X $b | 15:28 | |
15:28
Alula_ joined
|
|||
TimToady | sometimes better messages aren't better | 15:29 | |
PerlJam | "malformed signature" seems like it would have provided a little more cognitive push in a useful direction. | ||
15:30
MilkmanDan left
|
|||
dalek | ast: c9dced7 | (Elizabeth Mattijsen)++ | S02-names/is_cached.t: Add test for "is cached" on proto with --optimize=0, all is ok. With any other setting, the proto is taken out and two tests fail. |
15:31 | |
15:31
MilkmanDan joined
15:32
zakharyas left
15:33
plobsing left
|
|||
PerlJam | Ulti: I did a couple of quick tests and the iterator error only seems to appear when I have <-[ ]>+ as the pattern for id. change that to \S+ and it doesn't generate that error anymore. | 15:36 | |
15:38
beastd joined
|
|||
Ulti | I have a flip between working and not working when I move from "grammar TRIVIAL { rule TOP {<[A..Z]>+} }" to "grammar TRIVIAL { rule TOP { <line>* } token line {<[A..Z]>+} }" | 15:38 | |
this is with something super simple | 15:39 | ||
lines of random capital letters | |||
and just the code for that grammar and a slurp and TRIVIAL.parse | |||
so unless what I've done with that rule/token is super weird there is some bug outside of my code | 15:40 | ||
TimToady | where do you eat the \n? | ||
Ulti | I don't, but I get the same thing if I tell "line" to eat the \n | ||
as in put it inside the character class | |||
<[A..Z\n]> | |||
is that wrong? | 15:41 | ||
TimToady | well, the * on <line> is a difference | ||
15:41
isBEKaml joined,
bjz left
|
|||
TimToady | if you put \n in the cclass it will eat the whole file | 15:41 | |
Ulti | yeah | ||
at the moment I dont really care what is matched... I just dont want a failed to compile OP | 15:42 | ||
TimToady | what's the error message? | ||
Ulti | Error while compiling op call: Iteration past end of iterator | ||
TimToady | cool! | ||
Ulti | yeah I thought the point of iterators is they dont iterate past the end of where you can iterate :3 | 15:43 | |
15:43
raiph joined,
dmol joined
|
|||
TimToady | maybe someone here remmebers working in the neighborhood of that error message lately | 15:43 | |
Ulti | yeah I did `rakudobrew build moar` about half an hour ago | 15:44 | |
lizmat | FROGGS has been working in that area, no? trying to get labels in? | ||
PerlJam | yeah, but aren't his changes on a branch? | ||
TimToady | or maybe lack-of-progress checking in regex? | ||
PerlJam | Ulti: have you tried it on rakudo-jvm? | 15:45 | |
(or parrot?) | |||
TimToady | .parse is supposed to enforce a complete match; maybe there's an extra \n at the end? | ||
Ulti | PerlJam: it might not generate the error with the \S+ but it also goes utterly crazy | 15:46 | |
also \S+ isn't what I want the format specifically is a ' ' not any white space :S | |||
PerlJam: nope | |||
TimToady | you can't match not-space with <-[ ]> because ws is insigificant inside cclasses | 15:47 | |
Ulti | :( | ||
PerlJam | Ulti: I think you can use <-space> | 15:48 | |
TimToady | m: $_ = "foo"; say ~/\X20/ | ||
PerlJam | <space> matches a literal space char, no/ | ||
camelia | rakudo-moar 0a4dad: OUTPUT«» | ||
PerlJam | ? | ||
TimToady | n: $_ = "foo"; say ~/\X20/ | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«Regex()<instance>» | ||
moritz | <-[\ ]> | ||
TimToady | <-[\x20]> | 15:49 | |
PerlJam | tmtowtdi! :) | ||
TimToady | m: $_ = "foo"; say ~/<-[\ ]>/ | ||
camelia | rakudo-moar 0a4dad: OUTPUT«» | ||
TimToady | m: $_ = "foo"; say ~m/<-[\ ]>/ | ||
camelia | rakudo-moar 0a4dad: OUTPUT«f» | ||
TimToady | m: $_ = "foo"; say ~m/\X20/ | 15:50 | |
camelia | rakudo-moar 0a4dad: OUTPUT«f» | ||
dalek | kudo/nom: aa19f5c | (Elizabeth Mattijsen)++ | t/spectest.data: Make sure we test Supply.act |
15:51 | |
jnthn | "Iteration past end" things are normally due to something in NQP expecting an array to have a certain multiplicity of elements, and it failing to do so. | 15:52 | |
15:52
Ven left,
ponbiki joined
|
|||
PerlJam | so ... what does <-[ ]> mean exactly? Match any character that's not in the empty set? | 15:53 | |
Seems like that would be an easy target for an appropriately helpful error message. | 15:54 | ||
FROGGS | PerlJam: my stuff is in a branch, aye | 15:58 | |
japhb | I just wandered around the search results for 'use NativeCall' in Perl code on GitHub. There's some cool stuff in there. :-) | 16:07 | |
avuserow: Do you mind if I use a snippet of your perl6-compress-snappy code as a NativeCall example in my talk-in-progress? | 16:10 | ||
BTW, one thing I'm noticing in all this NativeCall-using code I'm looking through is that people have reinvented a sub to figure out the correct lib name to use in the 'is native()' trait on multiple platforms over and over and over. This seems to be something NativeCall could just provide, at least for the relatively common cases. | 16:14 | ||
FROGGS | it should at least provide a proper hook | 16:15 | |
or patterns or so | |||
japhb | Is { ... } or {*} the current idiom for native routines? | 16:19 | |
FROGGS | the Whatever I think | ||
jnthn | The whatever. | ||
FROGGS | because that is like what the default proto is, ... is stub code | 16:20 | |
16:20
dwarring left
|
|||
FROGGS | and it is more like "yeah, dispath as you want" rather than "ohh dang, stub code /o\" | 16:20 | |
dalek | ecs: c2543da | (Elizabeth Mattijsen)++ | S17-concurrency.pod: Spec Supply.wait |
16:21 | |
kudo/nom: ac169ca | (Elizabeth Mattijsen)++ | src/core/Supply.pm: Naive implementation of Supply.wait |
16:23 | ||
16:23
pecastro left
|
|||
japhb | FROGGS, jnthn: I was hoping that was the right answer. :-) | 16:26 | |
FROGGS | good :o) | ||
16:34
hoverboard joined
|
|||
jnthn just taught the inliner to generate simpler code when it can see the args to the thing being inlined are used just once in inline target. | 16:36 | ||
FROGGS | coool! | 16:38 | |
jnthn | Still spectesting, but gist.github.com/jnthn/7d2421d4e3e77b7570b5 is nice. | ||
FROGGS | ohh | ||
:o) | |||
nwc10 | interesting. | ||
vendethiel | oh wow :-) | 16:39 | |
jnthn | It's just one benchmark. :) | ||
loop_empty_native from perl6-bench, of note | |||
nwc10 | sure, but it's the first one I've seen where interpreted Perl 6 has out-done interpreted Perl 5 | 16:40 | |
jnthn | Same. | ||
Also, the code still ain't that great. | |||
nwc10 | also, I stress, "interpreted" | 16:41 | |
in that, likely someone will say "but $other is faster, but their $other involves a JIT" | |||
er, | |||
in that, likely someone will say "but $other is faster", but their $other involves a JIT. Which isn't a fair race. | |||
but, of course, the way to beat the JIT is to do less work, so that the relative JIT startup cost hurts | 16:42 | ||
16:42
xenoterracide left
|
|||
nwc10 | (ie, the antithesis of PyPy benchmarks) | 16:42 | |
16:42
xenoterracide_ joined
|
|||
nwc10 | jnthn: your new thing is cross-backend, or Moar only? | 16:42 | |
jnthn | cross-backend | 16:43 | |
timotimo | the benchmark is already done, huh. | ||
dalek | p: 80e52eb | jnthn++ | src/QAST/ (11 files): Add a way to count arg placeholder usages. |
||
jnthn | timotimo: I guess you were just running a Moar one? | 16:44 | |
FROGGS | I stil have the dream that stage parse drops to like 20s... I wonder if we get there this year | 16:46 | |
jnthn | There's a good chance, what with spesh coming along, JIT, etc. | 16:49 | |
dalek | ast: 2b2646a | (Elizabeth Mattijsen)++ | S17-supply/wait.t: Add simple tests for Supply.wait |
||
nwc10 | we can have a pony? Er, racehorse? Er, racing camel? | ||
is that a standard benchmark in the suite? Would be interesting to see it across all 3 backends, and for different iterations on the JVM | 16:52 | ||
dalek | p: a232e9a | jnthn++ | tools/build/MOAR_REVISION: Get a MoarVM with lazy lexical alloc opt. |
16:53 | |
jnthn | nwc10: The one I just did, or what FROGGS is asking about? | 16:55 | |
dalek | kudo/nom: 270aec7 | jnthn++ | / (2 files): Generate better code in some cases if inlining. If the argument is only ever used once, no need to assign it to a temporary. Also bumps NQP_REVISION to get needed QAST improvement. |
16:56 | |
nwc10 | your loop where MoarVM beats your Perl 5 | ||
jnthn | nwc10: oh, yeah, that's in there | ||
17:02
rurban left
17:06
hoverboard left
|
|||
dalek | kudo/nom: 8ddb1e7 | (Elizabeth Mattijsen)++ | t/spectest.data: Make sure we test Supply.wait |
17:09 | |
17:15
LLamaRider joined
|
|||
[Coke] | jnthn++ | 17:15 | |
[Coke] wonders if we should go through --optimize levels and run the spec test suite and see what breaks. | |||
(for each level/backend combo) | |||
(ratcheting up the default level as they test clean?) | 17:16 | ||
lizmat | before these last changes: | 17:19 | |
Files=834, Tests=31809, 225 wallclock secs ( 8.88 usr 4.12 sys + 1430.82 cusr 150.27 csys = 1594.09 CPU) | |||
after these changes: | |||
Files=834, Tests=31812, 212 wallclock secs ( 8.37 usr 3.94 sys + 1350.15 cusr 145.75 csys = 1508.21 CPU) | |||
moritz | m: say (225 - 212) / 225 | ||
camelia | rakudo-moar aa19f5: OUTPUT«0.057778» | ||
17:20
LLamaRider left
|
|||
lizmat | m: say (1594 - 1508) / 1594 | 17:20 | |
camelia | rakudo-moar aa19f5: OUTPUT«0.053952» | ||
lizmat | pretty consistent wallclock / CPU savings | ||
too bad we've gone from ~180 wallclock a few weeks ago to 210 | 17:21 | ||
although there were quite some tests added | |||
I don't think they account for the difference | |||
17:22
LLamaRider joined
|
|||
lizmat | fwiw, I'm not seeing such a good test on OSX: | 17:24 | |
$ time perl6 --optimize=3 -e 'loop (my int $i = 1; $i <= 100000000; $i = $i + 1) { }' | |||
real0m11.508s | |||
user0m11.459s | |||
$ time perl -e 'use integer; for (my $i = 1; $i <= 100000000; $i = $i + 1) { }' | |||
real0m5.788s | |||
user0m5.784s | |||
so on my machine, Perl 5 is still twice as fast :-( | 17:25 | ||
17:25
REPLeffect joined
|
|||
nwc10 | lizmat: figure out how to do dead code elimination in NQP. At which point, Rakudo will be faster :-) | 17:26 | |
can NQP constant fold yet? | 17:27 | ||
FROGGS | jnthn: doing the label checks in nqp::handle does not work too well... | 17:29 | |
17:29
isBEKaml left
|
|||
FROGGS | jnthn: because it means that I'd need to throw/rethrow in case we try to run the handler of the wrong label | 17:30 | |
17:30
guru joined
|
|||
FROGGS | jnthn: and rethrowing somedoes not work... it rethrows to itself | 17:30 | |
17:30
guru is now known as ajr_
|
|||
FROGGS | and its stops after eight times | 17:30 | |
jnthn | lizmat: Well, probably compiler differences. | 17:31 | |
lizmat | perhaps :-( | 17:32 | |
jnthn | lizmat: Things in my Linux VMs are always a LOT slower than my native Windows builds. | ||
I wonder what optimization level we're using today. | |||
'cus at one point (maybe still true) we didn't build with -O3 or even -O2 | 17:35 | ||
While MSVC has all the opts turned on. | |||
lizmat | clang -fno-omit-frame-pointer -fno-optimize-sibling-calls -O1 -DNDEBUG -D_DARWIN_USE_64_BIT_INODE=1 | 17:37 | |
17:37
hoverboard joined
|
|||
jnthn | -DNDEBUG won't be helping any either. | 17:37 | |
jnthn wonders what happens if that is bumped to -O2 | 17:38 | ||
17:38
atta joined
|
|||
lizmat tries | 17:38 | ||
17:43
lvfjf left
17:44
lvfjf joined
|
|||
nwc10 | no, -DNDEBUG helps. That disables assertions. | 17:46 | |
jnthn: HEAD/HEAD/HEAD works on "my" machine, still. | 17:47 | ||
17:47
pecastro joined
|
|||
nwc10 | and if -O2 breaks, try -O2 -fno-strict-aliasing | 17:48 | |
jnthn | oh...duh :) | ||
nwc10 | and be unhapy that we are still using something not entirely unlike C | ||
I can't remember if there was an actual usable tool, or just a paper about hacking clang to figure out what code is "dead" due to optimisations, but changes behaviour | 17:49 | ||
ie, undefined behaviour you should fix | |||
jnthn | nqp: say(9 +> 3) | 17:52 | |
camelia | nqp-parrot: OUTPUT«Confused at line 2, near "say(9 +> 3"current instr.: 'panic' pc 15634 (gen/parrot/stage2/NQPHLL.pir:5739) (gen/parrot/stage2/NQPHLL.nqp:425)» | ||
..nqp-moarvm: OUTPUT«Confused at line 2, near "say(9 +> 3" at gen/moar/stage2/NQPHLL.nqp:369 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/NQPHLL.moarvm:panic:105) from gen/moar/stage2/NQP.nqp:917 (/home/p6eval/rakudo-inst-1/languages/nqp/lib/nqp.moarvm:comp_unit:346) fro…» | |||
..nqp-jvm: OUTPUT«(timeout)## 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_pid4249.log[thread 140456514119424 also had an error]» | |||
jnthn | nqp: say(nqp::bitshiftl_i(9, 3)) | ||
camelia | nqp-jvm: OUTPUT«## 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_pid4304.log» | ||
..nqp-{moarvm,parrot}: OUTPUT«72» | |||
nwc10 | jnthn: on "my" machine, perl 5 is 12.5s, perl6-m is 17 | 17:55 | |
vendethiel | (I guess a leftshift *is* a memory-intensive operation, after all) | ||
nwc10 | thats /usr/local/bin/perl | ||
nwc10 builds blead with the same compiler as MoarVM used | 17:56 | ||
18:00
lvfjf left,
lvfjf joined
|
|||
nwc10 | blead is twice as fast as perl6-m | 18:02 | |
this week. | |||
18:02
rurban joined
|
|||
nwc10 | (Better compiler, and likely better runtime, as /usr/local/bin/perl is 5.12.something) | 18:03 | |
no, not my machine. | |||
itz goes to rakudo.org/downloads/star/ | 18:05 | ||
:( | |||
nwc10 | well volunteered! :-) | ||
18:07
rurban left,
Entonian joined
18:08
Rotwang left
18:09
Entonian left
18:15
hoverboard is now known as moistcherry
|
|||
masak | m: grammar G { regex TOP { $<thing>=a? } }; say ?G.parse("")<thing> | 18:19 | |
camelia | rakudo-moar 270aec: OUTPUT«True» | ||
masak | this just suprised me a lil' bit :) | 18:20 | |
m: grammar G { regex TOP { $<thing>=a? } }; say ?G.parse("")<thing>.chars | |||
camelia | rakudo-moar 270aec: OUTPUT«False» | ||
masak | guess I can check it like that instead... | ||
FROGGS | a match is a match, even when it successfully matched an empty string | 18:21 | |
masak | I'm not saying it's not *reasonable*, by the way. the quantifier did match. | ||
right. | |||
so I'm not clamoring for change here. | |||
just saying it's a possible gotcha. | |||
FROGGS | but yeah, it is a little WAT | ||
timotimo | t.h8.lv/p6bench/2014-05-01-vmnull.html - interesting. | 18:22 | |
lizmat | nwc10 jnthn: so I hacked the Makefile s/O1/O2 | 18:25 | |
build and ran spectest: ok, and at 205/1455 (so less than before, but close to noiselevels) | |||
now I'm looking at a more reliable way of changing -O1 to -O2 | 18:26 | ||
is there a parameter for that anywhere in Configure.pl? | |||
or is it some template file I need to change? | |||
^^ moritz ? | |||
retupmoca | lizmat: I'm passing '--optimize=3' to moar's Configure.pl for -O3 | ||
gcc -O3 is looking clean as well so far, but I don't have any benchmark data points | 18:27 | ||
lizmat | Unknown option: optimize | 18:28 | |
guess I'm looking at the wrong Configure.pl | |||
FROGGS | moar's configure.pl is that | ||
retupmoca | I build moar/nqp/rakudo from separate checkouts, FWIW | ||
FROGGS | me too | ||
moritz | lizmat: are you talking about rakudo's optimize level? or that of the C compiler? | 18:29 | |
timotimo | seems like i need to get an even newer rakudo and test that | ||
lizmat | C compiler | ||
I thought was the idea ? | |||
18:29
ivanshmakov left
|
|||
lizmat is a noob developer who only uses --gen :-) | 18:30 | ||
moritz | lizmat: I think [Coke] was talking about rakudo's --optimize= levels | ||
lizmat | ah, then we're miscommunicating :-) | ||
masak | I might've just discovered a new pattern. it's not earth-shattering, but it's nice. | 18:31 | |
`if %h<prop> :delete { ... }` | |||
(only use when %h<prop> is guaranteed to only hold truthy values, I guess) | |||
oh wait. | 18:32 | ||
lizmat | anything that booleanifies will do I guess | ||
moritz | masak: you could say if %h<prop> :delete :exists { ... } otherwise | ||
masak | moritz: yeah, just realized. | ||
this is verra nice. | |||
lizmat | S02:2559 | 18:33 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_2559 | ||
lizmat | I knew it would come in handy someday :-) | ||
masak | :) | ||
moritz | lizmat++ # implementing it | ||
masak | lizmat: yes, I remember it. it came in handy just now :) | ||
18:33
ivanshmakov joined
|
|||
masak | lizmat: I remember discussing the semantics with you, too. but I forget which bit exactly. | 18:34 | |
lizmat | well, when I started looking at slice adverbs | ||
nobody had thougt (afaik) that you might want to do more than 1 | 18:35 | ||
and nobody had thought about really using them as full blown adverbs | |||
e.g. :delete($really) | |||
would only delete if $really was true | |||
18:37
daxim left
18:42
Timbus left
|
|||
dalek | kudo/nom: fd5f8eb | (Elizabeth Mattijsen)++ | src/core/Supply.pm: We don't need a vow as we don't expose the Promise |
18:46 | |
18:47
Timbus joined
18:51
moistcherry is now known as hoverboard,
btyler joined
18:52
daxim joined
18:59
hoverboard is now known as moistcherry
19:01
Rotwang joined
19:02
Rotwang left,
lvfjf_ joined
19:04
rurban joined
19:05
SamuraiJack left
|
|||
timotimo | t.h8.lv/p6bench/2014-05-01-vmnull.html - update | 19:06 | |
19:06
lvfjf left,
lvfjf_ is now known as lvfjf
|
|||
lizmat | what happend in while/push/join? | 19:07 | |
and rc-forest-fire? | 19:08 | ||
19:08
rurban left
|
|||
vendethiel | rakudo moar faster than nqp moar ?! | 19:08 | |
timotimo | probably noise? | 19:09 | |
lizmat | ah, of course... nqp vs moar | ||
*phew* | |||
timotimo | whoa. | ||
lizmat | ? | ||
vendethiel | lizmat: you can go back to doing non-production-ready stuff with perl6 now :P | ||
lizmat | eh, why would I want to ? | 19:10 | |
vendethiel | that was a joke. doesn't matter, anyway | ||
lizmat must be too autistic | 19:11 | ||
moritz | auto[sic] | 19:13 | |
timotimo | vendethiel: were you referring to "it came in handy just now"? | ||
19:13
darutoko left
|
|||
vendethiel | timotimo: no, I thought lizmat read those benchmarks as nqp vs perl5 vs rakudo | 19:15 | |
m: augment class Int { supersede method Bool { !!! } } | 19:19 | ||
camelia | rakudo-moar 8ddb1e: OUTPUT«===SORRY!=== Error while compiling /tmp/YT1QI8AzdAaugment not allowed without 'use MONKEY_TYPING'at /tmp/YT1QI8AzdA:1------> augment class Int ⏏{ supersede method Bool { !!! } } expecting any of: …» | ||
vendethiel | m: use MONKEY_TYPING; augment class Int { supersede method Bool { !!! } } | ||
camelia | rakudo-moar 8ddb1e: OUTPUT«===SORRY!=== Error while compiling /tmp/TXKRzShZIs"supersede" not yet implemented. Sorry. at /tmp/TXKRzShZIs:1------> ass Int { supersede method Bool { !!! } ⏏} expecting any of: argument list…» | ||
19:21
rindolf left
|
|||
masak | lizmat: oh, right. I suggested the :delete($really) use case. now I remember :) | 19:21 | |
lizmat: I think multiple adverbs had been thought about before, but not really used in practice. nor thought through to the end, like you did. | 19:22 | ||
lizmat | hence the "afaik" in my remark :-) | ||
masak | I distinctly remember discussing combintations of :exists and :delete in a certain room at Bishops here in Malmö, with jnthn, while drinking a nice beer or other... | 19:23 | |
combinations* | |||
jnthn | Bishops. What would we do without it... | 19:25 | |
lizmat | either I had too much Bishops, or I wasn't there :-) | 19:26 | |
jnthn | lizmat: Yes, it was the place with the huge selection of whisky. | 19:28 | |
vendethiel | `let $a;` is basically `temp $a; UNDO undefine $a;` ? | ||
timotimo | t.h8.lv/p6bench/2014-05-01-vmnull.html - now with more perl5 | 19:29 | |
vendethiel | what is happening with while_bind's nqp version ? | 19:31 | |
timotimo | bad accuracy + noise? | 19:32 | |
vendethiel | I suppose. | ||
postwhile_nil_native goes crazy too | |||
timotimo | yes | 19:33 | |
19:34
moistcherry left
|
|||
masak | vendethiel: not sure about 'undefine' (which doesn't exist in Perl 6, by the way). doesn't it set $a back to its previous value if any? | 19:34 | |
timotimo | jnthn: make it even faster, please :) | ||
jnthn | :P | ||
19:34
dwarring joined
|
|||
vendethiel | masak: S04 "causes $x to start with its current value. Use `undefine temp $x;` to get Perl5 ..." | 19:35 | |
19:35
molaf_ joined
|
|||
timotimo | i'm going to build 2014.04 benchmarks for the nqps now, too | 19:35 | |
vendethiel | S04:200 | 19:36 | |
synopsebot | Link: perlcabal.org/syn/S04.html#line_200 | ||
vendethiel looked through github's interface, and it was painful | |||
19:38
molaf left
19:40
kurahaupo joined
|
|||
masak | m: my $x = 42; undefine $x; say $x | 19:40 | |
camelia | rakudo-moar fd5f8e: OUTPUT«(Any)» | ||
masak | vendethiel: I stand corrected. | ||
lizmat | m: my $x is default(42) = 17; undefine $x; say $x | 19:41 | |
camelia | rakudo-moar fd5f8e: OUTPUT«42» | ||
lizmat | sub undefine(Mu \x) { x = Nil } | 19:42 | |
undefine foo is the same as assigning Nil to foo | |||
I seem to remember a discussion on whether to deprecate undefine | |||
S32/Basics:74 | 19:43 | ||
"In all cases, calling C<undefine> on a variable should place the object in the same state as if it was just declared." | 19:44 | ||
timotimo | tadzik: you're being sloppy with your docs! | 19:46 | |
19:46
rurban joined
19:48
dlem joined
19:50
igorsutton joined
19:51
LLamaRider left,
rurban left
19:52
moistcherry joined
19:54
Vlavv left
19:58
nebuchadnezzar left
|
|||
lizmat | should unlink return True on attempting to unlink a non-existing file ? | 19:59 | |
Perl 5 returns 0 in that case, rather than 1 | |||
19:59
kurahaupo left
20:00
lvfjf left,
lvfjf joined
|
|||
dlem | \o/ | 20:00 | |
dalek | rl6-roast-data: 97375a0 | coke++ | / (6 files): today (automated commit) |
||
dlem | I just read jnthn's "Reactive Programming in Perl 6". Exciting times :-) | 20:01 | |
20:01
vaskozl joined
|
|||
timotimo | yes | 20:02 | |
quite | |||
dlem | One detail which seems a bit non-intuitive to me is the use of "more" to feed a supply. | 20:03 | |
How about "feed"? Or even "sink", to go with "tap" ;-) | 20:04 | ||
lizmat | feed and sink already have distinct (other) meanings in Perl 6 | ||
feels to me that could cause confusion | |||
dlem | OK. But "more"? I had to think about that one more than once before undertanding the meaning. | 20:05 | |
*understanding | |||
vendethiel | ^agreed. same with "winner" | ||
lizmat | as far as I'm concerned, the last word about "winner" hasn't been said yet | 20:06 | |
dlem | I also read "tap" as a verb, so "more" doesn't quite do it for me. | ||
lizmat | as in the current spec, it is really of very limited use | ||
20:07
Vlavv joined
|
|||
lizmat | .provide instead of .more ? | 20:07 | |
lee_ | .push? | 20:08 | |
dlem | .put, which is *almost* .tap backwards ;-) | ||
lizmat: What are the current meanings of feed and sink which would cause confusion? | 20:09 | ||
btyler | sink context, and ==> feeds | ||
which someone else will have to explain, I only know the words :) | 20:10 | ||
lizmat | S06:1390 | ||
synopsebot | Link: perlcabal.org/syn/S06.html#line_1390 | ||
dlem | AFAIK "sink context" ~ "void context". Using .sink to feed a supply wouldn't confuse me, at least. | 20:11 | |
vendethiel | .oO( pat a supply ? ) |
||
dlem | vendethiel: He he, I thought about that one, too :-) | ||
lizmat | vendethiel: I was actually thinking the same thing | ||
dlem | If the current meaning of feed is ==>, then .feed to feed the supply wouldn't confuse me either. | 20:12 | |
Similar concepts, IIUC. | 20:13 | ||
But .more? Come on! ;-) | |||
lizmat | it is a bit much, :-) | ||
dlem | :-) | 20:14 | |
lizmat | well, I for one am starting to like .pat for 2 reasons | ||
jnthn | I'm not attached to "more", but coming up with a short name for it that doesn't clash with something else is...tricky. I had it as "next" at first, I think. | ||
lizmat | it's the inverse of .tap | ||
and you're patting the Supply to be good, giving it something along the way :-) | |||
and it's short | 20:15 | ||
jnthn | If we end up calling it pat, I'm going to give a talk with a supply named $cow :P | ||
dlem | jnthn: Nice! :-) | ||
lizmat | the only danger I see is for dyslexics who would type .tap instead of .pat | ||
jnthn | Well, the thing that makes it not-quite-inverse is that .tap lets you tap all 3 of the events (more/done/quit), not just more... | 20:16 | |
lizmat | but generally you would only be intersted in the "more" value | ||
masak | I don't have a horse in this race, but let me just say that .pat seems a bit cute-today, and .more seems about a hundred times more explanatory. | ||
lizmat | I mean, the done/quit are optional | ||
dlem | jnthn: I understand it can't be easy. I just felt compelled to point out the one thing in your nice talk which stood out as counter-intuitive to me. | ||
btyler | this is a pure peanut gallery comment, but some of these sound a bit cute to my taste | ||
dlem | btyler: Yes, pat is too cute IMHO. But that's just me. | 20:17 | |
From the peanut gallery: How can it be that .feed would cause confusion? Or even .sink= | 20:18 | ||
20:18
kurahaupo joined
|
|||
jnthn | lizmat: Yes, which is the one you don't have to explicitly mention most of the time... | 20:18 | |
dlem | s/=/?/ | ||
jnthn | dlem: There isn't a .feed anywhere at the moment, so it's a possible in my view, though it does feel a tad awkward in that ==> is known as the feed operator and it does something a bit different... | 20:20 | |
dlem: Thing is that they're event names more than they're method names... | 20:21 | ||
lizmat | OTH, maybe .push would be good as well ? | ||
Supply.push | |||
Channel.push? | |||
dalek | rlito: 269a157 | (Flavio S. Glock)++ | / (4 files): Perlito5 - js - delete() fix |
||
lizmat | I mean, Channel.send is internally a nqp::push already :-) | 20:22 | |
jnthn | push works in a way, it just feels odd at the other end | ||
lizmat | well, that is what Channels / Supplies different | 20:23 | |
the receiving end is different, one could argue | |||
the other end is basically always pushing a value | |||
dlem | jnthn: Hmm.. I just thought that you can "feed" the supply in one end and "tap" it on the other end. | ||
lizmat | I mean, we already can coerce a Supply to a Channel | 20:24 | |
dlem | jnthn: Surely there is something I don't quite get, since that seems so obvious to me. I mentioned "sink" half jokingly, since I also associate that with a kitchen sink and tap :-) | 20:25 | |
lizmat | not yet the other way around (well, I guess you can't without the running the risk of losing stuff if there is another thread receiving) | ||
lee_ | it also seems a bit like pub/sub redis functions | ||
dalek | rlito: c350706 | (Flavio S. Glock)++ | / (3 files): Perlito5 - parser - use delete() |
20:26 | |
lizmat | I seem to recall Subscribable is what jnthn originally had | ||
which was not really fine with TimToady | |||
20:29
nebuchadnezzar joined
|
|||
dlem | In any case, great work jnthn++, lizmat++, others++ | 20:30 | |
20:31
virtualsue left
|
|||
dlem | It really is exciting to see how Perl 6 is developing. | 20:32 | |
lizmat | I agree :-) | ||
jnthn | I didn't expect Subscribable to survive. In fact, I didn't want it to. :) | ||
masak | jnthn: oh? what do you expect to take its place? | 20:33 | |
jnthn | masak: Supply already did take its place. :) | 20:34 | |
masak: To be clear, I didn't expect my initial name to stick. :) | |||
20:34
treehug88 left
|
|||
jnthn | masak: Which is fine; I was more interested in the semantics sticking ;) | 20:34 | |
dalek | kudo/nom: 1775172 | jnthn++ | src/Perl6/Optimizer.nqp: Various return typecheck/decont optimizations. |
||
20:35
treehug88 joined
|
|||
masak | *nod* | 20:35 | |
20:35
cogno joined
|
|||
masak .oO( no big supplies when it changed its name... ) | 20:35 | ||
20:36
cogno is now known as Guest84546
|
|||
lizmat pulls and runs a spectest | 20:36 | ||
timotimo | t.h8.lv/p6bench/2014-05-01-vmnull.html - updated again | ||
20:36
grondilu left
|
|||
timotimo | oh, now it's lacking a rakudo-moarvm to compare to | 20:37 | |
20:39
dlem left
|
|||
lizmat | Files=834, Tests=31812, 208 wallclock secs ( 8.06 usr 3.88 sys + 1294.51 cusr 143.09 csys = 1449.54 CPU) | 20:41 | |
seems like a good improvement again :-) | 20:42 | ||
timotimo | oh, where'd that come from :) | 20:43 | |
jnthn digs them out between his couch cushions | |||
20:44
Guest84546 left
|
|||
jnthn | Just picking off some easy ones. I'm too tired/stupid today to work on tricky ones. | 20:45 | |
20:45
zacts left
|
|||
jnthn | Pondered what I want to do next with spesh while taking a walk earlier, though. | 20:45 | |
20:45
igorsutton left
20:46
dlem joined
|
|||
dlem bids goodnight | 20:46 | ||
20:46
dlem left
20:47
rurban joined
20:50
grondilu joined
|
|||
grondilu | failed to load library 'dynext/libperl6_ops_moar.so': | 20:50 | |
paste.siduction.org/20140501204858 | |||
20:51
rurban left
|
|||
jnthn | grondilu: Without looking: did you update your moar, but not do a clean Rakudo build? | 20:52 | |
20:55
treehug88 left
20:56
lue left
|
|||
grondilu | I did update rakudo and I thought that would update moar automatically. I'll do it manually and I'll make clean | 20:57 | |
20:59
lvfjf left,
lvfjf joined
|
|||
timotimo | no, we only pull new revisions of moar and nqp in if you explicitly perl Configure.pl | 21:00 | |
21:00
Alula_ left
|
|||
grondilu | ok | 21:00 | |
21:00
dayangkun left
21:02
treehug88 joined
21:05
treehug88 left
21:09
lue joined
|
|||
dalek | kudo/nom: c07c5e3 | jnthn++ | src/Perl6/Optimizer.nqp: Eliminate unrequired p6bool usages. If we are putting it in a boolean context, but the thing it is going to boolify is simply some native int already (for example, coming from a comparison instruction), then just skip the whole p6bool thing. |
21:10 | |
21:10
igorsutton joined
|
|||
timotimo | t.h8.lv/p6bench/2014-05-01-vmnull.html - updated with a rakudo-moar/2014.04 | 21:13 | |
dalek | kudo/nom: a8e4df9 | (Elizabeth Mattijsen)++ | src/core/Supply.pm: Make tap die $_, rather than .die Str.die dies on method not found. If we want to allow .die, we need Any.die as well I guess. |
21:14 | |
masak | lexical subs totally rule. | ||
just wrote this line: | |||
lizmat | TimToady: would there be a reason not to have an Any.die that just { die self } ? | ||
masak | my $marker = %branch_markers{$value} // try_to_find_it_the_hard_way; | 21:15 | |
lizmat | s/_/-/ ? | ||
21:15
kaare_ left
|
|||
vendethiel | lizmat: "an object shouldn't be responsible of its own death !" :o) | 21:15 | |
masak | lizmat: for various reasons, in my own projects, I tend to go all-underscore. | ||
lizmat | TimToady: having to write "die $_" seems so twentieth century :-) | 21:16 | |
21:17
dayangkun joined,
Alula_ joined
|
|||
masak | lizmat: what you're describing is already spec'd and implemented. it's spelled Exception.throw | 21:18 | |
jnthn | masak: But doesn't exist on a string... | ||
masak | well, don't throw strings! | ||
even Python already learned this! :P | 21:19 | ||
lizmat | jnthn: writing tests for IO::Notification.watch_path | ||
are there really only 2 types of events? Renamed and Changed ? | |||
FWIW, the Rename also seems to occur when a file is created | 21:20 | ||
jnthn | lizmat: Welcome to the world of IO notifications, where nothing can be relied upon at all ever. :/ | ||
timotimo | :( | 21:21 | |
jnthn | lizmat: I can imagine rename happening if you watch a file that didn't exist... | ||
No idea if that's portably reliable though. | |||
grondilu eventually compiled rakudo after Configure | |||
lizmat | well, I'm watching the dir, when I create a file in there, I get a rename event on the filename I create | ||
jnthn wonders if exposing the kind of event libuv thinks it is is even a good idea... | 21:23 | ||
lizmat: I'd write the tests to assume rather little. | 21:24 | ||
lizmat | trying to :-) | ||
jnthn | lizmat: Like, "if we create/change the file, we get at least one notification of some kind" | ||
On windows it's certainly not safe to assume you'll get one notification per change. | |||
21:26
pippo left
|
|||
lizmat | I see a Rename on opening and closing the file | 21:26 | |
jnthn | oh my... | 21:28 | |
timotimo | we should use something like stable for that | 21:29 | |
lizmat | opening an existing file, writing and then closing, gives a Changed event | ||
timotimo: stable was designed for just that :-) | 21:30 | ||
fwiw, on OSX I don't see any events more than once | |||
timotimo | just a "more special" stable to handle the crazyness that is file change notifications | ||
jnthn | timotimo: That's .uniq with :expires ;) | ||
timotimo | oh | ||
of course! | 21:31 | ||
21:31
jsn joined
|
|||
lizmat | that's what I meant, duh :-) | 21:31 | |
ok, I have a basic framework for doing the watch_path test... | 21:32 | ||
will do that tomorrow after some shuteye& | 21:33 | ||
timotimo | \o/ | ||
gnite lizmat | |||
good work these past few weeks! | |||
dalek | kudo/nom: 0ed6d8f | jnthn++ | src/Perl6/Optimizer.nqp: Don't preserve $_ if we just killed it. |
21:34 | |
jnthn | OK, now the code-gen for at least one benchmark is much nicer. :) | ||
average | about IO::Notifications , it can be implemented with the inotify API | ||
jnthn | Here: | ||
timecmd perl -e "use integer; for (my $i = 1; $i <= 100000000; $i = $i + 1) { }" | |||
command took 0:0:7.00 (7.00s total) | |||
timecmd perl6-m --optimize=3 -e "loop (my int $i = 1; $i <= 100000000; $i = $i + 1) { }" | 21:35 | ||
timotimo | seems like i should get one more benchmark done | ||
jnthn | command took 0:0:2.95 (2.95s total) | ||
21:35
jsn is now known as jsn2
|
|||
timotimo | wait | 21:35 | |
it's faster? | |||
perl6 is actually faster than perl5 at something? | |||
jnthn | On my box, at least :P | ||
timotimo | i'm warming up my benchmarks :) | 21:36 | |
jnthn | All these opts should work out on JVM too, fwiw. | ||
masak | 'night, #perl6 | ||
jnthn | average: On one particular platform, yes... | ||
cognominal | jnthn, you optimized out the loop? :) | 21:37 | |
jnthn | cognominal: No, just improved code-gen for loops - and many other things along the way. | ||
average | jnthn: and FindFirstChangeNotification / FileSystemWatcher on Windows stackoverflow.com/a/3517475/827519 | ||
timotimo | jnthn: i don't need to --gen-nqp=master --gen-moar=master, right? | ||
average | jnthn: and fsevents on OSX developer.apple.com/library/mac/do...rence.html | 21:38 | |
jnthn | average: Yeah, the issue is that we'll need to build our own abstraction layer if we want to use these. At the moment we're just using what libuv provides us portably, which is...rather limited :( | ||
21:40
rurban joined
|
|||
jnthn | average: Building said abstraction layer, configure probes, etc. is some work. I'd be happy to see it done by anyone who fancies working on it; it's probably not going to get to the top of my list anytime soon. | 21:40 | |
timotimo | jnthn: would parrot also be benchmarked? | ||
er, benefit from the things? | |||
jnthn | timotimo: perhaps, yeah. | 21:41 | |
timotimo: JVM certainly will | |||
I get its JIT likes the improvements I just did. | |||
*bet | |||
average | jnthn: ah ok | 21:42 | |
timotimo | :) | ||
i don't have benchmark results for rakudo from recently :\ | |||
btyler | just did some super casual repeats of those one-liners, p6 comes out slower here (2010 macbook pro, osx10.9): 7.5 seconds-ish for p5, 11.5 for p6 (both over 5 runs). | 21:43 | |
timotimo | especially since i've gone to jvm 8 | ||
oh, also i can't build any more on my computer because of the -Xmx800 | |||
i have to set it up to 1000 again | |||
btyler | but holy cow does --optimize=3 make a huge difference, without it p6 takes ~30 seconds | ||
21:44
raiph left
21:46
jsn2 left
21:48
kurahaupo left
|
|||
timotimo | wow, it just worked with only 800mx | 21:50 | |
no, it really didn't :( | 21:53 | ||
(use of '_' as an identifier might not be supported in releases after Java SE 8) | |||
all over the place | |||
segomos | _ | 21:58 | |
22:00
Alula_ left,
Alula_ joined
22:10
grondilu left
22:14
rurban left
22:18
moistcherry left
|
|||
Timbus | make -j3 | 22:29 | |
aa | 22:30 | ||
been a while since ive done that | |||
22:30
ajr_ left
22:32
Alula_ left
|
|||
timotimo | aye, it makes me pretty happy that we can just -j3 for the three backends | 22:32 | |
Timbus | lol, what i meant was i typed that into the chat by accident :> | 22:33 | |
timotimo | oh | ||
:D | |||
Timbus | yes it's cool how that works though | ||
timotimo | we have moritz++ to thank for that | 22:34 | |
does somebody run a sobby instance i could use with a friend? | 22:35 | ||
22:35
telex left
22:36
telex joined
22:40
colomon left
22:43
xenoterracide_ left
|
|||
jnthn | m: say 18.14 / 19.67 | 22:47 | |
camelia | rakudo-moar fd5f8e: OUTPUT«0.922217» | ||
22:47
Alula_ joined
22:48
spider-mario left
22:52
colomon joined
|
|||
dalek | kudo/nom: 9991bb3 | jnthn++ | src/Perl6/Actions.nqp: Can resolve Nil at compile-time, so do so. |
22:56 | |
kudo/nom: 18b7e2e | jnthn++ | src/Perl6/Optimizer.nqp: After inlining block, don't lex-capture the stub. |
|||
22:58
ponbiki left
|
|||
jnthn | I'll get R* release worked out tomorrow | 23:12 | |
timotimo | \o/ | 23:14 | |
23:21
dmol left,
beastd left
|
|||
timotimo | i wish i'd have thought of the nil opt :) | 23:26 | |
23:27
lue left
|
|||
jnthn | Time for some rest...'night o/ | 23:32 | |
timotimo | gnite jnthn! | 23:36 | |
23:40
lue joined
23:42
pecastro left,
thou left
|