Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-09

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo