»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:00 FROGGS left
japhb Wait, what about --target=mast ...? 00:00
timotimo you're looking for ways to inspect generated bytecode? 00:01
ShimmerFairy timotimo: just wondering if literals in things like nqp::add_i(42, 0) are treated as native ints (for example) without having boxing/unboxing going on
timotimo yeah, ought to
japhb timotimo: Err, what ShimmerFairy just said
timotimo: Yes, but are they *actually* 00:02
--target=mast is HUGE for such a simple thing
ShimmerFairy japhb: just realized I did --target=optimize without specifying an optimize flag, hang on :P
00:02 FROGGS joined
timotimo 00018 const_i64_16 loc_3_int, 52 00:03
00019 const_i64_16 loc_4_int, 0
00020 add_i loc_4_int, loc_3_int, loc_4_int
that's the interesting part for "use nqp; nqp::add_i(52, 0)"
with --target=mbc --output=test.moar and then moar --dump test.moar
japhb OK, so it *is* doing the right thing then.
ShimmerFairy timotimo: I still see Want ( WVal(Int), Ii, IVal(42) ) [abbreviating the output here to one-line of course] in --target=optimize
timotimo sure 00:04
00:04 dha left
timotimo Want is there for our lower code-gen to have a way of using a native value if it can 00:04
and otherwise it'll have a boxed object ready to go
another place where Want pops up is when we have code generated for void and result-expected cases of code
ShimmerFairy timotimo: ah, so it's me misunderstanding the IVal then :P (I though it was any kind of integer, not only natives) 00:05
timotimo that's the Want nodes where the value in the middle is "v"
IVal is actually a lowest-level-possible integer
ShimmerFairy I have noticed the sink context Wants before, yes :)
timotimo i don't think we can have IVal for bigints
ah, watch out, though; "sink" context as rakudo knows it is a little bit different, too 00:06
that's where all the "if can sink, callmethod sink" code comes from
00:06 perlawhirl joined
ShimmerFairy japhb: so, don't mind me, literals do get handled correctly after all :P Maybe the fact that your code was written pre-NFG has something to do with it? (Maaaaaybe? I doubt that could affect much though) 00:07
timotimo the WVal(Int) you see as the first entry to the Want is a boxed Int with (hopefully) the same value that's been put into the serialized blob
ShimmerFairy timotimo: is a Want useful with just one thing inside? (I'm guessing no.) And I don't suppose there's a way to have Wants for types in general. 'IntStr' and friends are interesting to think about; should they get a three-part Want? :P 00:09
timotimo oof.
a whole bunch of code will want (haha) to get adapted to that 00:10
at least some code i wrote has assumed that a Want has only two options (and the flag in between)
ShimmerFairy timotimo: I'm just trying to deal with calling &val at compile-time and doing $*W.add_object and stuff afterwards. I have a QAST::WVal(:value($thing)) after add_object, but it'd be nice to wrap that in a Want methinks (but how does an allomorphic type go in a Want? O_o) 00:11
00:18 perlawhirl left 00:20 FROGGS left 00:22 tokuhiro_ joined, BenGoldberg joined 00:26 tokuhiro_ left 00:29 dayangkun joined 00:34 tokuhiro_ joined
timotimo what do you mean "how does it go in a want"? 00:35
i'd imagine it'd be like Want(WVal(IntStr), "Ss", SVal("123"), "Ii", IVal(123)) 00:36
timotimo ought to go to bed soon
00:38 rangerprice left 00:40 ktv joined, laouji joined 00:43 ktv left 00:44 laouji left, laouji joined
ShimmerFairy timotimo: OK, I'll try that if needed. Right now I've got a weird problem with the is trait_mod and having a Want(WVal(Str)) come out of using &val (hopefully substituting a 'failed' val call with the original QAST fixes it) 00:45
I read in the QAST doc that Want() shouldn't be used for combining a string and int in one thing, because it could cause ambiguity issues, but that's what the allomorphic types are all about :P 00:46
00:48 kbenson_ joined, skarn left, Gardner left 00:49 laouji left
ShimmerFairy and ♞ timotimo, assuming you do go to bed soon :) o/ 00:49
00:49 yqt left, laouji joined, khw left
timotimo have a good one :) 00:50
00:53 Gardner joined, JimmyZ joined 00:54 hobbs joined 00:55 khw joined 00:56 skarn joined 01:06 Skarsnik left 01:10 dickbutt joined 01:11 dickbutt left 01:18 laouji left 01:19 laouji joined 01:24 sufrostico left 01:46 telex left 01:48 telex joined 02:02 noganex joined 02:03 mr-foobar left 02:04 noganex_ left 02:05 mr-foobar joined 02:15 BenGoldberg left 02:27 FROGGS joined
dalek p/js-merge-wip: 7c29fe7 | hoelzro++ | / (189 files):
Fix up usage of openpipe()/shell()
02:37
p/js-merge-wip: b01fb9f | hoelzro++ | src/vm/js/nqp-runtime/ (3 files):
Use node-bignum instead of node-bigint

bignum is actively maintained and works with newer versions of Node.js
p/js-merge-wip: f3184f1 | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js:
Update nqp-js to use serialization format #14
p/js-merge-wip: 1293b60 | hoelzro++ | src/vm/js/nqp-runtime/deserialization.js:
Finish varint implementation
p/js-merge-wip: c3408ef | hoelzro++ | src/vm/js/nqp-runtime/ (2 files):
v15 fixes
p/js-merge-wip: 5ba8312 | hoelzro++ | src/vm/js/nqp-runtime/reprs.js:
Add dummies for missing JS REPRs
p/js-merge-wip: a6b1fa3 | hoelzro++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Comment on removing MVM backend optimization
02:37 aborazmeh joined, aborazmeh left, aborazmeh joined
hoelzro .tell pmurias I' 02:38
yoleaux hoelzro: I'll pass your message to pmurias.
hoelzro ugh
.tell pmurias I've pushed my WIP branch for the JS merge here: github.com/perl6/nqp/tree/js-merge-wip
yoleaux hoelzro: I'll pass your message to pmurias.
labster m: 1.5e0.base(10, -1).say 02:51
camelia rakudo-moar 10dcba: OUTPUT«2␤»
02:51 xinming_ joined
labster m: 1.base(10, -1).say 02:51
camelia rakudo-moar 10dcba: OUTPUT«1.␤»
labster m: (3/2).base(10, -1).say 02:52
camelia rakudo-moar 10dcba: OUTPUT«Index out of range. Is: -1, should be in 0..Inf␤ in block <unit> at /tmp/8pBvED6LJ6:1␤␤Actually thrown at:␤ in any at src/gen/m-Metamodel.nqp:2869␤ in block <unit> at /tmp/8pBvED6LJ6:1␤␤»
labster oddly enough, it's the last on that's closest to spec.
02:54 xinming left 02:56 n0tjack joined
labster m: say (98/99).base(10, 1) 03:00
camelia rakudo-moar 10dcba: OUTPUT«010.0␤»
03:00 kaare_ joined, noganex_ joined
labster right, so I already have a fix for that one, but I'm going to rakudobug this so I can get a tracking ticket 03:00
03:01 n0tjack left 03:03 noganex left
dalek kudo/nom: cd02e3e | hoelzro++ | src/core/io_operators.pm:
Remove deprecated cwd() sub

This finishes off the 2014.10 deprecations
03:12
kudo/nom: 87d035a | hoelzro++ | src/core/ (3 files):
Remove 2014.11 deprecations
kudo/nom: 62ff58f | hoelzro++ | src/core/ (2 files):
Remove 2014.12 deprecations

snake-case methods in Range, and uniq from iterable methods
thou Hi, what's the best doc for knowing what might have changed w/ glr merge (ie. to imagine where to look for fixing current Grammar match fail)?
dalek ast: 1efa062 | hoelzro++ | S17-procasync/ (2 files):
Use more standard commands/arguments for Proc::Async tests

Instead of using a non-existent file and ping on Windows, let's just use cat (or its Windows equivalent, type) and just output the null device
03:16
03:31 khw left
dalek kudo/nom: e87a7aa | TimToady++ | src/Perl6/ (2 files):
add runaway quote detection
03:39
kudo/nom: 00e43db | TimToady++ | src/Perl6/Grammar.nqp:
noarg functions might also be intended as nouns
kudo/nom: 6abe65c | TimToady++ | src/Perl6/Grammar.nqp:
Accept both common styles of lowquote terminator
ast: bf0942a | TimToady++ | S02-literals/quoting-unicode.t:
test both common styles of lowquote termination
03:40 laouji left 03:45 khw joined 03:46 lucs joined
labster m: 1.7e-1.base(40, 7) 03:54
camelia rakudo-moar 62ff58: OUTPUT«Type check failed in assignment to '$r'; expected 'Str' but got 'Failure'␤ in block <unit> at /tmp/auD_KdjVTg:1␤␤»
03:58 raiph joined
TimToady is home, apparently 04:00
yoleaux 8 Sep 2015 20:36Z <smash> TimToady: more interesting combinations tweag.github.io/HaskellR/
labster Welcome home, TimToady/ 04:06
04:12 FROGGS left 04:30 ab5tract_ joined 04:33 rmgk joined 04:35 ab5tract_ left 04:40 laouji joined 04:45 laouji left
dalek kudo/allomorphs: a81b7ab | ShimmerFairy++ | src/Perl6/ (2 files):
Switch to using the existing val() at compile-time

As suggested by jnthn++, only required an additional change to the 'is' trait_mod to handle sometimes getting a WVal instead of a Want. This change offers a slight improvement in speed, but not much (only about
  .1s in my benchmark)
04:49
04:49 laouji joined 04:53 dayangkun left
dalek kudo/nom: 5746df2 | labster++ | src/core/ (3 files):
fix Rat.base rounding, throw X::OutOfRange for negative base $digits

  "# never happens?" did the impossible and happened. Related ticket: RT #126022
04:59
05:00 laouji left
dalek ast: 4adf0d8 | labster++ | S32-num/base.t:
Rat.base tests, test all .base for $digits < 0 (RT #126022)
05:02
05:03 khw left
dalek ast/allomorphs: a2ea1b1 | ShimmerFairy++ | S (2 files):
Fudged tests of numifying certain 'slash fractionals'

These tests all make sure that you can't numify slash fractional strings with negative denominators and/or non-integral components. Since it's unclear what val()'s stance should be on these things.
The S02 tests are fudged because val processing takes over on a failed Rat literal, and produces a RatStr as it stands. It's not specified if this is expected, or if Rat/Complex literals are meant to be all-or-nothing.
05:05
05:06 laouji joined 05:07 FROGGS joined
FROGGS .tell psch yeah, I also get a SOE :o( 05:09
yoleaux 8 Sep 2015 21:20Z <psch> FROGGS: fwiw, the SOE golfs to 'unit class Foo; sub foo is export { }'
FROGGS: I'll pass your message to psch.
8 Sep 2015 21:21Z <psch> FROGGS: and the "unit" isn't even needed
8 Sep 2015 22:13Z <psch> FROGGS: the mentioned golf calls sink from EXPORT_SYMBOL, goes through a bunch of pull-, push-, and reify- methods and then ends in a new, new, bless, BUILDALL loop...
05:09 [Sno] left
FROGGS ohh... 05:09
05:15 grondilu left, grondilu joined 05:23 n0tjack joined 05:26 dayangkun joined 05:28 n0tjack left 05:32 ingy left, ingy joined 05:33 skids left 05:34 dayangkun left 05:37 dayangkun joined 05:38 xfix joined, xfix left, xfix joined 05:46 arunes007 joined 05:47 arunes007 left 05:51 rurban joined 05:59 Loren joined 06:01 nwc10 joined
nwc10 good UGT, * 06:01
oh, I'm a minute late: 06:02
06:01 < nwc10> good UGT, *
06:02 aborazmeh left 06:05 aborazmeh joined, aborazmeh left, aborazmeh joined 06:14 Loren left 06:15 Sqirrel left
FROGGS .tell psch seems to be about X::TypeCheck::Assignment 06:16
yoleaux FROGGS: I'll pass your message to psch.
FROGGS morning nwc10 06:17
06:17 FROGGS left
labster m: [1, 2, 3] = 5; 06:33
camelia ( no output )
labster m: say ([1, 2, 3] = 5)
camelia rakudo-moar 5746df: OUTPUT«[5]␤»
06:33 Timbus_ left, Loren joined
Loren afternoon, perl6 06:34
06:34 Timbus joined 06:35 laouji left
labster good *, Loren 06:35
Loren good afternoon, labster
06:36 cognominal joined 06:37 laouji joined 06:39 [Sno] joined, domidumont joined 06:40 domidumont left 06:43 FROGGS joined
Loren m: sub getarr() { my @a=(1, 3), @b = (2, 4); (@a, @b); }; dd getarr(); 06:43
camelia rakudo-moar 5746df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/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 Timbus left
Loren m: sub getarr() { my @a=(1, 3);my @b = (2, 4); (@a, @b); }; dd getarr(); 06:44
camelia rakudo-moar 5746df: OUTPUT«([1, 3], [2, 4])␤»
06:45 Timbus joined
psch hi #perl6 o/ 06:49
yoleaux 05:09Z <FROGGS> psch: yeah, I also get a SOE :o(
06:16Z <FROGGS> psch: seems to be about X::TypeCheck::Assignment
psch FROGGS: right, i think i saw that pop up in the NQP_VERBOSE_EXCEPTIONS output...
m: my (@a, @b) = ((1, 2), (3, 4)); say @a.perl, @b.perl # probably not DWIMmy..? 06:50
camelia rakudo-moar 5746df: OUTPUT«[(1, 2), (3, 4)][]␤»
psch m: my (@a, @b) = (1, 2), (3, 4); say @a.perl, @b.perl # probably *still* not DWIMmy..?
camelia rakudo-moar 5746df: OUTPUT«[(1, 2), (3, 4)][]␤»
psch mind, i'm not saying what i mean is sensible :) 06:51
FROGGS yes, you cannot assign to more than one array atm 06:52
dunno if this will ever change though
Loren ([1, 3, 2, 4]<>, [2, 4]<>) <== sub getarr() { my @a=(1, 3), @b = (2, 4); (@a, @b); }; dd getarr(); # in my perl6 06:53
06:53 domidumont joined
psch m: say $*PERL.compiler.version 06:55
camelia rakudo-moar 5746df: OUTPUT«v2015.7.1.776.g.5746.df.2␤»
FROGGS m: say $*PERL.compiler.build-date 06:56
camelia rakudo-moar 5746df: OUTPUT«2015-09-09T05:39:27Z␤»
psch Loren: might be worth comparing that ^^^ to your local output
06:57 mr-foobar left
Loren wait a moment.. 06:57
06:58 mr-foobar joined
Loren builddate 2015-09-04T17:54:49Z 07:00
version v2015.7.2
it's newer than mine
psch Loren: the output (specifically, the "<>" at the end of .perl'd or dd'd Arrays) strongly suggests that you're before the glr merge, and the date/version confirms thats 07:02
Loren: i'd update
Loren Should I see date or version?
psch ...oh, but i'm mostly hacking on CORE 07:03
maybe updating isn't that great an idea yet, i haven't look at the ecosystem
FROGGS Loren: if you use a bunch of modules or have some kind of codebase, then keep in mind that upgrading might very well break things 07:04
Loren psch, oh i see
psch FROGGS: breakage seems to be the first for in EXPORT_SYMBOLS, probably &flat again :/
FROGGS Loren: it might not be much to change, but knowing what to change takes some time 07:05
psch: :/
psch FROGGS: ...or some kind of hllize loop i guess
FROGGS psch: but your patch cannot be wrong... something else is to blame I'd say
psch i mean, the line in question (thanks << say "still working" if %ENV<DEBUG> >>) is << for flat nqp::hllize(@*PACKAGES) { >> 07:06
so it's probably either &flat or hllize :P
Loren hope a stable version .. 07:07
07:07 brrt joined 07:08 ab5tract_ joined 07:13 thou left
psch Loren: it's not quite yet, as mentioned 07:13
07:14 darutoko joined
Loren psch, I saw a news said that perl6 will release first version in Christmas day. haha.. 07:15
psch Loren: we went through a pretty big refactor recently, which is *why* we're currently playing a bit of catch-up 07:16
Loren: you're free to help, of course :)
07:19 Ven joined
Loren psch, a, I wish 07:19
FROGGS m: say $*DISTRO.cur-sep 07:24
camelia rakudo-moar 5746df: OUTPUT«,␤»
07:25 espadrine joined
FROGGS psch: that works around it: 07:28
- for flat nqp::hllize(@*PACKAGES) {
+ for |nqp::hllize(@*PACKAGES) {
07:31 espadrine left
psch FROGGS: that just means we still have something wonky in &flat, doesn't it? 07:31
FROGGS: i mean "use the not-really-prefix C<|> instead of &flat on jvm" isn't really a solution...
FROGGS aye 07:32
psch actually, i don't think it's &flat itself... 07:34
as in, << say @*PACKAGES[0] >> *also* gives me the SOE in that spot
FROGGS psch: not for me... 07:36
[Tux] take (($from .. $r.value).Slip); 07:46
is not lazy. neither is (|($from .. $r.value))
how do I get that to be lazy?
and take $from .. $r.value returns a Range instead of a lazy list 07:47
07:48 CIAvash joined 07:50 n0tjack joined 07:53 Sgeo joined 07:55 n0tjack left
psch FROGGS: i don't get that. anything i can think of to try with @*PACKAGES gives me the SOE... 07:58
nine |Tux|: ($from .. $r.value).List 07:59
or ($from .. $r.value).list
[Tux] .list caused a hang when $r.value is Inf
nine m: say (1 .. *).list 08:00
camelia rakudo-moar 5746df: OUTPUT«(...)␤»
nine m: say (1 .. Inf).list
camelia rakudo-moar 5746df: OUTPUT«(...)␤»
[Tux] Type check failed in assignment to '@!crange'; expected 'Int' but got 'List'
when replacing .Slip with .List
nine I guess it's not the .list that makes it hang but what you do afterwards
What does the rest of the code look like?
[Tux] nasty :) 08:01
return @foo[@range.to_list]; where to_list is a method that does the gather/take
up to now, the only (slow) workaround I found was 08:02
my $to = $r.value == Inf ?? 65535 !! $r.value;
take (($from .. $to).Slip);
and of course I do not want that arbitrary limit
FROGGS psch: you are on the UnbreakJVMBuildFactory branch? these are my local changes btw: gist.github.com/FROGGS/7506e36cb30daed487f5
nine So you want to slice using the result of the to_list call? 08:03
08:03 ab5tract_ left
FROGGS wouldn't .map be better? 08:03
[Tux] nine, yes 08:04
nine slices are eager
[Tux] they were not in pre-glr
psch FROGGS: yes, i'm on that branch, and i don't see anything that looks relevant in the diff...
FROGGS: i'll just keep poking at it, see what happens :) 08:05
FROGGS psch++ # :o)
08:05 nwc10 left 08:06 thou joined
nine I think they were: github.com/rakudo/rakudo/blob/059d...ce.pm#L140 08:06
|Tux|: but .map like FROGGS++ suggested sounds like a good solution there 08:07
FROGGS star-m: my @a := 0..Inf; say @a[0..Inf][42] 08:08
camelia star-m 2015.03: OUTPUT«(timeout)» 08:09
nine star-m: my @a = 0 .. 10; say @a[0..Inf];
camelia star-m 2015.03: OUTPUT«0 1 2 3 4 5 6 7 8 9 10␤»
nine Yep, it's eager and it truncates to the length of the Array for infinite slices.
m: my @a = 0 .. 10; say @a[0..Inf];
camelia rakudo-moar 5746df: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10)␤»
nine Same now for lazy slices
So actually that's still nothing that would cause a hang? 08:10
08:10 thou left
[Tux] \☺/ with the 65535 workaround: 08:12
All tests successful.
Files=25, Tests=19732, 79 wallclock secs ( 3.19 usr 0.16 sys + 242.26 cusr 2.28 csys = 247.89 CPU)
Result: PASS
nine Wow, so you're almost there :)
[Tux] pushed 08:13
I didn't find a way to make Inf work with .map 08:17
might try tomorrow 08:18
if you are going to play with it, perl6 t/78*
just 34 tests, so fast if it would work 08:19
08:20 dakkar joined, espadrine joined
moritz
.oO( it's easy to give the wrong answer in O(1) )
08:24
08:26 Ven left
nine I slowly start to understand what you're trying to do there. 08:27
timotimo i remember discussions about expecting the user to have only monotonous lists in slices or something 08:28
so that the truncation can work sanely 08:29
(and when the monotonous value hits the end-of-array, it'd stop)
psch hmm, 49 calls to foreign_transform_array seems a bit much for a &flat call to an NQPArray with one element... but that doesn't really get me anything :/
s/call to an/call on an/
nine timotimo: that's pretty much how it works now 08:30
timotimo ah, so that's implemented
but at least lists aren't mutable, so you can't go around pushing values at the end of lists while bit-by-bit grabbing values from the slice :P 08:31
08:36 aborazmeh left
ShimmerFairy m: say (1, 2).WHAT; say (1, 2).WHICH 08:38
camelia rakudo-moar 5746df: OUTPUT«(List)␤List|56787824␤»
ShimmerFairy I recall List having a different WHICH; is that the "can't be Tuple" change from a little while back? 08:39
moritz ShimmerFairy: yes
ShimmerFairy Aw :(
I earlier on specifically counted on .List to make a ===-compatible thing
08:41 brrt left 08:43 Ven joined 08:44 ab5tract_ joined 08:48 mprelude joined
ShimmerFairy Hm. I haven't had a chance to use GLR much until now, is it just me or does it take slightly longer for stage parse now? (Somewhere in the 110s area now, before it was around 100s most times) 08:51
nine |Tux|: I have a fix :)
jnthn ShimmerFairy: It's a couple of seconds longer for me; I think simply because we've got a bit more code now :)
dalek kudo/nom: c40a1ef | jnthn++ | src/core/A (2 files):
Add multi-dim BIND-POS fallback to Any.
08:52
kudo/nom: 824436e | jnthn++ | src/Perl6/Optimizer.nqp:
Fix dispatch analysis explosion in optimizer.

We can only safely consider known nominal types.
ShimmerFairy jnthn: that's what I figured, since there are those new *Iterator files, for one :)
dalek ast: 60515ca | jnthn++ | S02-types/subset.t:
Test for RT #126018.
08:53
jnthn ShimmerFairy: Aye, including the fledgling impl of .race, which we never had before
ShimmerFairy just wanted to make sure it was because of new code, and not anything I might've been doing :) 08:54
08:54 zakharyas joined, rarara left
jnthn Well, there's us back under 1040 tickets again... 08:55
FROGGS \o/
jnthn++ 08:56
08:57 e000 joined 08:59 e000 left
nine jnthn: should gather blocks always be marked lazy? Just because we might have a gather { take $_ for 1 .. Inf; }; Or do we leave it up to the user to mark it as lazy? 08:59
jnthn nine: Interesting question. Not easy to call what the best default is. If we make it lazy by default we force people to mark "eager". 09:04
nine: If we make it eager by default then we can get hangs.
nine Like the one in Text::CSV 09:05
dalek kudo/UnbreakJVMBuildFactory: aac4216 | FROGGS++ | src/core/Variable.pm:
flatten export trait list, like we do for Routines
kudo/UnbreakJVMBuildFactory: eeadbc6 | FROGGS++ | src/core/Inc.pm:
box -I string, we'll .split it later
kudo/UnbreakJVMBuildFactory: 527bd9f | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
psch++, align JVM's slurp/slurp-flat code to moar's
FROGGS (rebase)
09:05 lizmat joined
FROGGS jnthn: you might be happy to know that your changes did not cause additional trouble on jvm :o) 09:05
nine Well isn't gather by definition lazy? It will only produce values by you pulling them out.
09:06 e000 joined
ab5tract_ psch++ FROGGS++ -- thank you for all the JVM fixing! 09:06
FROGGS ab5tract: we're not there yet sadly :o(
e000 I'm sorry if it's an awful question, but -- does perl6releasetalk.ticketleap.com/per...lk/details mean Perl6 will be officially released on October 5th? 09:07
ab5tract_ we would be a lot further back without your efforts
jnthn FROGGS: Which ones? ;)
ab5tract_ e000: That will mark the beta release
e000 ab5tract_: beta is still awesome! thank you! 09:08
ab5tract_ e000: Perl 6 is *by definition* released on Christmas ;)
nine jnthn: I think, I'll experiment with lazy default on gather this evening and see what the spec test fallout would be.
jnthn I'm rather sure it will be a few days before Christmas because I want to spend Christmas with my family :P
timotimo ugh, family ... ;)
ab5tract_ jnthn: true, I guess it was "by Christmas", anyway :)
nine jnthn: well we can relase before Christmas and just not tell anyone ;)
FROGGS jnthn: I just rebased the UnbreakJVMBuildFactory branch on nom... so all commits since yesterday evening are okay it seems 09:09
jnthn ;)
FROGGS: Did you updated the binder in JVM to do the Seq -> List thing?
('cus I didn't do that bit)
FROGGS jnthn: no... didn't spot there is something todo
jnthn: is there a todo marker?
jdv79 lizmat: nevermind. that is the cpan dist format. i misread S22.
jnthn FROGGS: Uh...no :) 09:10
09:10 e000 left
psch there's "NYI" 09:10
FROGGS there is:
Binder.java:489: throw ExceptionHandling.dieInternal(tc, "is copy on lists NYI after GLR");
Binder.java:683: throw ExceptionHandling.dieInternal(tc, "optional array param NYI after GLR");
jnthn FROGGS: 211740be84f0 is the binder patch for Moar though 09:11
FROGGS jnthn: thanks :o)
lizmat is just browsing just before some more commuting
yoleaux 8 Sep 2015 12:52Z <jdv79> lizmat: why doesn't S22 root a dist archive with the dist+ver like a p5 one?
8 Sep 2015 14:59Z <|Tux|> lizmat: will you look at Text::CSV/t/15_flags regarding the disappearing method?
8 Sep 2015 15:29Z <|Tux|> lizmat: ignore: I found it «ok (@x[$_], "text") for 1 .. 5, 7, 19;» → «ok (@x[$_], "text") for flat 1 .. 5, 7, 19;»
jnthn (Ignore the actions.nqp part of the batch)
*patch
o/ lizmat
lizmat jnthn jdv79 FROGGS ab5tract_ nine o/ 09:12
timotimo oh hey lizmat
how are you today?
ab5tract_ o/ lizmat !
lizmat enjoying some peace and quiet in Basque country
timotimo o/
timotimo sounds nice :)
lizmat timotimo: well rested and ready to go north a bit more
will be in Lyon on Saturday for the patch -p3 09:13
jnthn lizmat: Hm, is Andora on the way north? :)
lizmat patch.pm/p3/
FROGGS hi lizmat
lizmat jnthn: Andorra is actually 5 hour drive east from here
jnthn Ah, OK
nine lizmat: hi :) 09:14
lizmat would be a lovely drive indeed... :-) but not planned this time :-(
jnthn It's one of the European countries I have yet to visit :)
lizmat as do we... on the way to Granada we could have, but we considered it too much out of the way...
jnthn Wonder if there's a .pm group there :D
lizmat so we would have time to drive there, but not see anything there ;-(
jnthn *nod* 09:15
dakkar uh… github.com/Leont/path-iterator/blo.../META.info why does it say it's called YAMLish?
timotimo hah 09:16
likely an oversight from copy-pasting the meta.info from somewhere else?
jnthn suspect so :)
dakkar TAP::Harness doesn't install because of that
timotimo probably doesn't happy the ecosystem very much
psch humm, i maybe should read the glr gist... 09:18
timotimo it's a good gist
psch does it make sense for \consider to contain 1..36 when i'm calling .flat on (1, (2, 3))?
in from-slurpy-flat, that is 09:19
jnthn psch: Uh, not...very much... o.O
psch jnthn: good, because it seems kind of weird :) 09:21
back in about 2 hours & 09:22
dalek ast: f4e5bab | jnthn++ | S17-lowlevel/thread-start-join-stress.t:
Add test for RT #125977.
09:39
timotimo now start the threads in threads themselves!
09:40 Ven left
dalek p: 18f7ec6 | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION (various fixes).
09:40
ab5tract_ \o/ 09:41
09:41 cognominal left
dalek kudo/nom: 5abac3c | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for various Moar/JVM fixes.
09:42
kudo/nom: 149b5fb | jnthn++ | t/spectest.data:
Run S17-lowlevel/thread-start-join-stress.t.

As a stresstest only since it is quite long-running.
09:45 Ven joined
jnthn break & 09:47
lizmat commute &
09:48 Ven left, lizmat left
dalek Heuristic branch merge: pushed 48 commits to rakudo/cu_load by lizmat 09:49
09:54 thou joined 09:59 stanrifkin_ joined, thou left
stanrifkin_ how can i update my perl6 with rakudo? do i have to build it again? 10:00
timotimo yeah; how did you install it before? 10:01
stanrifkin_ with rakudobrew 10:02
i did now -> rakudobrew self-upgrade 10:03
timotimo ah, that'll pull the newest changes to rakudebrow
rakudobrew*
stanrifkin_ so it seems i have to -> rakudobrew build moar too
timotimo that's also important
yes, that's right 10:04
and probably also rakudobrew build-panda afterwards
stanrifkin_ what is panda?
moritz the module installer
stanrifkin_ ok, thank you 10:05
10:06 dayangkun left 10:18 stanrifkin_ left 10:28 Ven joined 10:33 pmurias joined 10:43 rindolf joined 10:44 domidumont left
skaji Is there any way to know loaded pm files? When perl5, I can know it from %INC. 10:44
10:44 domidumont joined
moritz m: use Test; say %*INC.perl 10:45
camelia rakudo-moar 149b5f: OUTPUT«Failure.new(exception => X::Dynamic::NotFound.new(name => "\%*INC"), backtrace => Backtrace.new)␤»
moritz hm, nope :(
skaji not implemented yet? 10:47
moritz I have no idea if it's supposed to work, and if not, what replaces it
10:47 domidumont left
dalek kudo/UnbreakJVMBuildFactory: 54b8fa7 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
port Seq->List conversion in binder to JVM

This ports the missing bit from 211740be84f0.
10:48
10:48 domidumont joined
FROGGS jnthn: do you know about other holes? 10:49
10:49 domidumont left 10:50 domidumont joined
FROGGS skaji: CompUnit knows about what got loaded, though it is not exposed (yet) 10:51
skaji is it intended to be exposed? 10:53
timotimo it surely would be useful in some situations
skaji i need %INC or similar, because i often have the same module in several libs.
FROGGS skaji: I don't know... I think we can expose it, CompUnit itself is meant to be not just something internally 10:54
timotimo you can introspect GLOBAL:: to see what modules have been imported to the global namespace 10:55
m: { use Test }; say GLOBAL::.keys
camelia rakudo-moar 149b5f: OUTPUT«(Test)␤»
timotimo ^- here you can see, that Test is still available through GLOBAL 10:56
FROGGS you see symbols, not modules though
if you load a .pm that does not export a symbol, you won't see it in GLOBAL
timotimo oh 10:57
that's right
10:57 pmurias left
FROGGS and CompUnit is about a .pm file, which can export several symbols, or none 10:57
skaji i hope CompUnit is exposed!
moritz and for debugging, there's also the RAKUDO_MODULE_DEBUG environment variable
FROGGS skaji: CompUnit itself yes
psch m: say CompUnit
camelia rakudo-moar 149b5f: OUTPUT«(CompUnit)␤»
psch but yeah, that doesn't help
skaji ah, ok 10:58
timotimo yeah, the compunit class is exposed, not necessarily the instances that rakudo uses for your program
FROGGS skaji: that's what you are interested in: github.com/rakudo/rakudo/blob/nom/...nit.pm#L15
psch skaji: i imagine your use-case is something like "i need .pm files in different directories for different projects that have to package them but don't want to change my @*INC for every project"?
s/\.pm files/the same .pm files/ 10:59
11:00 espadrine_ joined, rurban left
skaji FROGGS: thanks, i'll look into it. 11:01
11:03 espadrine left
psch well, whatever the use-case actually is, we don't have anything exposed currently that gets the loaded files 11:03
although i do want that too, for the standalone-jar stuff...
skaji psch: while developing or debugging, i have the same pm files in normal libs and current dir. So i want to make sure what file is loaded from my script. 11:04
psch 'cause the proof-of-concept in the branch currently grabs literally every .jar in share/ and lib/ :/
11:04 Ven left
psch skaji: ah, i see 11:04
dalek kudo-star-daily: 6c94694 | coke++ | log/ (7 files):
today (automated commit)
11:05
rl6-roast-data: a2632ac | coke++ | / (9 files):
today (automated commit)
11:05 domidumont left
jnthn FROGGS: The only other ones I'm aware of are those I patched to throw exceptions 11:05
11:06 cognominal joined
skaji moritz: i'll try RAKUDO_MODULE_DEBUG 11:06
psch hm, that still makes me wonder whether things like 'perl6.jar' would end up in something like %*CUIS (or whatever that should be called...)
FROGGS jnthn: k 11:07
psch not that hard-coding the neccessary core files for a packaged r-j compiler would be terrible, but...
11:09 skids joined 11:10 rindolf left
psch on the up, the from-slurpy-flat introspection/debugging stuff from above was probably just bogus, and not actually that weird 11:12
as in, i think i didn't even see the call that i wanted to look at
11:12 espadrine joined
jnthn ah 11:15
timotimo mhm
11:15 espadrine_ left 11:17 pmurias joined
dalek kudo/nom: e9a9b6e | jnthn++ | src/core/Array.pm:
By contract, *-POS should only get Int indices.
11:18
kudo/nom: 62cbcec | jnthn++ | src/core/Array.pm:
Implement multi-dim BIND-POS support in Array.
11:20 dakkar left, dakkar joined 11:23 virtualsue joined
dalek kudo/nom: fe5ef83 | jnthn++ | src/ (2 files):
Implement @a[1;1] := ....
11:33
11:40 flw joined 11:42 virtualsue left 11:43 thou joined, itz joined
flw p6: say3; 11:44
camelia rakudo-moar fe5ef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤ say3 used at line 1. Did you mean 'say'?␤␤»
flw p6: say 3;
camelia rakudo-moar fe5ef8: OUTPUT«3␤»
11:44 xinming joined 11:47 thou left 11:48 xinming_ left
raiph m: sub ven () of Nine { ... } # from 13 years ago (codeverge.com/perl.perl6.language/p...es/163876) 11:48
camelia rakudo-moar fe5ef8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/x1O4ecQECu␤Invalid typename 'Nine'␤at /tmp/x1O4ecQECu:1␤------> 3sub ven () of Nine7⏏5 { ... } # from 13 years ago (cod␤»
11:49 flw left, aindilis left
jnthn raiph: Heh :) 11:51
raiph :) 11:52
dalek kudo/nom: ae65104 | jnthn++ | src/Perl6/Grammar.nqp:
Start parsing @a[3;3] syntax.

Also tighten things up a bit with regard to shapes; we now only permit
  {...} shapes on a % sigil'd thing and [...] shapes and an @ sigil'd
thing. Anything else is considered reserved for the future.
11:53
|Tux| test 50000 51.773 51.693 11:57
test-t 50000 52.066 51.986
timotimo jnthn: i wonder how hard it'd be to make CArray multi-dim compatible, too ... and if we should keep CArray for int/num around at all, now that Buf and Blob should be able to handle those cases just fine? 11:58
FROGGS timotimo: CArray needs to stay because if a C-functions returns something array-ish, you can only return a CArray 11:59
to return a Buf you'd need to know the size 12:00
timotimo oh? 12:02
huh, so if something returns a CArray and you know the size, you can just safely access all elements up to that size? 12:03
FROGGS timotimo: well, in case the C-function does not lie, yes 12:04
timotimo cool, abraxa may be happy to hear about this 12:05
FROGGS hmmm?
he knows
timotimo oh
why didn't i know, then? :P
12:05 yqt joined
FROGGS he calls the oci function and gets a bufferish thing and the 'length' back, then he slices length-1 elems out of that buffer 12:06
so he already trusts that length
12:06 CIAvash left
timotimo OK 12:07
12:09 aindilis joined
FROGGS though is would be nice to have: my $buf8 = nativecast(buf8, $buffer, :$elems) as a cheap shortcut to the loops 12:15
or slices
12:15 ambs joined
timotimo yeah 12:16
with a memcpy in the back-end
12:16 rurban joined
jnthn FROGGS: I've been thinking about a memcpy style op in Moar, but didn't have the brane to work out exactly how I want it to function yet :) 12:16
timotimo hm, say 12:17
can't we actually just pass a Buf to a native sub? 12:18
in that case we could actually just use regular memcpy
TimToady awake at 5am, not surprisingly...
timotimo mhm, all the travels 12:19
skaji moritz: RAKUDO_MODULE_DEBUG prints what pm file is loaded! Thanks! 12:20
$ RAKUDO_MODULE_DEBUG=1 perl6 -e 'use Test;'
...
MODULE_DEBUG: loading /Users/skaji/env/rakudobrew/moar-nom/install/share/perl6/lib/Test.pm.moarvm
FROGGS skaji: that path is the key in %instances btw 12:21
jnthn: yeah, though however it is implemented I think the code I posted could very well be the way we expose it 12:22
though we should rename this bloody sub
12:30 xinming_ joined
jnthn cast is misleading as it tends to just mean a change of interpretation rather than a copy 12:30
timotimo right 12:31
FROGGS hmmm 12:32
skaji FROGGS: I see
FROGGS do we have to copy at all?
timotimo depends on what the C side of things thinks about ownership of the block of data 12:33
if we just blindly cast to a Buf, moar will end up calling free() on it
when the Buf gets collected
arnsholt If it's going to be put into a properly Perl 6 thing like a Buf, it should definitely be copied
12:33 xinming left
FROGGS what if you want to modify the foreign memory? 12:34
12:36 brrt joined 12:39 virtualsue joined 12:40 domidumont joined 12:41 ambs left
timotimo hm, you may be interested in ops that work on bufs, that's right 12:42
i gave CArray an elems method
perhaps it'd be enough to mix in a role that gives a "fake" length for that
and then you can use any subs that require a Positional? 12:43
FROGGS how does that elems method work?
timotimo it uses nqp::elems
FROGGS but how does it know the elems?
timotimo now that i've learned how CArray is supposed to work with "foreign" data blobs, it doesn't make quite as much sense
it's for cases where perl6 manages the memory
m: use NativeCall; my $buf = CArray[int8].new(1, 2, 3, 4, 5); say $buf.elems; $buf[20] = 1; say $buf.elems; 12:44
camelia rakudo-moar ae6510: OUTPUT«5␤21␤»
12:44 ambs joined
timotimo how do we differentiate between "when we assign to a high index we should realloc" and "when we assign to a high index we should directly access memory there"? 12:44
FROGGS so it would most like return 0 if it is the return value of a C function
timotimo most likely, yes 12:45
in that case .gist and .perl won't work "properly", either
FROGGS I guess that depends on who created it
timotimo well, you can't set the elems of a CArray with the regular setposelems operation
because CArray doesn't implement that
FROGGS MVMCArrayBody has a "managed" attribute 12:46
a bool 12:47
timotimo ah, it's that easy!
neat.
maybe i should implement setelemspos (or however that's called) on its REPR and if it's managed, it'll be reallocd and if not, it'll just set the internal counter for the number of elems
FROGGS and it allocates 4 slots by default, but counts the "used" slots 12:48
sounds good to me
timotimo then you can grab a CArray, set its size (because you know it) and use its .list and .gist and such
FROGGS hmmm
that sounds awesoem
arnsholt Speaking of CArray reallocing when it's allocated from Perl 6, that functionality should probably be removed
FROGGS awesome*
timotimo are you sure? 12:49
i can see how accidentally reallocing after passing to c functions could be dangerous
arnsholt Because if C code stores the pointer to a Perl 6 allocated CArray somewhere, and it's then realloced, things are gonna break horribly
timotimo but we expect the user to know a bit about how memory management works
arnsholt And it'll probably be weird non-deterministic breakage, because sometimes realloc can return the same pointer, and sometimes not 12:50
Depending on what's free
It's a nice feature, but ultimately I think it'll end up causing unnecessary grief
12:50 pecastro joined
timotimo if CArray doesn't realloc on access, we need a way to create it with a fixed size 12:54
otherwise we can't use CArray from perl6 at all
arnsholt Yeah, definitely
timotimo then people will have to create their data in arrays and turn them into CArray at the latest possible moment 12:55
12:55 telex left
arnsholt Yeah, if you can't precompute the size, then you'll have to do something like that 12:56
12:56 Possum joined, telex joined 12:57 sufrostico joined
arnsholt Which sucks, but I'm not sure it can be avoided 12:58
dalek pan style="color: #395be5">perl6-examples: 71195f3 | (Steve Mynott)++ | / (7 files):
correct directory name and add to be displayed
12:59
12:59 abraxxa joined
nine arnsholt: do we actually know that realloc causes problems in real world code? 13:00
13:01 brrt left
arnsholt It's probably going to work fine in 99% of cases 13:02
But the semantics of C allow for cases where it'll fail spectacularly
jnthn Yowser, .map seems to hit the slow-path multi-dispatcher 13:04
13:04 virtualsue left
itz hmmm I'm getting a GLRish looking panda error (when it reinstalls deps at the end) which I'm sure I didn't see yesterday 13:04
13:04 hernanGOA joined
itz hmm ignore me I think it's my env 13:05
abraxxa Hi! 13:07
timotimo: any luck finding the cause of the Unhandled exception: Cannot unbox a type object on syntax errors?
timotimo no, sorry
abraxxa ok
i'm continuing now, I guess I have to find the output column vars before execute but after prepare 13:08
timotimo can you give me a direct link to the code where adding or removing the ; gives you that problem?
13:08 rindolf joined
abraxxa timotimo: I said that yesterday: (00:00:55) abraxxa: timotimo: it happens for example if you remove the ; in line 688 in lib/DBDish/Oracle.pm6 13:09
timotimo looks
13:10 newbie1 joined
timotimo so if the line becomes essentially "my num64 $valuep @row.push($valuep);"? 13:10
13:10 yqt left
abraxxa yes 13:11
timotimo m: my @row; my num64 $valuep @row.push($valuep);'
camelia rakudo-moar ae6510: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b_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…»
timotimo m: my @row; my num64 $valuep␤@row.push($valuep);'
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…»
abraxxa i tried with only a part of the code but it didn't happen
timotimo that's certainly weird 13:12
resolve stage failed for DBIish: Dependency True is not present in the module ecosystem
haha, that's weird 13:13
13:13 skids left
pmurias arnsholt: if we allow reallocing an array we passed to C IMHO it's best it happens explicitly 13:14
yoleaux 02:38Z <hoelzro> pmurias: I'
02:38Z <hoelzro> pmurias: I've pushed my WIP branch for the JS merge here: github.com/perl6/nqp/tree/js-merge-wip
abraxxa timotimo: does the stacktrace help you?
pmurias hoelzro: great
timotimo where's the stacktrace?
abraxxa timotimo: paste.scsys.co.uk/498404 13:16
timotimo ===SORRY!=== Error while compiling lib/DBDish/Oracle.pm6
Bogus postfix
at lib/DBDish/Oracle.pm6:689
------> my num64 $valuep⏏<EOL>
that's what i get locally
can you pass --ll-exception, too, please?
ah, interesting, with --ll-exception i get Bogus Postfix, too 13:17
jnthn m: say 5455 / 5740
camelia rakudo-moar ae6510: OUTPUT«0.950348␤»
arnsholt pmurias: Yeah, that's an alternative too, I guess; to let the programmer ask for a resize 13:18
abraxxa timotimo: paste.scsys.co.uk/498405 13:19
so the exception is there but can't be printed or serialized? 13:20
timotimo yeah, something goes wrong when trying to print it properly
you can find sub print_exception (likely in src/core/Exception.pm) and put in print statements for each line and see when exactly it explodes 13:21
FROGGS timotimo: I also think that All Problems Are Solved™ when we can have fixed sized CArrays... 13:22
abraxxa timotimo: do i have to compile/install perl6 after that change? 13:24
i've edited ~/.rakudobrew/moar-2015.07.2/src/core/Exception.pm 13:25
FROGGS: a working Pointer[Pointer[foo]] implementation would make me get rid of all CArrays ;)
timotimo yes, you do have to recompile 13:26
abraxxa timotimo: how?
timotimo "make install" in moar-2015-07.2/
TimToady Bogus postfix can be caused by a runaway string 13:27
abraxxa timotimo: error while compiling, type X::Syntax::Confused
reason: Confused
at line 15689, near "say 23;\n "
TimToady m: say 'some unterminated text␤␤␤␤my $x = '☃found here';
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…»
abraxxa does it now support say at that level?
timotimo TimToady: we're not wondering why that error happens, we're wondering why the error reporting breaks sometimes
TimToady ah 13:28
timotimo abraxxa: it should
13:28 rurban left
timotimo if not, you can nqp::say(...) 13:28
abraxxa i had one after the $ex line which it didn't like
timotimo oh 13:29
abraxxa can it use more than one core to compile?
timotimo perhaps Expression.pm is actually that early inside the core setting
sadly not
abraxxa this line causes it: nqp::rethrow(nqp::getattr(nqp::decont($!), Exception, '$!ex'));
the second to last one
timotimo ok, so $! is probably not set properly? 13:30
as in, is not an instance of Exception
i mean, it's not an instance at all
can you say $!.defined? i expect it to be False
actually, use .DEFINITE instead
abraxxa let me check first if it bails out earlier
timotimo m: X::AdHoc.new().defined.say
camelia rakudo-moar ae6510: OUTPUT«True␤»
abraxxa it went from 1 to 7 and then to 21 13:31
timotimo nah, defined would be fine
13:31 tokuhir__ joined, thou joined
abraxxa say 7; is before nqp::sayfh($err, $e.gist); 13:31
there it bails out of the try block
13:31 Skarsnik joined
abraxxa so $e.gist is the thing that fails 13:32
timotimo interesting
13:34 ambs left 13:35 ambs joined, thou left 13:37 muraiki joined
abraxxa say $e.WHAT; outputs (X::Undeclared) 13:38
13:39 FROGGS left 13:41 audy left, ambs left, ambs joined
dalek kudo/nom: fa40403 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Have multi-dispatch ignore nameds after ;;.

Normally nameds require a bindability check be performed; sometimes we don't care for that. ;; is the natural "please ignore this" indicator to the multi-dispatcher.
13:43
kudo/nom: 821d4b7 | jnthn++ | src/core/Any-iterable-methods.pm:
.map named args don't factor into multi-dispatch.

The bindability check they caused in multi-dispatch could count for a lot of overhead if doing a map over a small number of items. This is a 5% saving in the Text::CSV benchmark, for example.
timotimo huh! 13:44
jnthn Profiling ftw :) 13:45
dalek pan style="color: #395be5">perl6-examples: 50880b1 | (Steve Mynott)++ | categories/cookbook/01strings/01-07reversing-strings.pl:
GLR fix 01-07reversing-strings.pl
pan style="color: #395be5">perl6-examples: 302c432 | (Steve Mynott)++ | t/categories/cookbook/14database-access.t:
GLR fix cookbook/14database-access.t
pan style="color: #395be5">perl6-examples: 4147056 | (Steve Mynott)++ | categories/cookbook/09directories/09-07-all-files-process.pl:
GLR fix File::Find use
ShimmerFairy Yeah, I've been finding that profiling is quite nice to do :)
13:45 FROGGS[mobile] joined
abraxxa timotimo: a working exception outputs (X::AdHoc) 13:47
pmurias profiling++ >>> guessing randomly ;) 13:48
|Tux| ohhhhhhhh, /me start building … 13:55
13:58 laouji left 14:05 thou joined 14:07 brrt joined 14:10 tokuhiro_ left 14:11 tokuhiro_ joined
dalek Heuristic branch merge: pushed 16 commits to rakudo/nom by ShimmerFairy 14:11
ast: 656e66b | ShimmerFairy++ | / (4 files):
Revert "Fix tests relying on ''.Numeric -> 0"

This reverts commit 27a9bb64936e4eaeafaaf9e576e5d7397f00ea8e.
14:11 dalek left 14:12 dalek joined, ChanServ sets mode: +v dalek
[Coke] wonders why dalek says 16 commits, but git log says one. 14:12
ShimmerFairy [Coke]: there were a couple of merges involved, perhaps that's why? 14:13
jnthn |Tux|: Working on another one, but I've Done It Wrong somehow and broken things :)
14:13 mullagain joined
jnthn err& 14:13
[Coke] ShimmerFairy: If I look at github.com/rakudo/rakudo/commit/f2...55ea3eecff - half of that is jnthn's commit. 14:14
trying to figure out what you changed so I can review it.
did you do a pull instead of a pull -rebase, maybe, then push? 14:15
ShimmerFairy [Coke]: start at the Revert "Revert ... bit
14:15 tokuhiro_ left
ShimmerFairy [Coke]: yes, I pulled and merged instead of rebased 14:15
[Coke] ShimmerFairy: look at the URL I posted. that's not listed there at all.
ShimmerFairy: please don't do that.
14:16 aborazmeh joined, aborazmeh left, aborazmeh joined
ShimmerFairy [Coke]: what's so wrong with that? I wasn't sure how rebasing would affect my merging work, since it moves history around, so I chose the safer route. 14:17
[Coke] It makes it harder for me to review what was done, for one. 14:18
that's been the convention, also, so far as I know. happy for one of the long time contributers who is also a git person to chime in. 14:19
ShimmerFairy Like I said, I was unsure how much worse rebasing would screw with the history (I know it doesn't update timestamps in commits it moves, at least), and considering I had to start this merge with a revert of a revert of a merge, I wasn't inclined to risk more strife :) 14:20
14:20 aborazmeh left
[Coke] ok. I hope someone else is reviewing your commits here. 14:21
nine Long term experience shows: please rebase instead of merge. No one is helped by commits appearing somewhere back in history (especially since it makes bisect more complicated). git-rerere is your friend: git-scm.com/docs/git-rerere 14:22
timotimo i also tend to rebase my feature branches every now and again 14:25
14:25 FROGGS joined, pecastro left
ShimmerFairy nine: AFAICT, rerere wouldn't've been useful for me in this case :) 14:26
FROGGS jnthn: do I have to port fa40403 to jvm?
itz .tell [ptc] 99problems.t is more like 999glr-problems.t :) 14:27
yoleaux itz: I'll pass your message to [ptc].
FROGGS hmmm, potentially not...
14:28 FROGGS[mobile] left
|Tux| jnthn++ 14:31
test 50000 48.140 48.059
test-t 50000 48.645 48.564
that is way more than 5%
FROGGS hmmm, interesting: 14:32
./perl6-j -e 'multi foo(Str) { say 1 }; multi foo(Int) { say 2 }; say foo'
===SORRY!=== Method 'collisions' not found for invocant of class 'NQPClassHOW'
timotimo very nice
[Coke] |Tux|: how to read those numbers agian?
|Tux| 48.14 seconds to use Text::CSV to parse 10000 lines 14:33
timotimo "-t" just means without startup time
|Tux| test is my old reference script
test-t is the working edition
timotimo oh?
|Tux| test has NO features whatsoever. a basic start
itz hmmm is "perl6 -v" stuck on 2015-07?
|Tux| test-t has all the bells and whistles people use Text::CVSV_XS for 14:34
[Coke] there was no 08
timotimo itz: the -v gets set only when you Configure.pl
itz ah from release
[Coke] there was no 2015.08 tag.
14:35 perl6_newbee joined
ugexe there are stil a few 2015.09 deprecations that got missed... MONKEY_TYPING and `unit <module-name>`-thing 14:38
dalek p/js: b5d7db9 | (Pawel Murias)++ | tools/build/process-qregex-tests:
Run passing rx_quantifiers test
14:43
p/js: f19a35e | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp:
Add a hack so that ifnull returns true on undefined.

Run passing rx_backtrack and rx_subrules tests
14:43 dalek left
pmurias shouldn't dalek throttle it's output? 14:44
14:44 dalek joined, ChanServ sets mode: +v dalek
moritz pmurias: it should 14:44
14:45 pyrimidine joined
PerlJam ugexe: ack DEPRECATE src | wc -l # 122 14:45
ugexe: quite a few :)
ugexe i just went with a basic github search and only got 4-5 :x 14:46
14:46 zakharyas left
PerlJam yeah, my ack has bunches of false positives. I defer to your wisdom :) 14:47
ugexe oh, i searched for `2015.09` 14:48
abraxxa |Tux|: how do those values compare to the Perl 5 version?
|Tux| which of the 6? 14:49
|Tux| concludes abraxxa has not seen my talk in Granada :P
14:50 xinming joined
|Tux| have a minute. rerunning 14:50
abraxxa |Tux|: I wasn't able to go to YAPC::EU this year ;(
itz I'm have rather have seen RAKUDO_DEPRECATIONS_FATAL be 1 so module authors can still see the replacement methods 14:51
14:51 xinming_ left
itz what with the GLR and removing deprecations there is likely to be a lot of fallout on modules 14:51
ugexe thats the point of doing it now. the people that need to fix things already likely need to fix their stuff for glr 14:52
abraxxa timotimo: if I change the signature from Pointer[ub2] $foo to ub2 $foo is rw, and pass a my ub2 $foo instead of my Pointer[ub2] $foo my code fails with an Oracle exception
shouldn't those be the same?
itz ugexe: yes but people can't see how to fix it
itz we are removing the information about the deprecation replacement
FROGGS itz: the deprecation messages have been shown for many many months... if nobody cared until now, nobody will care 14:54
|Tux| abraxxa, tux.nl/Talks/CSV6/speed3.html + tux.nl/Files/20150909165444.png
dalek p/js: 5dcd656 | (Pawel Murias)++ | tools/missing-js-tests:
Update tools/missing-js-tests script
14:55
|Tux| top 6 are perl5, csv is a perl6 state machine, ip5 is using Inline::Perl5 to use the perl5 modules 14:56
ugexe the biggest deprecation effect would appear to be related to Test.pm, which will still tell you the new method
FROGGS (sorry) 14:57
abraxxa |Tux|: so still a magnitude slower ;(
|Tux| I hope optimisations in GLR will get us to ± 25 14:58
14:58 camelia joined
FROGGS |Tux|: 25s? 14:58
|Tux| and maybe bright people (like lizmat) can now spot slow points in my approach
do you see 25s as still too slow or unlikely an achievable goal? 14:59
14:59 ChanServ sets mode: +v camelia
abraxxa FROGGS: can you comment on my NativeCall question? 15:00
|Tux| the fastest I ever measured (since Oct 2014) was 36 seconds
abraxxa i'd prefer using is rw over Pointer[]
15:00 xinming left
jnthn FROGGS: re fa40403, no need to port 15:00
FROGGS jnthn: yeah, guessed so after looking more closely 15:01
abraxxa: in what way?
15:01 dha joined
FROGGS abraxxa: like 'Str is rw' to say 'char**'? 15:01
abraxxa when I change Pointer[ub2] $alenp, to ub2 $alenp is rw, in the signature and define it with my ub2 $alenp; instead of my Pointer[ub2] $alenp; it fails 15:02
with an Oracle exception
FROGGS jnthn: do you have any idea why I can get this? Method 'collisions' not found for invocant of class 'NQPClassHOW'
NQPClassHOW basically does NQPConcreteRoleHOW, which has that method
jnthn FROGGS: There's some poor error reporting sometimes when things go wrong with roles
hoelzro pmurias: there are outstanding issues with that branch; the biggest one that comes to mind is that I had to revert an optimization that jnthn did to get the JS backend to work 15:03
o/ #perl6
FROGGS jnthn: I dunno where to start looking :o(
hoelzro pmurias: only a handful of tests are passing (better than zero, though), and I believe that m-test has a segfault in it
FROGGS abraxxa: weird... we even test something like that in the nativecall test suite 15:04
abraxxa FROGGS: i even tried initializing the var with my ub2 $alenp = 0;
ub2 is a uint16, is 'is rw' not supported for it? 15:05
FROGGS that's supported
15:05 xinming joined 15:09 khw joined 15:11 xinming left, tokuhiro_ joined, xinming joined
abraxxa any idea why it causes the error? 15:12
15:12 rurban joined
FROGGS no, as I mentioned, we even test for it and it works in the test 15:13
15:16 tokuhiro_ left, dha left 15:17 dha joined
FROGGS if you could provide a test case, we could very likely provide a fix in exchange :o) 15:17
15:19 brrt left
Loren night, perl & everyone. 15:20
abraxxa Loren: bye!
Loren abraxxa, bye.
abraxxa FROGGS: maybe my bind error comes from the fact that a pointer to a pointer isn't null
15:20 Loren left
abraxxa A pointer to a pointer to a define handle. If this parameter is passed as NULL, this call implicitly allocates the define handle. For a redefine, a non-NULL handle can be passed in this parameter. This handle is used to store the define information for this column. 15:20
FROGGS you don't pass NULL in either case 15:23
abraxxa no, that's another function
FROGGS :S
abraxxa I use OCIBindByName for the input parameters, which works
there I've used Pointer[] instead of is rw 15:24
ARGHHHH
OCIBindByPos vs OCIDefineByPos()
jnthn m: say 5219 / 5538 15:25
camelia rakudo-moar f2be6b: OUTPUT«0.942398␤»
abraxxa you bind input params but define output select list fields 15:26
YES, segfaul!
dalek kudo/nom: 3e416bc | jnthn++ | src/core/Any-iterable-methods.pm:
Improve .map performance in sink context.

Can run a tighter loop and avoid caring about Slips.
15:27 raiph left
abraxxa how can i reserve memory for a var I pass to a NativeCall function using a Pointer with is rw? 15:29
15:31 pat_js joined
jnthn |Tux|: ^^ should be another several percent off 15:32
pmurias hoelzro: I'll see if there are things I can fix
hoelzro pmurias: thanks, let me know if you have any questions what I've done so far
abraxxa FROGGS: now from segfault to *** Error in `/home/abraxxa/.rakudobrew/moar-2015.07.2/install/bin/moar': malloc(): smallbin double linked list corrupted: 0x00000000099d60c0 *** 15:34
nine jnthn: so we now start to cash in on those performance improvements the GLR allows? :) 15:36
FROGGS abraxxa: what's the signature of that C function?
abraxxa FROGGS: paste.scsys.co.uk/498414 15:37
timotimo blogs.perl.org/users/sterling_hanen...ation.html
abraxxa FROGGS: this are the docs docs.oracle.com/database/121/LNOCI/...LNOCI72807
FROGGS abraxxa: isnt that identical to what we did yesterday? CArray[Pointer[Str]]? 15:38
or at least CArray[int8] or whatever 15:39
or in case of a native just int8 is rw 15:40
jnthn nine: Yeah, figured I'd work on some of those
FROGGS abraxxa: so your paste about int and real look good, the Str candidate not so
timotimo when my @a = 'foo' xx 1000 gets faster, we'll beat a benchmark where post-glr is pretty bad compared to pre-glr 15:41
but that doesn't really test performance in general
it's really a microbenchmark for exactly that case that'd get faster 15:42
abraxxa FROGGS: i've tried, still smallbin double linked list corrupted
FROGGS abraxxa: I've not clue
grondilu very unhelpful error message:
===SORRY!===
Cannot invoke this object (REPR: Uninstantiable)
jnthn fixed one of those today 15:43
Please golf and RT it if you still have it at HEAD
15:49 ab5tract_ left, newbie1 left
grondilu golfing this will be a hassle 15:50
it's for my md5 implementation. 15:51
abraxxa FROGGS: sometimes the error occurs when the first row is fetched and sometimes when the first column of the second column is defined (which would be enough to happen only once) 15:52
jnthn grondilu: Since it's a compile time error, I'd just remove half the code repeatedly until it goes away or something 15:54
abraxxa when does @array.definded return false?
grondilu it doesn't look like a compile time error. I've included a C<note "ok"> in a loop and it prints it once. 15:55
(before returning the error)
jnthn grondilu: Oh... :S Then it's...confused
abraxxa: Approximately never
15:56 n0tjack joined
jnthn m: say 4549 / 5287 15:56
camelia rakudo-moar 3e416b: OUTPUT«0.860412␤»
15:57 domidumont left
timotimo holy wow, is that another incremental change? 15:57
jnthn Mostly to the benefit of Text::CSV, but yeah, if it spectests alright 15:58
pyrimidine m: subset Strand-Int where any(-1, 0, 1); '-' ~~ Strand-Int; 15:59
camelia rakudo-moar 3e416b: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3-7⏏' (indicated by 7⏏)␤ in any accepts_type at src/gen/m-Metamodel.nqp:3237␤ in block <unit> at /tmp/nGnKdus_DE:1␤␤Actually thrown at:␤ in any ac…»
pyrimidine m: subset Strand-Int where any(-1, 0, 1); -1 ~~ Strand-Int;
camelia ( no output )
pyrimidine just ran into that one in some older code (I think prior to enum) 16:00
dalek kudo/nom: d260bd1 | jnthn++ | src/Perl6/Actions.nqp:
Better code for /$a/ where $a is typed as Str.

Text::CSV uses this pattern for building up its regex. LITERAL is a load cheaper than INTERPOLATE since it doesn't have so many cases to consider.
16:01
16:03 tokuhir__ left
japhb |Tux|: What's the time now with jnthn++'s latest fix? 16:03
grondilu m: sub little-endian($w, $n, *@v) { (@v X+> ($w X* ^$n)) X% (2 ** $w) }; say little-endian(8, 4, [1, 2, 3, 4]) 16:04
camelia rakudo-moar 3e416b: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
jnthn I've done 2 since the last numbers :)
japhb jnthn++ # Yep, noticed that. :-) 16:05
16:05 newbie1 joined
grondilu m: say [1, 2, 3, 4] X+> (8 X* ^2) 16:07
camelia rakudo-moar 3e416b: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
grondilu m: say [1, 2] X+ (1 X* ^2) 16:08
camelia rakudo-moar 3e416b: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: Uninstantiable)␤»
grondilu that should be golfed enough
japhb grondilu: So you need two cross operators, a range, and an Array to replicate? That's one heck of an obscure case. 16:14
psch m: say (8 X* ^2) X+ [1, 2] # it gets better
camelia rakudo-moar d260bd: OUTPUT«(1 2 9 10)␤»
japhb (Not obscure as in "unlikely to be seen in the wild", because clearly it's been seen, but rather, still complex enough to be hitting some edge case code for sure.)
psch++ # woah. 16:15
FROGGS gah! 16:17
jnthn .ask ShimmerFairy Did you run "make test" also? I fear your val work maybe busted t\04-nativecall\12-sizeof.t
yoleaux jnthn: I'll pass your message to ShimmerFairy.
FROGGS ./perl6-j -e 'multi foo(Str) { }; multi foo(Int) { }; foo' # Method 'collisions' not found for invocant of class 'NQPClassHOW' 16:18
./perl6-j --optimize=off -e 'multi foo(Str) { }; multi foo(Int) { }; foo' # Cannot call foo(...); none of these signatures match: (Str) (Int)
I should've checked this earlier
jnthn m: say 4494 / 4549 16:19
camelia rakudo-moar d260bd: OUTPUT«0.987909␤»
jnthn Hm, small but I'll take it
FROGGS :o)
colomon just had rakudo changes break his $work code. 16:20
jnthn It knocks 2 more GC runs off the Text::CSV run I'm doing
colomon: GLR ones, or other ones?
(or not sure)
colomon jnthn: dunno yet, but GLR seems like a safe bet.
yup, needed a strategic slip 16:27
dalek pan style="color: #395be5">perl6-examples: 3ac79ec | (Steve Mynott)++ | / (9 files):
GLR fixes
16:30
16:37 mattp__ joined
mullagain So is there a stable release for Rakudo? 16:38
dalek pan style="color: #395be5">perl6-examples: 29399c3 | (Steve Mynott)++ | categories/99-problems/P36-ovid.pl:
fix one more GLR test
16:39
16:45 brrt joined 16:46 mullagain left
[Tux] last updates broke T::C, but it indeed got faster 16:46
test 50000 41.305 41.222
test-t 50000 43.329 43.247
jnthn mullagain: Rakudo can only be as stable as Perl 6 (the language) and it's a few months until the stronger back-compat (e.g. stability) comes into effect.
[Tux] I'll have a next look later
jnthn [Tux]: Broke how?
OK
[Tux] t/10_base.t ....... ok 16:47
===( 111;1 1/? 2/? 0/? 0/? )====================================Cannot unbox a type object
in sub chunks at /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pm:866
in method parse at /pro/3gl/CPAN/Text-CSV6/lib/Text/CSV.pm:908
in block <unit> at t/12_acc.t:168
16:47 mullagain joined
nine |Tux|: in case you didn't see it. I do have a fix for your Inf problem 16:47
jnthn Some things confuse me a little in Text::CSV
Liike
$str.split ($re, :all).flat.map: {
Can .split ever return something *not* flat?
m: "abcbd".split(/b/, :all).perl.say 16:48
camelia rakudo-moar d260bd: OUTPUT«("a", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 2, from => 1), "c", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 4, from => 3), "d").Seq␤»
nine m: "abcbd".split(/b/, :all).flat.perl.say
camelia rakudo-moar d260bd: OUTPUT«("a", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 2, from => 1), "c", Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "abcbd", to => 4, from => 3), "d").Seq␤»
16:51 n0tjack left
masak evening, #perl6 16:55
pmurias masak: hi 16:56
hoelzro: it seems that most of the test failures we caused by @array.push being broken on nqp-js (and there are a number of assorted minor things) 16:57
hoelzro: I'll fixes those tommorow (have to get afk now)
abraxxa can someone tell me what misusage of NativeCall can lead to malloc(): smallbin double linked list corrupted: 0x0000000007d4bae0 ***? 16:58
hoelzro pmurias: great! would you also be able to figure out why the optimization I mentioned on github.com/perl6/nqp/commit/a6b1fa...74c171a20e breaks the JS build? 16:59
it must be JS-related, but I don't think I understand the impl enough to say why
16:59 brrt left
hoelzro gen/js/stage2/nqpmo.moarvm complains that it can't find add_multi_method or something 16:59
[Tux] nine, /me scrolls back 17:00
TimToady m: say ’Gangnam style!’; # should we support Swedish/Finnish quoting?
camelia rakudo-moar d260bd: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be 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…»
[Tux] jnthn, like?
JimmyZ abraxxa: I don't think anyone knows about it, a golfed test may help 17:01
though I don't have oracle 17:02
abraxxa i use a docker image for it 17:03
17:03 pmurias left
FROGGS hoelzro: what is the optimization you are talking about? 17:04
17:05 perl6_newbee left 17:06 n0tjack joined 17:09 xinming left
[Tux] nine, I don't see your change other than the hint to make gather default to lazy, which I think is correct 17:09
dalek kudo/nom: 5b659cc | jnthn++ | src/Perl6/Actions.nqp:
Loops no longer need sinking.

They no longer evaluate to anything (and when they will start to, it they will be lazy).
17:10
kudo/nom: e478f04 | jnthn++ | src/core/ (3 files):
Cheaper way of avoiding sinking.

Saves some allocations.
jnthn |Tux|: Well, only the one I said really...
[Tux] understands others being confused, but is ready to explain if he can
jnthn |Tux|: I think there was something else but I forgot it :(
TimToady: I think you need Korean quotes for Gangnam style :P 17:11
17:11 xinming joined
jnthn Time to cook us dinner :) bbl 17:11
[Tux] $str.split ($re, :all).flat.map: { <= was code as suggested by lizmat: *I* am not that clever (yet) :)
nine |Tux|: I've the rest here locally. Just trying to narrow down the changes to the actual fix. But first I have to make some dinner ;)
[Tux] what it does is split the string into "chunks" 17:12
nine, enjoy!
a chunck is eithe one of $eol, $sep, $quote, $escape, or $anything-else
nine jnthn: too bad the my $ = is not the cheapest way. I kinda liked it :) 17:13
17:14 vendethiel joined
[Tux] jnthn, $quo and $esc can both be Str (the undefined string), which currently breaks the regex 17:15
17:19 mohij joined
JimmyZ m: my $ := 1,2,3 17:20
camelia ( no output )
17:20 domidumont joined 17:21 CIAvash joined
dha m: my $ := 1, 2, 3;say $ 17:21
camelia rakudo-moar d260bd: OUTPUT«(Any)␤»
dha m: my $ := 1, 2, 3;say $.perl
camelia rakudo-moar d260bd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/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␤»
dha Hm. That's unfortunate. 17:22
[Tux] m: my Str $s; my Regex $r = rx{ "a" | "b" | $s | $s }; "fooo" ~~ $r and say 1;
camelia rakudo-moar d260bd: OUTPUT«Cannot unbox a type object␤ in block <unit> at /tmp/j6I6h0OU9U:1␤␤»
[Tux] there ya go
abraxxa FROGGS: how can i reserve memory for $valuep[0] = Pointer[Str].new; ?
masak dha: no, it's quite explainable.
dha Oh, I'm sure it's explainable. :-) 17:23
masak dha: in the first eval, `$` is a new `state` variable. (you can't refer to a `$` after you declared it; they're once-only)
[Tux] Inline::Perl5 also fails:
Ambiguous call to 'p6_to_p5'; these signatures all match:
:(Inline::Perl5 $: Int:D $value, *%_ --> Pointer)
:(Inline::Perl5 $: Str:D $value, *%_ --> Pointer)
masak dha: in the second eval, `$.perl` means `self.perl`, but you're not in a method.
dha: your original mistake seems to be to assume that you can refer back to a declared `$` -- but that's exactly what you can't do with them, since they aren't even installed in the lexpad. 17:24
dha: and all your attempts to access it ended up meaning something else :)
JimmyZ m: (my $).VAR.sqy
camelia rakudo-moar d260bd: OUTPUT«Method 'sqy' not found for invocant of class 'Any'␤ in block <unit> at /tmp/Z3LSGpYPqk:1␤␤»
JimmyZ m: (my $).VAR.say
camelia rakudo-moar d260bd: OUTPUT«(Any)␤»
JimmyZ m: dd (my $) 17:25
camelia rakudo-moar d260bd: OUTPUT«$ = Any␤»
JimmyZ m: dd (my %)
camelia rakudo-moar d260bd: OUTPUT«% = {}␤»
dha You're not saying you can't use a state variable after it's declared, are you?
Also, now I'm looking at it and thinking "why/how do you 'my' a state variable? 17:26
JimmyZ m: state $a;
camelia ( no output )
dha I note again that C<state> and C<$> are almost totally undocumented... :-/
masak m: sub foo { state $x = 4; say $x++ }; foo for ^5 17:28
camelia rakudo-moar d260bd: OUTPUT«4␤5␤6␤7␤8␤»
masak dha: no, I'm not saying that. I'm saying that if your declaration is `my $`, then that `$` is nowhere to be found. (and it has nothing to do with `state` variables.) 17:29
dha Isn't C<$> the anonymous state variable?
masak dha: specifically, what you're doing is not "'my'-ing a state variable".
dha: not in a `my` declaration, it isn't.
dha: there it's just a "don't assign anything here" placeholder. 17:30
m: my ($a, $, $c) = 1, 2, 3; say $c
camelia rakudo-moar d260bd: OUTPUT«3␤»
dha Hm. that seems confusing to me.
17:30 n0tjack left
masak that's the original use of `$`. 17:30
the `$` meaning `(state $)` came much, much later.
dha That doesn't make it less confusing. :-) 17:31
Also, I'm getting the same error without the "my". So maybe I'm totally confused. Which is entirely possible.
masak you can't refer to a state `$` either! why do you keep expecting to? :) 17:32
look, they're *anonymous* variables!
they don't have a name. they don't have an entry in the lexpad.
dha Great. So what are they for? 17:33
masak one-time use.
m: sub foo { say ++$ }; say foo() for ^6
camelia rakudo-moar d260bd: OUTPUT«1␤True␤2␤True␤3␤True␤4␤True␤5␤True␤6␤True␤»
masak m: sub foo { say ++$ }; foo() for ^6
camelia rakudo-moar d260bd: OUTPUT«1␤2␤3␤4␤5␤6␤»
masak the thing with `state` variables is that they stick around. so referring to them just once in a program makes sense sometimes.
the use of `my $` I demonstrated above with `my ($a, $, $c) = 1, 2, 3;` -- basically, skipping over rhs values. 17:34
17:34 n0tjack joined
dha ok. That none of this is documented gives me a sad, but I guess there's not a lot to be done about that. :-/ 17:35
17:36 spider-mario joined
masak ++dha # documenting it 17:36
dha Also, that code is giving me an error. I may need to build a new raked.
I'm trying to document it. I'm not sure I understand it well enough to do so though... :-/
ugexe m: my @a = 1,2,3; for ^2 { say @a.map: {$ -= 2}; } # a better example of its usefulnes? 17:37
camelia rakudo-moar d260bd: OUTPUT«(-2 -4 -6)␤(-2 -4 -6)␤»
ugexe otherwise you s/$/state $a/, which is longer 17:38
17:38 itz left
dha m: sub foo { say ++$ }; say foo() for ^6 17:38
camelia rakudo-moar d260bd: OUTPUT«1␤True␤2␤True␤3␤True␤4␤True␤5␤True␤6␤True␤»
dha Yeah, rebuilding.. 17:39
17:39 n0tjack left
muraiki m: .say for ^++$ 17:44
camelia rakudo-moar e478f0: OUTPUT«0␤»
muraiki m: .say for 0 .. ++$
camelia rakudo-moar e478f0: OUTPUT«0␤1␤»
masak m: say ++$; say ++$ # and each new one is different 17:47
camelia rakudo-moar e478f0: OUTPUT«1␤1␤»
masak so really one-time-use variables.
17:47 newbie1 left
muraiki the only times I've used `state` so far in perl5 are when memoizing functions, but I guess now that that's built in in perl6 I'll have to think of other uses :) 17:48
although there's also the p5 memoize module, which I just remembered
17:49 pat_js left
abraxxa doc.perl6.org/language/nativecall still points to the zavolaj git repo, should be fixed 17:49
17:50 n0tjack joined 17:51 mullagain left 17:52 mullagainn joined 17:53 mullagainn left 17:54 itz joined
abraxxa timotimo, FROGGS: i've pushed what I've coded today, please take a look if you see any mistakes in my define calls 17:58
FROGGS abraxxa: url?
17:58 cognominal left
abraxxa FROGGS: github.com/abraxxa/DBIish/blob/mas...Oracle.pm6 18:01
18:01 espadrine left
abraxxa especially this method github.com/abraxxa/DBIish/blob/mas...e.pm6#L621 18:01
the define calls don't throw an error any more but the OCIStmtFetch2 github.com/abraxxa/DBIish/blob/mas...e.pm6#L741 this one: *** Error in `/home/abraxxa/.rakudobrew/moar-2015.07.2/install/bin/moar': malloc(): smallbin double linked list corrupted: 0x0000000008ef63e0 *** 18:04
18:04 dakkar left 18:08 ShimmerFairy left
FROGGS abraxxa: what call of OCIDefineByPos2_* happens before this OCIStmtFetch2? 18:09
abraxxa paste.scsys.co.uk/498424 18:10
FROGGS abraxxa: what is CHR(1)? sounds like a single byte or codepoint or so... 18:11
18:11 telex left
FROGGS this looks fishy: github.com/abraxxa/DBIish/blob/mas...e.pm6#L684 18:12
18:12 telex joined
abraxxa warn "defining #$field_index '$col_name'($datalen) as CHR($dty)"; 18:12
the thing in the brackets is the datatype
i tried to use SQLT_STR instead of SQLT_CHR because the cdemo81.c example used that for a VARCHAR2 column as well 18:13
18:14 dwarring joined
FROGGS hmmmm... 18:14
okay, google confirms that SQLT_STR should be usable here 18:16
hoelzro FROGGS: the one included with NQP a757bfa 18:17
which utilitizes MoarVM 0acd74b
abraxxa FROGGS: i wonder why the OCIAttrGet returns SQLT_CHR but I didn't find a clear indication in the past what to use when binding parameters, for those I've use SQLT_CHR which works 18:19
FROGGS abraxxa: have you tested other values for $value_sz? like zero or $datalen? 18:20
18:21 ShimmerFairy joined
FROGGS hoelzro: I see 18:22
18:23 cognominal joined
hoelzro FROGGS: if you remove the $sh_ast in the MAST Compiler and replace it with null, that causes a problem with nqp-js' nqpmo 18:23
I spent a good 4-6 hours trying to figure out why, unfortunately with nothing to show for it =/
FROGGS :o(
18:25 sufrostico left 18:27 dha left 18:32 yqt joined
jnthn [Tux]: Thanks for the golf :) 18:40
hoelzro: Please don't lose that opt on MoarVM
hoelzro: If you need to put in a dynvar you can test on the JVM backend or something then that's fine 18:41
star: my Str $s; my Regex $r = rx{ "a" | "b" | $s | $s }; "fooo" ~~ $r and say 1;
camelia ( no output )
dalek ast: 468c7bd | TimToady++ | S02-literals/quoting-unicode.t:
Discriminate against fewer nationalities
hoelzro jnthn: I don't mean to; I just pushed the branch without it so others can look at the merging work I've been doing and perhaps help me figure out how to keep the optimization
dalek kudo/nom: b21168c | TimToady++ | src/Perl6/ (2 files):
allow Swedish/Finnish/Serbian/Macedonian quotes
18:41 Alina-malina left
hoelzro currently, nqp-js won't build with that optimization 18:42
and I can't figure out why
jnthn TimToady++ # Finnished Perl 6
TimToady well, when your slides all had Swedish quotes, I thought I needed to do something about that...
jnthn hoelzro: Probably because its absence signifies something special to Moar
18:42 jferrero left 18:43 jferrero joined
abraxxa FROGGS: yes, $datalen, $datalen + 1 (as documented and found in various examples to allow space for the terminating null byte, ($datalen * 2) + 1 because utf-8, also * 4, ... 18:45
FROGGS abraxxa: does running it in gdb reveal anything? 18:46
nine Where do I find the implementation of "return"? 18:50
FROGGS nine: src/core/controls.pm
nine FROGGS: thanks! 18:51
FROGGS you're welcome :o)
dalek p: 2b61433 | jnthn++ | src/QRegex/Cursor.nqp:
Make !LITERAL cope with type objects.
18:52
18:52 sufrostico joined
hoelzro jnthn: any idea what it could be in the JS backend that would cause this error? gist.github.com/hoelzro/469a0e157c3b48843d48 18:55
dalek kudo/nom: c20c249 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP for !LITERAL with type object fix.
18:56
jnthn That looks like a corrupted string heap
add_multi_method is surely not the name of a dependency
dalek ast: cd9c34c | jnthn++ | S05-metasyntax/litvar.t:
Test to cover interpolating Str type object in rx.

Covers a regression caused in Text::CSV by a recent optimization in Rakudo.
18:57
jnthn [Tux]: Should be fixed now.
[Tux] fetches
jnthn And hopefully without any harm to the improvement.
18:58 mprelude left
[Tux] FWIW IMHO those Str's could be optimized away. I have no idea how explain what it should/could match 18:58
18:58 mprelude joined
hoelzro ahhh 18:58
18:59 mprelude left, mprelude joined
jnthn [Tux]: Well, the interpolation perf improvement is a nice thing to have 18:59
hoelzro jnthn: so that fact that the string heap is null with the optimization is making something in the JS backend mad?
jnthn hoelzro: Passing null there means "use the same string heap as the .moarvm file has overall" 19:00
19:00 vendethiel left
jnthn hoelzro: But that probably doesn't map cleanly to JS 19:00
hoelzro right, so something in the JS backend must not understand that
jnthn hoelzro: I'm not surely you can sanely make it do so
hoelzro: It doesn't really make sense for JS
hoelzro the error is still happening in NQP land; JS execution hasn't started yet. is it still not possible? 19:01
abraxxa FROGGS: can you guide me how to do that?
FROGGS abraxxa: you run perl6 t/..., right? 19:02
abraxxa FROGGS: yes, perl6 -Ilib t/45-oracle-common.t
FROGGS run perl6-gdb-m instead of perl6
abraxxa oh, cewl!
Program received signal SIGABRT, Aborted. 19:03
0x00007ffff7403267 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:55
55../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
FROGGS type 'bt full' and gist the output
[Tux] All tests successful.
Files=25, Tests=19732, 66 wallclock secs ( 3.12 usr 0.16 sys + 223.81 cusr 2.27 csys = 229.36 CPU)
Result: PASS
jnthn [Tux]: \o/ 19:04
[Tux]: And current time?
abraxxa FROGGS: paste.scsys.co.uk/498430
[Tux] still running
you're being impatient :)
jnthn ;) 19:05
[Tux] test 50000 40.916 40.834
test-t 50000 43.379 43.296
give or take some noise
FROGGS abraxxa: that doesnt tell me anything sadly :o(
jnthn Hm, at earlier today it was > 50? :) 19:06
*and
FROGGS the all time low was 38 IIRC 19:07
49s today according to the png: tux.nl/Files/20150909165444.png 19:08
19:08 [Sno] left
FROGGS m: say 4091.6/49.042 19:08
camelia rakudo-moar e478f0: OUTPUT«83.430529␤»
FROGGS facepalms 19:09
[Tux] paste.scsys.co.uk/498431
FROGGS I've got a beer besides me... and guess what I forgot?
muraiki bottle opener 19:10
[Tux] to drink it?
FROGGS no
[Tux]: aye
muraiki hamburger
FROGGS -.-
muraiki oh
that's even worse :)
although sometimes I like beer closer to room temp
FROGGS though that means I have beer now :o)
it is still cold enough
[Tux] you think out of the box^Wbottle
FROGGS I'd love to hack on something decent :/ 19:11
unbreaking the jvm build is not so much fun, so to say 19:12
jnthn m: say 40.9 / 51.8
camelia rakudo-moar c20c24: OUTPUT«0.789575␤»
FROGGS jnthn: I love it when you do that :o)
[Tux] FROGGS, fix I::P5 :P
jnthn Not quite 25% knocked off since yesterday, but getting there... :) 19:13
FROGGS [Tux]: why?
err, sorry, was thinking about v5
[Tux] because it is br0ken?
FROGGS [Tux]: what's broken in there?
[Tux] verifies before reposting … 19:14
Ambiguous call to 'p6_to_p5'; these signatures all match: 19:15
:(Inline::Perl5 $: Int:D $value, *%_ --> Pointer)
:(Inline::Perl5 $: Str:D $value, *%_ --> Pointer)
FROGGS I had tested its glr branch at the SPW
ohh, this one
abraxxa FROGGS: ;-(
jnthn: does the stacktrace tell you anything?
nine m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str"; }; foo(1); 19:16
camelia rakudo-moar c20c24: OUTPUT«Int␤»
nine m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str"; }; foo("str");
camelia rakudo-moar c20c24: OUTPUT«Str␤»
FROGGS how can match something Int and Str?? 19:17
nine So, how can the same be broken in Inline::Perl5?
jnthn m: multi foo(Int:D $v) { say "Int"; }; multi foo(Str:D $v) { say "Str" }; foo <1>
camelia rakudo-moar c20c24: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(Int:D $v)␤:(Str:D $v)␤ in block <unit> at /tmp/CPSJFvonEY:1␤␤»
jnthn m: say <1>.WHAT
camelia rakudo-moar c20c24: OUTPUT«(IntStr)␤»
FROGGS ohh
we already have that in nom?
jnthn ShimmerFairy merged it in earlier today, yeah
ShimmerFairy++ even :) 19:18
FROGGS ahh, that explains it :o)
nine So, don't pass something like <123> to a Perl 5 method or function
FROGGS or preceed it with + or ~ 19:19
19:19 Alina-malina joined 19:20 orbusbak joined
jnthn Hmm, doesn't === require an exact match on type? 19:20
19:20 orbusbak left
jnthn m: say 1.0 === 1 19:20
camelia rakudo-moar c20c24: OUTPUT«False␤»
19:21 orbusbak joined
hoelzro interesting article from a fellow language designer (I espeically like the "lessons learned" section) medium.com/this-is-not-a-monad-tut...1133e3fd1c 19:21
19:23 shinobi-cl left 19:26 domidumont left
nine So, p6argvmarray doesn't handle named args at all 19:27
[Coke] some failures on OS X - gist.github.com/coke/3ac0fdf668553f4870a5 19:28
include a repeatable thread.t failure. 19:29
apparently got a roast update but missed a nom update... 19:30
masak m: my @test; while @test { my $_ = 1 }
camelia rakudo-moar c20c24: OUTPUT«===SORRY!===␤Cannot find method 'value'␤»
[Coke] ok, now just thread.t failing. 19:32
19:33 n0tjack left
[Coke] rant: "make install" doesn't do everything "make" does. 19:34
(like create ./perl6) 19:35
nine jnthn: how is return 1, :a(1); supposed to work if &return uses p6vmargarray that only uses MVM_args_slurpy_positional but not MVM_args_slurpy_named?
[Coke] anyone else seeing S17-lowlevel/thread.t only running 17 tests?
FROGGS [Coke]: was reported on #moarvm earlier
nine jnthn: I could start to tinker around there and probably kill performance :D But I'd be more interested in what the design really is supposed to be.
abraxxa how can I set a Str to a value and get a Pointer to it? 19:36
[Coke] FROGGS++ Thanks. 19:37
TimToady m: say ’Swedish style!’; 19:38
camelia rakudo-moar c20c24: OUTPUT«Swedish style!␤»
[Coke] m: say ’sdfs‘asdf’; 19:39
camelia rakudo-moar c20c24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_jQD_mDqZw␤Two terms in a row␤at /tmp/_jQD_mDqZw:1␤------> 3say ’sdfs‘7⏏5asdf’;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
TimToady you can't nest those
[Coke] m: say ’sdfs‘ 19:40
camelia rakudo-moar c20c24: OUTPUT«sdfs␤»
[Coke] m: say ’sdfs”
camelia rakudo-moar c20c24: OUTPUT«5===SORRY!5=== Error while compiling /tmp/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 …»
[Coke] looks cromulent, carry on. :) 19:41
jnthn nine: There is (I think) some code in Actions.nqp that is meant to spot return calls and not promote :a(1) to a named arg at all
abraxxa FROGGS: just found out that the parameter binds don't work as well, they execute but insert bogus data 19:42
masak refuses to have anything to do with those Swedish-style quotes 19:43
19:44 vendethiel joined
[Coke] masak: I have to deal with them in prose. I'm honestly surprised they got added to the language, but I'll take it. 19:45
nine jnthn: haven't found any code dealing specifically with return in neither Actions.nqp nor Grammar.nqp 19:47
TimToady it's really to render the smart quote correctors powerless
nine jnthn: oh there it is! 19:49
TimToady like the one that "fixed" jnthn++'s slides 19:51
masak I'm not sure exactly why I'm uneasy with turning parse-failures of previously illegal quoting characters into parse-successes. 19:52
maybe it reminds me of JS automatic semicolon insertion or something.
jnthn Darn. I've a few more small perf improvement patches, but one of 'em regresses some spectests and it isn't obvious which one 19:55
jnthn will untangle 'em tomorrow
'night, #perl6
masak 'night, jnthn
FROGGS gnight jnthn
[Tux] sleep tight 19:58
oops, someone got shot a few streets away from my home. the rumour goes it is a top-level criminal known in all of NL 19:59
FROGGS :S 20:00
[Coke] yikes! 20:01
20:04 xfix left, xfix joined, xfix left, xfix joined 20:06 CIAvash left 20:08 xfix left
[Tux] just heard that it happened 50 m from my sons best friends house . yikes 20:08
20:09 cognominal left 20:10 darutoko left
FROGGS ó.ò 20:12
20:17 pierrot joined 20:19 dha joined
dalek kudo/gmr: 882207d | (Stefan Seifert)++ | src/Perl6/ (2 files):
Fix passing adverbs to 'import' and 'no' statements
20:19
ast/gmr: 629c96c | (Stefan Seifert)++ | S02-types/pair.t:
Changing $pair.value now changes the contained $var

Pairs now behave in the same way as Lists. The values are mutable only if they are itemized. If they are, assigning to them assigns to the original variable.
rakudo/gmr: ffaf9b3 | (Stefan Seifert)++ | src/core/ (2 files):
rakudo/gmr: Make %hash.pairs .value writable
rakudo/gmr:
kudo/gmr: Fixes RT #124640
review: github.com/rakudo/rakudo/commit/ffaf9b3166
ast/gmr: 39eef58 | (Stefan Seifert)++ | S (4 files):
RT #124640 fixed by merging Enum and Pair
FROGGS nine++
20:20 n0tjack joined 20:21 tokuhiro_ joined
masak 'night, #perl6 20:22
dha night masak
nine The only remaining spec test failure is the one about return 1, 2, :c(3); which does not give the right result on nom either but now fails fatally. 20:23
20:25 tokuhiro_ left
flussence
.oO( the one problem with all these curly quotes is that Dejavu Sans Mono differentiates some of them by half a subpixel... )
20:27
20:29 [Sno] joined 20:32 Khisanth left 20:33 pmurias joined 20:35 kaare_ left
pmurias hoelzro: re optimalization I'll just monkey patch a work around in 20:35
20:35 colomon joined
pmurias once we get a boostrap nqp-js we won't need it anyway 20:36
hoelzro true 20:37
20:40 Khisanth joined, mprelude left
abraxxa FROGGS: seems that's all even more complicated than i thought 20:51
20:51 n0tjack left
FROGGS :S 20:52
abraxxa you need to allocate a statement handle and define the number of bytes all string binds will take plus 2 bytes per string for \n\0
then you get back a pointer to that memory location which you have to divide for each string you'll pass
job = (text *) (ename+enamelen+2); 20:53
that's the example code
ename is the pointer you get back from the OCIHandleAlloc call, job is the pointer to the memory location in the middle of it where the job string will start
abraxxa HATES C
grondilu wonders what gmr is 20:54
abraxxa so how do I get a pointer to a memory location inside a Pointer?
FROGGS grondilu: Great Map Refactor
grondilu ok
abraxxa Google Maps Refactor?
FROGGS abraxxa: :D 20:55
grondilu now I wonder if that will solve the need to add a few 'flat' in the digest codes after GLR
abraxxa the OCI library is way too low level
FROGGS abraxxa: that's how these libs are... sadly
grondilu (because a few of these flat were just before a map, precisely) 20:56
FROGGS grondilu: no, it is about hashes... it removes EnumMap and stuff
dalek p/js-merge-wip: 16ba6de | (Pawel Murias)++ | src/vm/js/ (2 files):
Make "0" boolfiy to true (as it seem that's the standard now).
abraxxa FROGGS: not if I look at how easy the SQLite, Pg and mysql interfaces are!
FROGGS abraxxa: also with prepared statements? 20:57
abraxxa FROGGS: yes 20:58
wc -l lib/DBDish/*
313 lib/DBDish/mysql.pm6
1089 lib/DBDish/Oracle.pm6
527 lib/DBDish/Pg.pm6
243 lib/DBDish/SQLite.pm6
31 lib/DBDish/TestMock.pm6
and I just managed to get connecting and executing DDL and DML without and binds to work! 20:59
how the F*** should I know how many bytes the sum of all bind values will have at prepare time! 21:00
21:01 n0tjack joined
FROGGS I'll try to get that docker image running soonish... and then I can help out 21:02
21:02 aeth joined 21:03 zakharyas joined 21:04 dha left 21:05 brrt joined 21:06 pmurias left
psch FROGGS: did you get anywhere further with jvm? i'm ping-ponging between "it's probably &flat" and "it's probably hllize" :/ 21:09
FROGGS psch: I try to find out why Attribute.new kinda doesnt work 21:10
abraxxa FROGGS++ 21:11
21:11 n0tjack left
abraxxa FROGGS: found out something new again: i can pass OCI_DATA_AT_EXEC instead of OCI_DEFAULT to tell it then I provide memory locations at runtime for the data, trying to get that working now 21:11
psch FROGGS: e0f725929bda09ae2e10e37f27558ae9c32876f3 manifested itself by Attribute not working, but iirc that was early during bootstrap... no idea if your problem could be related, but i thought i could mention it 21:12
well, actually "the breakage that <that commit> fixed" 21:13
21:15 zakharyas left 21:16 colomon left, n0tjack joined 21:20 hernanGOA left 21:21 hernanGOA joined, brrt left 21:26 muraiki left
dalek kudo-star-daily: 122ee8f | coke++ | log/ (8 files):
today (automated commit)
21:33
rl6-roast-data: f13e969 | coke++ | / (9 files):
today (automated commit)
21:33 rindolf left 21:34 colomon joined
FROGGS psch: I don't get it 21:36
psch: HINT_ROUTINE_RW is used only twice in rakudo, to look something up
psch: but there is no code in rakudo or nqp with that magic value (8) that has something todo with $!rw 21:37
ahh, wait... 21:38
re-reading your commit message ehlps
helps*
psch yeah, the hints show the attribute order 21:40
or possition rather, i guess
21:42 n0tjack left
abraxxa FROGGS: i guess this void should be the type of the contained var instead in NativeCall.pm: method deref(::?CLASS:D \ptr:) { nativecast(void, ptr) } 21:48
FROGGS abraxxa: no, look a few lines below that 21:49
there is another deref method
abraxxa ah, in the TypedPointer role?
FROGGS abraxxa: aye 21:51
psch: I think I found something
psch (irclog.perlgeek.de/perl6/2015-08-14#i_11055681 has a description of my debuggin process, btw)
FROGGS psch: look at that: github.com/rakudo/rakudo/blob/nom/...va#L77-L79
this is pre glr: github.com/rakudo/rakudo/blob/pre-...re/List.pm 21:52
and this is now: github.com/rakudo/rakudo/blob/nom/...ist.pm#L74
err, this for pre-glr: github.com/rakudo/rakudo/blob/nom/...ist.pm#L74 21:53
so there are outdated hints in there
abraxxa FROGGS: but why does this fail then? my Str $col_name = $col_namepp[0].defref;
FROGGS and probably code that does not know about the new semantics
abraxxa Method 'defref' not found for invocant of class 'Pointer'
psch FROGGS: pre-glr is lines 40-44 i think?
FROGGS abraxxa: it is called 'derefÄ
psch: you are right
abraxxa FROGGS: just seen it 21:54
FROGGS psch: sadly, the HINT_LIST_ constants are not used... but perhaps the others...
21:55 lizmat joined
dalek kudo/nom: cdfa237 | ugexe++ | src/ (7 files):
remove remaining 2015.09 deprecations
21:56
kudo/nom: c8f9f8e | lizmat++ | src/ (7 files):
Merge pull request #528 from ugexe/deprecation-removal

remove remaining 2015.09 deprecations
FROGGS false positive :o(
lizmat waves from Bordeaux, FR 21:57
FROGGS hi lizmat 21:58
lizmat FROGGS o/
psch lizmat o/
lizmat psch o/
psch FROGGS: you *did* give me an idea regarding the hllize loop i'm seeing here... :)
vendethiel \o lizmat :-)
FROGGS hi vendethiel
lizmat vendethiel o/
vendethiel \o/ FROGGS :)
abraxxa FROGGS: Internal error: unhandled target type at lib/NativeCall.pm:433
FROGGS: my Str $col_name = $col_namepp[0].deref; 21:59
FROGGS abraxxa: what is $col_namepp[0].of?
abraxxa $col_namepp[0] = Pointer[Str].new;
FROGGS what does $col_namepp[0].of print? 22:00
abraxxa Use of uninitialized value <element> of type void in string context in block
FROGGS ohh, how can it be a void?
abraxxa is the output of warn $col_namepp[0].of;
can the OCI call change its type?
FROGGS no 22:01
how is the CArray declared and instanciated?
m: use NativeCall; my CArray[Pointer[Str]] $a.=new; $a[0] = Pointer[Str].new; say $a[0].of
camelia rakudo-moar c20c24: OUTPUT«(Str)␤»
abraxxa m: use NativeCall; my CArray[Pointer] $col_namepp.=new; $col_namepp[0] = Pointer[Str].new; say $col_namepp[0].of; 22:02
camelia rakudo-moar c20c24: OUTPUT«(Str)␤»
dalek kudo/nom: 079d733 | lizmat++ | t/spectest.data:
We don't do no deprecations anymore
ast: f2c67a6 | lizmat++ | S02-types/deprecations.t:
We don't do no deprecations anymore
22:02 sufrostico left
FROGGS abraxxa: can you turn it into: my CArray[Pointer[Str]] $col_namepp.=new; 22:02
lizmat FWIW, with latest / greatest I get a segfault in t/spec/S17-lowlevel/thread.t 22:03
between test 17 and 18
abraxxa FROGGS: nice
FROGGS: i still get Use of uninitialized value <element> of type Str in string context in block
dalek kudo/UnbreakJVMBuildFactory: 33cbb73 | FROGGS++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java:
toss unused attribute position hints
FROGGS abraxxa: so you got back a NULL string 22:04
abraxxa: hold on
abraxxa: that was for the say $col_namepp[0].of; ?
abraxxa Invocant requires a 'Pointer' instance, but a type object was passed. Did you forget a .new?
are you sure that last syntax instantiates the whole structure? 22:05
FROGGS no
abraxxa from /home/abraxxa/perl6/git/DBIish/lib/DBDish/Oracle.pm6:666
;)
FROGGS you still need to assign the string pointer to slot zero
m: use NativeCall; my CArray[Pointer] $col_namepp.=new; $col_namepp[0] = Pointer[Str].new; say $col_namepp[0].deref 22:06
camelia rakudo-moar c20c24: OUTPUT«(Str)␤»
FROGGS how can you possibly get that error message there?? 22:07
lizmat seems it's breaking on fetching the id of a finished thread
FROGGS lizmat: latest moarvm patch is to blame
lizmat: got reported on #moarvm 22:08
lizmat ok, so it's a known issue?
I'll stop looking then :-)
FROGGS aye :o)
abraxxa defining it like this makes it work: my CArray[Pointer[Str]] $col_namepp.=new;
FROGGS <JimmyZ> jnthn: github.com/MoarVM/MoarVM/commit/4b...e80677544b # this one cause the segfault
abraxxa this fails: my CArray[Pointer] $col_namepp.=new;
FROGGS abraxxa: yes, that's what I would expect
dalek Heuristic branch merge: pushed 32 commits to rakudo/cu_load by lizmat
abraxxa FROGGS: why? 22:09
psch hrm, idea didn't work out /o\
FROGGS abraxxa: because then the pointer is typed, so it works
psch: :/
abraxxa FROGGS: i call deref on the Pointer object (instance) which is typed as Str
FROGGS: i mean why the second case fails
psch in any case, the SOE happens because of 101 calls to foreign_array_transform, and iiuc about 50 of those originate from one hllize call 22:10
well, i suppose all 101 calls aren't to blame, just the ~50 in a row
lizmat is very tired and goes to bed...
FROGGS abraxxa: because the array has a different type, and so does the slot I guess
psch as an aside, the stacktrace from catching the SOE is ~8100 levels deep...
lizmat
.oO( at least not a lot of driving to be done tomorrow :-)
psch g'night lizmat o/
FROGGS lizmat: sleep well :o)
abraxxa i'll go to bed too 22:11
psch it's really just weird
hmm
22:11 lizmat left
FROGGS gnight abraxxa 22:12
abraxxa FROGGS: thanks and good night
FROGGS abraxxa: pleasure :o)
psch g'night abraxxa o/
i had pulled the flat hllize statement apart
but i assigned the hllize result to an (p6-level) @-sigiled array 22:13
ugh, still not quite clear on those semantics
22:13 abraxxa left
psch m: say flat (1, (2, 3)); say my @ = flat (1, (2, 3)) 22:13
camelia rakudo-moar 079d73: OUTPUT«(1 2 3)␤[1 2 3]␤»
22:13 hernanGOA left
FROGGS m: say (1, |(2, 3)); say my @ = (1, |(2, 3)) 22:14
camelia rakudo-moar 079d73: OUTPUT«(1 2 3)␤[1 2 3]␤»
psch m: say flat (1, (2, 3)); say flat my @ = (1, (2, 3)) # this is what i meant
camelia rakudo-moar 079d73: OUTPUT«(1 2 3)␤(1 (2 3))␤»
psch that works on (the half-finished) jvm build as well 22:15
and pulled apart it's the hllize call that goes off the deep end
so i'm trying to assign to something sigilless now and see what ends up in there hah
...that passes Pod::To::Text 22:18
so hllize "into array context" is somehow borked 22:19
which still points at foreign_array_transform, i suppose...
FROGGS so your modification has the same affect as:
- for flat nqp::hllize(@*PACKAGES) {
+ for |nqp::hllize(@*PACKAGES) {
hmmm, perhaps it calls the wrong flat candidate?
ohh, there is just one -.- 22:20
22:25 Sgeo left
psch yeah... and that candidate effectively defers to the Binder... >_> 22:25
FROGGS aye
psch - for flat nqp::hllize(@*PACKAGES) {
+ my \pkgs := nqp::hllize(pkgs); # ...wat 22:26
+ for flat pkgs {
is my patch
(minus lots of other debug says...)
one thing i'd like to check but haven't figured out how 22:27
is if NQPArray plays in there
'cause i can't find a way to create those in the perl6 runtime
FROGGS btw, @*PACKAGES is not declared anyway I think
psch @*PACKAGES comes from World or Grammar iirc
yeah, Perl6/Grammar.nqp 22:29
it holds the name of the package the "is export" symbol belongs to
and that's in there, too, i was able to verify that 22:30
FROGGS hmm, interesting
psch and that's probably why it's an NQPArray, and neither an Array not a BOOTArray
FROGGS yes, most likely
22:37 FROGGS left 22:40 FROGGS joined 22:43 cgfbee joined 22:46 skids joined 22:47 cfloare joined 22:59 mohij left
Juerd Is there a way to determine whether a given value $foo would fit the type constraints for variable $bar without actually trying to assign it? 23:00
psch m: my Str $bar; my $x = 5; my $z = "foo"; say $x ~~ $bar.WHAT; say $z ~~ $bar.WHAT 23:01
camelia rakudo-moar 079d73: OUTPUT«False␤True␤»
Juerd Thanks! 23:02
psch if you know $bar to be undefined you don't need the .WHAT 23:03
Juerd It won't be undefined 23:04
ugexe also the uglier `$z.isa($bar.^name)` 23:10
(in reference to the complaints from hn or reddit the other day over `.METHODS`) 23:13
psch m: subset LongStr of Str where *.chars > 10; my LongStr $x; say "foo".isa($x.^name), "foo" ~~ $x.WHAT; say "foobarbazquux".isa($x.^name), "foobarbazquux" ~~ $x.WHAT;
camelia rakudo-moar 079d73: OUTPUT«FalseFalse␤FalseTrue␤»
psch m: say 5.isa("Int"); say 5.isa(Int) 23:14
camelia rakudo-moar 079d73: OUTPUT«True␤True␤»
psch huh, that surprises me 23:15
23:15 spider-mario left
psch i had thought that might've been the reason for the discrepancy between .isa(*.^name) and ~~ *.WHAT one eval higher... 23:15
but it's probably just the subset 23:16
i'm guessing they automagic an .ACCEPTS that takes the where clause into account, but the bare literal of course stays a Str...
ugexe m: my Str $bar; my $x = 5; my $z = "foo"; say $x ~~ $bar.^name; say $z ~~ ::($bar.^name) 23:17
camelia rakudo-moar 079d73: OUTPUT«False␤True␤»
23:18 rurban left
psch ugexe: right, the indirect lookup of the name of the type works, the name itself would call Str.ACCEPTS 23:18
m: say 5 ~~ Str.^name 23:19
camelia rakudo-moar 079d73: OUTPUT«False␤»
psch ehh
these are really bad example types :D
anyway, i'll get some rest o/
23:21 Skarsnik left
timotimo ugexe: $z.isa($bar.^name) has a serious performance problem 23:32
ugexe ah. how about $z ~~ ::($bar.^name)?
timotimo that'? a lot better 23:34
.isa will go through the mro and compare all the names, or something like that
there was some kind of benchmark a couple of months ago (slightly similar to excel formulas) which had .isa("Foo") in it and changing that to a ~~ gave a ridiculous speed boost
m: my $start = now; for ^1000 { "Hello".isa("Array") }; say now - $start 23:37
camelia rakudo-moar 079d73: OUTPUT«0.055347␤»
timotimo m: my $start = now; for ^100_000 { "Hello".isa("Array") }; say now - $start
camelia rakudo-moar 079d73: OUTPUT«3.40258049␤»
timotimo m: my $start = now; for ^100_000 { "Hello" ~~ Array }; say now - $start
camelia rakudo-moar 079d73: OUTPUT«0.2137305␤»
timotimo hm, only a factor of 10?
m: my $start = now; for ^100_000 { "Hello".isa("Str") }; say now - $start
camelia rakudo-moar 079d73: OUTPUT«2.50682698␤» 23:38
timotimo m: my $start = now; for ^100_000 { "Hello" ~~ Str }; say now - $start
camelia rakudo-moar 079d73: OUTPUT«0.21054309␤»
ugexe good to know, ive got some git grepping to do i suppose 23:39
Juerd It's been quite a while since I last tried Rakudo Perl 6. Hello World executing in .1 sec makes me happy. 23:59