»ö« 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. |
|||
jnthn | Dunno. 1..Inf is just a range object, whereas 1...Inf is actually an infinite sequence. | 00:02 | |
jnthn notes that (1...Inf).Str just reifies a few elements | 00:04 | ||
ssutch | is it possible to create a class Attribute (rather than an instance Attribute) | 00:05 | |
(meta model) | |||
ren1us | jnthn: finally got around to posting the issue | ||
jnthn | ren1us: Thanks. Just in time for me to sleep ;) | ||
ssutch: my $.foo | |||
ren1us | kinda embarassing to post code that doesn't even work in the first place, but whatever, greater good | ||
ssutch | im creating attribute programatically eg Attribute.new(:etc...) | 00:06 | |
jnthn | Oh... | ||
ssutch | is that what the ContainerDescriptor does | ||
jnthn | Attribute in that sense is *always* per instance | ||
my $.foo is just a method closing over a lexical | |||
So you can actually create one just by add_method'ing something that does exactly the same. | 00:07 | ||
ssutch | i see | ||
so to add an 'our' to a pre-composed class i would use add_method | |||
jnthn | Oh, if you just want an our variable you just stick it in the package's symbol table | 00:08 | |
I figured you were after an accessor too :) | |||
Depends on what scope/visibility you want it to have, really. | |||
ssutch | i *think* i am. i want to be able to access the variables via the generated class eg VersionDummy.Version.HELLO | ||
where HELLO is what im trying to add | 00:09 | ||
jnthn | But my $.foo and our $.foo just declare a my and an our variable, and then install a method that returns them. | ||
00:09
Alina-malina left
|
|||
jnthn | Yeah, that looks like a method call | 00:09 | |
m: class A { BEGIN { my $thingy = 42; A.HOW.add_method(A, 'HELLO', method () { $thingy }); } }; A.HELLO.say | 00:11 | ||
camelia | rakudo-moar fc4943: OUTPUT«42» | ||
jnthn | m: class A { BEGIN { my $thingy = 42; A.HOW.add_method(A, 'HELLO', method () is rw { $thingy }); } }; say A.HELLO; A.HELLO = 101; say A.HELLO; | 00:12 | |
camelia | rakudo-moar fc4943: OUTPUT«42101» | ||
ssutch | for reference this is what im working on github.com/samuraisam/p6-pb/blob/m...nerator.pm | ||
jnthn | Ah, OK | ||
Hopefully one of the above snippets helps a bit :) | |||
jnthn -> sleep | |||
ssutch | yeah i think so | ||
jnthn | happy hacking o/ | ||
ssutch | thanks jnthn ! | ||
00:14
zakharyas joined
00:22
moooheewert joined
00:27
moooheewert left
00:30
dragon_d left
00:31
rurban1 joined
00:35
rurban1 left
00:37
zakharyas left
00:41
[Sno] left
|
|||
timotimo | oh, i'm glad to see the lex2loc branch is being worked on again | 00:44 | |
00:54
anaeem1 joined,
klapperl_ left
00:56
klapperl joined
00:58
anaeem1 left
01:05
pmurias left
01:10
Possum joined
|
|||
dalek | -pb/sam/enum-gen: eae8500 | (Samuel Sutch)++ | lib/PB/Model/Generator.pm: wip: enum generation |
01:13 | |
01:14
cognominal left
01:20
raiph joined
01:32
rurban1 joined
01:34
rurban2 joined
01:35
chenryn joined
01:36
rurban1 left
01:38
rurban2 left
01:45
chenryn left
01:48
FROGGS__ joined
01:49
klapperl_ joined
01:52
Sqirrel left,
FROGGS_ left,
Sqirrel joined
01:53
klapperl left
|
|||
dalek | rl6-roast-data: 56e263b | coke++ | / (6 files): today (automated commit) |
01:58 | |
woolfy and lizmat just back from www.theo2.co.uk/events/detail/monty...ive-mostly and it was brilliant... even though not Monty Perl... :-) | 02:12 | ||
02:18
noganex joined
02:19
BenGoldberg joined
02:22
noganex_ left
02:32
chenryn joined
02:35
rurban1 joined
02:39
raiph left,
SevenWolf joined,
rurban1 left
|
|||
[Coke] | woolfy++ lizmat++ | 02:47 | |
woolfy | [Coke] : we saw the dead parrot sketch done live, flawlessly going over into the cheese shop sketch! And of course the sperm song, the pen*s song, Professor Gumby doing a flower arrangement course, and much more. | 02:49 | |
[Coke] | I am extremely jealous. :) | 02:50 | |
02:53
chenryn left
|
|||
[Coke] | m: say StrPos | 03:01 | |
camelia | rakudo-moar fc4943: OUTPUT«===SORRY!=== Error while compiling /tmp/jJtBQGcI0MUndeclared name: StrPos used at line 1» | ||
03:10
chenryn joined
03:14
muraiki left
03:15
James-YeJ3TE48lO left
03:19
synopsebot left,
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
03:21
tadzik left
03:22
tadzik joined,
ingy left,
ingy joined
03:27
rindolf joined
03:32
muraiki joined
03:36
chenryn left
03:38
synopsebot joined
03:39
lelf` joined
03:41
lelf left
03:58
anaeem1 joined
04:02
slavik joined,
anaeem1 left
04:03
Alula_ left
04:04
colomon_ left
04:05
colomon_ joined
04:13
vendethiel left
04:14
BenGoldberg left,
vendethiel joined
04:15
Alula_ joined
04:22
rurban1 joined
04:29
kaare_ joined,
vendethiel left
04:30
djanatyn left
04:31
djanatyn joined
04:37
chenryn joined
04:39
erkan left
04:42
chenryn left
04:47
pdcawley left
04:48
pdcawley joined
04:49
SHODAN left,
smash_ joined
04:53
SHODAN joined
04:55
rurban1 left
04:56
khisanth_ joined,
Khisanth left
04:58
smash left
04:59
atroxaper joined
05:00
nhayashi_ joined,
nhayashi left
05:08
SamuraiJack_ joined
05:19
chenryn joined
05:22
anaeem1 joined
05:27
anaeem1 left,
chenryn left
05:28
isBEKaml joined
05:30
Sqirrel left
05:31
anaeem1 joined
05:35
anaeem1 left
05:53
isBEKaml left
05:55
[Sno] joined,
isBEKaml_mobile joined
05:56
[Sno] left
06:01
[Sno] joined
06:02
SamuraiJack_ left
06:04
atroxaper left
|
|||
ChoHag | Interesting. Moar appears to share the same my value in a role with all consumers of that role, where java gives each consumer of the role its own copy of the variable. | 06:04 | |
06:04
atroxaper_ joined
06:05
SamuraiJack joined
|
|||
ChoHag | Which is correct? What should the scope of a my or our variable declared in a role be? | 06:05 | |
06:09
xenoterracide__ left
|
|||
ssutch | ChoHag: it probably depends, which may explain the discrepancy | 06:11 | |
definitely bring it up with jnthn/timotimo | |||
ChoHag | gist.github.com/ChoHag/adc790bc7ca00b245c62 | 06:14 | |
Looks like moar is wrong. | |||
ssutch | ChoHag: perlcabal.org/syn/S14.html it seems to state that `my` instance variables should be per-class | ||
ideally a test should be written to enforce this case | |||
ChoHag | I suspect it will now. That's clearly broken. | 06:15 | |
Also, the recent optimize patch doesn't build on (my) jvm. | 06:19 | ||
Stage optimize : Error while compiling op cleardispatcher: No registered operation handler for 'cleardispatcher' in as_jast (gen/jvm/stage2/QAST.nqp:3947) in as_jast (gen/jvm/stage2/QAST.nqp:3110) in compile_all_the_stmts (gen/jvm/stage2/QAST.nqp:3910) | |||
git blame blames jnthn. | 06:20 | ||
06:28
kivutar joined
06:48
hoverboard is now known as moistcherry
|
|||
PotatoGim | Hi~! | 06:51 | |
06:52
Alina-malina joined
06:55
rindolf left,
moistcherry is now known as hoverboard
06:59
darutoko joined
|
|||
ssutch | night p6 | 07:06 | |
07:07
Alina-malina left
07:08
Alina-malina joined
07:12
atroxaper_ left
|
|||
dalek | c: 9ab09e5 | ronaldxs++ | lib/Language/classtut.pod: Update classtut.pod Rakudo now appears to support at least enough autovivification to remove this line. The program below does the right thing and the examples appear to work without the initialization. perl6 -e 'my %h; push(%h<k>, "v"); %h.say' That part of the code seems to date back to September 2012 or earlier. |
07:15 | |
c: 7d5d908 | (Alexander Moquin)++ | lib/Language/classtut.pod: Merge pull request #22 from ronaldxs/patch-1 Update classtut.pod |
|||
07:19
atroxaper joined
07:29
chenryn joined
|
|||
Mouq | Hmm... wut | 07:29 | |
doc's htmlify.p6 is dying on Moar with "Error while compiling op call: Local '__lowered_param_0' already declared | |||
" | |||
I might need to update to the very latest yet, but I'm heading to bed. I'll see if it persists tomorrow | 07:30 | ||
07:38
chenryn left
08:01
atroxaper left,
atroxaper joined
08:02
virtualsue joined
|
|||
dalek | rl6-bench: ed26cc9 | (Geoffrey Broadwell)++ | / (4 files): Add spinner minibenchmark This is the first benchmark inspired by analyzing rc-forest-fire's overall slowness, in this case testing the performance of many small prints. |
08:06 | |
rl6-bench: 26415de | (Geoffrey Broadwell)++ | analyze: Fix alignment of text tables with summary scores |
|||
08:10
itz_ joined
08:12
isBEKaml_mobile1 joined
08:15
isBEKaml_mobile left
|
|||
moritz | hi all | 08:19 | |
rakudo.org is hit by a comment spam wave | |||
ribasushi | greetings earthlings | 08:20 | |
moritz | I've changed the settings to allow comments only from logged-in users, and put comments up for manual approval | ||
\o ribasushi | |||
ribasushi | do we have some sort of .dot or something prettier that gives an overview of the current p6 type hierarchy? | ||
08:25
spider-mario joined
08:26
atroxaper left,
atroxaper joined
|
|||
moritz | ribasushi: aye, somewhere on doc.perl6.org | 08:27 | |
ribasushi: let me find the exact URL for you | 08:28 | ||
ribasushi | thanks! | ||
also does it self-update, or is the list more or less static/settled? | |||
moritz | it's manually updated now and then | ||
ribasushi | if you can eyeball it and tell me it matches reality somewhat I'd appreciate it | 08:29 | |
(once you find the link that is :) | |||
moritz | doc.perl6.org/images/type-graph-Any.svg not perfect, but it should contain most types | 08:30 | |
black = class, blue = role | |||
and yes, eyeballed postively | |||
08:30
atroxaper left
|
|||
ribasushi | moritz++ # helpful | 08:32 | |
08:35
chenryn joined
|
|||
ribasushi | unrelated question | 08:36 | |
[email@hidden.address] is bouncing, anyone knows email/twitter/facebook/whatever ? | |||
FROGGS__ | ribasushi: I only can provide this: github.com/sorear - he's somewhat active there | 08:43 | |
08:43
chenryn left
|
|||
FROGGS__ | but hmmm, you cannot write him directly as it seems | 08:44 | |
ribasushi | sorry false alarm, realized it's not his first-come that we are looking for | ||
headdesk | |||
08:48
rindolf joined
|
|||
masak | ante', '#perl6 | 08:50 | |
08:51
hoverboard left
|
|||
ribasushi | masak: idgi | 08:52 | |
masak | ribasushi: needed a name for that unnamed period between morning and noon. | 08:53 | |
ribasushi: finally settled (with help from moritz++) on "antenoon". | |||
08:57
atroxaper joined
09:01
atroxaper left
|
|||
isBEKaml_mobile1 | masak: for a moment, I thought you were prodding #perl6. As in, "up the ante!" | 09:02 | |
09:04
rmt left
09:06
xinming_ joined
09:10
xinming left
09:19
virtualsue left
09:23
isBEKaml_mobile1 left
09:27
virtualsue joined
09:28
ggoebel111117 joined
09:30
ggoebel111116 left
09:31
chenryn joined
|
|||
jnthn | ChoHag: ebd31662e also contained an NQP_REVISION bump; if you'd run Configure.pl again after pulling it shoulda told you that you needed to get it to build an updated NQP. | 09:32 | |
ChoHag | Oh. | 09:33 | |
I tried just make for such a small patch. | |||
Well it was a quickie anyway to see if a patch had been pulled in to fix this: gist.github.com/ChoHag/adc790bc7ca00b245c62 | 09:34 | ||
Which on further digging appears to be not new, but anyway when I saw git pull such a tiny patch I just hit make. | |||
And then since the changes didn't look useful - left it to look at later. | 09:35 | ||
09:36
dmol joined
09:38
lelf joined
09:42
SevenWolf left
|
|||
dalek | ast: 41ed3d1 | (Elizabeth Mattijsen)++ | S32-str/split-simple.t: Use subtest for clarity Still not sure why the last test fails, and why the todo is not working |
09:49 | |
lizmat | decommute& | 09:50 | |
09:50
lizmat left
09:58
isBEKaml_mobile joined
|
|||
masak | isBEKaml_mobile1: that's certainly a possible interpretation. :) | 09:58 | |
09:59
woolfy left
|
|||
isBEKaml_mobile | masak: don't know, I just get confused a lot. :) | 10:01 | |
masak | well, confusion is a prerequisite for learning. so you're not doing too badly ;) | 10:02 | |
isBEKaml_mobile | Ehh, I thought it was curiosity... | 10:03 | |
masak | that's another prerequisite, for sure. | ||
my point is, if you're dead sure all the time, your glass is full and you can't take new stuff in. | |||
isBEKaml_mobile | Ah, the old zen tale | 10:04 | |
masak | confusion is like the space allowed for new knowledge. curiosity is the negative pressure that sucks it in. | ||
or something. | |||
isBEKaml_mobile | That'd be too boring if we are dead sure all the time. | 10:05 | |
10:05
kknd1394 joined
|
|||
masak | I think the comfort zone comes in here as well. | 10:05 | |
the zone right outside of the comfort zone is ideal for learning. | 10:06 | ||
too far away, and confusion/curiosity turns into chaos and panic. | |||
too far into the comfort zone, and we never have any new impressions to learn from. | |||
10:06
chenryn left
|
|||
isBEKaml_mobile | Yeah, I remember reading something like that recently | 10:06 | |
masak | that's actually one of the things that makes good TDD work, too. having on average half a failing test all the time puts us close to the comfort zone, but slightly outside of it. | 10:07 | |
isBEKaml_mobile | Hmm, I don't follow TDD, although it's good if you have a test base. | 10:09 | |
masak | testing the core domain is awesome. | ||
tests rock. | |||
10:11
SamuraiJack left
|
|||
isBEKaml_mobile | It's impossible if you have a really old codebase, or something that's quite mature in production. In that case, you'd just be looking at a lot if | 10:11 | |
10:11
itz_ left
|
|||
isBEKaml_mobile | *of holes in your tests. | 10:11 | |
masak | s/impossible/a very gnarly and interesting challenge/ | 10:12 | |
isBEKaml_mobile | Here, tests turn into a time sink. | 10:13 | |
masak | I hear you. | 10:15 | |
that's why I said "core domain" above. there are some things that are worth testing, because if they break during maintenance, you really *really* want to know before (say) your customers do. | |||
10:16
kknd1394 left
|
|||
isBEKaml_mobile | Yes, *some*. I actually tried isolating some portions of the codebase I work on to write tests for. I wound up throwing them all away because it was one hairy ball to unravel. :) | 10:19 | |
10:19
chenryn joined
|
|||
masak | cf. "gnarly and interesting challenge" | 10:20 | |
isBEKaml_mobile | Yes, not very surprising. | ||
masak | I've always wanted to try martinfowler.com/bliki/StranglerApplication.html -- but I haven't yet, not for a bigger code base. | 10:25 | |
jnthn | Be careful what you wish for. :) | 10:27 | |
masak | ;) | ||
alright, I wish to get to do this and *succeed*, fsvo success. | |||
isBEKaml_mobile | masak: if you're consulting, you may definitely come across some codebase like that. :) | 10:31 | |
Then, good luck convincing clients about the strangler approach. ;) | |||
masak | aye. therein lies the rub. | 10:33 | |
I've successfully used tests to shake out bugs in legacy codebases. | 10:34 | ||
but as usual, it's mostly a people problem -- developers who never wrote tests won't begin doing so overnight. | |||
isBEKaml_mobile | Correct. Habits are hard to break. Or some people are just too confident about their skills. :D | 10:41 | |
10:47
lelf` left,
lelf left
10:51
virtualsue left
10:58
brrt joined,
atroxaper joined
10:59
lelf joined
11:03
atroxaper left,
cognominal joined
11:12
chenryn left
|
|||
masak | cue the picture where the guy with the round wheel suggests to use it, but the people hauling something on a square-wheel cart says "no thanks, we're too busy to try new stuff". | 11:18 | |
11:30
denis_boyun_ joined
11:36
denis_boyun_ left
11:39
denis_boyun joined
11:44
chenryn joined
11:50
chenryn left
11:53
anaeem1 joined
11:55
isBEKaml_mobile left
11:57
anaeem1 left
11:59
molaf joined
12:08
virtualsue joined
12:14
SamuraiJack joined
12:15
kurahaupo joined
|
|||
sergot | hi all o/ | 12:21 | |
12:24
itz_ joined
|
|||
masak | hi sergocie! \o | 12:24 | |
12:30
Nepazystu joined,
Nepazystu left
12:31
psch joined
|
|||
psch | hi #perl6 | 12:31 | |
12:35
denis_boyun left
|
|||
ChoHag | "Too busy to try new stuff" | 12:36 | |
I love that excuse. | |||
masak | yeah, I know. | ||
it's a balance, as everything else. | 12:37 | ||
ChoHag | "I am so busy wasting time that I don't have time to save time." | ||
masak | and I suspect the excuse is used when the person genuinely doesn't see the point of the proposed round wheel. | ||
and (without further background data) they might even be right! | |||
ChoHag | Or more worringly, when they do, but don't want to shake up their carefully constructed house of cards belief system. | 12:38 | |
Self-consorship is a horrible thing. | |||
masak | there's that, too. | ||
ChoHag: do you have a Perl 5 background, or did I just dream that? | |||
ChoHag | I do. | ||
And others going back beyond that, but nothing of any particular significance happened after perl 5. | 12:39 | ||
Lots brassware polishing - take brassware as you will - though. | |||
Well, I learned awk _after_ I learned perl, but that's just detail. | |||
masak | :) | 12:40 | |
ChoHag: have you done a lot of legacy maintenance? | |||
ChoHag | Why do you ask? | ||
I'm a system administrator. | |||
masak | ChoHag: I just realized I haven't really asked about your background, and you seem to become something of a regular. | ||
ChoHag: if you're a regular at YAPCs, we've probably met. | 12:41 | ||
ChoHag | I have never been. | ||
dalek | p: 0860fab | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Ensure we decont into a fresh register. In cases where we actually get a register that is persistent (such as holding a local that a lexical was lowered into), we should not go and ruin the variable. |
||
ChoHag | I've wanted to though. | ||
Life gets in tha way. | 12:42 | ||
masak | *nod* | ||
12:42
smls joined
|
|||
dalek | kudo/lex2loc: cc9d4d5 | jnthn++ | src/Perl6/Optimizer.nqp: Don't lower dynamic variables. |
12:42 | |
kudo/lex2loc: f480b71 | jnthn++ | src/vm/moar/Perl6/Ops.nqp: Avoid re-using register when deconting. The input register may actually contain the actual variable, now we do lexical to local lowering. |
|||
ChoHag | Actually I've only really kept abreast of programming for a good while now. Programming got boring when I started doing it for a living (hence why I became a sysadmin). | ||
12:43
denis_boyun__ joined,
kaare_ left
|
|||
ChoHag | Then during that time, Linux kept getting shitter... | 12:44 | |
smls | m: my $not = 'd'; say ('a'..'z').join('').match(/ (<-[$not]>)+ /).Str; | 12:46 | |
camelia | rakudo-moar fc4943: OUTPUT«abcdefghijklm» | ||
smls | ^^ How can interpolate a string into a regex character class? | ||
12:46
anaeem1 joined
|
|||
masak | smls: I think the closest you can do is interpolate an array into a regex. | 12:47 | |
12:47
denis_boyun__ left
|
|||
masak | m: my @not = 'd'; say ('a'..'z').join.match(/@not+/).Str | 12:48 | |
camelia | rakudo-moar fc4943: OUTPUT«d» | ||
smls | that doesn't work in character classes either | ||
masak | no, it doesn't. | ||
but if your array consists of one-character strings... | |||
smls | but then how can I match any character *except* what's in the array? | 12:50 | |
masak | oh, sorry; that's what you wanted. I see. | 12:51 | |
m: my @not = 'd'; say ('a'..'z').join.match(/<!before @not> ./).Str | |||
jnthn | Factor out the interpolation of the array into a separate rule | ||
camelia | rakudo-moar fc4943: OUTPUT«a» | ||
jnthn | And then just subtract that rule in a char class | ||
12:52
denis_boyun joined
|
|||
masak | m: my @not = 'd'; say ('a'..'z').grep(/<!before @not> ./).join | 12:52 | |
camelia | rakudo-moar fc4943: OUTPUT«abcefghijklmnopqrstuvwxyz» | ||
masak | \o/ | ||
smls | jnthn: Creating boilerplate rules is not exactly conductive to keeing short regexes short :) | 12:55 | |
jnthn | smls: I think a bit of extra length is justified when something unusual is going on. :) | 12:56 | |
smls | masak: Why use an array? Scalars seem to work too (outside of character classes) | ||
jnthn | Becuase when you interpolate an array you're saying "any of" | ||
It works like an alternation of the array elements | 12:57 | ||
masak | felt like a safer way to get the interpolation behavior you wanted. | ||
interpolating regex strings felt a little too powerful. | |||
smls | but does it actually interpolate regex strings like in Perl 5? | ||
I would have expected it to use the variable content as a single literal string | 12:58 | ||
jnthn | No, you'd have to say <@foo> for that | ||
masak | m: my $yes = "yes"; say "yes" ~~ /<$yes>/ | ||
camelia | rakudo-moar fc4943: OUTPUT«「yes」» | ||
FROGGS__ | m: my $not = 'd'; say ('a'..'z').join('').match(/ <$not>+ /).Str; | ||
camelia | rakudo-moar fc4943: OUTPUT«d» | ||
FROGGS__ | m: my $not = 'd'; say ('a'..'z').join('').match(/ <-$not>+ /).Str; | ||
masak | m: my $yes = "yes | no"; say "yes" ~~ /<$yes>/ | ||
m: my $yes = "yes | no"; say "yes" ~~ /$yes/ | 12:59 | ||
camelia | rakudo-moar fc4943: OUTPUT«===SORRY!===Unrecognized regex metacharacter < (must be quoted to match literally)at /tmp/_DCgEL3Mmu:1------> 'd'; say ('a'..'z').join('').match(/ <-⏏$not>+ /).Str;Unrecognized regex metacharacter - (must…» | ||
rakudo-moar fc4943: OUTPUT«Nil» | |||
FROGGS__ | m: my $not = 'd'; say ('a'..'z').join('').match(/ <!$not>+ /).Str; # timeout | ||
smls | jnthn: But is it really so unusual to match for characters specified at runtime? | ||
camelia | rakudo-moar fc4943: OUTPUT«(timeout)» | ||
FROGGS__ | I'd say that <-$var> and <!$var> are supposed to work | ||
jnthn | smls: Compared to compile-time known char classes? I'd say so... | ||
smls | maybe when using it to solve traditional lexer+gparser usecases | 13:00 | |
13:00
atroxaper joined
|
|||
smls | but for traditional P5 regex usecases, I'd say its not unusual | 13:00 | |
13:02
anaeem1 left
|
|||
FROGGS__ | jnthn: can you give me a hint? an int32 in parrot is a smo but it cannot box an int... how do I check that it is a native int? | 13:03 | |
perhaps I should look at isint | |||
13:03
denis_boyun left
|
|||
FROGGS__ | ahh, I see :o) | 13:03 | |
jnthn | Yes, that | ||
FROGGS__ | jnthn: you can already MoarVM/nativecast, and nqp/nativecast, and umm, zavolaj/nativecast :o) | 13:05 | |
review* | |||
damn, I really sometimes a word | |||
13:05
atroxaper left
|
|||
jnthn | a whole word? | 13:06 | |
:P | |||
Does that cover all the backends? | |||
FROGGS__ | jnthn: I am working on the parrot version... | 13:07 | |
do I need ss.can_box & STORAGE_SPEC_CAN_BOX_INT at all when I check for ss.boxed_primitive == STORAGE_SPEC_BP_INT? | |||
jnthn | If the latter is true the former should be, I think. | 13:09 | |
FROGGS__ | k, thank you :o) | ||
13:09
brrt left
|
|||
FROGGS__ | the jvm port was easier than the parrot one funnily | 13:10 | |
I was hunting 20mins a imcc syntax error and the solution was to call the op the right way -.- | 13:11 | ||
(was native_call_cast when it should be nqp_native_call_cast) | |||
13:14
atroxaper joined
|
|||
FROGGS__ | jnthn: the review is optional I think, I'm pretty certain that the code is okay | 13:23 | |
13:26
carlin joined
13:33
JimmyZ joined
13:44
PotatoGim left
13:52
chenryn joined,
denis_boyun_ joined
13:54
guru joined,
guru is now known as Guest21244,
Guest21244 is now known as ajr_
14:00
denis_boyun_ left,
denis_boyun joined
14:03
potatogim joined
|
|||
FROGGS__ wonders why he gets "get_number() not implemented in class 'num64'" when calling nqp::p6box_n | 14:10 | ||
timotimo | because get_number is for int and not for double? | ||
FROGGS__ | get_int is for int | 14:11 | |
timotimo | ah, hm | ||
that's on parrot, eh? | |||
sounds quite strange indeed | |||
FROGGS__ | aye | ||
timotimo | who needs to cast stuff to doubles anyway ... | 14:15 | |
FROGGS__ | *g* | ||
14:17
denis_boyun left
14:24
itz_ left
14:27
Alina-malina left
14:28
Alina-malina joined
|
|||
arnsholt | FROGGS__: From the error message, that looks like a Perl 6/NQP level error | 14:30 | |
14:31
itz_ joined
14:32
pochi joined,
labster_ joined,
[particle]1 joined
14:34
mattp__ joined
|
|||
ren1us | .ACCEPTS seems to be a relatively slow call. is that normal, and if so, is there a more efficient alternative? | 14:36 | |
14:37
xinming joined
|
|||
masak | usually, .ACCEPTS is defined per type, so if you know what type you have, you can just replace the .ACCEPTS call with the code it would have called. | 14:37 | |
14:37
mtj_ left
|
|||
timotimo | what do you mean by "call"? invocation of the method or what the method does? | 14:37 | |
14:37
xenoterracide__ joined
|
|||
masak | for example, Str.ACCEPTS does infix:<eq> comparison. | 14:38 | |
ren1us | i'm using it as a way to check if a given object inherits from a certain class | ||
timotimo | hm, do we already compile-time-dispatch if we have a method call on a WVal? | ||
because that'd probably be doable much of the time, as smartmatches are compile-time-constant often-ish | 14:39 | ||
masak | timotimo: in the presence of things like 'but', can we really? | ||
timotimo | oh | ||
well, "but" is no problem; "does" is. | |||
14:39
dylanwh_ joined
|
|||
timotimo | if it's a literal (for example a literal string) i don't think the user could "does" it without us noticing right away | 14:40 | |
masak | oh, indeed. | ||
14:40
yeltzooo4 joined
|
|||
timotimo | what about when we have a "constant", can we "does" it afterwards? | 14:40 | |
14:41
mtj_ joined
|
|||
timotimo | m: constant foo = "Hi there"; foo does role { method surprise { say "surprise!" } }; foo.surprise; | 14:41 | |
camelia | rakudo-moar fc4943: OUTPUT«surprise!» | ||
timotimo | :o | ||
p6: constant foo = "Hi there"; foo does role { method surprise { say "surprise!" } }; foo.surprise; | |||
14:41
potatogim left,
xinming_ left,
[particle] left,
salv0 left,
dylanwh left,
lue left,
yeltzooo left,
cotto left,
labster left,
mattp_ left,
labster_ is now known as labster
|
|||
masak | this feels like another of those "the *reference* to the object is constant; the *object* ain't" kind of things | 14:41 | |
14:41
dylanwh_ is now known as dylanwh
|
|||
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Cannot use 'does' operator with an immutable object at /home/p6eval/niecza/lib/CORE.setting line 1536 (die @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 1469 (infix:<does> @ 8)  at /tmp/tmpfile line 1 (mainline @ …» | 14:42 | |
..rakudo-moar fc4943: OUTPUT«surprise!» | |||
..rakudo-{parrot,jvm} fc4943: OUTPUT«(timeout)» | |||
ren1us | oh yeah smart matching is much better for what i'm after | ||
masak | ren1us: smartmatching calls .ACCEPTS | ||
ren1us | see that confuses me | ||
just cuz of uh | |||
prntscr.com/3zy00q smart matching seems faster, and that's consistent | |||
masak | `$lhs ~~ $rhs` is a simple delegation to `$rhs.ACCEPTS($lhs)` | 14:43 | |
timotimo | ren1us: could you "say now - BEGIN now" instead? | 14:44 | |
ChoHag | doc.perl6.org/routine/ACCEPTS#class_Any suggests otherwise. | ||
timotimo | i can't do subtraction in my head :P | ||
14:44
kivutar left
|
|||
ChoHag | It suggests that $foo.ACCEPTS($bar) is identical to $foo === $bar | 14:44 | |
masak | ren1us: you got the order wrong in the .ACCEPTS | ||
ren1us: <masak> `$lhs ~~ $rhs` is a simple delegation to `$rhs.ACCEPTS($lhs)` | 14:45 | ||
ren1us | oh derp, yeah now it's matching up | 14:46 | |
14:47
potatogim joined,
cotto joined
14:48
lue joined
|
|||
timotimo | it should; i believe the compiler actually generates the exact same code for both variants | 14:48 | |
14:49
salv0 joined
14:50
kaare_ joined,
rurban1 joined
14:54
raiph joined
|
|||
raiph | does #perl6 agree that "itemized" is an unfortunate choice for what it describes and would best be replaced by some form of newspeak? | 14:55 | |
timotimo | item'd :) | 14:56 | |
masak | raiph: not really. | 14:57 | |
ChoHag | It is, yes. | ||
It has an s. | |||
masak | first off, I can't recall using the terms "itemize" or "itemized" so much. | ||
jnthn | If you mean "what .item does" then I think it (or its spelling with an "s" :P) is fine tome. | 14:58 | |
*to m | |||
e | |||
masak | if I had to guess, I say "stringify" and "boolify" at least 10x as often. | ||
if there is any risk of confusion, one could say "put in item context" or some such. | |||
timotimo | the counterexample is that "[1, 2, 3, 4] itemized" sounds rather like "each of 1, 2, 3, and 4" | 14:59 | |
raiph | dictionary.com: itemize. 1. "list the individual units or parts of" | ||
masak | *nod* | ||
timotimo | rather than "the list in an item container" | ||
masak | I... just don't recall using the term "itemized" very much. | ||
timotimo | i hear "itemized array" all the time, FWIW | ||
masak is wondering where this sudden concern comes from | |||
ChoHag | I use it. | ||
masak | secondly, if it *is* in use (by others), I don't have much of a problem with it in the sense Perl 6 means. | 15:00 | |
ChoHag | It is for lists and other types of groups where the more relevant object of concern is the individuals rather than the whole. | ||
timotimo | the whole itemized/listified/flattening stuff is quite confusing for newcomers | ||
masak | right. | ||
psch | clearly "in Perl 6, itemized means the opposite as everywhere else" is bad | ||
raiph | masak: I'm familiar with "itemize" and I've never seen it used in the sense that #perl6 is using it and always seen it used in the sense I just quoted above | ||
timotimo | "itemified" sounds just foreign enough to not evoke the same meaning | 15:01 | |
masak | timotimo: fair enough. | ||
what timotimo said. | |||
ChoHag | However, I can't find the term in use, so I can't | ||
tell whether it's used correctly. | |||
masak | but I think the *concepts* of flattening and itemification etc are the big confusing part, not the exact meaning of a single word. | ||
most languages do fine without these concepts. | 15:02 | ||
Perl 6 chooses to have them because of some perceived features that come with having them. | |||
ChoHag | They are, indeed, confusing as hell. | 15:03 | |
masak | they are confusing in Perl 5 as well -- but there, somehow, there's a smaller "core" of confusing, which has a learning curve but can be fairly easily described. | 15:04 | |
in Perl 6, hm. at least such a core hasn't really emerged yet. | |||
timotimo | in perl 5 you just say "oh, this is a hashref" and everything's fine | 15:06 | |
masak | well, the flattening in Perl 5 also allows you to do things like `my @a = %h;` and be able to reason about what happens. | ||
timotimo | in perl6 that is problematic? | 15:07 | |
FROGGS[mobile] | arnsholt: I just return make_float_result from nqp-p and box it | ||
15:07
zakharyas joined
|
|||
masak | timotimo: well, is %h in item context or not in that statement? | 15:07 | |
ren1us | assuming i'm understanding what you're talking about correctly, as an annoyingly clueless newcomer, when I hear itemized, I think "Well of course the list is a sequence of items. What alternative would there be?" whereas if I hear 'as an item' I think "Oh, you're turning that into one item. cool." | ||
FROGGS[mobile] | arnsholt: without boxing it blows up on jvm | 15:08 | |
ren1us | just my two cents | ||
timotimo | masak: ah, right, if you've bound something to %h with :=, that gets problematic, indeed | ||
or can you actually do something funky in there without using := ? | |||
masak | m: my %h = foo => 42; my @a = %h; say @a.perl | ||
camelia | rakudo-moar fc4943: OUTPUT«Array.new("foo" => 42)» | ||
masak | seems %h flattens into @a, but as a list of pairs. | 15:09 | |
timotimo | m: my %h = foo => 42, bar => 23; say (@%h).perl | 15:10 | |
camelia | rakudo-moar fc4943: OUTPUT«("foo" => 42, "bar" => 23).list» | ||
masak | one part I always hesitate with (and often have to go through one compile loop to get right) is something like `for %h<foo> -> $thing { ... }` -- most of the time, that should be %h<foo>.list | ||
timotimo | i suppose that makes sense, as "pair" didn't exist in perl5 | ||
masak | I still don't know if that's a Rakudo artifact, or the way Perl 6 is meant to work. | ||
JimmyZ | m: my %h; %h<foo>[]:push('ss'); | 15:11 | |
camelia | rakudo-moar fc4943: OUTPUT«Unexpected named parameter 'push' passed in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:2620 in block at /tmp/T12eOKpbq7:1» | ||
FROGGS[mobile] | masak: it is meant to not flatten in a for loop | ||
JimmyZ | m: my %h; %h<foo>[].push: 'ss'; | ||
camelia | ( no output ) | 15:12 | |
masak | FROGGS[mobile]: ok. | ||
JimmyZ | m: my %h; %h<foo>[].push: 'ss'; say %h.perl | ||
camelia | rakudo-moar fc4943: OUTPUT«().hash» | ||
masak | FROGGS[mobile]: which means I should get used to adding .list or @(...) | ||
JimmyZ | r: my %h; %h<foo>[].push: 'ss'; say %h.perl | ||
FROGGS[mobile] | or []? | ||
masak | ooh, or that. | ||
camelia | rakudo-jvm fc4943: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} fc4943: OUTPUT«().hash» | |||
JimmyZ | n: my %h; %h<foo>[].push: 'ss'; say %h.perl | 15:13 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method push in type Any at /tmp/FMXoeJH9z3 line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) …» | ||
jnthn | JimmyZ: You're pushing to the List that [] returns, which probably just had %h<foo> in it. | ||
And not keeping that list around anywhere. | 15:14 | ||
JimmyZ | hmm. | 15:15 | |
n: my %h; %h<foo>[].push: 'ss'; say %h<foo>.perl | |||
camelia | niecza v24-109-g48a8de3: OUTPUT«Unhandled exception: Unable to resolve method push in type Any at /tmp/cuhsthkh4N line 1 (mainline @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 4595 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4596 (module-CORE @ 576) …» | ||
JimmyZ | r: my %h; %h<foo>[].push: 'ss'; say %h<foo>.perl | ||
timotimo | huh? but Any should have .push for autovivification reasons, no? | ||
camelia | rakudo-jvm fc4943: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} fc4943: OUTPUT«Any» | |||
timotimo | or maybe that's what niecza says for type objects of Any | 15:16 | |
rather than instances | |||
jnthn | Yeah, I tink Rakudo is doing the right thing here. | ||
m: my %h; %h<foo>.push: 'ss'; say %h.perl | |||
camelia | rakudo-moar fc4943: OUTPUT«("foo" => ["ss"]).hash» | 15:17 | |
jnthn | That's probably what mighta been intended. | ||
timotimo | yeah; with the slice in between, it seems kinda magical | ||
jnthn | Well, you're just pushing onto an anonymous list with it. | 15:18 | |
Which is not so helpful :) | |||
timotimo | i mean if it'd work, that would be pretty magical :) | ||
jnthn | Right. | ||
I'm relieved it doesn't do anything magical :) | |||
timotimo | how are people ever supposed to understand perl 6 if there's *so much magic*! ;) | ||
JimmyZ | How do I visit the list :) | 15:19 | |
jnthn | m: my %h; say (%h<foo>.push: 'ss').perl | 15:20 | |
ChoHag | timotimo: Slowly. | ||
camelia | rakudo-moar fc4943: OUTPUT«Array.new("ss")» | ||
15:24
hoverboard joined
|
|||
JimmyZ | m: my %h; say ([].push: 'ss').perl | 15:25 | |
camelia | rakudo-moar fc4943: OUTPUT«Array.new("ss")» | ||
15:29
pmurias joined
|
|||
lelf | is there a way (proposal?) to lazily match grammar? | 15:29 | |
ChoHag | We call it English. | 15:31 | |
timotimo | %) | 15:32 | |
lelf: we want to have it at some point, it's to be found under the term "Cat", but it'll probably end up being a 6.1.0 feature | |||
jnthn | It's been discussed; there's a proposed Cat type which can serve as a lazy string. But I find it highly unlikely that it will make it into 6.0. | ||
heh, great minds... :) | |||
timotimo blushes | 15:33 | ||
jnthn doesn't mention the "all fools" alternative analysis :) | |||
15:34
denis_boyun_ joined
|
|||
moritz | m: say Cat | 15:35 | |
camelia | rakudo-moar fc4943: OUTPUT«===SORRY!=== Error while compiling /tmp/efiymMCZ1cUndeclared name: Cat used at line 1. Did you mean 'Rat'?» | ||
timotimo | tee hee | ||
ChoHag | Oh yes that'll go down well at the pet shop. | ||
carlin | Rats and Cats | 15:36 | |
Is there an Elephant type proposed for 6.2? | |||
ChoHag | No. A butterfly was chosen to fill that role. | ||
pmurias | what's the current version of Perl 6? | 15:37 | |
yoleaux | 6 Jun 2014 19:14Z <[Coke]> pmurias: Do you have a todo list for rakudo-js? | ||
timotimo | pmurias: we haven't put a version number out yet | 15:38 | |
we just do year.month at the moment :| | |||
jnthn | That's a *Rakudo* version, not a Perl 6 (language) version. | ||
timotimo | oh | ||
of course | |||
carlin | Perl 6 0.something, and Perl 6 1.0 == Perl 6.0 | 15:41 | |
timotimo | hmm, that's problematic | ||
version 5.9999.01? :) | |||
ChoHag | Can components of a version number be negative? | 15:42 | |
Or imaginary? | |||
JimmyZ | We have a version number in S02, S03 ... | ||
like: perlcabal.org/syn/S12.html#VERSION | 15:43 | ||
15:45
pmurias left,
hoverboard is now known as cholby
|
|||
geekosaur | quaternion? | 15:45 | |
lelf | apart from lazy strings, .match will have to be able to return partial matches, how will it look like? | 15:46 | |
timotimo | good question | 15:49 | |
could theoretically look either like a supply, or values as Promises | 15:50 | ||
jnthn | Well, .match is already lazy when you use :g and so forth... | 15:54 | |
15:54
ajr_ left
15:55
guru joined,
guru left
|
|||
psch | jnthn: the two bits of code you pointed me at don't seem to get called; all i've found out by now is that require'ing instead of need'ing works | 15:55 | |
which makes me think my poking around in the ModuleLoader wasn't completely displaced | |||
zengargoyle | i have an ecosystem question about the META.list. all the urls are for raw2.github.com, but when i browse my repo i find urls for: github.com/zengargoyle/Text-Fortun.../META.info (the Raw button which redirects to) raw.githubusercontent.com/zengargo.../META.info | 15:57 | |
15:58
guru joined,
guru is now known as ajr_
|
|||
timotimo | we ran into trouble when we used those links, as there was a redirect in there that our ecosystem crawler didn't cope with properly | 15:58 | |
15:59
ajr_ left
|
|||
zengargoyle | i sorta saw that with the Raw button link, but the raw.githubusercontent.com/zengargo.../META.info one doesn't have redirection. | 16:00 | |
16:00
JimmyZ left
|
|||
zengargoyle | i wonder if the actual non-redirect url has changed over time... | 16:01 | |
timotimo | it could very well be that they juggled that around a bit | ||
we'll notice when they get rid of the current way ... because new additions to the ecosystem are not going to show up and people are going to be confused | |||
<html><body>You are being <a href="raw.githubusercontent.com/zengargo.../html>⏎ timo@schmand ~> | 16:02 | ||
zengargoyle | i'd have to look at META.list and *guess* that i could form a raw2.github.com url to get to my META.info, none of the links i browse from my repo actually lead me to a raw2.github.com link. | ||
timotimo | oh, you already saw that | ||
i'm blurry on the details | |||
zengargoyle | so my pull-request to add github.com/zengargoyle/Text-Fortun.../META.info got not-accepted since it wasn't raw2.github.com. :) | 16:03 | |
16:03
guru joined
|
|||
timotimo | oh? | 16:03 | |
not-accepted by whom/what? | 16:04 | ||
16:04
guru is now known as Guest35926,
Guest35926 is now known as ajr_
|
|||
zengargoyle | nm, i get it now. looking at the ecosystem repo's update.pl script which uses `wget` i assumed that was what was doing the pulling of META.info | 16:08 | |
16:14
ajr_ left,
ajr joined
16:15
ajr is now known as Guest2072,
Guest2072 is now known as ajr_,
raiph left
|
|||
carlin | m: say $*IN.accessed | 16:16 | |
camelia | rakudo-moar fc4943: OUTPUT«Failed to find '-' while trying to do '.accessed' in method gist at src/gen/m-CORE.setting:12873 in sub say at src/gen/m-CORE.setting:13799 in block at /tmp/2UumlWQrVz:1» | ||
timotimo | someone on twitter pointed out that perl6 is going to be 14 years old in 2 weeks | 16:19 | |
should we be holding some special celebration or something? | |||
carlin | they grow up so fast | ||
16:28
denis_boyun_ left
16:32
cholby is now known as hoverboard
|
|||
timotimo | at least you cannot claim we're being reckless by going too fast ... | 16:33 | |
rurban1 | what is exact date for the 14th birthday? | 16:34 | |
the | |||
cognominal | :r my $a = 'a' say q:s|$a()| | 16:35 | |
oops | |||
r: my $a = 'a'; say q:s|$a()| | |||
camelia | rakudo-parrot fc4943: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str' in any at gen/parrot/BOOTSTRAP.nqp:1680 in block at /tmp/tmpfile:1» | ||
..rakudo-moar fc4943: OUTPUT«Cannot find method 'postcircumfix:<( )>' in block at /tmp/tmpfile:1» | |||
..rakudo-jvm fc4943: OUTPUT«No such method 'postcircumfix:<( )>' for invocant of type 'Str' in any at gen/jvm/BOOTSTRAP.nqp:1668 in block at /tmp/tmpfile:1» | |||
16:36
hoverboard is now known as moistcherry,
ajr_ left
|
|||
timotimo | rurban1: there's probably more than one place to start counting | 16:36 | |
rurban1: did you see froggs' problem with get_number on parrot? | |||
cognominal | Why raludo tries to onterpolate a method withing a q:s|| ? | ||
rurban1 | no, where? | ||
timotimo | irclog.perlgeek.de/perl6/2014-07-06#i_8978700 | ||
jnthn | cognominal: Well, you're calling that scalar. | 16:37 | |
rurban1 | interesting. I'll have a look | ||
16:37
isBEKaml_mobile joined
|
|||
dalek | rl6-bench: bbecc79 | (Geoffrey Broadwell)++ | / (4 files): Add rc-forest-fire-stringify mini-benchmark This is the second benchmark inspired by the slowness of rc-forest-fire, in this case testing the stringification of an rc-forest-fire map from an AoA of cell states to a single string ready for output. This stresses array slice with repeated keys, join with many short elements, and either push or gather/take depending on the language. |
16:37 | |
16:37
ajr_ joined
|
|||
timotimo | rurban1: this is in the context of trying to implement nativecast; it is quite possible that froggs is doing something wrong, of course | ||
rurban1 | I only remember we removed support for number keys in hashes | ||
cognominal | jnthn with q:s|| ? shoult it only interpret scalars? | 16:38 | |
rurban1 | a double as key in a hash | ||
jnthn | cognominal: It's behaving to spec. | ||
cognominal: If you interpolate any kind of variable it implies "and postcircumfixes afterwards" | |||
cognominal: Closure interpolation doesn't do that, so you might like to use that instead. | 16:39 | ||
The normal way folks get caught out is <foo>$bar</foo>, which will treat the closing tag as a key into $foo... | 16:40 | ||
cognominal | for <div> { | ||
say q:s< sub $_\(*@nodes, *%attrs) { Elt.new($_, |@nodes, |%attrs) } > | |||
} | |||
oops. s/say/EVAL/ | |||
I want a way to generate functions to create an HTML tree | 16:41 | ||
jnthn | That looks odd already in so far as the $_ inside .new would make a call to the sub, no? | ||
cognominal | I first tryied using sub ::($name) | 16:42 | |
jnthn | But I'd probably just go with q:c and use {$_} to interpolate. | ||
rurban1 | FROGGS[mobile]: how to repro get_number() not implemented in class 'num64' ? | ||
cognominal | I don't like resorting to EVAL. | ||
jnthn | The bigger question is how you ended up with a num64 instance... | ||
It's only really useful as a type object... | |||
rurban1 | I see. looks like a nqp problem, not parrot | 16:43 | |
ssutch | is there any way to get "use of uninitialized value of type Any in string context" these sorts of errors to puke rather than just print | ||
FROGGS[mobile] | rurban1: I can't show it right now, I am about to implement something that triggers the problem | 16:44 | |
timotimo | ssutch: "use fatal" is supposed to do that, i believe? | 16:45 | |
rurban1 | FROGGS[mobile]: nqp branch nativecast, right? | ||
16:45
skids left
|
|||
FROGGS[mobile] | right | 16:46 | |
plus unpushed changes | |||
(the actual implementation for parrot backend) | |||
I'll push when kids are in bed | 16:47 | ||
rurban1 | okay | ||
ssutch | timotimo: where should that be put? the error could be coming from anywhere | ||
timotimo | hm, actually i guess "use fatal" is supposed to be lexical? | ||
jnthn | use fatal is also about fail, I thought? | ||
moritz | it is | 16:48 | |
rurban1 | does anyone else having problems connecting to the irc.perl server? I only got access to freenet | ||
16:48
lelf` joined
|
|||
timotimo | freenet? did you mean freenode? | 16:49 | |
moritz | wasn't freenet a crappy ISP back in the days of dialup modems? :-) | 16:50 | |
fwiw I'm connected to magnet (irc.perl.org); haven't tried to reconnect | |||
16:50
isBEKaml_mobile left
|
|||
rurban1 | yes, freenode | 16:50 | |
16:50
lelf left
|
|||
rurban1 | but maybe mst just blocked me recently. he again called all german's assholes at YAPC, and maybe he thinks I'm german | 16:51 | |
timotimo | he didn't mean that, though ... right? | 16:52 | |
rurban1 | no idea. 3rd time in a row. I just left the room | ||
only 5 germans in the room. In Madison it was 8, no idea how many in Austin | 16:53 | ||
ssutch | doesn't seem to matter where i put use fatal | 16:54 | |
timotimo | hmm | ||
m: use fatal; warn "hey!"; say "alive" | |||
camelia | rakudo-moar fc4943: OUTPUT«hey!alive» | ||
timotimo | probably NYI? | ||
carlin | m: fail "hey"; say "blah" | 16:55 | |
camelia | rakudo-moar fc4943: OUTPUT«Unhandled exception: hey at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:12881 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:sink:33)…» | ||
ssutch | p: use fatal; warn "hey!"; say "alive" | 16:56 | |
camelia | rakudo-parrot fc4943: OUTPUT«hey! in block at /tmp/HDQ1Ku_5OY:1alive» | ||
ssutch | seems NYI might be the case | 16:57 | |
16:58
atroxaper left,
dmol left
|
|||
timotimo | yes | 16:59 | |
ssutch | in either case is there a way to have it affect the entire program? | 17:00 | |
timotimo | well, you can put something like | ||
m: warn "oh gosh!"; CONTROL { die $_ } | |||
camelia | rakudo-moar fc4943: OUTPUT«oh gosh!» | ||
timotimo | m: warn "oh gosh!"; CONTROL { die $_ }; say alive | 17:01 | |
m: warn "oh gosh!"; CONTROL { die $_ }; say "alive" | |||
camelia | rakudo-moar fc4943: OUTPUT«===SORRY!=== Error while compiling /tmp/Ft2tZKlYnCUndeclared routine: alive used at line 1» | ||
rakudo-moar fc4943: OUTPUT«oh gosh!alive» | |||
timotimo | er ... | ||
moritz | iirc CATCH and CONTROL have problems in the top-level | 17:03 | |
m: sub f { warn "oh gosh!"; CONTROL { die $_ }; say "alive" }; f | |||
camelia | rakudo-moar fc4943: OUTPUT«oh gosh!Trying to unwind over wrong handler» | ||
17:04
chenryn left
|
|||
timotimo | ah, that "properly" dies :) | 17:04 | |
i wonder if the die inside control is problematic? | |||
moritz | probably :-) | ||
it seems to be cause problems here | |||
rakudobug | |||
r: sub f { warn "oh gosh!"; CONTROL { die $_ }; say "alive" }; f | |||
let's see what the other backends do | |||
camelia | rakudo-moar fc4943: OUTPUT«oh gosh!Trying to unwind over wrong handler» | ||
..rakudo-parrot fc4943: OUTPUT«(timeout)» | |||
..rakudo-jvm fc4943: OUTPUT«oh gosh!oh gosh!» | |||
moritz | anybody has a r-j built locally, and can check? | 17:05 | |
er wait | |||
it's parrot that times out | |||
jvm is fine | |||
p: say 42 | |||
camelia | rakudo-parrot fc4943: OUTPUT«42» | ||
moritz | who wants the honors of submitting the rakudobug? masak? | 17:06 | |
timotimo | it's probably infinilooping between catching and throwing | 17:08 | |
17:08
moistcherry is now known as hoverboard
|
|||
moritz | prolly, yes | 17:12 | |
17:13
Tene left
17:14
djanatyn left
17:15
vendethiel joined
17:19
vendethiel left
17:20
vendethiel joined
17:23
zakharyas left
17:24
djanatyn joined
17:25
Tene joined,
Tene left,
Tene joined
|
|||
ssutch | ah i just want to know where this "use of uninitialized value of type Int in string context" is coming from :( | 17:31 | |
17:31
ajr_ left
|
|||
timotimo | right | 17:32 | |
use parrot or jvm | |||
moar is the only backend that doesn't give you a backtrace there | |||
p6: say "Hello { Str }"; | |||
jnthn wonders why not... | |||
ssutch | ah, right, thank you | 17:33 | |
17:33
guru joined
|
|||
camelia | rakudo-parrot fc4943: OUTPUT«use of uninitialized value of type Str in string context in block at /tmp/tmpfile:1Hello » | 17:33 | |
..niecza v24-109-g48a8de3: OUTPUT«Hello » | |||
..rakudo-{jvm,moar} fc4943: OUTPUT«use of uninitialized value of type Str in string contextHello » | |||
timotimo | er ... | ||
parrot is the only one that does it* | |||
17:33
guru is now known as Guest54656,
Guest54656 is now known as ajr_
|
|||
jnthn | hmm | 17:34 | |
It looks like it was disabled early on... | 17:35 | ||
...with the comment "backtraces busted" | |||
But given they seem to work fine for exceptions... | |||
timotimo | ah, it's just commented out? | 17:37 | |
that's good :) | |||
17:42
Tene left,
djanatyn left
|
|||
jnthn | Uncommenting it isn't sufficient, it seems :( | 17:44 | |
timotimo | aye, you may also need to compile and run it | 17:45 | |
jnthn | :P | 17:50 | |
Yes, I mean that isn't all that it needs | |||
17:55
vendethiel left,
vendethiel joined
17:57
igorsutton joined
17:58
ajr_ left,
igorsutton left
18:03
SamuraiJack_ joined,
SamuraiJack left
|
|||
carlin | > Exception.new.fail | 18:08 | |
Segmentation fault | |||
Only happens in the REPL | |||
m: Exception.new.fail # no segv from a file | 18:09 | ||
camelia | rakudo-moar fc4943: OUTPUT«No exception handler located for catch at <unknown>:1 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:12881 (/home/p6eval/rakudo-inst-1/languages/perl6/runtime/CORE.setting.moa…» | ||
18:14
vendethiel left,
vendethiel joined
18:17
itz_ left
18:19
vendethiel left,
vendethiel joined
|
|||
dalek | osystem: 2b62d7c | zengargoyle++ | META.list: Add Text::Fortune |
18:51 | |
osystem: f6ad39c | zengargoyle++ | META.list: a non-redirect version |
|||
osystem: 9531512 | zengargoyle++ | META.list: raw2 version |
|||
osystem: bcda5e1 | (Filip Sergot)++ | META.list: Merge pull request #32 from zengargoyle/Text-Fortune Add Text::Fortune |
|||
18:52
vendethiel left,
vendethiel joined
|
|||
sergot | Can we give to zengargoyle a commit bit to the ecosystem? | 18:52 | |
18:54
rurban1 left
|
|||
zengargoyle woots | 18:56 | ||
18:56
Tene joined,
Tene left,
Tene joined
|
|||
zengargoyle | not sure of the why about commit bit question... | 18:57 | |
heh, about 20 years of Perl and i somehow manage a Perl6 module before a Perl5 one. | 18:58 | ||
18:58
Tene left
18:59
darutoko left
|
|||
dalek | p/nativecast: 1fec607 | (Tobias Leich)++ | src/vm/parrot/ (2 files): implement nativecallcast op for parrot backend The op itself seems to work for all kinds or target types, but there is an issue with nums and strs in NativeCall when we try to box the return value of the op. Native ints work out for some reason even when the code paths seem to be identical. |
18:59 | |
19:01
Tene joined
|
|||
ssutch | i recall there being a more sugared way to do this @.args.map({ .build }) | 19:02 | |
zengargoyle | @.args>>.build ? | 19:03 | |
FROGGS__ | right | 19:04 | |
19:04
FROGGS__ is now known as FROGGS
|
|||
ssutch | ah, yes, thank you | 19:04 | |
FROGGS | rurban: I push my stuff to nqp/nativecast, int/cstruct/carray/cpointer works, num and str does not | 19:05 | |
rurban: if you really wanna test it you'd also need zavolaj's nativecast branch (and also in moarvm, if you wanna compare) | |||
zengargoyle thinks Perl6 is going to force me to figure out input methods for » unicode things. | |||
FROGGS | there is a 09-nativecast.t in zavolaj (NativeCall) | ||
jnthn: what is so different between int, num and str? int works just fine in nativecast, the other two do not :/ | 19:06 | ||
jnthn | FROGGS: Dunno off hand. Maybe see sixmodelobject.pmc and see if there's something done specially for integers... | 19:07 | |
FROGGS | okay | ||
19:08
dwarring joined
19:09
djanatyn joined
19:12
SamuraiJack_ left
19:13
zakharyas joined
|
|||
dalek | ast: 569173f | (David Warring [email@hidden.address] | / (2 files): added Test::Util::run(). Utilized in S32-list/roll.t |
19:15 | |
sergot | FROGGS++ | 19:17 | |
zengargoyle: why not then? :) | 19:18 | ||
FROGGS | jnthn: no, get_integer and get_number are identical | 19:22 | |
19:27
krunen left
19:39
zakharyas left
|
|||
FROGGS | jnthn: in sixmodelobject.pmc .get_number the return value of STABLE(decont)->parrot_vtable_mapping is NULL | 19:42 | |
19:49
liztormato joined
|
|||
liztormato caught on backlog | 19:49 | ||
Re itemizing. Maybe the method should be called .scalar instead. As it does the same as $(). And the call it 'scalarizing' | 19:51 | ||
*then | |||
dalek | rl6-bench: 8f1cf84 | (Geoffrey Broadwell)++ | microbenchmarks.pl: Add create_and_copy_2d_grid_cross test; emulate cross for perl5 This is the third benchmark inspired by the slowness of rc-forest-fire, in this case testing creation and copying of 2D grids using for/cross e600ff5 | (Geoffrey Broadwell)++ | microbenchmarks.pl: Add a rand microbenchmark This is the fourth benchmark inspired by rc-forest-fire slowness, this time focusing on the performance of random floating point generation in the [0, 1) range. |
||
19:51
dalek left
19:52
dalek joined,
ChanServ sets mode: +v dalek
|
|||
FROGGS | liztormato: the naming os not the problem me thinks | 19:52 | |
is* | |||
japhb_ | jnthn, timotimo: The most important part of what dalek lost there is that you can now do `bench --tests-tagged=forest-fire time <compilers>` to get all the tests I have so far extracted from rc-forest-fire, including the original. | 19:53 | |
liztormato | I got the impression it •was•. As itemizing to most people has exactly the opposite meaning as to how we use it in Perl 6 | 19:54 | |
japhb_ | English has a long history of words that mean the opposite of themselves. | 19:56 | |
liztormato | My turn to drive& | ||
19:56
liztormato left
|
|||
jnthn | japhb_: ooh :) | 19:58 | |
japhb_: Getting a Perl 5.20 bench run on Windows was...fun | |||
japhb_: The build process looks a good bit different. | |||
20:02
krunen joined
|
|||
jnthn | japhb_: Though I realized now that I have the timings for it I don't need to run it again. :) | 20:02 | |
FROGGS | jnthn: do you have an idea how this can end up being NULL? github.com/perl6/nqp/blob/master/s...t.pmc#L175 | 20:05 | |
jnthn | FROGGS: No...or more to the point, I don't know how it ends up not being in the integer case... | 20:07 | |
FROGGS | I'm checking that for the integer and string case now too, will know in 2mins | 20:08 | |
hmm, yeah, it really is not NULL in the integer case | |||
and vt is NULL for the strings case also | 20:09 | ||
jnthn | I forget how it ends up getting set... | 20:11 | |
I think it's related to some is parrot_vtable trait | |||
FROGGS | /home/froggs/dev/nqp/src/QRegex/Cursor.nqp:696: method Str() is parrot_vtable('get_string') { nqp::substr($!orig, $!from, $!to-$!from) } | 20:12 | |
/home/froggs/dev/nqp/src/QRegex/Cursor.nqp:697: method Int() is parrot_vtable('get_integer') { +self.Str() } | |||
/home/froggs/dev/nqp/src/QRegex/Cursor.nqp:698: method Num() is parrot_vtable('get_number') { +self.Str() } | |||
ohh, there is a vtable handler mapping... | |||
20:13
denis_boyun_ joined
20:14
dragon_d joined
20:15
Sqirrel joined
|
|||
zengargoyle | sergot: it's hard to argue that logic... | 20:15 | |
japhb_ | jnthn: Aside from changing how the Configure is run, how is a perl5 build on Windows different? | 20:16 | |
FROGGS | I guess it is different than our build system | ||
jnthn | japhb_: I had to manually hack the makefile to say where to install it, for example | 20:17 | |
japhb_: Also it didn't build cleanly from a git checkout due to a build script having a line-endings issue | |||
japhb_ | Eww, no -Dprefix at all then ...? | ||
20:18
kaare_ left
|
|||
jnthn | Not that I could see | 20:18 | |
japhb_ | Double eww. I'm surprised that someone hasn't done the git magic to make the line endings work right. | ||
jnthn | Plus one other lib linking issue | ||
So in other words a bunch of hacks it's hard to automate... :( | |||
I also wanted at rakudo-parrot 2013.08, which has needed a couple of manual hacks, because our build system has changed/improved. :) | 20:19 | ||
japhb_ | Sheesh. I fully expected by this point Windows builds would Just Work. I remember when Gurasamy was working on it, and that was ... a long time ago. | ||
jnthn | (I've got a talk submitted on performance stuff, and I want to show year-on-year progress.) | ||
(Of course, it may not be accepted but...always be prepared.) | 20:20 | ||
FROGGS | that also seems right... rakudo/src/Perl6/Metamodel/BOOTSTRAP.nqp:1017: Mu.HOW.add_parrot_vtable_mapping(Mu, 'get_number',... | ||
japhb_ | jnthn: When is your talk? | ||
jnthn | (Part of the year's progress is that we have MoarVM now; really what I'm going for is "what would the typical Rakudo user have used") | ||
japhb_ | (if accepted, of course) | ||
jnthn | japhb_: August 20th or so | ||
japhb_ | Ah, cool. Where? | 20:21 | |
jnthn | YAPC::Europe, Sofia. | ||
japhb_ | I guess I should finish the work for history plots. | ||
jnthn | stroll, before it goes; bbs & | 20:23 | |
20:24
FROGGS[mobile] left
20:40
lelf` left
20:41
lelf` joined
|
|||
ssutch | m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map({ expr($_) }) | 20:46 | |
camelia | rakudo-moar fc4943: OUTPUT«2 3 4» | ||
ssutch | there are cleaner ways to do that im guessing | ||
FROGGS | m: my @a = 1,2,3; say @a.map(* + 1) | ||
camelia | rakudo-moar fc4943: OUTPUT«2 3 4» | ||
ssutch | specifically with the expr function | 20:47 | |
FROGGS | m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map( expr * ) | ||
camelia | rakudo-moar fc4943: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: *%_) in sub infix:<+> at src/gen/m-CORE.setting:4199 in sub expr at /tmp/uBfNR9Dfp3:1 in block at /tmp/uBfNR9Dfp3:1» | ||
FROGGS | m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map( expr(*) ) | ||
camelia | rakudo-moar fc4943: OUTPUT«Cannot call 'Numeric'; none of these signatures match::(Mu:U \v: *%_) in sub infix:<+> at src/gen/m-CORE.setting:4199 in sub expr at /tmp/OxHuabvIT3:1 in block at /tmp/OxHuabvIT3:1» | ||
FROGGS | hmmmm | ||
ssutch | heh :) those were my instincts too | 20:48 | |
japhb_ | ssutch: I saw that you asked me a question yesterday, but by that time I was too tired to respond. Did you figure it out already? | ||
ssutch | japhb_: i made a pull req for the protocol buffers lib | ||
japhb_ | m: my @a = 1,2,3; sub expr($a) { $a + 1 }; say @a.map: &expr; | 20:49 | |
camelia | rakudo-moar fc4943: OUTPUT«2 3 4» | ||
japhb_ | ssutch: You pull requested yourself? :-) | ||
ssutch | yeah, i wanted your input | 20:50 | |
japhb_ | OK, let me see if I can get my brain back in that mode. | ||
In the mean time, is the above use of &expr what you were thinking of? | 20:51 | ||
ssutch | if not, no worries, what i was after works but it may not be ideal | ||
japhb_: yes thats what i was looking for | |||
20:51
Tene_ joined,
Tene_ left,
Tene_ joined
|
|||
FROGGS | jnthn: that also shows it: | 20:51 | |
m: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT | 20:52 | ||
camelia | rakudo-moar fc4943: OUTPUT«0e0(num64)0(Num)» | ||
FROGGS | p: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT | ||
camelia | rakudo-parrot fc4943: OUTPUT«0e0(num64)get_number() not implemented in class 'num64' in block at /tmp/A9TdV7zUuU:1» | ||
FROGGS | j: my $n = num64.new; say $n; say $n.WHAT; say nqp::p6box_n($n); say nqp::p6box_n($n).WHAT | ||
camelia | rakudo-jvm fc4943: OUTPUT«(timeout)» | ||
FROGGS | gah, go away jvm :/ | ||
20:54
denis_boyun_ left,
Tene left
|
|||
psch | yes, it's a troublesome backend :P | 20:55 | |
FROGGS | p: my $i = int64.new; say $n; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT | ||
camelia | rakudo-parrot fc4943: OUTPUT«===SORRY!=== Error while compiling /tmp/TRHNZvGqL1Variable '$n' is not declaredat /tmp/TRHNZvGqL1:1------> my $i = int64.new; say $n⏏; say $i.WHAT; say nqp::p6box_i($i); say expecting any of: …» | ||
FROGGS | p: my $i = int64.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT | ||
camelia | rakudo-parrot fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW' in method BUILDALL at gen/parrot/CORE.setting:843 in method bless at gen/parrot/CORE.setting:835 in method new at gen/parrot/CORE.setting:820 in method new a…» | ||
FROGGS | m: my $i = int64.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT | ||
camelia | rakudo-moar fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW' in method BUILDALL at src/gen/m-CORE.setting:847 in method bless at src/gen/m-CORE.setting:839 in method new at src/gen/m-CORE.setting:823 in block at /tmp/KM…» | ||
jnthn | wait what | ||
FROGGS | m: my $i = int32.new; say $i; say $i.WHAT; say nqp::p6box_i($i); say nqp::p6box_i($i).WHAT | ||
jnthn | you're not meant to do num64.new... | ||
camelia | rakudo-moar fc4943: OUTPUT«No such method 'BUILDALLPLAN' for invocant of type 'Perl6::Metamodel::NativeHOW' in method BUILDALL at src/gen/m-CORE.setting:847 in method bless at src/gen/m-CORE.setting:839 in method new at src/gen/m-CORE.setting:823 in block at /tmp/w_…» | ||
jnthn | Or any native type .new | 20:56 | |
FROGGS | jnthn: I just want to have a num64 to play with | ||
jnthn | They're not objects. | ||
If you get one, that's the problem. | |||
Instances of those shouldn't ever show up | |||
The type objects are the only interesting thing. | |||
FROGGS | because in nativecast you have to provide something that has bits, so you say cast(num32, $foo), and in the cast sub we box | 20:57 | |
jnthn | Every other time the values should be stored natively | ||
But then we box to Num | |||
FROGGS | jnthn: but I get a num64 back from the nqp op, and I cannot box it | ||
jnthn | Taht's the boxed type | ||
FROGGS | yes | ||
jnthn | Which nqp op? | ||
FROGGS | I want to, but it explodes | ||
nqp::nativecallcast | |||
jnthn | Oh, and it's boxing a num64? | 20:58 | |
FROGGS | nativecallcast allocates a num64 repr, aye | ||
jnthn | Yeah, that's not meant to happen. | ||
FROGGS | ahh | ||
:o) | |||
jnthn | They aren't meant to serve as boxed types. | ||
They're meant to serve as things that get flattened elsewhere. | 20:59 | ||
FROGGS | okay... then nativecallcast needs a third param | ||
jnthn | Sorry, didn't realize until now this is what nativecallcast was doing... | ||
FROGGS | np | ||
20:59
denis_boyun_ joined
|
|||
jnthn | Well, that or it needes to obtain the appropraite boxing type... | 20:59 | |
FROGGS | hmmmm, I'll check | ||
jnthn | (available through the hll config mechanism) | 21:00 | |
21:01
djanatyn left
|
|||
FROGGS | weird that nqp::nativecall boxes into these natives too: | 21:03 | |
* | |||
* $2 is the type of result to build. It can be a null if the return value | |||
* is void or can simply be discarded. If the return value is a native | |||
* type, then this type should be capable of boxing it. | |||
21:04
carlin left
|
|||
FROGGS | ohh no, it does not | 21:04 | |
jnthn | I think we send Int in there, though... | ||
FROGGS | ye | ||
s | |||
map_return_type | |||
ahh, it does not take the bit size information from the target type | 21:05 | ||
21:09
rindolf left
|
|||
jnthn | grr, rc-forest-fire and rc-man-or-boy-test failed to run at all on rp 2013.08, and rc-self-describing-numbers is taking forever... | 21:11 | |
21:12
dragon_d left,
atroxaper joined
|
|||
japhb_ | jnthn: Define 'forever' | 21:12 | |
21:13
denis_boyun_ left,
dmol joined
|
|||
jnthn | "since I got back from my stroll" :) | 21:13 | |
japhb_ | The "must have 3 scaling levels per test" rule tends to make slow tests even slower, as you get 7x the slow (1 + 2 + 4, under typical doubling-style scaling) | ||
But you can tune that, if you don't care about the curves. | |||
jnthn | I'm not in a hurry :) | ||
timotimo | self-describing-numbers is a really, really slow test | 21:14 | |
21:14
djanatyn joined
|
|||
japhb_ | hmmm ... running it locally | 21:14 | |
(I wonder if I mistuned the default scale?) | |||
timotimo | i already thought it's hanging twice before :) | 21:15 | |
japhb_ | jnthn: Did you start the run before or after I added the 'rand' test, OOC? | ||
jnthn | Before | 21:16 | |
21:16
atroxaper left
|
|||
japhb_ | Oh yeah, perl5/v5.20.0 and nqp-moar/master both finished rc-self-describing-numbers pretty quickly, and rakudo-moar/nom is taking its time. | 21:16 | |
(Those three are now my 'canary' set that I use to test changes before pushing.) | 21:17 | ||
timotimo | that's probably some place we can get a good win out of getting rakudo performance closer to nqp | ||
changes to what? | |||
japhb_ | timotimo: benchmark tests, build rules, components, ... | ||
jnthn | Is self-describing-numbers the one that starts with something like 0 xx big_number ? | ||
timotimo | oh, ok | 21:18 | |
japhb_ | jnthn: 0 xx $n.chars. So logarithmically growing. | ||
jnthn | OK. I discovered xx to be quite horribly slow. | 21:19 | |
timotimo | didn't you optimize xx with a constant lhs recently? | ||
japhb_ | But I wouldn't expect 0 xx 10, say, to be all that slow. Does it have a horrible setup time or something? | ||
21:19
dragon_d joined
|
|||
japhb_ | Holy cow, rakudo-moar/nom is really taking a long time! WTF ...? | 21:20 | |
jnthn | On self-describing-numbers? | 21:21 | |
Yes, the overhead of 0 xx 10 is HORRIBLE. | 21:22 | ||
I had a semi-rant about list being pessimized for eagerness here the other day because of it. | |||
timotimo | time perl6-m -e '0 xx 5000' 0.34user 0.03system 0:00.38elapsed | ||
that doesn't sound terrible | |||
oh, because i do nothing with it. | |||
jnthn | Try my @a = 0 xx 5000; | 21:23 | |
timotimo | no, even when i say a @a that i put in, it's the same speed | ||
how big are these numbers you're xx-ing the 0 with? | |||
21:23
virtualsue left
|
|||
timotimo | 1.7 seconds for 50k 0s in the list | 21:24 | |
21:24
denis_boyun joined
|
|||
jnthn | Right, now try it with p5 | 21:24 | |
timotimo | ah, well .. ;) | ||
jnthn | If you account for startup time, it's some hundreds of times slower | 21:26 | |
japhb_ | jnthn: re: semi-rant about pessimized for eagerness ... was the rant about Rakudo's implementation of the existing list semantics, or the semantics *themselves*? | ||
Yeah, rc-self-describing-numbers is *still* running for me. | |||
OK, clearly this needs a change. | 21:27 | ||
jnthn | Well, Perl 6 at a spec level has mostly been a wish list when it came to lists, leaving folks like pmichaud++ to work out a model that could provide them. | ||
The issue at the moment is that there's little way to push context, or detinations for data, downwards. | |||
japhb_ | Finally finished with rakudo-moar/nom some 660.6x slower than perl5/v5.20.0 | ||
jnthn | It got done here too on rakudo-parrot/2013.08 :) | 21:28 | |
japhb_ | How bad is the comparison to perl5 for you? | ||
jnthn | Anwway, @a = 0 xx 100000 takes and resumes 100,000 continuations at present. | ||
timotimo | oh, ouch | ||
japhb_ | >.< | ||
jnthn | Not sure yet, it's still running. | ||
timotimo | it gather/takes those values? | 21:29 | |
jnthn | Yes | ||
21:29
denis_boyun left
|
|||
jnthn | Thing is, even if we optimize continuation take/resume some more...we still shouldn't be doing 100,000 of them just to eagerly fill a darn array with 0s. | 21:29 | |
timotimo | aye. | 21:30 | |
can spesh inline that and figure out the continuation is "worthless"? | 21:31 | ||
only when we have escape analysis, aye? | |||
21:31
hoverboard left
|
|||
masak | escape analysis \o/ | 21:31 | |
timotimo | (i agree that that's not the right fix for this) | ||
jnthn | I've no idea. That sounds like some serious inlining... | ||
I dunno how to do it off hand. | |||
And worse | |||
It's not actually worthless here | |||
In so far as we actually do quite a bit before resuming it | 21:32 | ||
timotimo | (but it would be interesting to know if moar could optimize something like that in user code when it encounters it) | ||
jnthn | We make a new GatherIter instance. | ||
timotimo | we do? | ||
jnthn | And hand it back to the ListIter. Which then uses it to get the next thing. | ||
timotimo | oh, we take the continutaion, build the gatheriter and then the continuation is resumed a bunch of times? | ||
jnthn | So we're chewing thorugh 100,000 GatherIter object constructions too. | ||
timotimo | oh! | ||
wow, that's harsh | |||
jnthn | Yup. And remember that it's a control exception throw too to find the take handler. | 21:33 | |
japhb_ | I repeat >.< | ||
jnthn | When I saw how much we were doing per element, I was mostly like, "Ok, MoarVM doesn't do too badly at this" :) | ||
timotimo | yikes :S | ||
jnthn | We should just no way be doing that much work. | ||
timotimo | ah, well, with a for loop and pushing 0, it takes only 0.71 instead of 2.44 (for 100_000 items) | 21:35 | |
japhb_ | Gah, having r-m 8-10 doublings slower than the nqp-m or perl5 makes it really hard to find a good starting scale that doesn't either give noise values for the fast ones or take forever for Rakudo | ||
timotimo | with 200k it's 4.86 vs 1.14 | 21:36 | |
japhb_ | for loops are probably still too slow -- compare with while/push? | ||
21:37
spider-mario left
|
|||
timotimo | our for loops can be turned into while loops by now | 21:37 | |
japhb_ | timotimo: Yes, but does that actually happen for the cases used in the benchmarks? | ||
jnthn | uh, for the range case :) | ||
timotimo | and the $_, $/, $! elimination can bring it a bit closer, too | ||
this was a ^100_00 one | |||
jnthn | right | ||
timotimo | but yes, only that case | 21:38 | |
japhb_: i feel your pain with the start value problem :( | 21:42 | ||
21:42
lizmat joined
|
|||
dalek | rl6-bench: 445d939 | (Geoffrey Broadwell)++ | minibenchmarks.pl: Reduce the initial scale for rc-self-describing-numbers *again* |
21:43 | |
japhb_ | Turns out I had already reduced that one once. :-( | ||
timotimo | yeah :S | 21:44 | |
lizmat is finally back home again | 21:48 | ||
jnthn | :) | ||
lizmat | the past week was crazy: Orlando, New York, Brussels, Frankfurt, Amsterdam, Gent, London | ||
21:49
btyler left
|
|||
lizmat | If it's Tuesday, this must be Belgium | 21:49 | |
looking forward to do some proper S11/S22 hacking this week | |||
masak | lizmat++ # proper hacking on synopses that are a multiple of 11 | 21:50 | |
masak idly wonders what S33 is about | |||
lizmat | masak: I hope you're aware that in these parts, 11 is the crazy number | ||
masak | was not aware. | ||
lizmat | Mardi Gras starts at 11:11 on the 11th of November | 21:51 | |
masak | all we have in .se are things like "the 11th hour". | ||
timotimo | hm. | ||
lizmat | if you're born on the 11th November, you have but one choice in life: to be the jester during Mardi Gras | ||
japhb_ | We have a rather different interpretation of 11/11 11:11 here ... | ||
lizmat | do tell? | 21:52 | |
lizmat realizes she once started S99, which is also a multiple of 11 :-) | |||
japhb_ | en.wikipedia.org/wiki/Veterans_Day | ||
timotimo | after 99, the multiples of 11 don't look as cute any more in decimal ... | 21:53 | |
lizmat | I'm pretty sure the end of WWI has something to do with it | ||
japhb_ | lizmat: yeah, see the link above ^ | ||
21:54
woolfy joined
|
|||
lizmat | japhb_: that's where I read it :-) | 21:54 | |
japhb_ | Oh, s/I'm pretty/I was pretty/ ? | ||
And I guess s/has/had/, just to make the grammarians happy | |||
lizmat | I mean that 11:11 on 11/11 is the start of Mardi Gras... | 21:56 | |
anyways, not important | 21:57 | ||
looking forward to finally sleep in my own bed again | |||
japhb_ | Mardi Gras here ends up at a whole different season | 21:58 | |
I bet! (re: own bed) | |||
21:59
smls left
|
|||
japhb_ wonders how Mardi Gras ends up on a not-Tuesday ... probably the same as how the U.S. constantly celebrates birthdays shifted around to make long weekends | 21:59 | ||
dalek | rl6-bench: a5d9765 | (Geoffrey Broadwell)++ | microbenchmarks.pl: Beef up any_equals and add a perl5 emulation using grep |
22:01 | |
lizmat | japhb_: it *starts* on 11:11 on 11/11, it *ends* 6 weeks before Easter | 22:02 | |
(aka, on Ash Wednesday) | 22:03 | ||
only the last 5 days are generally full out partying on the street | |||
japhb_ makes cartoonish brain-confused-headshake | |||
lizmat | the rest of the period, it is usually only in the weekends and in the evenings and in certain locations | 22:04 | |
in the past, they had to make it somehow worthwhile to be a catholic :-) | |||
dalek | p/nativecast: 5202e7e | (Tobias Leich)++ | src/vm/jvm/ (2 files): add box target parameter to nativecallcast We box into the object provided by this param, and query the already existing param for bit sizes we need when reading numbers. |
||
japhb_ | That sounds an awful lot like "We need an excuse to party throughout the long-nights period of the year" | ||
lizmat | guess who invented "Belgian" beer, like the Duvel and the Triple? | 22:05 | |
A: catholic monks | |||
FROGGS | A | ||
lizmat | (Answer) | ||
masak | definitely A. | ||
FROGGS | :o) | ||
masak | but beer can be a pretty spiritual experience. | 22:07 | |
especially Belgian beer. | |||
dalek | p/nativecast: 5661eee | (Tobias Leich)++ | src/vm/parrot/ (2 files): add box target parameter to nativecallcast We box into the object provided by this param, and query the already existing param for bit sizes we need when reading numbers. Also add a missing break in a switch case. |
22:08 | |
woolfy | There's also excellent Belgian single malt whisky, made by the same monks... | ||
masak | ooh! | ||
I don't believe I've ever seen that. | |||
dalek | volaj/nativecast: cabc609 | (Tobias Leich)++ | lib/NativeCall.pm6: simplify sub nativecast We do not need to box the return value anymore since we provide the proper box target now. A call looks now like: nativecast(int32, Int, $opaque-pointer) |
22:10 | |
FROGGS | Push All The Things! /o/ | ||
jnthn: ready to merge I think :o) | |||
22:10
molaf left
|
|||
lizmat | masak: it's called Gouden Carolus Single Malt Whiskey, it smells like a triple, it tastes and drinks very smoothly, and the aftertaste is the triple again | 22:14 | |
we now know of 2 places to get it, and at both places, it's only 1 per person :-) | |||
*1 bottle | |||
woolfy | So since we are two persons, we now have 4 bottles. :-) | 22:15 | |
lizmat | anyways, time to inspect the inside of my eyelids& | 22:16 | |
woolfy | www.stokerijdemolenberg.be/benl | ||
(the website might ask you a question about your age... if you are old enough to drink... answer "JA", which is Dutch for "YES") | |||
FROGGS | sleep well lizmat and woolfy :o) | 22:17 | |
masak | lizmat, wendy: sounds very interesting. | 22:18 | |
woolfy* | |||
anyway, 'night #perl6 | |||
jnthn | japhb_: stupid question: what does bench compare output? :) | ||
dalek | rl6-bench: 0127224 | (Geoffrey Broadwell)++ | microbenchmarks.pl: Add array_set_xx test; add 'forest-fire' tag to it and any_equals |
22:19 | |
22:19
telex left
22:20
telex joined
|
|||
jnthn | oh, I see, once I fix it it outputs to the console | 22:20 | |
and how do I get shiny graphs... :) | |||
japhb_ | jnthn: Depends on which format you use; console is the default | 22:21 | |
you probably want --format=html_plot | |||
timotimo | ./bench --format=html_plot compare ... | ||
woolfy | g'night | ||
japhb_ | Did you find anything other than the perl5 build so far that required changes to run on Windows? | ||
o/ woolfy, lizmat | |||
(..., masak() | 22:22 | ||
jnthn | whee...it lives :) | ||
japhb_: yeah | 22:23 | ||
japhb_ | heh | ||
22:24
gfldex left
|
|||
japhb_ | jnthn: PR welcome when you're ready. :-) | 22:26 | |
Speaking of which, ssutch: I'm still looking at your PR. My brain doesn't seem to want to shift fully into Metamodel Mode, so I may need to try again tomorrow. | 22:27 | ||
jnthn | jnthn.net/perl6/bench/2014-07-07.html is what I got, for anybody who is curious. | 22:30 | |
This is stock builds of Perl 5.20 and rakudo/moar HEAD, using MSVC compiler. | 22:31 | ||
psch | rc-mandelbrot looks great | 22:34 | |
psch doesn't actually think he makes much sense of these benchmarks | |||
just like the jvm thing... | |||
jnthn | Yes, I'm curious about our beating Perl 5 on the mandelbrot thing... | 22:35 | |
I see I've a bunch of nice benchmarks to look at also :) | |||
*new benchmarks | |||
tadzik | aren't they nice? :( | 22:38 | |
jnthn | tadzik: Well, the typical thing we point people at the run Perl 6 these days has improved hugely on a year ago. | 22:39 | |
tadzik: But there's some notably weak areas that need a look. | 22:40 | ||
*sigh* strings *sigh* | |||
jnthn really needs to stop procrastinating the MoarVM string work | |||
22:46
rurban1 joined
|
|||
jnthn | Well, enough for today :) 'night | 22:48 | |
22:49
rurban2 joined
|
|||
japhb_ | Good night, jnthn. Sleep well | 22:50 | |
psch | night jnthn | ||
22:51
rurban1 left
23:00
bluescreen100 left,
bluescreen10 joined
|
|||
dalek | rl6-bench: ffb12fc | (Geoffrey Broadwell)++ | bench: Make --ignore-{startup,compile} Bool flags to improve help text |
23:06 | |
23:19
bluescreen10 left
23:20
dmol left
23:33
dragon_d left
23:45
xragnar_ joined,
xragnar is now known as Guest79502,
Guest79502 left,
xragnar_ is now known as xragnar
|