Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2016-11-27

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

All times shown according to UTC.

Time Nick Message
00:17 viki m: dd <1>
00:17 camelia rakudo-moar e0c0ae: OUTPUT«IntStr.new(1, "1")␤»
00:17 viki m: dd <1/2>
00:17 camelia rakudo-moar e0c0ae: OUTPUT«0.5␤»
00:17 viki m: dd < 1/2 >
00:17 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(0.5, "1/2")␤»
00:18 viki m: dd <1e5>
00:18 camelia rakudo-moar e0c0ae: OUTPUT«NumStr.new(100000e0, "1e5")␤»
00:18 viki m: dd <1+42i>
00:18 camelia rakudo-moar e0c0ae: OUTPUT«<1+42i>␤»
00:18 viki m: dd < 1+42i >
00:18 camelia rakudo-moar e0c0ae: OUTPUT«ComplexStr.new(<1+42i>, "1+42i")␤»
00:20 viki m: dd <42.1>
00:20 camelia rakudo-moar e0c0ae: OUTPUT«RatStr.new(42.1, "42.1")␤»
00:21 viki Hm, apparently it were the same at some point, unless the author just made up half the examples here: https://docs.perl6.org/language/glossary#index-entry-Allomorph
00:25 geekosaur those examples used to work, so something changed
00:26 viki k, I'll take a look into it
00:26 cygx joined #perl6-dev
00:27 geekosaur possibly deliberate to reduce the wat from their being allomorphic... but still leaves the allomorphic behavior in the bug report
00:27 cygx assuming that hasn't been done yet, who volunteers to write automatic testing of all example code from the documentation?
00:27 geekosaur which I would consider a doc bug
00:28 cygx well, <1> not returning Int might be an actual bug
00:29 viki cygx: there's already effort to do that
00:29 viki cygx: why Int? I'd say <1/2> not returning RatStr is a bug
00:30 viki hmm
00:31 cygx I remember that <...> without spaces got changed to be the literal form of compound numeric types, eg doesn't got through &infix:<+> for 1+3i
00:31 viki Actually no, that's likely on purpose. So you could indicate a literal and not a division of two ints. IIRC there's a grammar rule for that so you could also do it in sig
00:47 b2gills I remember the same thing that cygx remembers
00:49 cygx curious that it apparently only got changed for Complex and Rat, and for the latter only if / is used
00:49 cygx that seems... strangely inconsistent ;)
00:49 viki I see the consistency actually and am about just to change the docs.
00:50 viki The consistency being that you get an allomorph in the construct for numerals. The exception is when it's an only thing in the angle brackets and has an operator: / for Rats and + for complex
00:51 cygx exceptional behaviour is not consistent - consistent would be returning plain numeric types instead of allomorphic ones for all single-word constructs that can be parsed as such
00:51 cygx at least that's how I see it
00:53 cygx (for 'spaceless' single-word constructs, that is)
00:54 viki Isn't that an exception too? :)
00:55 cygx :)
00:56 cygx it's more of a sliding scale - if the exception is universal enough, it gets to be a rule instead
01:21 TimToady the reasoning is pragmatic; there's good reason to write <1/2> and <1+2i> as literals, and no good reason to write <42>, since you could just write 42 instead
01:22 TimToady unless you for some reason wanted to write angles around all your literals, but that'd be pretty silly...
01:32 cygx I'll have to sleep on that one and decide if it still offends my stylistic sensibilities when it's less dark outside
01:34 cygx what would have been the alternative? parsing spaceless expressions like 1+2i or 1/2 as a single literal?
01:34 cygx there's arguably some precedent with floating point literals like 2e-5
01:34 TimToady and ignore precedence?
01:34 TimToady but there the 'e' is not an operator
01:34 TimToady + and / are normal operators with normal precedence
01:35 TimToady what do you do with 1/2 ** 3 and such?
01:36 TimToady arguably you can rely on constant folding with (1/2) ** 3, but that doesn't really help for other places you want literals, like in signatures
01:36 cygx m: sub postfix:<e>($v) { say $v }; 2e; 2e+5 # let's see what happens
01:36 camelia rakudo-moar e0c0ae: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant floating-point number 200000 in sink context (line 1)␤2␤»
01:37 TimToady you probably want an infix instead :)
01:38 cygx m: sub infix:<e+>($a,$b) { say "evil!" }; 2e+5
01:38 camelia rakudo-moar e0c0ae: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant floating-point number 200000 in sink context (line 1)␤»
01:38 cygx m: sub infix:<e+>($a,$b) { say "evil!" }; 2 e+ 5
01:38 camelia rakudo-moar e0c0ae: OUTPUT«evil!␤»
01:40 cygx Obviously, literals should just use +instead of +
01:41 cygx that's what UNicode is for, right?
01:42 tailgate I'm interested in how POD gets processed and put into the $=pod variable. What projects/files should I look into for that?
01:43 viki tailgate: go to https://github.com/rakudo/rakudo  press "t" and type Pod
01:44 viki tailgate: of notableness there's lib/Pod/To/Text.pm6, src/core/Pod.pm, and src/Perl6/Pod.nqp
01:45 viki actually along with src/Perl6/DebugPod.nqp those're the only relevant bits in "t" output
01:45 tailgate yeah, those were what I hd found so far with ack
01:45 tailgate except DebugPod
01:45 viki tailgate: you can also run perl6 --target=parse -e 'some code, like Pod' and that will output the tree of tokens it parses. Those will be in src/Perl6/Grammar.nqp usually
01:46 viki ( post that involves using that output, even though it's not about Pod http://perl6.party/post/Perl-6-Core-Hacking-Grammatical-Babble )
01:49 cygx good night o/
02:22 kalkin-_ joined #perl6-dev
03:09 unicodable6 joined #perl6-dev
03:10 unicodable6 joined #perl6-dev
03:16 unicodable6 joined #perl6-dev
03:16 unicodable6 joined #perl6-dev
04:06 viki joined #perl6-dev
04:07 viki left #perl6-dev
04:08 viki joined #perl6-dev
08:16 chinarulezzz joined #perl6-dev
08:41 bartolin joined #perl6-dev
09:49 RabidGravy joined #perl6-dev
10:38 [TuxCM] This is Rakudo version 2016.11-70-ge0c0ae5 built on MoarVM version 2016.11-20-g0f7277a
10:38 [TuxCM] csv-ip5xs        3.155
10:38 [TuxCM] test            14.024
10:38 [TuxCM] test-t           6.544
10:38 [TuxCM] csv-parser      13.617
10:41 lizmat Files=1155, Tests=53795, 209 wallclock secs (12.81 usr  3.69 sys + 1273.93 cusr 122.53 csys = 1412.96 CPU)
10:41 lizmat and good *, #perl6-dev!
10:42 timotimo o/
10:43 dalek rakudo/nom: 8ca367d | lizmat++ | / (2 files):
10:43 dalek rakudo/nom: We already have shape, so don't fetch it again
10:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ca367d0cd
10:56 psch so, what's the sanest thing i can do to prevent instantiation of objects with a given HOW
10:57 timotimo look at Uninstantiable HOW?
10:57 timotimo i suppose just raise an exception when it's attempted?
10:57 timotimo maybe in one of its compose methods check some conditions and then throw
10:58 psch well, afaik we do the cannot-be-instantiated thing only at REPR level..?
10:58 timotimo oh!
10:58 psch at least that's what Nil does, which is why its .new returns self or something
10:58 timotimo you're right, that's actually a repr
10:58 psch er, not self, Nil
10:58 psch point is, i have a HOW that represents something role-like that can only be mixed in but not punned
10:58 timotimo it should have the same effect, though
10:59 timotimo except if you derive from Nil
10:59 psch and i kinda feel like stuffing a .new into the method cache probably breaks the mixin part
10:59 timotimo good Q
11:00 lizmat well, depends how paranoid you are
11:00 lizmat do you want nqp::create(thattype) to fail as well ?
11:00 psch yes
11:00 lizmat then it needs to be at REPR level, afaik
11:01 lizmat m: class A is repr("Uninstantiable") { }; use nqp; nqp::create(A)
11:01 camelia rakudo-moar 8ca367: OUTPUT«You cannot create an instance of this type (A)␤  in block <unit> at <tmp> line 1␤␤»
11:01 psch hmm, can i demand a specific repr for all objects with a given HOW?
11:02 psch or, well, predeclare or whathaveyou
11:02 psch probably, right, that sits in the STable doesn't it
11:03 timotimo thing is, we'd normally want to make the HOW distinct from the REPR so you could mix-and-match
11:03 lizmat psch: perhaps doing a "compose_repr(...)" on the .HOW ?
11:03 timotimo this is clearly a special case
11:04 lizmat I see a lot of that in the bootstrap
11:06 psch hmm
11:06 psch i suppose i'll leave that for later and try and get the mixin part working first, anyway
11:06 psch ...if that's actually easier, at least :)
11:12 psch geez, i think it actually isn't
11:13 psch i mean, an Interface in Java cannot be instantiated
11:13 timotimo right
11:13 psch which, i think, we should mirror when we use that Interface via interop, right?
11:13 timotimo otherwise the jvm will just asplode at us for us
11:13 psch but, an Interface in Java can have static and/or default methods
11:13 timotimo so we don't have to explode it ourselves
11:14 psch and, well, to do the whole interop thing, we *already* create an adaptor, which inherits (because the jvm itself doesn't care about the difference between '
11:14 psch 'implements' and 'extends') the interface
11:14 psch hence:
11:14 psch $ ./perl6-j -e'use lib "java#$*CWD"; use Foo:from<Java>; say Foo.baz ~ " " ~ Foo.HOW.^name'
11:14 psch quux Perl6::Metamodel::JavaInterfaceHOW
11:15 psch but most of why Interfaces cannot be instantiated is actually really just that they don't have <init>
11:15 psch hence we don't automatically build .new
11:16 psch but the thing is, actually i wouldn't want that .baz call to work at all either
11:16 psch because the Interface doesn't make sense as an adaptor class, because calling one of the stubbed methods in it complains about "casting interface to class" or summat
11:17 psch soo i suppose i want to forbid *all* invocation on the Interface adaptor
11:18 psch but when mixing it into a class (or punnable role) i still want to be able to reach the existing static or default methods
11:22 dalek rakudo/nom: 13d751e | lizmat++ | / (2 files):
11:22 dalek rakudo/nom: Abstract copying logic into separate sub
11:22 dalek rakudo/nom:
11:22 dalek rakudo/nom: We're going to need it later to handle the case of an intX shaped
11:22 dalek rakudo/nom: array being copied into an intY shaped array where X and Y differ.
11:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/13d751e595
11:22 psch honestly, the easiest thing to do there seems to be to just break callmethod for interface adaptors
11:22 psch which is kind of a really horrible solution, intuitively
11:26 psch oh, i can muck with the InvocationProtocol!
11:29 psch ...i think.  does that actually make sense for objects/methods?
11:36 jnthn psch: fwiw, the REPR is selected at the time nqp::newtype is called, which is usually in turn done in the new_type method of the meta-object
11:36 yoleaux2 26 Nov 2016 22:54Z <lizmat> jnthn: some HARNESS_TYPE=6 failures: https://gist.github.com/lizmat/0bd1a0668a7dd7f3c5c75ac6dffac399
11:37 psch j: use java::lang::String:from<JavaRuntime>; say String.HOW.^can('new_type')
11:37 camelia rakudo-jvm 76b061: OUTPUT«0␤»
11:37 jnthn SubsetHOW is an example of a meta-object that always uses Uninstantiable: https://github.com/rakudo/rakudo/blob/nom/src/Perl6/Metamodel/SubsetHOW.nqp#L28
11:38 psch j: say Metamodel::JavaHOW.^can('new_type')
11:38 camelia rakudo-jvm 76b061: OUTPUT«0␤»
11:38 * jnthn has no idea how JavaHOW is set up... :)
11:38 psch i'm pretty sure it's horribly hacky :S
11:38 psch in part because we're not really declaring the types on a HOW level either
11:38 jnthn Possibly, though I'd surprised if it's so hack that there's not a call to the underlying nqp::newtype primitive
11:39 jnthn *hacky
11:40 psch jnthn: i think what new_type would do we do instead via nqp::jvminterop.typeForName
11:43 jnthn j: use java::lang::String:from<JavaRuntime>; say String.REPR
11:43 camelia rakudo-jvm 76b061: OUTPUT«P6opaque␤»
11:44 jnthn Curious :)
11:44 jnthn I'm guessing P6opaque must be mentioned somewhre in that codepath
11:45 timotimo j: use java::lang::String:from<JavaRuntime>; say String.WHAT.perl
11:45 camelia rakudo-jvm 76b061: OUTPUT«Method 'perl' not found for invocant of class 'java.lang.String'␤  in block <unit> at <tmp> line 1␤␤»
11:45 timotimo huh.
11:45 timotimo it's weird to have that as p6opaque
11:45 psch j: use java::lang::String:from<JavaRuntime>; say String.WHAT
11:46 camelia rakudo-jvm 76b061: OUTPUT«Cannot unbox a type object␤  in block <unit> at <tmp> line 1␤␤»
11:46 psch hm, i thought .gist works
11:46 psch j: use java::lang::String:from<JavaRuntime>; say String.WHAT.Str
11:46 camelia rakudo-jvm 76b061: OUTPUT«Cannot unbox a type object␤  in block <unit> at <tmp> line 1␤␤»
11:48 jnthn Think it comes all the way from https://github.com/perl6/nqp/blob/4fd4b48afb45c8b25ccf7cfc5e39cb4bd658901d/src/vm/jvm/runtime/org/perl6/nqp/sixmodel/KnowHOWBootstrapper.java#L48
11:48 psch yeah, i'd assume so
11:48 psch neither BootJavaInterop nor RakudoJavaInterop deal with the REPR directly
11:48 psch only access it
11:48 jnthn But oddly that seems to use the JavaWrap REPR
11:48 jnthn So color me confused :)
12:37 FROGGS joined #perl6-dev
12:46 RabidGravy does anyone have a feeling whether https://gist.github.com/jonathanstowe/9db38df33a31a5902d4b0b794be0b19b represents a genuine bug (or just a limitation)
12:47 RabidGravy save the two files and the "perl6 -I. -MBar -e1"
12:47 psch "Bar,om" heh
12:47 RabidGravy dodgy typing skillz
12:48 psch yeah, slipping to the left or right is terrible
12:48 psch especially when typing ' but accidentally hitting return :S
12:48 dalek rakudo/nom: ec7de81 | lizmat++ | / (2 files):
12:48 dalek rakudo/nom: Oops, on Moar we should use multidimref
12:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ec7de814c7
12:48 dalek rakudo/nom: 054acab | lizmat++ | src/core/Rakudo/Internals.pm:
12:48 dalek rakudo/nom: Give R:I:ShapeIndexIterator its own implementation
12:48 dalek rakudo/nom:
12:48 dalek rakudo/nom: - using the ShapeLeafIterator turned out to be a less than ideal fit
12:48 dalek rakudo/nom: - don't need to pass on a dummy arg anymore
12:48 dalek rakudo/nom: - don't need to P6Opaque the int indices at every iteration anymore
12:48 dalek rakudo/nom: - will allow ShapeLeafIterator to become smarter
12:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/054acab580
12:48 RabidGravy right, supermarket calls
13:44 Tux__ joined #perl6-dev
14:04 bartolin joined #perl6-dev
15:11 dalek roast: 276e0c0 | (Zoffix Znet)++ | S16-filehandles/io.t:
15:11 dalek roast: Remove trailing whitespace
15:11 dalek roast: review: https://github.com/perl6/roast/commit/276e0c0576
15:25 bartolin joined #perl6-dev
15:28 viki huh, weird... I wrote a test and the file passes make t/spec/blah, but there's actually a fatal error that makes it crash
15:29 viki oh nevermind, I forgot to increase the plan :)
15:31 kalkin- joined #perl6-dev
15:39 dalek rakudo/nom: dd76c9d | (Zoffix Znet)++ | src/core/IO/Handle.pm:
15:39 dalek rakudo/nom: Remove trailing whitespace
15:39 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dd76c9d81e
15:40 dalek rakudo/nom: 8774f24 | (Zoffix Znet)++ | src/core/IO/Handle.pm:
15:40 dalek rakudo/nom: Add IO::Handle.printf
15:40 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8774f245b2
15:40 dalek roast: 46f1f0d | (Zoffix Znet)++ | S16-filehandles/io.t:
15:40 dalek roast: Test IO::Handle.printf
15:40 dalek roast:
15:40 dalek roast: Added in commit:
15:40 dalek roast: https://github.com/rakudo/rakudo/commit/8774f245b2
15:40 dalek roast: review: https://github.com/perl6/roast/commit/46f1f0ddfc
15:49 TimToady m: sub foo ($n) { say $n; samewith $n - 1 if $n }; foo(10)
15:49 camelia rakudo-moar 8ca367: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤0␤»
15:50 TimToady m: sub foo ($n) { say $n; samewith $n - 1 if $n; say "foo" }; foo(10)
15:50 camelia rakudo-moar 8ca367: OUTPUT«10␤9␤8␤7␤6␤5␤4␤3␤2␤1␤0␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤»
15:50 TimToady I guess that doesn't TCO, though presumably it could be optimized if it were the last thing
15:51 AlexDaniel joined #perl6-dev
17:22 dogbert17 seems a bit slow around here
17:23 * japhb is just winding up to start his hacking
17:25 dogbert17 still trying to figure out why I get 'Invalid free() / delete / delete[] / realloc()' when running the simplest programs. Only shows up when building Moar with --valgrind.
17:25 japhb Trying to figure out what I want to deal with first: improved visuals, splitting out classes into libs, code review comments, tanking on future directions ... hmm
17:25 japhb dogbert17: You're the one on a 32-bit Moar, yes?
17:27 dogbert17 indeed
17:28 vendethiel joined #perl6-dev
17:28 dogbert17 built moar with: perl Configure.pl --no-optimize --debug --valgrind --prefix=/home/dogbert/repos/rakudo/install/
17:29 dogbert17 here's a gist if you're interested
17:29 dogbert17 https://gist.github.com/dogbert17/78118902fa329adc3dbb61cc5f9e4789
17:33 psch dogbert17: well, it's clearly valgrind-specific behavior
17:33 dogbert17 psch: some kind of false positive?
17:33 psch dogbert17: and, well, VALGRIND_MEMPOOL_FREE has a really wonky looking #define, at least with my C knowledge
17:33 psch nqp/MoarVM/src/memdebug.h:18:#define VALGRIND_MEMPOOL_FREE(pool, addr) do { } while (0)
17:34 dogbert17 heh
17:34 psch dogbert17: mind, it might be that that kind of #define is something valgrind can do something with, i'd have no idea about that
17:34 pmurias joined #perl6-dev
17:35 dogbert17 my knowledge of C is not much help either
17:36 psch cursory google search turns up https://bugs.kde.org/show_bug.cgi?id=233298
17:36 psch no idea if that fits with what we're using, though
17:36 psch actually, it kinda seems wrong anyway
17:37 psch as the ticket is about free()s not showing up in the heap summary, and you've got an extra free() there
17:38 * dogbert17 has valgrind-3.10.1
17:40 cygx joined #perl6-dev
17:41 cygx the do..while thing is just a noop that gets used if MVM_VALGRIND_SUPPORT isn't defined
17:42 cygx normally, you use it to group several statements and still have a function-like macro invocation that can be terminated with a semicolon
17:44 dogbert17 cygx: thanks for the explanation
17:49 dogbert17 since my C-knowledge isn't what it should be I have to ask about lines 46 and 132 in nfg.c. They seem to deal with different types, to my untrained eye. Is that how it's supposed to be? https://github.com/MoarVM/MoarVM/blob/master/src/strings/nfg.c#L46
18:02 cygx at first glance, that looks suspect to me as well: the variable 'current' has type MVMNFGTrieNode, but sizeof(MVMNGFTrieNodeEntry) gets passed to the function
18:06 lizmat_ joined #perl6-dev
18:10 cygx dogbert17: you're on 32-bit, correct? On 64-bit systems, MVMNFGTrieNode and MVMNGFTrieNodeEntry just happen to have the same size
18:11 dogbert17 cygx: aha, that's very interesting
18:11 dogbert17 just tried changing line 133 from 'sizeof(MVMNGFTrieNodeEntry)' -> 'sizeof(MVMNFGTrieNode)'
18:12 cygx also note that if FSA_SIZE_DEBUG is defined, MVM_fixed_size_free_at_safepoint will perform a sanity check
18:12 dogbert17 tried that with timotimo a few days ago and it screamed like hell :-)
18:13 dogbert17 will turn that on now ...
18:15 dogbert17 and suddenly there are no complaints!
18:17 cygx \o/
18:17 dogbert17 cygx: so possibly we might have found a bug affecting 32 bit systems
18:19 cygx indeed
18:19 dogbert17 PR?
18:20 cygx note that sizeof also takes expressions, ie tha argument could be written as sizeof(*current)
18:20 cygx that way, the compiler will figure out the type for you
18:20 dogbert17 interesing
18:20 cygx for consistency, you might explicitly supply the type, though
18:21 cygx *might want to
18:21 dogbert17 ok, will run a spectest before going forward :-)
18:24 dogbert17 and probably write an RT as well unless one is alredy present
18:25 vendethiel joined #perl6-dev
18:33 dalek nqp: 1212b7d | (Pawel Murias)++ | src/vm/js/ (3 files):
18:33 dalek nqp: [js] Avoid passing the setup argument to Chunk.new when it's a [].
18:33 dalek nqp: review: https://github.com/perl6/nqp/commit/1212b7d4f1
18:33 dalek nqp: 3126d69 | (Pawel Murias)++ | src/vm/js/ (4 files):
18:33 dalek nqp: [js] When building Chunks create less empty and one element arrays.
18:33 dalek nqp: review: https://github.com/perl6/nqp/commit/3126d69031
18:33 dalek nqp: 38c8d8e | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (4 files):
18:33 dalek nqp: [js] Make hll.slurpyArray take and array as second argument instead of having a weird hll.slurpyArray3 variant.
18:33 dalek nqp: review: https://github.com/perl6/nqp/commit/38c8d8e7ed
18:33 dalek nqp: ad633d5 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (3 files):
18:33 dalek nqp: [js] Implement nqp::backtracestrings.
18:33 dalek nqp:
18:33 dalek nqp: For now returns the raw js LTA backtrace.
18:33 dalek nqp: review: https://github.com/perl6/nqp/commit/ad633d5759
18:57 chinarulezzz joined #perl6-dev
19:06 stmuk_ http://rakudo.org/2016/11/27/announce-rakudo-star-release-2016-11/
19:10 dalek star: 67a60b7 | (Steve Mynott)++ | tools/star/release-guide.pod:
19:10 dalek star: note 2016.11 release in release-guide.pod
19:10 dalek star: review: https://github.com/rakudo/star/commit/67a60b79eb
19:12 cygx .oO( Ja, is' denn heut’ scho’ Weihnachten? )
19:23 dalek nqp: 95134e4 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
19:23 dalek nqp: [js] Fix using QAST::WVals in CompUnit.pre_serialize.
19:23 dalek nqp: review: https://github.com/perl6/nqp/commit/95134e4436
19:23 dalek nqp: c479170 | (Pawel Murias)++ | src/vm/js/Compiler.nqp:
19:23 dalek nqp: [js] Fix bug.
19:23 dalek nqp: review: https://github.com/perl6/nqp/commit/c47917007f
19:23 dalek nqp: 41d50d5 | (Pawel Murias)++ | src/vm/js/nqp-runtime/runtime.js:
19:23 dalek nqp: [js] Stop printing out the stack trace when wrapping an exception.
19:23 dalek nqp: review: https://github.com/perl6/nqp/commit/41d50d5bdc
19:23 dalek nqp: 10daa77 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
19:23 dalek nqp: [js] When slurpy_array is not defined used a special bootstraping array type.
19:23 dalek nqp: review: https://github.com/perl6/nqp/commit/10daa7730f
19:26 dalek rakudo/nom: e94725a | lizmat++ | / (4 files):
19:26 dalek rakudo/nom: Refactor R:I:ShapeLeafIterator to only take list
19:26 dalek rakudo/nom:
19:26 dalek rakudo/nom: And if that list is a native array, take the shape directly from
19:26 dalek rakudo/nom: that instead of first needing to HLLize it
19:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e94725a062
19:46 dalek rakudo/nom: 331c2e2 | lizmat++ | / (2 files):
19:46 dalek rakudo/nom: Copying a shaped 1+dimmed array upto 1.5x faster
19:46 dalek rakudo/nom:
19:46 dalek rakudo/nom: By making the shape check a lot faster.  Benchmark was for a 2x2.
19:46 dalek rakudo/nom: The "eqv" that we had before, needed to HLLlize the native int arrays
19:46 dalek rakudo/nom: as given by nqp::dimensions first.  Perhaps we should have an nqp:::eqv
19:46 dalek rakudo/nom: for these types of checks.
19:46 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/331c2e259b
19:52 dogbert17 cygx: PR sent
19:53 cygx dogbert17++
19:56 lizmat merged
19:56 lizmat and dogbert17++
19:57 lizmat and cygx++  :-)
19:59 dogbert17 lizmat++ :-)
20:05 * dogbert17 should of course have noticed that the name of the function is twiddle_trie_node and not MVMNFGTrieNode :(
20:06 lizmat dogbert17: should I revert ?
20:06 dogbert17 it's the commit message itself which contains an error
20:06 dogbert17 the fix is correct though
20:07 lizmat ah, we can live with that :-)
20:12 cygx and on the shoulder, a tiny red figure with horns on its forehead whispers: "Just use push -f. You know you want to, and what can it hurt doing it just this onnce..."
20:23 dalek rakudo/nom: 7c1f5e1 | lizmat++ | src/core/native_array.pm:
20:23 dalek rakudo/nom: Only set name of new type if not correct yet
20:23 dalek rakudo/nom:
20:23 dalek rakudo/nom: Saves another 10% in a 2x2 matrix copy
20:23 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7c1f5e197c
20:55 ugexe is there a way to get at %*PRAGMAS outside of Perl6/[Actions|Grammar|World].nqp ?
20:57 FROGGS yes, inside of sub EXPORT and inside of traits
20:57 FROGGS because these get invoked from P6G / P6A
20:57 viki m: .::
20:57 camelia rakudo-moar 8ca367: OUTPUT«===SORRY!===␤MVMArray: Can't pop from an empty array␤»
20:57 viki So where would I look for the code that handles that bit?
20:59 jnthn --ll-exception should be revealing
20:59 viki oh right
21:11 ugexe FROGGS: ah thanks, that worked. but I guess what I should have asked was how to get the list of all possible pragmas, not just the ones being used (https://github.com/rakudo/rakudo/blob/6bb8823794273083dc979e283e849fce7ace2bda/src/Perl6/World.nqp#L895)
21:14 FROGGS hmmm
21:14 FROGGS I know that the pragmas 'variables' and 'parameters' are missing from that list
21:14 FROGGS not sure what else
21:46 [Coke] we don't currently have an anticipated date for 6.d, do we?
21:46 [Coke] I am not aware of one, but if we have one, advent writers should be aware so they don't overpromise. :)
22:06 mj41 joined #perl6-dev
22:50 pmurias joined #perl6-dev
22:57 seatek joined #perl6-dev
23:12 MasterDuke joined #perl6-dev
23:18 ZzZombo_ joined #perl6-dev
23:24 AlexDaniel joined #perl6-dev

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