»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:00
FROGGS left
|
|||
japhb | Wait, what about --target=mast ...? | 00:00 | |
timotimo | you're looking for ways to inspect generated bytecode? | 00:01 | |
ShimmerFairy | timotimo: just wondering if literals in things like nqp::add_i(42, 0) are treated as native ints (for example) without having boxing/unboxing going on | ||
timotimo | yeah, ought to | ||
japhb | timotimo: Err, what ShimmerFairy just said | ||
timotimo: Yes, but are they *actually* | 00:02 | ||
--target=mast is HUGE for such a simple thing | |||
ShimmerFairy | japhb: just realized I did --target=optimize without specifying an optimize flag, hang on :P | ||
00:02
FROGGS joined
|
|||
timotimo | 00018 const_i64_16 loc_3_int, 52 | 00:03 | |
00019 const_i64_16 loc_4_int, 0 | |||
00020 add_i loc_4_int, loc_3_int, loc_4_int | |||
that's the interesting part for "use nqp; nqp::add_i(52, 0)" | |||
with --target=mbc --output=test.moar and then moar --dump test.moar | |||
japhb | OK, so it *is* doing the right thing then. | ||
ShimmerFairy | timotimo: I still see Want ( WVal(Int), Ii, IVal(42) ) [abbreviating the output here to one-line of course] in --target=optimize | ||
timotimo | sure | 00:04 | |
00:04
dha left
|
|||
timotimo | Want is there for our lower code-gen to have a way of using a native value if it can | 00:04 | |
and otherwise it'll have a boxed object ready to go | |||
another place where Want pops up is when we have code generated for void and result-expected cases of code | |||
ShimmerFairy | timotimo: ah, so it's me misunderstanding the IVal then :P (I though it was any kind of integer, not only natives) | 00:05 | |
timotimo | that's the Want nodes where the value in the middle is "v" | ||
IVal is actually a lowest-level-possible integer | |||
ShimmerFairy | I have noticed the sink context Wants before, yes :) | ||
timotimo | i don't think we can have IVal for bigints | ||
ah, watch out, though; "sink" context as rakudo knows it is a little bit different, too | 00:06 | ||
that's where all the "if can sink, callmethod sink" code comes from | |||
00:06
perlawhirl joined
|
|||
ShimmerFairy | japhb: so, don't mind me, literals do get handled correctly after all :P Maybe the fact that your code was written pre-NFG has something to do with it? (Maaaaaybe? I doubt that could affect much though) | 00:07 | |
timotimo | the WVal(Int) you see as the first entry to the Want is a boxed Int with (hopefully) the same value that's been put into the serialized blob | ||
ShimmerFairy | timotimo: is a Want useful with just one thing inside? (I'm guessing no.) And I don't suppose there's a way to have Wants for types in general. 'IntStr' and friends are interesting to think about; should they get a three-part Want? :P | 00:09 | |
timotimo | oof. | ||
a whole bunch of code will want (haha) to get adapted to that | 00:10 | ||
at least some code i wrote has assumed that a Want has only two options (and the flag in between) | |||
ShimmerFairy | timotimo: I'm just trying to deal with calling &val at compile-time and doing $*W.add_object and stuff afterwards. I have a QAST::WVal(:value($thing)) after add_object, but it'd be nice to wrap that in a Want methinks (but how does an allomorphic type go in a Want? O_o) | 00:11 | |
00:18
perlawhirl left
00:20
FROGGS left
00:22
tokuhiro_ joined,
BenGoldberg joined
00:26
tokuhiro_ left
00:29
dayangkun joined
00:34
tokuhiro_ joined
|
|||
timotimo | what do you mean "how does it go in a want"? | 00:35 | |
i'd imagine it'd be like Want(WVal(IntStr), "Ss", SVal("123"), "Ii", IVal(123)) | 00:36 | ||
timotimo ought to go to bed soon | |||
00:38
rangerprice left
00:40
ktv joined,
laouji joined
00:43
ktv left
00:44
laouji left,
laouji joined
|
|||
ShimmerFairy | timotimo: OK, I'll try that if needed. Right now I've got a weird problem with the is trait_mod and having a Want(WVal(Str)) come out of using &val (hopefully substituting a 'failed' val call with the original QAST fixes it) | 00:45 | |
I read in the QAST doc that Want() shouldn't be used for combining a string and int in one thing, because it could cause ambiguity issues, but that's what the allomorphic types are all about :P | 00:46 | ||
00:48
kbenson_ joined,
skarn left,
Gardner left
00:49
laouji left
|
|||
ShimmerFairy | and ♞ timotimo, assuming you do go to bed soon :) o/ | 00:49 | |
00:49
yqt left,
laouji joined,
khw left
|
|||
timotimo | have a good one :) | 00:50 | |
00:53
Gardner joined,
JimmyZ joined
00:54
hobbs joined
00:55
khw joined
00:56
skarn joined
01:06
Skarsnik left
01:10
dickbutt joined
01:11
dickbutt left
01:18
laouji left
01:19
laouji joined
01:24
sufrostico left
01:46
telex left
01:48
telex joined
02:02
noganex joined
02:03
mr-foobar left
02:04
noganex_ left
02:05
mr-foobar joined
02:15
BenGoldberg left
02:27
FROGGS joined
|
|||
dalek | p/js-merge-wip: 7c29fe7 | hoelzro++ | / (189 files): Fix up usage of openpipe()/shell() |
02:37 | |
p/js-merge-wip: b01fb9f | hoelzro++ | src/vm/js/nqp-runtime/ (3 files): Use node-bignum instead of node-bigint bignum is actively maintained and works with newer versions of Node.js |
|||
p/js-merge-wip: f3184f1 | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js: Update nqp-js to use serialization format #14 |
|||
p/js-merge-wip: 1293b60 | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js: Finish varint implementation |
|||
p/js-merge-wip: c3408ef | hoelzro++ | src/vm/js/nqp-runtime/ (2 files): v15 fixes |
|||
p/js-merge-wip: 5ba8312 | hoelzro++ | src/vm/js/nqp-runtime/reprs.js: Add dummies for missing JS REPRs |
|||
p/js-merge-wip: a6b1fa3 | hoelzro++ | src/vm/moar/QAST/QASTCompilerMAST.nqp: Comment on removing MVM backend optimization |
|||
02:37
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
hoelzro | .tell pmurias I' | 02:38 | |
yoleaux | hoelzro: I'll pass your message to pmurias. | ||
hoelzro | ugh | ||
.tell pmurias I've pushed my WIP branch for the JS merge here: github.com/perl6/nqp/tree/js-merge-wip | |||
yoleaux | hoelzro: I'll pass your message to pmurias. | ||
labster | m: 1.5e0.base(10, -1).say | 02:51 | |
camelia | rakudo-moar 10dcba: OUTPUT«2» | ||
02:51
xinming_ joined
|
|||
labster | m: 1.base(10, -1).say | 02:51 | |
camelia | rakudo-moar 10dcba: OUTPUT«1.» | ||
labster | m: (3/2).base(10, -1).say | 02:52 | |
camelia | rakudo-moar 10dcba: OUTPUT«Index out of range. Is: -1, should be in 0..Inf in block <unit> at /tmp/8pBvED6LJ6:1Actually thrown at: in any at src/gen/m-Metamodel.nqp:2869 in block <unit> at /tmp/8pBvED6LJ6:1» | ||
labster | oddly enough, it's the last on that's closest to spec. | ||
02:54
xinming left
02:56
n0tjack joined
|
|||
labster | m: say (98/99).base(10, 1) | 03:00 | |
camelia | rakudo-moar 10dcba: OUTPUT«010.0» | ||
03:00
kaare_ joined,
noganex_ joined
|
|||
labster | right, so I already have a fix for that one, but I'm going to rakudobug this so I can get a tracking ticket | 03:00 | |
03:01
n0tjack left
03:03
noganex left
|
|||
dalek | kudo/nom: cd02e3e | hoelzro++ | src/core/io_operators.pm: Remove deprecated cwd() sub This finishes off the 2014.10 deprecations |
03:12 | |
kudo/nom: 87d035a | hoelzro++ | src/core/ (3 files): Remove 2014.11 deprecations |
|||
kudo/nom: 62ff58f | hoelzro++ | src/core/ (2 files): Remove 2014.12 deprecations snake-case methods in Range, and uniq from iterable methods |
|||
thou | Hi, what's the best doc for knowing what might have changed w/ glr merge (ie. to imagine where to look for fixing current Grammar match fail)? | ||
dalek | ast: 1efa062 | hoelzro++ | S17-procasync/ (2 files): Use more standard commands/arguments for Proc::Async tests Instead of using a non-existent file and ping on Windows, let's just use cat (or its Windows equivalent, type) and just output the null device |
03:16 | |
03:31
khw left
|
|||
dalek | kudo/nom: e87a7aa | TimToady++ | src/Perl6/ (2 files): add runaway quote detection |
03:39 | |
kudo/nom: 00e43db | TimToady++ | src/Perl6/Grammar.nqp: noarg functions might also be intended as nouns |
|||
kudo/nom: 6abe65c | TimToady++ | src/Perl6/Grammar.nqp: Accept both common styles of lowquote terminator |
|||
ast: bf0942a | TimToady++ | S02-literals/quoting-unicode.t: test both common styles of lowquote termination |
|||
03:40
laouji left
03:45
khw joined
03:46
lucs joined
|
|||
labster | m: 1.7e-1.base(40, 7) | 03:54 | |
camelia | rakudo-moar 62ff58: OUTPUT«Type check failed in assignment to '$r'; expected 'Str' but got 'Failure' in block <unit> at /tmp/auD_KdjVTg:1» | ||
03:58
raiph joined
|
|||
TimToady is home, apparently | 04:00 | ||
yoleaux | 8 Sep 2015 20:36Z <smash> TimToady: more interesting combinations tweag.github.io/HaskellR/ | ||
labster | Welcome home, TimToady/ | 04:06 | |
04:12
FROGGS left
04:30
ab5tract_ joined
04:33
rmgk joined
04:35
ab5tract_ left
04:40
laouji joined
04:45
laouji left
|
|||
dalek | kudo/allomorphs: a81b7ab | ShimmerFairy++ | src/Perl6/ (2 files): Switch to using the existing val() at compile-time As suggested by jnthn++, only required an additional change to the 'is' trait_mod to handle sometimes getting a WVal instead of a Want. This change offers a slight improvement in speed, but not much (only about .1s in my benchmark) |
04:49 | |
04:49
laouji joined
04:53
dayangkun left
|
|||
dalek | kudo/nom: 5746df2 | labster++ | src/core/ (3 files): fix Rat.base rounding, throw X::OutOfRange for negative base $digits "# never happens?" did the impossible and happened. Related ticket: RT #126022 |
04:59 | |
05:00
laouji left
|
|||
dalek | ast: 4adf0d8 | labster++ | S32-num/base.t: Rat.base tests, test all .base for $digits < 0 (RT #126022) |
05:02 | |
05:03
khw left
|
|||
dalek | ast/allomorphs: a2ea1b1 | ShimmerFairy++ | S (2 files): Fudged tests of numifying certain 'slash fractionals' These tests all make sure that you can't numify slash fractional strings with negative denominators and/or non-integral components. Since it's unclear what val()'s stance should be on these things. The S02 tests are fudged because val processing takes over on a failed Rat literal, and produces a RatStr as it stands. It's not specified if this is expected, or if Rat/Complex literals are meant to be all-or-nothing. |
05:05 | |
05:06
laouji joined
05:07
FROGGS joined
|
|||
FROGGS | .tell psch yeah, I also get a SOE :o( | 05:09 | |
yoleaux | 8 Sep 2015 21:20Z <psch> FROGGS: fwiw, the SOE golfs to 'unit class Foo; sub foo is export { }' | ||
FROGGS: I'll pass your message to psch. | |||
8 Sep 2015 21:21Z <psch> FROGGS: and the "unit" isn't even needed | |||
8 Sep 2015 22:13Z <psch> FROGGS: the mentioned golf calls sink from EXPORT_SYMBOL, goes through a bunch of pull-, push-, and reify- methods and then ends in a new, new, bless, BUILDALL loop... | |||
05:09
[Sno] left
|
|||
FROGGS | ohh... | 05:09 | |
05:15
grondilu left,
grondilu joined
05:23
n0tjack joined
05:26
dayangkun joined
05:28
n0tjack left
05:32
ingy left,
ingy joined
05:33
skids left
05:34
dayangkun left
05:37
dayangkun joined
05:38
xfix joined,
xfix left,
xfix joined
05:46
arunes007 joined
05:47
arunes007 left
05:51
rurban joined
05:59
Loren joined
06:01
nwc10 joined
|
|||
nwc10 | good UGT, * | 06:01 | |
oh, I'm a minute late: | 06:02 | ||
06:01 < nwc10> good UGT, * | |||
06:02
aborazmeh left
06:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
06:14
Loren left
06:15
Sqirrel left
|
|||
FROGGS | .tell psch seems to be about X::TypeCheck::Assignment | 06:16 | |
yoleaux | FROGGS: I'll pass your message to psch. | ||
FROGGS | morning nwc10 | 06:17 | |
06:17
FROGGS left
|
|||
labster | m: [1, 2, 3] = 5; | 06:33 | |
camelia | ( no output ) | ||
labster | m: say ([1, 2, 3] = 5) | ||
camelia | rakudo-moar 5746df: OUTPUT«[5]» | ||
06:33
Timbus_ left,
Loren joined
|
|||
Loren | afternoon, perl6 | 06:34 | |
06:34
Timbus joined
06:35
laouji left
|
|||
labster | good *, Loren | 06:35 | |
Loren | good afternoon, labster | ||
06:36
cognominal joined
06:37
laouji joined
06:39
[Sno] joined,
domidumont joined
06:40
domidumont left
06:43
FROGGS joined
|
|||
Loren | m: sub getarr() { my @a=(1, 3), @b = (2, 4); (@a, @b); }; dd getarr(); | 06:43 | |
camelia | rakudo-moar 5746df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Z4CVq75PnAVariable '@b' is not declaredat /tmp/Z4CVq75PnA:1------> 3sub getarr() { my @a=(1, 3), 7⏏5@b = (2, 4); (@a, @b); }; dd getarr();» | ||
06:44
Timbus left
|
|||
Loren | m: sub getarr() { my @a=(1, 3);my @b = (2, 4); (@a, @b); }; dd getarr(); | 06:44 | |
camelia | rakudo-moar 5746df: OUTPUT«([1, 3], [2, 4])» | ||
06:45
Timbus joined
|
|||
psch | hi #perl6 o/ | 06:49 | |
yoleaux | 05:09Z <FROGGS> psch: yeah, I also get a SOE :o( | ||
06:16Z <FROGGS> psch: seems to be about X::TypeCheck::Assignment | |||
psch | FROGGS: right, i think i saw that pop up in the NQP_VERBOSE_EXCEPTIONS output... | ||
m: my (@a, @b) = ((1, 2), (3, 4)); say @a.perl, @b.perl # probably not DWIMmy..? | 06:50 | ||
camelia | rakudo-moar 5746df: OUTPUT«[(1, 2), (3, 4)][]» | ||
psch | m: my (@a, @b) = (1, 2), (3, 4); say @a.perl, @b.perl # probably *still* not DWIMmy..? | ||
camelia | rakudo-moar 5746df: OUTPUT«[(1, 2), (3, 4)][]» | ||
psch | mind, i'm not saying what i mean is sensible :) | 06:51 | |
FROGGS | yes, you cannot assign to more than one array atm | 06:52 | |
dunno if this will ever change though | |||
Loren | ([1, 3, 2, 4]<>, [2, 4]<>) <== sub getarr() { my @a=(1, 3), @b = (2, 4); (@a, @b); }; dd getarr(); # in my perl6 | 06:53 | |
06:53
domidumont joined
|
|||
psch | m: say $*PERL.compiler.version | 06:55 | |
camelia | rakudo-moar 5746df: OUTPUT«v2015.7.1.776.g.5746.df.2» | ||
FROGGS | m: say $*PERL.compiler.build-date | 06:56 | |
camelia | rakudo-moar 5746df: OUTPUT«2015-09-09T05:39:27Z» | ||
psch | Loren: might be worth comparing that ^^^ to your local output | ||
06:57
mr-foobar left
|
|||
Loren | wait a moment.. | 06:57 | |
06:58
mr-foobar joined
|
|||
Loren | builddate 2015-09-04T17:54:49Z | 07:00 | |
version v2015.7.2 | |||
it's newer than mine | |||
psch | Loren: the output (specifically, the "<>" at the end of .perl'd or dd'd Arrays) strongly suggests that you're before the glr merge, and the date/version confirms thats | 07:02 | |
Loren: i'd update | |||
Loren | Should I see date or version? | ||
psch | ...oh, but i'm mostly hacking on CORE | 07:03 | |
maybe updating isn't that great an idea yet, i haven't look at the ecosystem | |||
FROGGS | Loren: if you use a bunch of modules or have some kind of codebase, then keep in mind that upgrading might very well break things | 07:04 | |
Loren | psch, oh i see | ||
psch | FROGGS: breakage seems to be the first for in EXPORT_SYMBOLS, probably &flat again :/ | ||
FROGGS | Loren: it might not be much to change, but knowing what to change takes some time | 07:05 | |
psch: :/ | |||
psch | FROGGS: ...or some kind of hllize loop i guess | ||
FROGGS | psch: but your patch cannot be wrong... something else is to blame I'd say | ||
psch | i mean, the line in question (thanks << say "still working" if %ENV<DEBUG> >>) is << for flat nqp::hllize(@*PACKAGES) { >> | 07:06 | |
so it's probably either &flat or hllize :P | |||
Loren | hope a stable version .. | 07:07 | |
07:07
brrt joined
07:08
ab5tract_ joined
07:13
thou left
|
|||
psch | Loren: it's not quite yet, as mentioned | 07:13 | |
07:14
darutoko joined
|
|||
Loren | psch, I saw a news said that perl6 will release first version in Christmas day. haha.. | 07:15 | |
psch | Loren: we went through a pretty big refactor recently, which is *why* we're currently playing a bit of catch-up | 07:16 | |
Loren: you're free to help, of course :) | |||
07:19
Ven joined
|
|||
Loren | psch, a, I wish | 07:19 | |
FROGGS | m: say $*DISTRO.cur-sep | 07:24 | |
camelia | rakudo-moar 5746df: OUTPUT«,» | ||
07:25
espadrine joined
|
|||
FROGGS | psch: that works around it: | 07:28 | |
- for flat nqp::hllize(@*PACKAGES) { | |||
+ for |nqp::hllize(@*PACKAGES) { | |||
07:31
espadrine left
|
|||
psch | FROGGS: that just means we still have something wonky in &flat, doesn't it? | 07:31 | |
FROGGS: i mean "use the not-really-prefix C<|> instead of &flat on jvm" isn't really a solution... | |||
FROGGS | aye | 07:32 | |
psch | actually, i don't think it's &flat itself... | 07:34 | |
as in, << say @*PACKAGES[0] >> *also* gives me the SOE in that spot | |||
FROGGS | psch: not for me... | 07:36 | |
[Tux] | take (($from .. $r.value).Slip); | 07:46 | |
is not lazy. neither is (|($from .. $r.value)) | |||
how do I get that to be lazy? | |||
and take $from .. $r.value returns a Range instead of a lazy list | 07:47 | ||
07:48
CIAvash joined
07:50
n0tjack joined
07:53
Sgeo joined
07:55
n0tjack left
|
|||
psch | FROGGS: i don't get that. anything i can think of to try with @*PACKAGES gives me the SOE... | 07:58 | |
nine | |Tux|: ($from .. $r.value).List | 07:59 | |
or ($from .. $r.value).list | |||
[Tux] | .list caused a hang when $r.value is Inf | ||
nine | m: say (1 .. *).list | 08:00 | |
camelia | rakudo-moar 5746df: OUTPUT«(...)» | ||
nine | m: say (1 .. Inf).list | ||
camelia | rakudo-moar 5746df: OUTPUT«(...)» | ||
[Tux] | Type check failed in assignment to '@!crange'; expected 'Int' but got 'List' | ||
when replacing .Slip with .List | |||
nine | I guess it's not the .list that makes it hang but what you do afterwards | ||
What does the rest of the code look like? | |||
[Tux] | nasty :) | 08:01 | |
return @foo[@range.to_list]; where to_list is a method that does the gather/take | |||
up to now, the only (slow) workaround I found was | 08:02 | ||
my $to = $r.value == Inf ?? 65535 !! $r.value; | |||
take (($from .. $to).Slip); | |||
and of course I do not want that arbitrary limit | |||
FROGGS | psch: you are on the UnbreakJVMBuildFactory branch? these are my local changes btw: gist.github.com/FROGGS/7506e36cb30daed487f5 | ||
nine | So you want to slice using the result of the to_list call? | 08:03 | |
08:03
ab5tract_ left
|
|||
FROGGS | wouldn't .map be better? | 08:03 | |
[Tux] | nine, yes | 08:04 | |
nine | slices are eager | ||
[Tux] | they were not in pre-glr | ||
psch | FROGGS: yes, i'm on that branch, and i don't see anything that looks relevant in the diff... | ||
FROGGS: i'll just keep poking at it, see what happens :) | 08:05 | ||
FROGGS | psch++ # :o) | ||
08:05
nwc10 left
08:06
thou joined
|
|||
nine | I think they were: github.com/rakudo/rakudo/blob/059d...ce.pm#L140 | 08:06 | |
|Tux|: but .map like FROGGS++ suggested sounds like a good solution there | 08:07 | ||
FROGGS | star-m: my @a := 0..Inf; say @a[0..Inf][42] | 08:08 | |
camelia | star-m 2015.03: OUTPUT«(timeout)» | 08:09 | |
nine | star-m: my @a = 0 .. 10; say @a[0..Inf]; | ||
camelia | star-m 2015.03: OUTPUT«0 1 2 3 4 5 6 7 8 9 10» | ||
nine | Yep, it's eager and it truncates to the length of the Array for infinite slices. | ||
m: my @a = 0 .. 10; say @a[0..Inf]; | |||
camelia | rakudo-moar 5746df: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10)» | ||
nine | Same now for lazy slices | ||
So actually that's still nothing that would cause a hang? | 08:10 | ||
08:10
thou left
|
|||
[Tux] | \☺/ with the 65535 workaround: | 08:12 | |
All tests successful. | |||
Files=25, Tests=19732, 79 wallclock secs ( 3.19 usr 0.16 sys + 242.26 cusr 2.28 csys = 247.89 CPU) | |||
Result: PASS | |||
nine | Wow, so you're almost there :) | ||
[Tux] | pushed | 08:13 | |
I didn't find a way to make Inf work with .map | 08:17 | ||
might try tomorrow | 08:18 | ||
if you are going to play with it, perl6 t/78* | |||
just 34 tests, so fast if it would work | 08:19 | ||
08:20
dakkar joined,
espadrine joined
|
|||
moritz | .oO( it's easy to give the wrong answer in O(1) ) |
08:24 | |
08:26
Ven left
|
|||
nine | I slowly start to understand what you're trying to do there. | 08:27 | |
timotimo | i remember discussions about expecting the user to have only monotonous lists in slices or something | 08:28 | |
so that the truncation can work sanely | 08:29 | ||
(and when the monotonous value hits the end-of-array, it'd stop) | |||
psch | hmm, 49 calls to foreign_transform_array seems a bit much for a &flat call to an NQPArray with one element... but that doesn't really get me anything :/ | ||
s/call to an/call on an/ | |||
nine | timotimo: that's pretty much how it works now | 08:30 | |
timotimo | ah, so that's implemented | ||
but at least lists aren't mutable, so you can't go around pushing values at the end of lists while bit-by-bit grabbing values from the slice :P | 08:31 | ||
08:36
aborazmeh left
|
|||
ShimmerFairy | m: say (1, 2).WHAT; say (1, 2).WHICH | 08:38 | |
camelia | rakudo-moar 5746df: OUTPUT«(List)List|56787824» | ||
ShimmerFairy | I recall List having a different WHICH; is that the "can't be Tuple" change from a little while back? | 08:39 | |
moritz | ShimmerFairy: yes | ||
ShimmerFairy | Aw :( | ||
I earlier on specifically counted on .List to make a ===-compatible thing | |||
08:41
brrt left
08:43
Ven joined
08:44
ab5tract_ joined
08:48
mprelude joined
|
|||
ShimmerFairy | Hm. I haven't had a chance to use GLR much until now, is it just me or does it take slightly longer for stage parse now? (Somewhere in the 110s area now, before it was around 100s most times) | 08:51 | |
nine | |Tux|: I have a fix :) | ||
jnthn | ShimmerFairy: It's a couple of seconds longer for me; I think simply because we've got a bit more code now :) | ||
dalek | kudo/nom: c40a1ef | jnthn++ | src/core/A (2 files): Add multi-dim BIND-POS fallback to Any. |
08:52 | |
kudo/nom: 824436e | jnthn++ | src/Perl6/Optimizer.nqp: Fix dispatch analysis explosion in optimizer. We can only safely consider known nominal types. |
|||
ShimmerFairy | jnthn: that's what I figured, since there are those new *Iterator files, for one :) | ||
dalek | ast: 60515ca | jnthn++ | S02-types/subset.t: Test for RT #126018. |
08:53 | |
jnthn | ShimmerFairy: Aye, including the fledgling impl of .race, which we never had before | ||
ShimmerFairy | just wanted to make sure it was because of new code, and not anything I might've been doing :) | 08:54 | |
08:54
zakharyas joined,
rarara left
|
|||
jnthn | Well, there's us back under 1040 tickets again... | 08:55 | |
FROGGS | \o/ | ||
jnthn++ | 08:56 | ||
08:57
e000 joined
08:59
e000 left
|
|||
nine | jnthn: should gather blocks always be marked lazy? Just because we might have a gather { take $_ for 1 .. Inf; }; Or do we leave it up to the user to mark it as lazy? | 08:59 | |
jnthn | nine: Interesting question. Not easy to call what the best default is. If we make it lazy by default we force people to mark "eager". | 09:04 | |
nine: If we make it eager by default then we can get hangs. | |||
nine | Like the one in Text::CSV | 09:05 | |
dalek | kudo/UnbreakJVMBuildFactory: aac4216 | FROGGS++ | src/core/Variable.pm: flatten export trait list, like we do for Routines |
||
kudo/UnbreakJVMBuildFactory: eeadbc6 | FROGGS++ | src/core/Inc.pm: box -I string, we'll .split it later |
|||
kudo/UnbreakJVMBuildFactory: 527bd9f | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: psch++, align JVM's slurp/slurp-flat code to moar's |
|||
FROGGS | (rebase) | ||
09:05
lizmat joined
|
|||
FROGGS | jnthn: you might be happy to know that your changes did not cause additional trouble on jvm :o) | 09:05 | |
nine | Well isn't gather by definition lazy? It will only produce values by you pulling them out. | ||
09:06
e000 joined
|
|||
ab5tract_ | psch++ FROGGS++ -- thank you for all the JVM fixing! | 09:06 | |
FROGGS | ab5tract: we're not there yet sadly :o( | ||
e000 | I'm sorry if it's an awful question, but -- does perl6releasetalk.ticketleap.com/per...lk/details mean Perl6 will be officially released on October 5th? | 09:07 | |
ab5tract_ | we would be a lot further back without your efforts | ||
jnthn | FROGGS: Which ones? ;) | ||
ab5tract_ | e000: That will mark the beta release | ||
e000 | ab5tract_: beta is still awesome! thank you! | 09:08 | |
ab5tract_ | e000: Perl 6 is *by definition* released on Christmas ;) | ||
nine | jnthn: I think, I'll experiment with lazy default on gather this evening and see what the spec test fallout would be. | ||
jnthn | I'm rather sure it will be a few days before Christmas because I want to spend Christmas with my family :P | ||
timotimo | ugh, family ... ;) | ||
ab5tract_ | jnthn: true, I guess it was "by Christmas", anyway :) | ||
nine | jnthn: well we can relase before Christmas and just not tell anyone ;) | ||
FROGGS | jnthn: I just rebased the UnbreakJVMBuildFactory branch on nom... so all commits since yesterday evening are okay it seems | 09:09 | |
jnthn | ;) | ||
FROGGS: Did you updated the binder in JVM to do the Seq -> List thing? | |||
('cus I didn't do that bit) | |||
FROGGS | jnthn: no... didn't spot there is something todo | ||
jnthn: is there a todo marker? | |||
jdv79 | lizmat: nevermind. that is the cpan dist format. i misread S22. | ||
jnthn | FROGGS: Uh...no :) | 09:10 | |
09:10
e000 left
|
|||
psch | there's "NYI" | 09:10 | |
FROGGS | there is: | ||
Binder.java:489: throw ExceptionHandling.dieInternal(tc, "is copy on lists NYI after GLR"); | |||
Binder.java:683: throw ExceptionHandling.dieInternal(tc, "optional array param NYI after GLR"); | |||
jnthn | FROGGS: 211740be84f0 is the binder patch for Moar though | 09:11 | |
FROGGS | jnthn: thanks :o) | ||
lizmat is just browsing just before some more commuting | |||
yoleaux | 8 Sep 2015 12:52Z <jdv79> lizmat: why doesn't S22 root a dist archive with the dist+ver like a p5 one? | ||
8 Sep 2015 14:59Z <|Tux|> lizmat: will you look at Text::CSV/t/15_flags regarding the disappearing method? | |||
8 Sep 2015 15:29Z <|Tux|> lizmat: ignore: I found it «ok (@x[$_], "text") for 1 .. 5, 7, 19;» → «ok (@x[$_], "text") for flat 1 .. 5, 7, 19;» | |||
jnthn | (Ignore the actions.nqp part of the batch) | ||
*patch | |||
o/ lizmat | |||
lizmat | jnthn jdv79 FROGGS ab5tract_ nine o/ | 09:12 | |
timotimo | oh hey lizmat | ||
how are you today? | |||
ab5tract_ | o/ lizmat ! | ||
lizmat | enjoying some peace and quiet in Basque country | ||
timotimo o/ | |||
timotimo | sounds nice :) | ||
lizmat | timotimo: well rested and ready to go north a bit more | ||
will be in Lyon on Saturday for the patch -p3 | 09:13 | ||
jnthn | lizmat: Hm, is Andora on the way north? :) | ||
lizmat | patch.pm/p3/ | ||
FROGGS | hi lizmat | ||
lizmat | jnthn: Andorra is actually 5 hour drive east from here | ||
jnthn | Ah, OK | ||
nine | lizmat: hi :) | 09:14 | |
lizmat | would be a lovely drive indeed... :-) but not planned this time :-( | ||
jnthn | It's one of the European countries I have yet to visit :) | ||
lizmat | as do we... on the way to Granada we could have, but we considered it too much out of the way... | ||
jnthn | Wonder if there's a .pm group there :D | ||
lizmat | so we would have time to drive there, but not see anything there ;-( | ||
jnthn | *nod* | 09:15 | |
dakkar | uh… github.com/Leont/path-iterator/blo.../META.info why does it say it's called YAMLish? | ||
timotimo | hah | 09:16 | |
likely an oversight from copy-pasting the meta.info from somewhere else? | |||
jnthn | suspect so :) | ||
dakkar | TAP::Harness doesn't install because of that | ||
timotimo | probably doesn't happy the ecosystem very much | ||
psch | humm, i maybe should read the glr gist... | 09:18 | |
timotimo | it's a good gist | ||
psch | does it make sense for \consider to contain 1..36 when i'm calling .flat on (1, (2, 3))? | ||
in from-slurpy-flat, that is | 09:19 | ||
jnthn | psch: Uh, not...very much... o.O | ||
psch | jnthn: good, because it seems kind of weird :) | 09:21 | |
back in about 2 hours & | 09:22 | ||
dalek | ast: f4e5bab | jnthn++ | S17-lowlevel/thread-start-join-stress.t: Add test for RT #125977. |
09:39 | |
timotimo | now start the threads in threads themselves! | ||
09:40
Ven left
|
|||
dalek | p: 18f7ec6 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION (various fixes). |
09:40 | |
ab5tract_ | \o/ | 09:41 | |
09:41
cognominal left
|
|||
dalek | kudo/nom: 5abac3c | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION for various Moar/JVM fixes. |
09:42 | |
kudo/nom: 149b5fb | jnthn++ | t/spectest.data: Run S17-lowlevel/thread-start-join-stress.t. As a stresstest only since it is quite long-running. |
|||
09:45
Ven joined
|
|||
jnthn | break & | 09:47 | |
lizmat | commute & | ||
09:48
Ven left,
lizmat left
|
|||
dalek | Heuristic branch merge: pushed 48 commits to rakudo/cu_load by lizmat | 09:49 | |
09:54
thou joined
09:59
stanrifkin_ joined,
thou left
|
|||
stanrifkin_ | how can i update my perl6 with rakudo? do i have to build it again? | 10:00 | |
timotimo | yeah; how did you install it before? | 10:01 | |
stanrifkin_ | with rakudobrew | 10:02 | |
i did now -> rakudobrew self-upgrade | 10:03 | ||
timotimo | ah, that'll pull the newest changes to rakudebrow | ||
rakudobrew* | |||
stanrifkin_ | so it seems i have to -> rakudobrew build moar too | ||
timotimo | that's also important | ||
yes, that's right | 10:04 | ||
and probably also rakudobrew build-panda afterwards | |||
stanrifkin_ | what is panda? | ||
moritz | the module installer | ||
stanrifkin_ | ok, thank you | 10:05 | |
10:06
dayangkun left
10:18
stanrifkin_ left
10:28
Ven joined
10:33
pmurias joined
10:43
rindolf joined
10:44
domidumont left
|
|||
skaji | Is there any way to know loaded pm files? When perl5, I can know it from %INC. | 10:44 | |
10:44
domidumont joined
|
|||
moritz | m: use Test; say %*INC.perl | 10:45 | |
camelia | rakudo-moar 149b5f: OUTPUT«Failure.new(exception => X::Dynamic::NotFound.new(name => "\%*INC"), backtrace => Backtrace.new)» | ||
moritz | hm, nope :( | ||
skaji | not implemented yet? | 10:47 | |
moritz | I have no idea if it's supposed to work, and if not, what replaces it | ||
10:47
domidumont left
|
|||
dalek | kudo/UnbreakJVMBuildFactory: 54b8fa7 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java: port Seq->List conversion in binder to JVM This ports the missing bit from 211740be84f0. |
10:48 | |
10:48
domidumont joined
|
|||
FROGGS | jnthn: do you know about other holes? | 10:49 | |
10:49
domidumont left
10:50
domidumont joined
|
|||
FROGGS | skaji: CompUnit knows about what got loaded, though it is not exposed (yet) | 10:51 | |
skaji | is it intended to be exposed? | 10:53 | |
timotimo | it surely would be useful in some situations | ||
skaji | i need %INC or similar, because i often have the same module in several libs. | ||
FROGGS | skaji: I don't know... I think we can expose it, CompUnit itself is meant to be not just something internally | 10:54 | |
timotimo | you can introspect GLOBAL:: to see what modules have been imported to the global namespace | 10:55 | |
m: { use Test }; say GLOBAL::.keys | |||
camelia | rakudo-moar 149b5f: OUTPUT«(Test)» | ||
timotimo | ^- here you can see, that Test is still available through GLOBAL | 10:56 | |
FROGGS | you see symbols, not modules though | ||
if you load a .pm that does not export a symbol, you won't see it in GLOBAL | |||
timotimo | oh | 10:57 | |
that's right | |||
10:57
pmurias left
|
|||
FROGGS | and CompUnit is about a .pm file, which can export several symbols, or none | 10:57 | |
skaji | i hope CompUnit is exposed! | ||
moritz | and for debugging, there's also the RAKUDO_MODULE_DEBUG environment variable | ||
FROGGS | skaji: CompUnit itself yes | ||
psch | m: say CompUnit | ||
camelia | rakudo-moar 149b5f: OUTPUT«(CompUnit)» | ||
psch | but yeah, that doesn't help | ||
skaji | ah, ok | 10:58 | |
timotimo | yeah, the compunit class is exposed, not necessarily the instances that rakudo uses for your program | ||
FROGGS | skaji: that's what you are interested in: github.com/rakudo/rakudo/blob/nom/...nit.pm#L15 | ||
psch | skaji: i imagine your use-case is something like "i need .pm files in different directories for different projects that have to package them but don't want to change my @*INC for every project"? | ||
s/\.pm files/the same .pm files/ | 10:59 | ||
11:00
espadrine_ joined,
rurban left
|
|||
skaji | FROGGS: thanks, i'll look into it. | 11:01 | |
11:03
espadrine left
|
|||
psch | well, whatever the use-case actually is, we don't have anything exposed currently that gets the loaded files | 11:03 | |
although i do want that too, for the standalone-jar stuff... | |||
skaji | psch: while developing or debugging, i have the same pm files in normal libs and current dir. So i want to make sure what file is loaded from my script. | 11:04 | |
psch | 'cause the proof-of-concept in the branch currently grabs literally every .jar in share/ and lib/ :/ | ||
11:04
Ven left
|
|||
psch | skaji: ah, i see | 11:04 | |
dalek | kudo-star-daily: 6c94694 | coke++ | log/ (7 files): today (automated commit) |
11:05 | |
rl6-roast-data: a2632ac | coke++ | / (9 files): today (automated commit) |
|||
11:05
domidumont left
|
|||
jnthn | FROGGS: The only other ones I'm aware of are those I patched to throw exceptions | 11:05 | |
11:06
cognominal joined
|
|||
skaji | moritz: i'll try RAKUDO_MODULE_DEBUG | 11:06 | |
psch | hm, that still makes me wonder whether things like 'perl6.jar' would end up in something like %*CUIS (or whatever that should be called...) | ||
FROGGS | jnthn: k | 11:07 | |
psch | not that hard-coding the neccessary core files for a packaged r-j compiler would be terrible, but... | ||
11:09
skids joined
11:10
rindolf left
|
|||
psch | on the up, the from-slurpy-flat introspection/debugging stuff from above was probably just bogus, and not actually that weird | 11:12 | |
as in, i think i didn't even see the call that i wanted to look at | |||
11:12
espadrine joined
|
|||
jnthn | ah | 11:15 | |
timotimo | mhm | ||
11:15
espadrine_ left
11:17
pmurias joined
|
|||
dalek | kudo/nom: e9a9b6e | jnthn++ | src/core/Array.pm: By contract, *-POS should only get Int indices. |
11:18 | |
kudo/nom: 62cbcec | jnthn++ | src/core/Array.pm: Implement multi-dim BIND-POS support in Array. |
|||
11:20
dakkar left,
dakkar joined
11:23
virtualsue joined
|
|||
dalek | kudo/nom: fe5ef83 | jnthn++ | src/ (2 files): Implement @a[1;1] := .... |
11:33 | |
11:40
flw joined
11:42
virtualsue left
11:43
thou joined,
itz joined
|
|||
flw | p6: say3; | 11:44 | |
camelia | rakudo-moar fe5ef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routine: say3 used at line 1. Did you mean 'say'?» | ||
flw | p6: say 3; | ||
camelia | rakudo-moar fe5ef8: OUTPUT«3» | ||
11:44
xinming joined
11:47
thou left
11:48
xinming_ left
|
|||
raiph | m: sub ven () of Nine { ... } # from 13 years ago (codeverge.com/perl.perl6.language/p...es/163876) | 11:48 | |
camelia | rakudo-moar fe5ef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/x1O4ecQECuInvalid typename 'Nine'at /tmp/x1O4ecQECu:1------> 3sub ven () of Nine7⏏5 { ... } # from 13 years ago (cod» | ||
11:49
flw left,
aindilis left
|
|||
jnthn | raiph: Heh :) | 11:51 | |
raiph | :) | 11:52 | |
dalek | kudo/nom: ae65104 | jnthn++ | src/Perl6/Grammar.nqp: Start parsing @a[3;3] syntax. Also tighten things up a bit with regard to shapes; we now only permit {...} shapes on a % sigil'd thing and [...] shapes and an @ sigil'd thing. Anything else is considered reserved for the future. |
11:53 | |
|Tux| | test 50000 51.773 51.693 | 11:57 | |
test-t 50000 52.066 51.986 | |||
timotimo | jnthn: i wonder how hard it'd be to make CArray multi-dim compatible, too ... and if we should keep CArray for int/num around at all, now that Buf and Blob should be able to handle those cases just fine? | 11:58 | |
FROGGS | timotimo: CArray needs to stay because if a C-functions returns something array-ish, you can only return a CArray | 11:59 | |
to return a Buf you'd need to know the size | 12:00 | ||
timotimo | oh? | 12:02 | |
huh, so if something returns a CArray and you know the size, you can just safely access all elements up to that size? | 12:03 | ||
FROGGS | timotimo: well, in case the C-function does not lie, yes | 12:04 | |
timotimo | cool, abraxa may be happy to hear about this | 12:05 | |
FROGGS | hmmm? | ||
he knows | |||
timotimo | oh | ||
why didn't i know, then? :P | |||
12:05
yqt joined
|
|||
FROGGS | he calls the oci function and gets a bufferish thing and the 'length' back, then he slices length-1 elems out of that buffer | 12:06 | |
so he already trusts that length | |||
12:06
CIAvash left
|
|||
timotimo | OK | 12:07 | |
12:09
aindilis joined
|
|||
FROGGS | though is would be nice to have: my $buf8 = nativecast(buf8, $buffer, :$elems) as a cheap shortcut to the loops | 12:15 | |
or slices | |||
12:15
ambs joined
|
|||
timotimo | yeah | 12:16 | |
with a memcpy in the back-end | |||
12:16
rurban joined
|
|||
jnthn | FROGGS: I've been thinking about a memcpy style op in Moar, but didn't have the brane to work out exactly how I want it to function yet :) | 12:16 | |
timotimo | hm, say | 12:17 | |
can't we actually just pass a Buf to a native sub? | 12:18 | ||
in that case we could actually just use regular memcpy | |||
TimToady awake at 5am, not surprisingly... | |||
timotimo | mhm, all the travels | 12:19 | |
skaji | moritz: RAKUDO_MODULE_DEBUG prints what pm file is loaded! Thanks! | 12:20 | |
$ RAKUDO_MODULE_DEBUG=1 perl6 -e 'use Test;' | |||
... | |||
MODULE_DEBUG: loading /Users/skaji/env/rakudobrew/moar-nom/install/share/perl6/lib/Test.pm.moarvm | |||
FROGGS | skaji: that path is the key in %instances btw | 12:21 | |
jnthn: yeah, though however it is implemented I think the code I posted could very well be the way we expose it | 12:22 | ||
though we should rename this bloody sub | |||
12:30
xinming_ joined
|
|||
jnthn | cast is misleading as it tends to just mean a change of interpretation rather than a copy | 12:30 | |
timotimo | right | 12:31 | |
FROGGS | hmmm | 12:32 | |
skaji | FROGGS: I see | ||
FROGGS | do we have to copy at all? | ||
timotimo | depends on what the C side of things thinks about ownership of the block of data | 12:33 | |
if we just blindly cast to a Buf, moar will end up calling free() on it | |||
when the Buf gets collected | |||
arnsholt | If it's going to be put into a properly Perl 6 thing like a Buf, it should definitely be copied | ||
12:33
xinming left
|
|||
FROGGS | what if you want to modify the foreign memory? | 12:34 | |
12:36
brrt joined
12:39
virtualsue joined
12:40
domidumont joined
12:41
ambs left
|
|||
timotimo | hm, you may be interested in ops that work on bufs, that's right | 12:42 | |
i gave CArray an elems method | |||
perhaps it'd be enough to mix in a role that gives a "fake" length for that | |||
and then you can use any subs that require a Positional? | 12:43 | ||
FROGGS | how does that elems method work? | ||
timotimo | it uses nqp::elems | ||
FROGGS | but how does it know the elems? | ||
timotimo | now that i've learned how CArray is supposed to work with "foreign" data blobs, it doesn't make quite as much sense | ||
it's for cases where perl6 manages the memory | |||
m: use NativeCall; my $buf = CArray[int8].new(1, 2, 3, 4, 5); say $buf.elems; $buf[20] = 1; say $buf.elems; | 12:44 | ||
camelia | rakudo-moar ae6510: OUTPUT«521» | ||
12:44
ambs joined
|
|||
timotimo | how do we differentiate between "when we assign to a high index we should realloc" and "when we assign to a high index we should directly access memory there"? | 12:44 | |
FROGGS | so it would most like return 0 if it is the return value of a C function | ||
timotimo | most likely, yes | 12:45 | |
in that case .gist and .perl won't work "properly", either | |||
FROGGS | I guess that depends on who created it | ||
timotimo | well, you can't set the elems of a CArray with the regular setposelems operation | ||
because CArray doesn't implement that | |||
FROGGS | MVMCArrayBody has a "managed" attribute | 12:46 | |
a bool | 12:47 | ||
timotimo | ah, it's that easy! | ||
neat. | |||
maybe i should implement setelemspos (or however that's called) on its REPR and if it's managed, it'll be reallocd and if not, it'll just set the internal counter for the number of elems | |||
FROGGS | and it allocates 4 slots by default, but counts the "used" slots | 12:48 | |
sounds good to me | |||
timotimo | then you can grab a CArray, set its size (because you know it) and use its .list and .gist and such | ||
FROGGS | hmmm | ||
that sounds awesoem | |||
arnsholt | Speaking of CArray reallocing when it's allocated from Perl 6, that functionality should probably be removed | ||
FROGGS | awesome* | ||
timotimo | are you sure? | 12:49 | |
i can see how accidentally reallocing after passing to c functions could be dangerous | |||
arnsholt | Because if C code stores the pointer to a Perl 6 allocated CArray somewhere, and it's then realloced, things are gonna break horribly | ||
timotimo | but we expect the user to know a bit about how memory management works | ||
arnsholt | And it'll probably be weird non-deterministic breakage, because sometimes realloc can return the same pointer, and sometimes not | 12:50 | |
Depending on what's free | |||
It's a nice feature, but ultimately I think it'll end up causing unnecessary grief | |||
12:50
pecastro joined
|
|||
timotimo | if CArray doesn't realloc on access, we need a way to create it with a fixed size | 12:54 | |
otherwise we can't use CArray from perl6 at all | |||
arnsholt | Yeah, definitely | ||
timotimo | then people will have to create their data in arrays and turn them into CArray at the latest possible moment | 12:55 | |
12:55
telex left
|
|||
arnsholt | Yeah, if you can't precompute the size, then you'll have to do something like that | 12:56 | |
12:56
Possum joined,
telex joined
12:57
sufrostico joined
|
|||
arnsholt | Which sucks, but I'm not sure it can be avoided | 12:58 | |
dalek | pan style="color: #395be5">perl6-examples: 71195f3 | (Steve Mynott)++ | / (7 files): correct directory name and add to be displayed |
12:59 | |
12:59
abraxxa joined
|
|||
nine | arnsholt: do we actually know that realloc causes problems in real world code? | 13:00 | |
13:01
brrt left
|
|||
arnsholt | It's probably going to work fine in 99% of cases | 13:02 | |
But the semantics of C allow for cases where it'll fail spectacularly | |||
jnthn | Yowser, .map seems to hit the slow-path multi-dispatcher | 13:04 | |
13:04
virtualsue left
|
|||
itz | hmmm I'm getting a GLRish looking panda error (when it reinstalls deps at the end) which I'm sure I didn't see yesterday | 13:04 | |
13:04
hernanGOA joined
|
|||
itz | hmm ignore me I think it's my env | 13:05 | |
abraxxa | Hi! | 13:07 | |
timotimo: any luck finding the cause of the Unhandled exception: Cannot unbox a type object on syntax errors? | |||
timotimo | no, sorry | ||
abraxxa | ok | ||
i'm continuing now, I guess I have to find the output column vars before execute but after prepare | 13:08 | ||
timotimo | can you give me a direct link to the code where adding or removing the ; gives you that problem? | ||
13:08
rindolf joined
|
|||
abraxxa | timotimo: I said that yesterday: (00:00:55) abraxxa: timotimo: it happens for example if you remove the ; in line 688 in lib/DBDish/Oracle.pm6 | 13:09 | |
timotimo looks | |||
13:10
newbie1 joined
|
|||
timotimo | so if the line becomes essentially "my num64 $valuep @row.push($valuep);"? | 13:10 | |
13:10
yqt left
|
|||
abraxxa | yes | 13:11 | |
timotimo | m: my @row; my num64 $valuep @row.push($valuep);' | ||
camelia | rakudo-moar ae6510: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b_q978AItETwo terms in a rowat /tmp/b_q978AItE:1------> 3my @row; my num64 $valuep7⏏5 @row.push($valuep);' expecting any of: infix infix stopper statement end…» | ||
timotimo | m: my @row; my num64 $valuep@row.push($valuep);' | ||
camelia | rakudo-moar ae6510: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SVzif0Fs_ZBogus postfixat /tmp/SVzif0Fs_Z:2------> 3my @row; my num64 $valuep7⏏5<EOL> expecting any of: infix infix stopper statement end statement m…» | ||
abraxxa | i tried with only a part of the code but it didn't happen | ||
timotimo | that's certainly weird | 13:12 | |
resolve stage failed for DBIish: Dependency True is not present in the module ecosystem | |||
haha, that's weird | 13:13 | ||
13:13
skids left
|
|||
pmurias | arnsholt: if we allow reallocing an array we passed to C IMHO it's best it happens explicitly | 13:14 | |
yoleaux | 02:38Z <hoelzro> pmurias: I' | ||
02:38Z <hoelzro> pmurias: I've pushed my WIP branch for the JS merge here: github.com/perl6/nqp/tree/js-merge-wip | |||
abraxxa | timotimo: does the stacktrace help you? | ||
pmurias | hoelzro: great | ||
timotimo | where's the stacktrace? | ||
abraxxa | timotimo: paste.scsys.co.uk/498404 | 13:16 | |
timotimo | ===SORRY!=== Error while compiling lib/DBDish/Oracle.pm6 | ||
Bogus postfix | |||
at lib/DBDish/Oracle.pm6:689 | |||
------> my num64 $valuep⏏<EOL> | |||
that's what i get locally | |||
can you pass --ll-exception, too, please? | |||
ah, interesting, with --ll-exception i get Bogus Postfix, too | 13:17 | ||
jnthn | m: say 5455 / 5740 | ||
camelia | rakudo-moar ae6510: OUTPUT«0.950348» | ||
arnsholt | pmurias: Yeah, that's an alternative too, I guess; to let the programmer ask for a resize | 13:18 | |
abraxxa | timotimo: paste.scsys.co.uk/498405 | 13:19 | |
so the exception is there but can't be printed or serialized? | 13:20 | ||
timotimo | yeah, something goes wrong when trying to print it properly | ||
you can find sub print_exception (likely in src/core/Exception.pm) and put in print statements for each line and see when exactly it explodes | 13:21 | ||
FROGGS | timotimo: I also think that All Problems Are Solved™ when we can have fixed sized CArrays... | 13:22 | |
abraxxa | timotimo: do i have to compile/install perl6 after that change? | 13:24 | |
i've edited ~/.rakudobrew/moar-2015.07.2/src/core/Exception.pm | 13:25 | ||
FROGGS: a working Pointer[Pointer[foo]] implementation would make me get rid of all CArrays ;) | |||
timotimo | yes, you do have to recompile | 13:26 | |
abraxxa | timotimo: how? | ||
timotimo | "make install" in moar-2015-07.2/ | ||
TimToady | Bogus postfix can be caused by a runaway string | 13:27 | |
abraxxa | timotimo: error while compiling, type X::Syntax::Confused | ||
reason: Confused | |||
at line 15689, near "say 23;\n " | |||
TimToady | m: say 'some unterminated textmy $x = '☃found here'; | ||
camelia | rakudo-moar ae6510: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xSkUzmcGvbBogus postfix (runaway multi-line '' quote starting at line 1 maybe?)at /tmp/xSkUzmcGvb:5------> 3my $x = '7⏏5☃found here'; expecting any of: infix infix sto…» | ||
abraxxa | does it now support say at that level? | ||
timotimo | TimToady: we're not wondering why that error happens, we're wondering why the error reporting breaks sometimes | ||
TimToady | ah | 13:28 | |
timotimo | abraxxa: it should | ||
13:28
rurban left
|
|||
timotimo | if not, you can nqp::say(...) | 13:28 | |
abraxxa | i had one after the $ex line which it didn't like | ||
timotimo | oh | 13:29 | |
abraxxa | can it use more than one core to compile? | ||
timotimo | perhaps Expression.pm is actually that early inside the core setting | ||
sadly not | |||
abraxxa | this line causes it: nqp::rethrow(nqp::getattr(nqp::decont($!), Exception, '$!ex')); | ||
the second to last one | |||
timotimo | ok, so $! is probably not set properly? | 13:30 | |
as in, is not an instance of Exception | |||
i mean, it's not an instance at all | |||
can you say $!.defined? i expect it to be False | |||
actually, use .DEFINITE instead | |||
abraxxa | let me check first if it bails out earlier | ||
timotimo | m: X::AdHoc.new().defined.say | ||
camelia | rakudo-moar ae6510: OUTPUT«True» | ||
abraxxa | it went from 1 to 7 and then to 21 | 13:31 | |
timotimo | nah, defined would be fine | ||
13:31
tokuhir__ joined,
thou joined
|
|||
abraxxa | say 7; is before nqp::sayfh($err, $e.gist); | 13:31 | |
there it bails out of the try block | |||
13:31
Skarsnik joined
|
|||
abraxxa | so $e.gist is the thing that fails | 13:32 | |
timotimo | interesting | ||
13:34
ambs left
13:35
ambs joined,
thou left
13:37
muraiki joined
|
|||
abraxxa | say $e.WHAT; outputs (X::Undeclared) | 13:38 | |
13:39
FROGGS left
13:41
audy left,
ambs left,
ambs joined
|
|||
dalek | kudo/nom: fa40403 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Have multi-dispatch ignore nameds after ;;. Normally nameds require a bindability check be performed; sometimes we don't care for that. ;; is the natural "please ignore this" indicator to the multi-dispatcher. |
13:43 | |
kudo/nom: 821d4b7 | jnthn++ | src/core/Any-iterable-methods.pm: .map named args don't factor into multi-dispatch. The bindability check they caused in multi-dispatch could count for a lot of overhead if doing a map over a small number of items. This is a 5% saving in the Text::CSV benchmark, for example. |
|||
timotimo | huh! | 13:44 | |
jnthn | Profiling ftw :) | 13:45 | |
dalek | pan style="color: #395be5">perl6-examples: 50880b1 | (Steve Mynott)++ | categories/cookbook/01strings/01-07reversing-strings.pl: GLR fix 01-07reversing-strings.pl |
||
pan style="color: #395be5">perl6-examples: 302c432 | (Steve Mynott)++ | t/categories/cookbook/14database-access.t: GLR fix cookbook/14database-access.t |
|||
pan style="color: #395be5">perl6-examples: 4147056 | (Steve Mynott)++ | categories/cookbook/09directories/09-07-all-files-process.pl: GLR fix File::Find use |
|||
ShimmerFairy | Yeah, I've been finding that profiling is quite nice to do :) | ||
13:45
FROGGS[mobile] joined
|
|||
abraxxa | timotimo: a working exception outputs (X::AdHoc) | 13:47 | |
pmurias | profiling++ >>> guessing randomly ;) | 13:48 | |
|Tux| | ohhhhhhhh, /me start building … | 13:55 | |
13:58
laouji left
14:05
thou joined
14:07
brrt joined
14:10
tokuhiro_ left
14:11
tokuhiro_ joined
|
|||
dalek | Heuristic branch merge: pushed 16 commits to rakudo/nom by ShimmerFairy | 14:11 | |
ast: 656e66b | ShimmerFairy++ | / (4 files): Revert "Fix tests relying on ''.Numeric -> 0" This reverts commit 27a9bb64936e4eaeafaaf9e576e5d7397f00ea8e. |
|||
14:11
dalek left
14:12
dalek joined,
ChanServ sets mode: +v dalek
|
|||
[Coke] wonders why dalek says 16 commits, but git log says one. | 14:12 | ||
ShimmerFairy | [Coke]: there were a couple of merges involved, perhaps that's why? | 14:13 | |
jnthn | |Tux|: Working on another one, but I've Done It Wrong somehow and broken things :) | ||
14:13
mullagain joined
|
|||
jnthn | err& | 14:13 | |
[Coke] | ShimmerFairy: If I look at github.com/rakudo/rakudo/commit/f2...55ea3eecff - half of that is jnthn's commit. | 14:14 | |
trying to figure out what you changed so I can review it. | |||
did you do a pull instead of a pull -rebase, maybe, then push? | 14:15 | ||
ShimmerFairy | [Coke]: start at the Revert "Revert ... bit | ||
14:15
tokuhiro_ left
|
|||
ShimmerFairy | [Coke]: yes, I pulled and merged instead of rebased | 14:15 | |
[Coke] | ShimmerFairy: look at the URL I posted. that's not listed there at all. | ||
ShimmerFairy: please don't do that. | |||
14:16
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
ShimmerFairy | [Coke]: what's so wrong with that? I wasn't sure how rebasing would affect my merging work, since it moves history around, so I chose the safer route. | 14:17 | |
[Coke] | It makes it harder for me to review what was done, for one. | 14:18 | |
that's been the convention, also, so far as I know. happy for one of the long time contributers who is also a git person to chime in. | 14:19 | ||
ShimmerFairy | Like I said, I was unsure how much worse rebasing would screw with the history (I know it doesn't update timestamps in commits it moves, at least), and considering I had to start this merge with a revert of a revert of a merge, I wasn't inclined to risk more strife :) | 14:20 | |
14:20
aborazmeh left
|
|||
[Coke] | ok. I hope someone else is reviewing your commits here. | 14:21 | |
nine | Long term experience shows: please rebase instead of merge. No one is helped by commits appearing somewhere back in history (especially since it makes bisect more complicated). git-rerere is your friend: git-scm.com/docs/git-rerere | 14:22 | |
timotimo | i also tend to rebase my feature branches every now and again | 14:25 | |
14:25
FROGGS joined,
pecastro left
|
|||
ShimmerFairy | nine: AFAICT, rerere wouldn't've been useful for me in this case :) | 14:26 | |
FROGGS | jnthn: do I have to port fa40403 to jvm? | ||
itz | .tell [ptc] 99problems.t is more like 999glr-problems.t :) | 14:27 | |
yoleaux | itz: I'll pass your message to [ptc]. | ||
FROGGS | hmmm, potentially not... | ||
14:28
FROGGS[mobile] left
|
|||
|Tux| | jnthn++ | 14:31 | |
test 50000 48.140 48.059 | |||
test-t 50000 48.645 48.564 | |||
that is way more than 5% | |||
FROGGS | hmmm, interesting: | 14:32 | |
./perl6-j -e 'multi foo(Str) { say 1 }; multi foo(Int) { say 2 }; say foo' | |||
===SORRY!=== Method 'collisions' not found for invocant of class 'NQPClassHOW' | |||
timotimo | very nice | ||
[Coke] | |Tux|: how to read those numbers agian? | ||
|Tux| | 48.14 seconds to use Text::CSV to parse 10000 lines | 14:33 | |
timotimo | "-t" just means without startup time | ||
|Tux| | test is my old reference script | ||
test-t is the working edition | |||
timotimo | oh? | ||
|Tux| | test has NO features whatsoever. a basic start | ||
itz | hmmm is "perl6 -v" stuck on 2015-07? | ||
|Tux| | test-t has all the bells and whistles people use Text::CVSV_XS for | 14:34 | |
[Coke] | there was no 08 | ||
timotimo | itz: the -v gets set only when you Configure.pl | ||
itz | ah from release | ||
[Coke] | there was no 2015.08 tag. | ||
14:35
perl6_newbee joined
|
|||
ugexe | there are stil a few 2015.09 deprecations that got missed... MONKEY_TYPING and `unit <module-name>`-thing | 14:38 | |
dalek | p/js: b5d7db9 | (Pawel Murias)++ | tools/build/process-qregex-tests: Run passing rx_quantifiers test |
14:43 | |
p/js: f19a35e | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Add a hack so that ifnull returns true on undefined. Run passing rx_backtrack and rx_subrules tests |
|||
14:43
dalek left
|
|||
pmurias | shouldn't dalek throttle it's output? | 14:44 | |
14:44
dalek joined,
ChanServ sets mode: +v dalek
|
|||
moritz | pmurias: it should | 14:44 | |
14:45
pyrimidine joined
|
|||
PerlJam | ugexe: ack DEPRECATE src | wc -l # 122 | 14:45 | |
ugexe: quite a few :) | |||
ugexe | i just went with a basic github search and only got 4-5 :x | 14:46 | |
14:46
zakharyas left
|
|||
PerlJam | yeah, my ack has bunches of false positives. I defer to your wisdom :) | 14:47 | |
ugexe | oh, i searched for `2015.09` | 14:48 | |
abraxxa | |Tux|: how do those values compare to the Perl 5 version? | ||
|Tux| | which of the 6? | 14:49 | |
|Tux| concludes abraxxa has not seen my talk in Granada :P | |||
14:50
xinming joined
|
|||
|Tux| | have a minute. rerunning | 14:50 | |
abraxxa | |Tux|: I wasn't able to go to YAPC::EU this year ;( | ||
itz | I'm have rather have seen RAKUDO_DEPRECATIONS_FATAL be 1 so module authors can still see the replacement methods | 14:51 | |
14:51
xinming_ left
|
|||
itz | what with the GLR and removing deprecations there is likely to be a lot of fallout on modules | 14:51 | |
ugexe | thats the point of doing it now. the people that need to fix things already likely need to fix their stuff for glr | 14:52 | |
abraxxa | timotimo: if I change the signature from Pointer[ub2] $foo to ub2 $foo is rw, and pass a my ub2 $foo instead of my Pointer[ub2] $foo my code fails with an Oracle exception | ||
shouldn't those be the same? | |||
itz | ugexe: yes but people can't see how to fix it | ||
itz | we are removing the information about the deprecation replacement | ||
FROGGS | itz: the deprecation messages have been shown for many many months... if nobody cared until now, nobody will care | 14:54 | |
|Tux| | abraxxa, tux.nl/Talks/CSV6/speed3.html + tux.nl/Files/20150909165444.png | ||
dalek | p/js: 5dcd656 | (Pawel Murias)++ | tools/missing-js-tests: Update tools/missing-js-tests script |
14:55 | |
|Tux| | top 6 are perl5, csv is a perl6 state machine, ip5 is using Inline::Perl5 to use the perl5 modules | 14:56 | |
ugexe | the biggest deprecation effect would appear to be related to Test.pm, which will still tell you the new method | ||
FROGGS | (sorry) | 14:57 | |
abraxxa | |Tux|: so still a magnitude slower ;( | ||
|Tux| | I hope optimisations in GLR will get us to ± 25 | 14:58 | |
14:58
camelia joined
|
|||
FROGGS | |Tux|: 25s? | 14:58 | |
|Tux| | and maybe bright people (like lizmat) can now spot slow points in my approach | ||
do you see 25s as still too slow or unlikely an achievable goal? | 14:59 | ||
14:59
ChanServ sets mode: +v camelia
|
|||
abraxxa | FROGGS: can you comment on my NativeCall question? | 15:00 | |
|Tux| | the fastest I ever measured (since Oct 2014) was 36 seconds | ||
abraxxa | i'd prefer using is rw over Pointer[] | ||
15:00
xinming left
|
|||
jnthn | FROGGS: re fa40403, no need to port | 15:00 | |
FROGGS | jnthn: yeah, guessed so after looking more closely | 15:01 | |
abraxxa: in what way? | |||
15:01
dha joined
|
|||
FROGGS | abraxxa: like 'Str is rw' to say 'char**'? | 15:01 | |
abraxxa | when I change Pointer[ub2] $alenp, to ub2 $alenp is rw, in the signature and define it with my ub2 $alenp; instead of my Pointer[ub2] $alenp; it fails | 15:02 | |
with an Oracle exception | |||
FROGGS | jnthn: do you have any idea why I can get this? Method 'collisions' not found for invocant of class 'NQPClassHOW' | ||
NQPClassHOW basically does NQPConcreteRoleHOW, which has that method | |||
jnthn | FROGGS: There's some poor error reporting sometimes when things go wrong with roles | ||
hoelzro | pmurias: there are outstanding issues with that branch; the biggest one that comes to mind is that I had to revert an optimization that jnthn did to get the JS backend to work | 15:03 | |
o/ #perl6 | |||
FROGGS | jnthn: I dunno where to start looking :o( | ||
hoelzro | pmurias: only a handful of tests are passing (better than zero, though), and I believe that m-test has a segfault in it | ||
FROGGS | abraxxa: weird... we even test something like that in the nativecall test suite | 15:04 | |
abraxxa | FROGGS: i even tried initializing the var with my ub2 $alenp = 0; | ||
ub2 is a uint16, is 'is rw' not supported for it? | 15:05 | ||
FROGGS | that's supported | ||
15:05
xinming joined
15:09
khw joined
15:11
xinming left,
tokuhiro_ joined,
xinming joined
|
|||
abraxxa | any idea why it causes the error? | 15:12 | |
15:12
rurban joined
|
|||
FROGGS | no, as I mentioned, we even test for it and it works in the test | 15:13 | |
15:16
tokuhiro_ left,
dha left
15:17
dha joined
|
|||
FROGGS | if you could provide a test case, we could very likely provide a fix in exchange :o) | 15:17 | |
15:19
brrt left
|
|||
Loren | night, perl & everyone. | 15:20 | |
abraxxa | Loren: bye! | ||
Loren | abraxxa, bye. | ||
abraxxa | FROGGS: maybe my bind error comes from the fact that a pointer to a pointer isn't null | ||
15:20
Loren left
|
|||
abraxxa | A pointer to a pointer to a define handle. If this parameter is passed as NULL, this call implicitly allocates the define handle. For a redefine, a non-NULL handle can be passed in this parameter. This handle is used to store the define information for this column. | 15:20 | |
FROGGS | you don't pass NULL in either case | 15:23 | |
abraxxa | no, that's another function | ||
FROGGS | :S | ||
abraxxa | I use OCIBindByName for the input parameters, which works | ||
there I've used Pointer[] instead of is rw | 15:24 | ||
ARGHHHH | |||
OCIBindByPos vs OCIDefineByPos() | |||
jnthn | m: say 5219 / 5538 | 15:25 | |
camelia | rakudo-moar f2be6b: OUTPUT«0.942398» | ||
abraxxa | you bind input params but define output select list fields | 15:26 | |
YES, segfaul! | |||
dalek | kudo/nom: 3e416bc | jnthn++ | src/core/Any-iterable-methods.pm: Improve .map performance in sink context. Can run a tighter loop and avoid caring about Slips. |
||
15:27
raiph left
|
|||
abraxxa | how can i reserve memory for a var I pass to a NativeCall function using a Pointer with is rw? | 15:29 | |
15:31
pat_js joined
|
|||
jnthn | |Tux|: ^^ should be another several percent off | 15:32 | |
pmurias | hoelzro: I'll see if there are things I can fix | ||
hoelzro | pmurias: thanks, let me know if you have any questions what I've done so far | ||
abraxxa | FROGGS: now from segfault to *** Error in `/home/abraxxa/.rakudobrew/moar-2015.07.2/install/bin/moar': malloc(): smallbin double linked list corrupted: 0x00000000099d60c0 *** | 15:34 | |
nine | jnthn: so we now start to cash in on those performance improvements the GLR allows? :) | 15:36 | |
FROGGS | abraxxa: what's the signature of that C function? | ||
abraxxa | FROGGS: paste.scsys.co.uk/498414 | 15:37 | |
timotimo | blogs.perl.org/users/sterling_hanen...ation.html | ||
abraxxa | FROGGS: this are the docs docs.oracle.com/database/121/LNOCI/...LNOCI72807 | ||
FROGGS | abraxxa: isnt that identical to what we did yesterday? CArray[Pointer[Str]]? | 15:38 | |
or at least CArray[int8] or whatever | 15:39 | ||
or in case of a native just int8 is rw | 15:40 | ||
jnthn | nine: Yeah, figured I'd work on some of those | ||
FROGGS | abraxxa: so your paste about int and real look good, the Str candidate not so | ||
timotimo | when my @a = 'foo' xx 1000 gets faster, we'll beat a benchmark where post-glr is pretty bad compared to pre-glr | 15:41 | |
but that doesn't really test performance in general | |||
it's really a microbenchmark for exactly that case that'd get faster | 15:42 | ||
abraxxa | FROGGS: i've tried, still smallbin double linked list corrupted | ||
FROGGS | abraxxa: I've not clue | ||
grondilu | very unhelpful error message: | ||
===SORRY!=== | |||
Cannot invoke this object (REPR: Uninstantiable) | |||
jnthn fixed one of those today | 15:43 | ||
Please golf and RT it if you still have it at HEAD | |||
15:49
ab5tract_ left,
newbie1 left
|
|||
grondilu | golfing this will be a hassle | 15:50 | |
it's for my md5 implementation. | 15:51 | ||
abraxxa | FROGGS: sometimes the error occurs when the first row is fetched and sometimes when the first column of the second column is defined (which would be enough to happen only once) | 15:52 | |
jnthn | grondilu: Since it's a compile time error, I'd just remove half the code repeatedly until it goes away or something | 15:54 | |
abraxxa | when does @array.definded return false? | ||
grondilu | it doesn't look like a compile time error. I've included a C<note "ok"> in a loop and it prints it once. | 15:55 | |
(before returning the error) | |||
jnthn | grondilu: Oh... :S Then it's...confused | ||
abraxxa: Approximately never | |||
15:56
n0tjack joined
|
|||
jnthn | m: say 4549 / 5287 | 15:56 | |
camelia | rakudo-moar 3e416b: OUTPUT«0.860412» | ||
15:57
domidumont left
|
|||
timotimo | holy wow, is that another incremental change? | 15:57 | |
jnthn | Mostly to the benefit of Text::CSV, but yeah, if it spectests alright | 15:58 | |
pyrimidine | m: subset Strand-Int where any(-1, 0, 1); '-' ~~ Strand-Int; | 15:59 | |
camelia | rakudo-moar 3e416b: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3-7⏏' (indicated by 7⏏) in any accepts_type at src/gen/m-Metamodel.nqp:3237 in block <unit> at /tmp/nGnKdus_DE:1Actually thrown at: in any ac…» | ||
pyrimidine | m: subset Strand-Int where any(-1, 0, 1); -1 ~~ Strand-Int; | ||
camelia | ( no output ) | ||
pyrimidine | just ran into that one in some older code (I think prior to enum) | 16:00 | |
dalek | kudo/nom: d260bd1 | jnthn++ | src/Perl6/Actions.nqp: Better code for /$a/ where $a is typed as Str. Text::CSV uses this pattern for building up its regex. LITERAL is a load cheaper than INTERPOLATE since it doesn't have so many cases to consider. |
16:01 | |
16:03
tokuhir__ left
|
|||
japhb | |Tux|: What's the time now with jnthn++'s latest fix? | 16:03 | |
grondilu | m: sub little-endian($w, $n, *@v) { (@v X+> ($w X* ^$n)) X% (2 ** $w) }; say little-endian(8, 4, [1, 2, 3, 4]) | 16:04 | |
camelia | rakudo-moar 3e416b: OUTPUT«===SORRY!===Cannot invoke this object (REPR: Uninstantiable)» | ||
jnthn | I've done 2 since the last numbers :) | ||
japhb | jnthn++ # Yep, noticed that. :-) | 16:05 | |
16:05
newbie1 joined
|
|||
grondilu | m: say [1, 2, 3, 4] X+> (8 X* ^2) | 16:07 | |
camelia | rakudo-moar 3e416b: OUTPUT«===SORRY!===Cannot invoke this object (REPR: Uninstantiable)» | ||
grondilu | m: say [1, 2] X+ (1 X* ^2) | 16:08 | |
camelia | rakudo-moar 3e416b: OUTPUT«===SORRY!===Cannot invoke this object (REPR: Uninstantiable)» | ||
grondilu | that should be golfed enough | ||
japhb | grondilu: So you need two cross operators, a range, and an Array to replicate? That's one heck of an obscure case. | 16:14 | |
psch | m: say (8 X* ^2) X+ [1, 2] # it gets better | ||
camelia | rakudo-moar d260bd: OUTPUT«(1 2 9 10)» | ||
japhb | (Not obscure as in "unlikely to be seen in the wild", because clearly it's been seen, but rather, still complex enough to be hitting some edge case code for sure.) | ||
psch++ # woah. | 16:15 | ||
FROGGS | gah! | 16:17 | |
jnthn | .ask ShimmerFairy Did you run "make test" also? I fear your val work maybe busted t\04-nativecall\12-sizeof.t | ||
yoleaux | jnthn: I'll pass your message to ShimmerFairy. | ||
FROGGS | ./perl6-j -e 'multi foo(Str) { }; multi foo(Int) { }; foo' # Method 'collisions' not found for invocant of class 'NQPClassHOW' | 16:18 | |
./perl6-j --optimize=off -e 'multi foo(Str) { }; multi foo(Int) { }; foo' # Cannot call foo(...); none of these signatures match: (Str) (Int) | |||
I should've checked this earlier | |||
jnthn | m: say 4494 / 4549 | 16:19 | |
camelia | rakudo-moar d260bd: OUTPUT«0.987909» | ||
jnthn | Hm, small but I'll take it | ||
FROGGS | :o) | ||
colomon just had rakudo changes break his $work code. | 16:20 | ||
jnthn | It knocks 2 more GC runs off the Text::CSV run I'm doing | ||
colomon: GLR ones, or other ones? | |||
(or not sure) | |||
colomon | jnthn: dunno yet, but GLR seems like a safe bet. | ||
yup, needed a strategic slip | 16:27 | ||
dalek | pan style="color: #395be5">perl6-examples: 3ac79ec | (Steve Mynott)++ | / (9 files): GLR fixes |
16:30 | |
16:37
mattp__ joined
|
|||
mullagain | So is there a stable release for Rakudo? | 16:38 | |
dalek | pan style="color: #395be5">perl6-examples: 29399c3 | (Steve Mynott)++ | categories/99-problems/P36-ovid.pl: fix one more GLR test |
16:39 | |
16:45
brrt joined
16:46
mullagain left
|
|||
[Tux] | last updates broke T::C, but it indeed got faster | 16:46 | |
test 50000 41.305 41.222 | |||
test-t 50000 43.329 43.247 | |||
jnthn | mullagain: Rakudo can only be as stable as Perl 6 (the language) and it's a few months until the stronger back-compat (e.g. stability) comes into effect. | ||
[Tux] | I'll have a next look later | ||
jnthn | [Tux]: Broke how? | ||
OK | |||
[Tux] | t/10_base.t ....... ok | 16:47 | |
===( 111;1 1/? 2/? 0/? 0/? )====================================Cannot unbox a type object | |||
in sub chunks at /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pm:866 | |||
in method parse at /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pm:908 | |||
in block <unit> at t/12_acc.t:168 | |||
16:47
mullagain joined
|
|||
nine | |Tux|: in case you didn't see it. I do have a fix for your Inf problem | 16:47 | |
jnthn | Some things confuse me a little in Text::CSV | ||
Liike | |||
$str.split ($re, :all).flat.map: { | |||
Can .split ever return something *not* flat? | |||
m: "abcbd".split(/b/, :all).perl.say | 16:48 | ||
camelia | rakudo-moar d260bd: OUTPUT«("a", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 2, from => 1), "c", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 4, from => 3), "d").Seq» | ||
nine | m: "abcbd".split(/b/, :all).flat.perl.say | ||
camelia | rakudo-moar d260bd: OUTPUT«("a", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 2, from => 1), "c", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 4, from => 3), "d").Seq» | ||
16:51
n0tjack left
|
|||
masak | evening, #perl6 | 16:55 | |
pmurias | masak: hi | 16:56 | |
hoelzro: it seems that most of the test failures we caused by @array.push being broken on nqp-js (and there are a number of assorted minor things) | 16:57 | ||
hoelzro: I'll fixes those tommorow (have to get afk now) | |||
abraxxa | can someone tell me what misusage of NativeCall can lead to malloc(): smallbin double linked list corrupted: 0x0000000007d4bae0 ***? | 16:58 | |
hoelzro | pmurias: great! would you also be able to figure out why the optimization I mentioned on github.com/perl6/nqp/commit/a6b1fa...74c171a20e breaks the JS build? | 16:59 | |
it must be JS-related, but I don't think I understand the impl enough to say why | |||
16:59
brrt left
|
|||
hoelzro | gen/js/stage2/nqpmo.moarvm complains that it can't find add_multi_method or something | 16:59 | |
[Tux] | nine, /me scrolls back | 17:00 | |
TimToady | m: say ’Gangnam style!’; # should we support Swedish/Finnish quoting? | ||
camelia | rakudo-moar d260bd: OUTPUT«5===SORRY!5===Argument to "say" seems to be malformedat /tmp/OQM0vR4vb5:1------> 3say7⏏5 ’Gangnam style!’; # should we support Bogus postfixat /tmp/OQM0vR4vb5:1------> 3say 7⏏5’Gangnam style!’; # should we support…» | ||
[Tux] | jnthn, like? | ||
JimmyZ | abraxxa: I don't think anyone knows about it, a golfed test may help | 17:01 | |
though I don't have oracle | 17:02 | ||
abraxxa | i use a docker image for it | 17:03 | |
17:03
pmurias left
|
|||
FROGGS | hoelzro: what is the optimization you are talking about? | 17:04 | |
17:05
perl6_newbee left
17:06
n0tjack joined
17:09
xinming left
|
|||
[Tux] | nine, I don't see your change other than the hint to make gather default to lazy, which I think is correct | 17:09 | |
dalek | kudo/nom: 5b659cc | jnthn++ | src/Perl6/Actions.nqp: Loops no longer need sinking. They no longer evaluate to anything (and when they will start to, it they will be lazy). |
17:10 | |
kudo/nom: e478f04 | jnthn++ | src/core/ (3 files): Cheaper way of avoiding sinking. Saves some allocations. |
|||
jnthn | |Tux|: Well, only the one I said really... | ||
[Tux] understands others being confused, but is ready to explain if he can | |||
jnthn | |Tux|: I think there was something else but I forgot it :( | ||
TimToady: I think you need Korean quotes for Gangnam style :P | 17:11 | ||
17:11
xinming joined
|
|||
jnthn | Time to cook us dinner :) bbl | 17:11 | |
[Tux] | $str.split ($re, :all).flat.map: { <= was code as suggested by lizmat: *I* am not that clever (yet) :) | ||
nine | |Tux|: I've the rest here locally. Just trying to narrow down the changes to the actual fix. But first I have to make some dinner ;) | ||
[Tux] | what it does is split the string into "chunks" | 17:12 | |
nine, enjoy! | |||
a chunck is eithe one of $eol, $sep, $quote, $escape, or $anything-else | |||
nine | jnthn: too bad the my $ = is not the cheapest way. I kinda liked it :) | 17:13 | |
17:14
vendethiel joined
|
|||
[Tux] | jnthn, $quo and $esc can both be Str (the undefined string), which currently breaks the regex | 17:15 | |
17:19
mohij joined
|
|||
JimmyZ | m: my $ := 1,2,3 | 17:20 | |
camelia | ( no output ) | ||
17:20
domidumont joined
17:21
CIAvash joined
|
|||
dha | m: my $ := 1, 2, 3;say $ | 17:21 | |
camelia | rakudo-moar d260bd: OUTPUT«(Any)» | ||
dha | m: my $ := 1, 2, 3;say $.perl | ||
camelia | rakudo-moar d260bd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/r7sCHAfuw8Variable $.perl used where no 'self' is availableat /tmp/r7sCHAfuw8:1------> 3my $ := 1, 2, 3;say $.perl7⏏5<EOL> expecting any of: argument list term» | ||
dha | Hm. That's unfortunate. | 17:22 | |
[Tux] | m: my Str $s; my Regex $r = rx{ "a" | "b" | $s | $s }; "fooo" ~~ $r and say 1; | ||
camelia | rakudo-moar d260bd: OUTPUT«Cannot unbox a type object in block <unit> at /tmp/j6I6h0OU9U:1» | ||
[Tux] | there ya go | ||
abraxxa | FROGGS: how can i reserve memory for $valuep[0] = Pointer[Str].new; ? | ||
masak | dha: no, it's quite explainable. | ||
dha | Oh, I'm sure it's explainable. :-) | 17:23 | |
masak | dha: in the first eval, `$` is a new `state` variable. (you can't refer to a `$` after you declared it; they're once-only) | ||
[Tux] | Inline::Perl5 also fails: | ||
Ambiguous call to 'p6_to_p5'; these signatures all match: | |||
:(Inline::Perl5 $: Int:D $value, *%_ --> Pointer) | |||
:(Inline::Perl5 $: Str:D $value, *%_ --> Pointer) | |||
masak | dha: in the second eval, `$.perl` means `self.perl`, but you're not in a method. | ||
dha: your original mistake seems to be to assume that you can refer back to a declared `$` -- but that's exactly what you can't do with them, since they aren't even installed in the lexpad. | 17:24 | ||
dha: and all your attempts to access it ended up meaning something else :) | |||
JimmyZ | m: (my $).VAR.sqy | ||
camelia | rakudo-moar d260bd: OUTPUT«Method 'sqy' not found for invocant of class 'Any' in block <unit> at /tmp/Z3LSGpYPqk:1» | ||
JimmyZ | m: (my $).VAR.say | ||
camelia | rakudo-moar d260bd: OUTPUT«(Any)» | ||
JimmyZ | m: dd (my $) | 17:25 | |
camelia | rakudo-moar d260bd: OUTPUT«$ = Any» | ||
JimmyZ | m: dd (my %) | ||
camelia | rakudo-moar d260bd: OUTPUT«% = {}» | ||
dha | You're not saying you can't use a state variable after it's declared, are you? | ||
Also, now I'm looking at it and thinking "why/how do you 'my' a state variable? | 17:26 | ||
JimmyZ | m: state $a; | ||
camelia | ( no output ) | ||
dha | I note again that C<state> and C<$> are almost totally undocumented... :-/ | ||
masak | m: sub foo { state $x = 4; say $x++ }; foo for ^5 | 17:28 | |
camelia | rakudo-moar d260bd: OUTPUT«45678» | ||
masak | dha: no, I'm not saying that. I'm saying that if your declaration is `my $`, then that `$` is nowhere to be found. (and it has nothing to do with `state` variables.) | 17:29 | |
dha | Isn't C<$> the anonymous state variable? | ||
masak | dha: specifically, what you're doing is not "'my'-ing a state variable". | ||
dha: not in a `my` declaration, it isn't. | |||
dha: there it's just a "don't assign anything here" placeholder. | 17:30 | ||
m: my ($a, $, $c) = 1, 2, 3; say $c | |||
camelia | rakudo-moar d260bd: OUTPUT«3» | ||
dha | Hm. that seems confusing to me. | ||
17:30
n0tjack left
|
|||
masak | that's the original use of `$`. | 17:30 | |
the `$` meaning `(state $)` came much, much later. | |||
dha | That doesn't make it less confusing. :-) | 17:31 | |
Also, I'm getting the same error without the "my". So maybe I'm totally confused. Which is entirely possible. | |||
masak | you can't refer to a state `$` either! why do you keep expecting to? :) | 17:32 | |
look, they're *anonymous* variables! | |||
they don't have a name. they don't have an entry in the lexpad. | |||
dha | Great. So what are they for? | 17:33 | |
masak | one-time use. | ||
m: sub foo { say ++$ }; say foo() for ^6 | |||
camelia | rakudo-moar d260bd: OUTPUT«1True2True3True4True5True6True» | ||
masak | m: sub foo { say ++$ }; foo() for ^6 | ||
camelia | rakudo-moar d260bd: OUTPUT«123456» | ||
masak | the thing with `state` variables is that they stick around. so referring to them just once in a program makes sense sometimes. | ||
the use of `my $` I demonstrated above with `my ($a, $, $c) = 1, 2, 3;` -- basically, skipping over rhs values. | 17:34 | ||
17:34
n0tjack joined
|
|||
dha | ok. That none of this is documented gives me a sad, but I guess there's not a lot to be done about that. :-/ | 17:35 | |
17:36
spider-mario joined
|
|||
masak | ++dha # documenting it | 17:36 | |
dha | Also, that code is giving me an error. I may need to build a new raked. | ||
I'm trying to document it. I'm not sure I understand it well enough to do so though... :-/ | |||
ugexe | m: my @a = 1,2,3; for ^2 { say @a.map: {$ -= 2}; } # a better example of its usefulnes? | 17:37 | |
camelia | rakudo-moar d260bd: OUTPUT«(-2 -4 -6)(-2 -4 -6)» | ||
ugexe | otherwise you s/$/state $a/, which is longer | 17:38 | |
17:38
itz left
|
|||
dha | m: sub foo { say ++$ }; say foo() for ^6 | 17:38 | |
camelia | rakudo-moar d260bd: OUTPUT«1True2True3True4True5True6True» | ||
dha | Yeah, rebuilding.. | 17:39 | |
17:39
n0tjack left
|
|||
muraiki | m: .say for ^++$ | 17:44 | |
camelia | rakudo-moar e478f0: OUTPUT«0» | ||
muraiki | m: .say for 0 .. ++$ | ||
camelia | rakudo-moar e478f0: OUTPUT«01» | ||
masak | m: say ++$; say ++$ # and each new one is different | 17:47 | |
camelia | rakudo-moar e478f0: OUTPUT«11» | ||
masak | so really one-time-use variables. | ||
17:47
newbie1 left
|
|||
muraiki | the only times I've used `state` so far in perl5 are when memoizing functions, but I guess now that that's built in in perl6 I'll have to think of other uses :) | 17:48 | |
although there's also the p5 memoize module, which I just remembered | |||
17:49
pat_js left
|
|||
abraxxa | doc.perl6.org/language/nativecall still points to the zavolaj git repo, should be fixed | 17:49 | |
17:50
n0tjack joined
17:51
mullagain left
17:52
mullagainn joined
17:53
mullagainn left
17:54
itz joined
|
|||
abraxxa | timotimo, FROGGS: i've pushed what I've coded today, please take a look if you see any mistakes in my define calls | 17:58 | |
FROGGS | abraxxa: url? | ||
17:58
cognominal left
|
|||
abraxxa | FROGGS: github.com/abraxxa/DBIish/blob/mas...Oracle.pm6 | 18:01 | |
18:01
espadrine left
|
|||
abraxxa | especially this method github.com/abraxxa/DBIish/blob/mas...e.pm6#L621 | 18:01 | |
the define calls don't throw an error any more but the OCIStmtFetch2 github.com/abraxxa/DBIish/blob/mas...e.pm6#L741 this one: *** Error in `/home/abraxxa/.rakudobrew/moar-2015.07.2/install/bin/moar': malloc(): smallbin double linked list corrupted: 0x0000000008ef63e0 *** | 18:04 | ||
18:04
dakkar left
18:08
ShimmerFairy left
|
|||
FROGGS | abraxxa: what call of OCIDefineByPos2_* happens before this OCIStmtFetch2? | 18:09 | |
abraxxa | paste.scsys.co.uk/498424 | 18:10 | |
FROGGS | abraxxa: what is CHR(1)? sounds like a single byte or codepoint or so... | 18:11 | |
18:11
telex left
|
|||
FROGGS | this looks fishy: github.com/abraxxa/DBIish/blob/mas...e.pm6#L684 | 18:12 | |
18:12
telex joined
|
|||
abraxxa | warn "defining #$field_index '$col_name'($datalen) as CHR($dty)"; | 18:12 | |
the thing in the brackets is the datatype | |||
i tried to use SQLT_STR instead of SQLT_CHR because the cdemo81.c example used that for a VARCHAR2 column as well | 18:13 | ||
18:14
dwarring joined
|
|||
FROGGS | hmmmm... | 18:14 | |
okay, google confirms that SQLT_STR should be usable here | 18:16 | ||
hoelzro | FROGGS: the one included with NQP a757bfa | 18:17 | |
which utilitizes MoarVM 0acd74b | |||
abraxxa | FROGGS: i wonder why the OCIAttrGet returns SQLT_CHR but I didn't find a clear indication in the past what to use when binding parameters, for those I've use SQLT_CHR which works | 18:19 | |
FROGGS | abraxxa: have you tested other values for $value_sz? like zero or $datalen? | 18:20 | |
18:21
ShimmerFairy joined
|
|||
FROGGS | hoelzro: I see | 18:22 | |
18:23
cognominal joined
|
|||
hoelzro | FROGGS: if you remove the $sh_ast in the MAST Compiler and replace it with null, that causes a problem with nqp-js' nqpmo | 18:23 | |
I spent a good 4-6 hours trying to figure out why, unfortunately with nothing to show for it =/ | |||
FROGGS | :o( | ||
18:25
sufrostico left
18:27
dha left
18:32
yqt joined
|
|||
jnthn | [Tux]: Thanks for the golf :) | 18:40 | |
hoelzro: Please don't lose that opt on MoarVM | |||
hoelzro: If you need to put in a dynvar you can test on the JVM backend or something then that's fine | 18:41 | ||
star: my Str $s; my Regex $r = rx{ "a" | "b" | $s | $s }; "fooo" ~~ $r and say 1; | |||
camelia | ( no output ) | ||
dalek | ast: 468c7bd | TimToady++ | S02-literals/quoting-unicode.t: Discriminate against fewer nationalities |
||
hoelzro | jnthn: I don't mean to; I just pushed the branch without it so others can look at the merging work I've been doing and perhaps help me figure out how to keep the optimization | ||
dalek | kudo/nom: b21168c | TimToady++ | src/Perl6/ (2 files): allow Swedish/Finnish/Serbian/Macedonian quotes |
||
18:41
Alina-malina left
|
|||
hoelzro | currently, nqp-js won't build with that optimization | 18:42 | |
and I can't figure out why | |||
jnthn | TimToady++ # Finnished Perl 6 | ||
TimToady | well, when your slides all had Swedish quotes, I thought I needed to do something about that... | ||
jnthn | hoelzro: Probably because its absence signifies something special to Moar | ||
18:42
jferrero left
18:43
jferrero joined
|
|||
abraxxa | FROGGS: yes, $datalen, $datalen + 1 (as documented and found in various examples to allow space for the terminating null byte, ($datalen * 2) + 1 because utf-8, also * 4, ... | 18:45 | |
FROGGS | abraxxa: does running it in gdb reveal anything? | 18:46 | |
nine | Where do I find the implementation of "return"? | 18:50 | |
FROGGS | nine: src/core/controls.pm | ||
nine | FROGGS: thanks! | 18:51 | |
FROGGS | you're welcome :o) | ||
dalek | p: 2b61433 | jnthn++ | src/QRegex/Cursor.nqp: Make !LITERAL cope with type objects. |
18:52 | |
18:52
sufrostico joined
|
|||
hoelzro | jnthn: any idea what it could be in the JS backend that would cause this error? gist.github.com/hoelzro/469a0e157c3b48843d48 | 18:55 | |
dalek | kudo/nom: c20c249 | jnthn++ | tools/build/NQP_REVISION: Bump NQP for !LITERAL with type object fix. |
18:56 | |
jnthn | That looks like a corrupted string heap | ||
add_multi_method is surely not the name of a dependency | |||
dalek | ast: cd9c34c | jnthn++ | S05-metasyntax/litvar.t: Test to cover interpolating Str type object in rx. Covers a regression caused in Text::CSV by a recent optimization in Rakudo. |
18:57 | |
jnthn | [Tux]: Should be fixed now. | ||
[Tux] fetches | |||
jnthn | And hopefully without any harm to the improvement. | ||
18:58
mprelude left
|
|||
[Tux] | FWIW IMHO those Str's could be optimized away. I have no idea how explain what it should/could match | 18:58 | |
18:58
mprelude joined
|
|||
hoelzro | ahhh | 18:58 | |
18:59
mprelude left,
mprelude joined
|
|||
jnthn | [Tux]: Well, the interpolation perf improvement is a nice thing to have | 18:59 | |
hoelzro | jnthn: so that fact that the string heap is null with the optimization is making something in the JS backend mad? | ||
jnthn | hoelzro: Passing null there means "use the same string heap as the .moarvm file has overall" | 19:00 | |
19:00
vendethiel left
|
|||
jnthn | hoelzro: But that probably doesn't map cleanly to JS | 19:00 | |
hoelzro | right, so something in the JS backend must not understand that | ||
jnthn | hoelzro: I'm not surely you can sanely make it do so | ||
hoelzro: It doesn't really make sense for JS | |||
hoelzro | the error is still happening in NQP land; JS execution hasn't started yet. is it still not possible? | 19:01 | |
abraxxa | FROGGS: can you guide me how to do that? | ||
FROGGS | abraxxa: you run perl6 t/..., right? | 19:02 | |
abraxxa | FROGGS: yes, perl6 -Ilib t/45-oracle-common.t | ||
FROGGS | run perl6-gdb-m instead of perl6 | ||
abraxxa | oh, cewl! | ||
Program received signal SIGABRT, Aborted. | 19:03 | ||
0x00007ffff7403267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55 | |||
55../sysdeps/unix/sysv/linux/raise.c: No such file or directory. | |||
FROGGS | type 'bt full' and gist the output | ||
[Tux] | All tests successful. | ||
Files=25, Tests=19732, 66 wallclock secs ( 3.12 usr 0.16 sys + 223.81 cusr 2.27 csys = 229.36 CPU) | |||
Result: PASS | |||
jnthn | [Tux]: \o/ | 19:04 | |
[Tux]: And current time? | |||
abraxxa | FROGGS: paste.scsys.co.uk/498430 | ||
[Tux] | still running | ||
you're being impatient :) | |||
jnthn | ;) | 19:05 | |
[Tux] | test 50000 40.916 40.834 | ||
test-t 50000 43.379 43.296 | |||
give or take some noise | |||
FROGGS | abraxxa: that doesnt tell me anything sadly :o( | ||
jnthn | Hm, at earlier today it was > 50? :) | 19:06 | |
*and | |||
FROGGS | the all time low was 38 IIRC | 19:07 | |
49s today according to the png: tux.nl/Files/20150909165444.png | 19:08 | ||
19:08
[Sno] left
|
|||
FROGGS | m: say 4091.6/49.042 | 19:08 | |
camelia | rakudo-moar e478f0: OUTPUT«83.430529» | ||
FROGGS facepalms | 19:09 | ||
[Tux] | paste.scsys.co.uk/498431 | ||
FROGGS | I've got a beer besides me... and guess what I forgot? | ||
muraiki | bottle opener | 19:10 | |
[Tux] | to drink it? | ||
FROGGS | no | ||
[Tux]: aye | |||
muraiki | hamburger | ||
FROGGS | -.- | ||
muraiki | oh | ||
that's even worse :) | |||
although sometimes I like beer closer to room temp | |||
FROGGS | though that means I have beer now :o) | ||
it is still cold enough | |||
[Tux] | you think out of the box^Wbottle | ||
FROGGS | I'd love to hack on something decent :/ | 19:11 | |
unbreaking the jvm build is not so much fun, so to say | 19:12 | ||
jnthn | m: say 40.9 / 51.8 | ||
camelia | rakudo-moar c20c24: OUTPUT«0.789575» | ||
FROGGS | jnthn: I love it when you do that :o) | ||
[Tux] | FROGGS, fix I::P5 :P | ||
jnthn | Not quite 25% knocked off since yesterday, but getting there... :) | 19:13 | |
FROGGS | [Tux]: why? | ||
err, sorry, was thinking about v5 | |||
[Tux] | because it is br0ken? | ||
FROGGS | [Tux]: what's broken in there? | ||
[Tux] verifies before reposting … | 19:14 | ||
Ambiguous call to 'p6_to_p5'; these signatures all match: | 19:15 | ||
:(Inline::Perl5 $: Int:D $value, *%_ --> Pointer) | |||
:(Inline::Perl5 $: Str:D $value, *%_ --> Pointer) | |||
FROGGS | I had tested its glr branch at the SPW | ||
ohh, this one | |||
abraxxa | FROGGS: ;-( | ||
jnthn: does the stacktrace tell you anything? | |||
nine | m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str"; }; foo(1); | 19:16 | |
camelia | rakudo-moar c20c24: OUTPUT«Int» | ||
nine | m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str"; }; foo("str"); | ||
camelia | rakudo-moar c20c24: OUTPUT«Str» | ||
FROGGS | how can match something Int and Str?? | 19:17 | |
nine | So, how can the same be broken in Inline::Perl5? | ||
jnthn | m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str" }; foo <1> | ||
camelia | rakudo-moar c20c24: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Int:D $v):(Str:D $v) in block <unit> at /tmp/CPSJFvonEY:1» | ||
jnthn | m: say <1>.WHAT | ||
camelia | rakudo-moar c20c24: OUTPUT«(IntStr)» | ||
FROGGS | ohh | ||
we already have that in nom? | |||
jnthn | ShimmerFairy merged it in earlier today, yeah | ||
ShimmerFairy++ even :) | 19:18 | ||
FROGGS | ahh, that explains it :o) | ||
nine | So, don't pass something like <123> to a Perl 5 method or function | ||
FROGGS | or preceed it with + or ~ | 19:19 | |
19:19
Alina-malina joined
19:20
orbusbak joined
|
|||
jnthn | Hmm, doesn't === require an exact match on type? | 19:20 | |
19:20
orbusbak left
|
|||
jnthn | m: say 1.0 === 1 | 19:20 | |
camelia | rakudo-moar c20c24: OUTPUT«False» | ||
19:21
orbusbak joined
|
|||
hoelzro | interesting article from a fellow language designer (I espeically like the "lessons learned" section) medium.com/this-is-not-a-monad-tut...1133e3fd1c | 19:21 | |
19:23
shinobi-cl left
19:26
domidumont left
|
|||
nine | So, p6argvmarray doesn't handle named args at all | 19:27 | |
[Coke] | some failures on OS X - gist.github.com/coke/3ac0fdf668553f4870a5 | 19:28 | |
include a repeatable thread.t failure. | 19:29 | ||
apparently got a roast update but missed a nom update... | 19:30 | ||
masak | m: my @test; while @test { my $_ = 1 } | ||
camelia | rakudo-moar c20c24: OUTPUT«===SORRY!===Cannot find method 'value'» | ||
[Coke] | ok, now just thread.t failing. | 19:32 | |
19:33
n0tjack left
|
|||
[Coke] | rant: "make install" doesn't do everything "make" does. | 19:34 | |
(like create ./perl6) | 19:35 | ||
nine | jnthn: how is return 1, :a(1); supposed to work if &return uses p6vmargarray that only uses MVM_args_slurpy_positional but not MVM_args_slurpy_named? | ||
[Coke] | anyone else seeing S17-lowlevel/thread.t only running 17 tests? | ||
FROGGS | [Coke]: was reported on #moarvm earlier | ||
nine | jnthn: I could start to tinker around there and probably kill performance :D But I'd be more interested in what the design really is supposed to be. | ||
abraxxa | how can I set a Str to a value and get a Pointer to it? | 19:36 | |
[Coke] | FROGGS++ Thanks. | 19:37 | |
TimToady | m: say ’Swedish style!’; | 19:38 | |
camelia | rakudo-moar c20c24: OUTPUT«Swedish style!» | ||
[Coke] | m: say ’sdfs‘asdf’; | 19:39 | |
camelia | rakudo-moar c20c24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_jQD_mDqZwTwo terms in a rowat /tmp/_jQD_mDqZw:1------> 3say ’sdfs‘7⏏5asdf’; expecting any of: infix infix stopper postfix statement end …» | ||
TimToady | you can't nest those | ||
[Coke] | m: say ’sdfs‘ | 19:40 | |
camelia | rakudo-moar c20c24: OUTPUT«sdfs» | ||
[Coke] | m: say ’sdfs” | ||
camelia | rakudo-moar c20c24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cQ3ukpotnkUnable to parse expression in high smart single quotes; couldn't find final ["’"|"‘"] at /tmp/cQ3ukpotnk:1------> 3say ’sdfs”7⏏5<EOL> expecting any of: argument …» | ||
[Coke] | looks cromulent, carry on. :) | 19:41 | |
jnthn | nine: There is (I think) some code in Actions.nqp that is meant to spot return calls and not promote :a(1) to a named arg at all | ||
abraxxa | FROGGS: just found out that the parameter binds don't work as well, they execute but insert bogus data | 19:42 | |
masak refuses to have anything to do with those Swedish-style quotes | 19:43 | ||
19:44
vendethiel joined
|
|||
[Coke] | masak: I have to deal with them in prose. I'm honestly surprised they got added to the language, but I'll take it. | 19:45 | |
nine | jnthn: haven't found any code dealing specifically with return in neither Actions.nqp nor Grammar.nqp | 19:47 | |
TimToady | it's really to render the smart quote correctors powerless | ||
nine | jnthn: oh there it is! | 19:49 | |
TimToady | like the one that "fixed" jnthn++'s slides | 19:51 | |
masak | I'm not sure exactly why I'm uneasy with turning parse-failures of previously illegal quoting characters into parse-successes. | 19:52 | |
maybe it reminds me of JS automatic semicolon insertion or something. | |||
jnthn | Darn. I've a few more small perf improvement patches, but one of 'em regresses some spectests and it isn't obvious which one | 19:55 | |
jnthn will untangle 'em tomorrow | |||
'night, #perl6 | |||
masak | 'night, jnthn | ||
FROGGS | gnight jnthn | ||
[Tux] | sleep tight | 19:58 | |
oops, someone got shot a few streets away from my home. the rumour goes it is a top-level criminal known in all of NL | 19:59 | ||
FROGGS | :S | 20:00 | |
[Coke] | yikes! | 20:01 | |
20:04
xfix left,
xfix joined,
xfix left,
xfix joined
20:06
CIAvash left
20:08
xfix left
|
|||
[Tux] | just heard that it happened 50 m from my sons best friends house . yikes | 20:08 | |
20:09
cognominal left
20:10
darutoko left
|
|||
FROGGS | ó.ò | 20:12 | |
20:17
pierrot joined
20:19
dha joined
|
|||
dalek | kudo/gmr: 882207d | (Stefan Seifert)++ | src/Perl6/ (2 files): Fix passing adverbs to 'import' and 'no' statements |
20:19 | |
ast/gmr: 629c96c | (Stefan Seifert)++ | S02-types/pair.t: Changing $pair.value now changes the contained $var Pairs now behave in the same way as Lists. The values are mutable only if they are itemized. If they are, assigning to them assigns to the original variable. |
|||
rakudo/gmr: ffaf9b3 | (Stefan Seifert)++ | src/core/ (2 files): | |||
rakudo/gmr: Make %hash.pairs .value writable | |||
rakudo/gmr: | |||
kudo/gmr: Fixes RT #124640 review: github.com/rakudo/rakudo/commit/ffaf9b3166 |
|||
ast/gmr: 39eef58 | (Stefan Seifert)++ | S (4 files): RT #124640 fixed by merging Enum and Pair |
|||
FROGGS | nine++ | ||
20:20
n0tjack joined
20:21
tokuhiro_ joined
|
|||
masak | 'night, #perl6 | 20:22 | |
dha | night masak | ||
nine | The only remaining spec test failure is the one about return 1, 2, :c(3); which does not give the right result on nom either but now fails fatally. | 20:23 | |
20:25
tokuhiro_ left
|
|||
flussence | .oO( the one problem with all these curly quotes is that Dejavu Sans Mono differentiates some of them by half a subpixel... ) |
20:27 | |
20:29
[Sno] joined
20:32
Khisanth left
20:33
pmurias joined
20:35
kaare_ left
|
|||
pmurias | hoelzro: re optimalization I'll just monkey patch a work around in | 20:35 | |
20:35
colomon joined
|
|||
pmurias | once we get a boostrap nqp-js we won't need it anyway | 20:36 | |
hoelzro | true | 20:37 | |
20:40
Khisanth joined,
mprelude left
|
|||
abraxxa | FROGGS: seems that's all even more complicated than i thought | 20:51 | |
20:51
n0tjack left
|
|||
FROGGS | :S | 20:52 | |
abraxxa | you need to allocate a statement handle and define the number of bytes all string binds will take plus 2 bytes per string for \n\0 | ||
then you get back a pointer to that memory location which you have to divide for each string you'll pass | |||
job = (text *) (ename+enamelen+2); | 20:53 | ||
that's the example code | |||
ename is the pointer you get back from the OCIHandleAlloc call, job is the pointer to the memory location in the middle of it where the job string will start | |||
abraxxa HATES C | |||
grondilu wonders what gmr is | 20:54 | ||
abraxxa | so how do I get a pointer to a memory location inside a Pointer? | ||
FROGGS | grondilu: Great Map Refactor | ||
grondilu | ok | ||
abraxxa | Google Maps Refactor? | ||
FROGGS | abraxxa: :D | 20:55 | |
grondilu | now I wonder if that will solve the need to add a few 'flat' in the digest codes after GLR | ||
abraxxa | the OCI library is way too low level | ||
FROGGS | abraxxa: that's how these libs are... sadly | ||
grondilu | (because a few of these flat were just before a map, precisely) | 20:56 | |
FROGGS | grondilu: no, it is about hashes... it removes EnumMap and stuff | ||
dalek | p/js-merge-wip: 16ba6de | (Pawel Murias)++ | src/vm/js/ (2 files): Make "0" boolfiy to true (as it seem that's the standard now). |
||
abraxxa | FROGGS: not if I look at how easy the SQLite, Pg and mysql interfaces are! | ||
FROGGS | abraxxa: also with prepared statements? | 20:57 | |
abraxxa | FROGGS: yes | 20:58 | |
wc -l lib/DBDish/* | |||
313 lib/DBDish/mysql.pm6 | |||
1089 lib/DBDish/Oracle.pm6 | |||
527 lib/DBDish/Pg.pm6 | |||
243 lib/DBDish/SQLite.pm6 | |||
31 lib/DBDish/TestMock.pm6 | |||
and I just managed to get connecting and executing DDL and DML without and binds to work! | 20:59 | ||
how the F*** should I know how many bytes the sum of all bind values will have at prepare time! | 21:00 | ||
21:01
n0tjack joined
|
|||
FROGGS | I'll try to get that docker image running soonish... and then I can help out | 21:02 | |
21:02
aeth joined
21:03
zakharyas joined
21:04
dha left
21:05
brrt joined
21:06
pmurias left
|
|||
psch | FROGGS: did you get anywhere further with jvm? i'm ping-ponging between "it's probably &flat" and "it's probably hllize" :/ | 21:09 | |
FROGGS | psch: I try to find out why Attribute.new kinda doesnt work | 21:10 | |
abraxxa | FROGGS++ | 21:11 | |
21:11
n0tjack left
|
|||
abraxxa | FROGGS: found out something new again: i can pass OCI_DATA_AT_EXEC instead of OCI_DEFAULT to tell it then I provide memory locations at runtime for the data, trying to get that working now | 21:11 | |
psch | FROGGS: e0f725929bda09ae2e10e37f27558ae9c32876f3 manifested itself by Attribute not working, but iirc that was early during bootstrap... no idea if your problem could be related, but i thought i could mention it | 21:12 | |
well, actually "the breakage that <that commit> fixed" | 21:13 | ||
21:15
zakharyas left
21:16
colomon left,
n0tjack joined
21:20
hernanGOA left
21:21
hernanGOA joined,
brrt left
21:26
muraiki left
|
|||
dalek | kudo-star-daily: 122ee8f | coke++ | log/ (8 files): today (automated commit) |
21:33 | |
rl6-roast-data: f13e969 | coke++ | / (9 files): today (automated commit) |
|||
21:33
rindolf left
21:34
colomon joined
|
|||
FROGGS | psch: I don't get it | 21:36 | |
psch: HINT_ROUTINE_RW is used only twice in rakudo, to look something up | |||
psch: but there is no code in rakudo or nqp with that magic value (8) that has something todo with $!rw | 21:37 | ||
ahh, wait... | 21:38 | ||
re-reading your commit message ehlps | |||
helps* | |||
psch | yeah, the hints show the attribute order | 21:40 | |
or possition rather, i guess | |||
21:42
n0tjack left
|
|||
abraxxa | FROGGS: i guess this void should be the type of the contained var instead in NativeCall.pm: method deref(::?CLASS:D \ptr:) { nativecast(void, ptr) } | 21:48 | |
FROGGS | abraxxa: no, look a few lines below that | 21:49 | |
there is another deref method | |||
abraxxa | ah, in the TypedPointer role? | ||
FROGGS | abraxxa: aye | 21:51 | |
psch: I think I found something | |||
psch | (irclog.perlgeek.de/perl6/2015-08-14#i_11055681 has a description of my debuggin process, btw) | ||
FROGGS | psch: look at that: github.com/rakudo/rakudo/blob/nom/...va#L77-L79 | ||
this is pre glr: github.com/rakudo/rakudo/blob/pre-...re/List.pm | 21:52 | ||
and this is now: github.com/rakudo/rakudo/blob/nom/...ist.pm#L74 | |||
err, this for pre-glr: github.com/rakudo/rakudo/blob/nom/...ist.pm#L74 | 21:53 | ||
so there are outdated hints in there | |||
abraxxa | FROGGS: but why does this fail then? my Str $col_name = $col_namepp[0].defref; | ||
FROGGS | and probably code that does not know about the new semantics | ||
abraxxa | Method 'defref' not found for invocant of class 'Pointer' | ||
psch | FROGGS: pre-glr is lines 40-44 i think? | ||
FROGGS | abraxxa: it is called 'derefÄ | ||
psch: you are right | |||
abraxxa | FROGGS: just seen it | 21:54 | |
FROGGS | psch: sadly, the HINT_LIST_ constants are not used... but perhaps the others... | ||
21:55
lizmat joined
|
|||
dalek | kudo/nom: cdfa237 | ugexe++ | src/ (7 files): remove remaining 2015.09 deprecations |
21:56 | |
kudo/nom: c8f9f8e | lizmat++ | src/ (7 files): Merge pull request #528 from ugexe/deprecation-removal remove remaining 2015.09 deprecations |
|||
FROGGS | false positive :o( | ||
lizmat waves from Bordeaux, FR | 21:57 | ||
FROGGS | hi lizmat | 21:58 | |
lizmat | FROGGS o/ | ||
psch | lizmat o/ | ||
lizmat | psch o/ | ||
psch | FROGGS: you *did* give me an idea regarding the hllize loop i'm seeing here... :) | ||
vendethiel | \o lizmat :-) | ||
FROGGS | hi vendethiel | ||
lizmat | vendethiel o/ | ||
vendethiel | \o/ FROGGS :) | ||
abraxxa | FROGGS: Internal error: unhandled target type at lib/NativeCall.pm:433 | ||
FROGGS: my Str $col_name = $col_namepp[0].deref; | 21:59 | ||
FROGGS | abraxxa: what is $col_namepp[0].of? | ||
abraxxa | $col_namepp[0] = Pointer[Str].new; | ||
FROGGS | what does $col_namepp[0].of print? | 22:00 | |
abraxxa | Use of uninitialized value <element> of type void in string context in block | ||
FROGGS | ohh, how can it be a void? | ||
abraxxa | is the output of warn $col_namepp[0].of; | ||
can the OCI call change its type? | |||
FROGGS | no | 22:01 | |
how is the CArray declared and instanciated? | |||
m: use NativeCall; my CArray[Pointer[Str]] $a.=new; $a[0] = Pointer[Str].new; say $a[0].of | |||
camelia | rakudo-moar c20c24: OUTPUT«(Str)» | ||
abraxxa | m: use NativeCall; my CArray[Pointer] $col_namepp.=new; $col_namepp[0] = Pointer[Str].new; say $col_namepp[0].of; | 22:02 | |
camelia | rakudo-moar c20c24: OUTPUT«(Str)» | ||
dalek | kudo/nom: 079d733 | lizmat++ | t/spectest.data: We don't do no deprecations anymore |
||
ast: f2c67a6 | lizmat++ | S02-types/deprecations.t: We don't do no deprecations anymore |
|||
22:02
sufrostico left
|
|||
FROGGS | abraxxa: can you turn it into: my CArray[Pointer[Str]] $col_namepp.=new; | 22:02 | |
lizmat | FWIW, with latest / greatest I get a segfault in t/spec/S17-lowlevel/thread.t | 22:03 | |
between test 17 and 18 | |||
abraxxa | FROGGS: nice | ||
FROGGS: i still get Use of uninitialized value <element> of type Str in string context in block | |||
dalek | kudo/UnbreakJVMBuildFactory: 33cbb73 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: toss unused attribute position hints |
||
FROGGS | abraxxa: so you got back a NULL string | 22:04 | |
abraxxa: hold on | |||
abraxxa: that was for the say $col_namepp[0].of; ? | |||
abraxxa | Invocant requires a 'Pointer' instance, but a type object was passed. Did you forget a .new? | ||
are you sure that last syntax instantiates the whole structure? | 22:05 | ||
FROGGS | no | ||
abraxxa | from /home/abraxxa/perl6/git/DBIish/lib/DBDish/Oracle.pm6:666 | ||
;) | |||
FROGGS | you still need to assign the string pointer to slot zero | ||
m: use NativeCall; my CArray[Pointer] $col_namepp.=new; $col_namepp[0] = Pointer[Str].new; say $col_namepp[0].deref | 22:06 | ||
camelia | rakudo-moar c20c24: OUTPUT«(Str)» | ||
FROGGS | how can you possibly get that error message there?? | 22:07 | |
lizmat | seems it's breaking on fetching the id of a finished thread | ||
FROGGS | lizmat: latest moarvm patch is to blame | ||
lizmat: got reported on #moarvm | 22:08 | ||
lizmat | ok, so it's a known issue? | ||
I'll stop looking then :-) | |||
FROGGS | aye :o) | ||
abraxxa | defining it like this makes it work: my CArray[Pointer[Str]] $col_namepp.=new; | ||
FROGGS | <JimmyZ> jnthn: github.com/MoarVM/MoarVM/commit/4b...e80677544b # this one cause the segfault | ||
abraxxa | this fails: my CArray[Pointer] $col_namepp.=new; | ||
FROGGS | abraxxa: yes, that's what I would expect | ||
dalek | Heuristic branch merge: pushed 32 commits to rakudo/cu_load by lizmat | ||
abraxxa | FROGGS: why? | 22:09 | |
psch | hrm, idea didn't work out /o\ | ||
FROGGS | abraxxa: because then the pointer is typed, so it works | ||
psch: :/ | |||
abraxxa | FROGGS: i call deref on the Pointer object (instance) which is typed as Str | ||
FROGGS: i mean why the second case fails | |||
psch | in any case, the SOE happens because of 101 calls to foreign_array_transform, and iiuc about 50 of those originate from one hllize call | 22:10 | |
well, i suppose all 101 calls aren't to blame, just the ~50 in a row | |||
lizmat is very tired and goes to bed... | |||
FROGGS | abraxxa: because the array has a different type, and so does the slot I guess | ||
psch | as an aside, the stacktrace from catching the SOE is ~8100 levels deep... | ||
lizmat | .oO( at least not a lot of driving to be done tomorrow :-) |
||
psch | g'night lizmat o/ | ||
FROGGS | lizmat: sleep well :o) | ||
abraxxa | i'll go to bed too | 22:11 | |
psch | it's really just weird | ||
hmm | |||
22:11
lizmat left
|
|||
FROGGS | gnight abraxxa | 22:12 | |
abraxxa | FROGGS: thanks and good night | ||
FROGGS | abraxxa: pleasure :o) | ||
psch | g'night abraxxa o/ | ||
i had pulled the flat hllize statement apart | |||
but i assigned the hllize result to an (p6-level) @-sigiled array | 22:13 | ||
ugh, still not quite clear on those semantics | |||
22:13
abraxxa left
|
|||
psch | m: say flat (1, (2, 3)); say my @ = flat (1, (2, 3)) | 22:13 | |
camelia | rakudo-moar 079d73: OUTPUT«(1 2 3)[1 2 3]» | ||
22:13
hernanGOA left
|
|||
FROGGS | m: say (1, |(2, 3)); say my @ = (1, |(2, 3)) | 22:14 | |
camelia | rakudo-moar 079d73: OUTPUT«(1 2 3)[1 2 3]» | ||
psch | m: say flat (1, (2, 3)); say flat my @ = (1, (2, 3)) # this is what i meant | ||
camelia | rakudo-moar 079d73: OUTPUT«(1 2 3)(1 (2 3))» | ||
psch | that works on (the half-finished) jvm build as well | 22:15 | |
and pulled apart it's the hllize call that goes off the deep end | |||
so i'm trying to assign to something sigilless now and see what ends up in there hah | |||
...that passes Pod::To::Text | 22:18 | ||
so hllize "into array context" is somehow borked | 22:19 | ||
which still points at foreign_array_transform, i suppose... | |||
FROGGS | so your modification has the same affect as: | ||
- for flat nqp::hllize(@*PACKAGES) { | |||
+ for |nqp::hllize(@*PACKAGES) { | |||
hmmm, perhaps it calls the wrong flat candidate? | |||
ohh, there is just one -.- | 22:20 | ||
22:25
Sgeo left
|
|||
psch | yeah... and that candidate effectively defers to the Binder... >_> | 22:25 | |
FROGGS | aye | ||
psch | - for flat nqp::hllize(@*PACKAGES) { | ||
+ my \pkgs := nqp::hllize(pkgs); # ...wat | 22:26 | ||
+ for flat pkgs { | |||
is my patch | |||
(minus lots of other debug says...) | |||
one thing i'd like to check but haven't figured out how | 22:27 | ||
is if NQPArray plays in there | |||
'cause i can't find a way to create those in the perl6 runtime | |||
FROGGS | btw, @*PACKAGES is not declared anyway I think | ||
psch | @*PACKAGES comes from World or Grammar iirc | ||
yeah, Perl6/Grammar.nqp | 22:29 | ||
it holds the name of the package the "is export" symbol belongs to | |||
and that's in there, too, i was able to verify that | 22:30 | ||
FROGGS | hmm, interesting | ||
psch | and that's probably why it's an NQPArray, and neither an Array not a BOOTArray | ||
FROGGS | yes, most likely | ||
22:37
FROGGS left
22:40
FROGGS joined
22:43
cgfbee joined
22:46
skids joined
22:47
cfloare joined
22:59
mohij left
|
|||
Juerd | Is there a way to determine whether a given value $foo would fit the type constraints for variable $bar without actually trying to assign it? | 23:00 | |
psch | m: my Str $bar; my $x = 5; my $z = "foo"; say $x ~~ $bar.WHAT; say $z ~~ $bar.WHAT | 23:01 | |
camelia | rakudo-moar 079d73: OUTPUT«FalseTrue» | ||
Juerd | Thanks! | 23:02 | |
psch | if you know $bar to be undefined you don't need the .WHAT | 23:03 | |
Juerd | It won't be undefined | 23:04 | |
ugexe | also the uglier `$z.isa($bar.^name)` | 23:10 | |
(in reference to the complaints from hn or reddit the other day over `.METHODS`) | 23:13 | ||
psch | m: subset LongStr of Str where *.chars > 10; my LongStr $x; say "foo".isa($x.^name), "foo" ~~ $x.WHAT; say "foobarbazquux".isa($x.^name), "foobarbazquux" ~~ $x.WHAT; | ||
camelia | rakudo-moar 079d73: OUTPUT«FalseFalseFalseTrue» | ||
psch | m: say 5.isa("Int"); say 5.isa(Int) | 23:14 | |
camelia | rakudo-moar 079d73: OUTPUT«TrueTrue» | ||
psch | huh, that surprises me | 23:15 | |
23:15
spider-mario left
|
|||
psch | i had thought that might've been the reason for the discrepancy between .isa(*.^name) and ~~ *.WHAT one eval higher... | 23:15 | |
but it's probably just the subset | 23:16 | ||
i'm guessing they automagic an .ACCEPTS that takes the where clause into account, but the bare literal of course stays a Str... | |||
ugexe | m: my Str $bar; my $x = 5; my $z = "foo"; say $x ~~ $bar.^name; say $z ~~ ::($bar.^name) | 23:17 | |
camelia | rakudo-moar 079d73: OUTPUT«FalseTrue» | ||
23:18
rurban left
|
|||
psch | ugexe: right, the indirect lookup of the name of the type works, the name itself would call Str.ACCEPTS | 23:18 | |
m: say 5 ~~ Str.^name | 23:19 | ||
camelia | rakudo-moar 079d73: OUTPUT«False» | ||
psch | ehh | ||
these are really bad example types :D | |||
anyway, i'll get some rest o/ | |||
23:21
Skarsnik left
|
|||
timotimo | ugexe: $z.isa($bar.^name) has a serious performance problem | 23:32 | |
ugexe | ah. how about $z ~~ ::($bar.^name)? | ||
timotimo | that'? a lot better | 23:34 | |
.isa will go through the mro and compare all the names, or something like that | |||
there was some kind of benchmark a couple of months ago (slightly similar to excel formulas) which had .isa("Foo") in it and changing that to a ~~ gave a ridiculous speed boost | |||
m: my $start = now; for ^1000 { "Hello".isa("Array") }; say now - $start | 23:37 | ||
camelia | rakudo-moar 079d73: OUTPUT«0.055347» | ||
timotimo | m: my $start = now; for ^100_000 { "Hello".isa("Array") }; say now - $start | ||
camelia | rakudo-moar 079d73: OUTPUT«3.40258049» | ||
timotimo | m: my $start = now; for ^100_000 { "Hello" ~~ Array }; say now - $start | ||
camelia | rakudo-moar 079d73: OUTPUT«0.2137305» | ||
timotimo | hm, only a factor of 10? | ||
m: my $start = now; for ^100_000 { "Hello".isa("Str") }; say now - $start | |||
camelia | rakudo-moar 079d73: OUTPUT«2.50682698» | 23:38 | |
timotimo | m: my $start = now; for ^100_000 { "Hello" ~~ Str }; say now - $start | ||
camelia | rakudo-moar 079d73: OUTPUT«0.21054309» | ||
ugexe | good to know, ive got some git grepping to do i suppose | 23:39 | |
Juerd | It's been quite a while since I last tried Rakudo Perl 6. Hello World executing in .1 sec makes me happy. | 23:59 |