Perl 6 - the future is here, just unevenly distributed

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

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

All times shown according to UTC.

Time Nick Message
00:35 MasterDuke jnthn: did you see lizmat's comments about my branch? think i should i try for a more general implementation of #line?
00:36 MasterDuke the Grammar change is relatively straightforward, but i'm not quite sure how to know when to edit the backtrace
08:39 [Tux] This is Rakudo version 2016.10-181-gc963efd built on MoarVM version 2016.10-39-g4b9e3a8
08:39 [Tux] csv-ip5xs        3.381
08:39 [Tux] test            15.252
08:39 [Tux] test-t           7.096
08:39 [Tux] csv-parser      15.497
08:57 RabidGravy joined #perl6-dev
09:51 brrt joined #perl6-dev
10:14 FROGGS joined #perl6-dev
10:49 gfldex m: my Str $s = Str; $s.contains("anything at all");
10:49 camelia rakudo-moar c963ef: OUTPUT«Cannot resolve caller contains(Str: Str); none of these signatures match:␤    (Cool:D $: Cool $needle, Cool $pos = 0, *%_)␤    (Str:D $: Str:D $needle, *%_)␤    (Str:D $: Str:D $needle, Int:D $pos, *%_)␤  in block <unit> at <tmp> line 1␤␤»
10:49 gfldex is that intentional?
11:09 gfldex m: my Str $s = Str; $s.match(/a/);
11:09 camelia rakudo-moar c963ef: OUTPUT«Use of uninitialized value of type Str in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤  in block <unit> at <tmp> line 1␤»
11:10 gfldex i would expect .match and .contains to behave the same way when invoced on a type object
11:28 bart joined #perl6-dev
12:04 lizmat Files=1151, Tests=53712, 213 wallclock secs (12.71 usr  3.77 sys + 1299.50 cusr 121.50 csys = 1437.48 CPU)
12:57 dalek rakudo/nom: 8b40d1b | lizmat++ | src/core/Rakudo/Internals.pm:
12:57 dalek rakudo/nom: Make the ShapeIterator role more usable
12:57 dalek rakudo/nom:
12:57 dalek rakudo/nom: A class implementing this role only needs to supply a !init-list and
12:57 dalek rakudo/nom: a !result method.  This should help implementing other iterators, like
12:57 dalek rakudo/nom: for .values and friends.
12:57 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8b40d1b14d
13:31 lizmat m: role A { has $!foo }; class B does A { method b() { $!foo := 42 } }; B.b  # shouldn't this just work ?
13:31 camelia rakudo-moar 8b40d1: OUTPUT«X::TypeCheck::Binding exception produced no message␤  in method b at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:31 lizmat jnthn ^^^
13:31 timotimo m: class B does A { has $!foo; method b() { $!foo := 42 } }; B.b
13:31 camelia rakudo-moar 8b40d1: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Invalid typename 'A'␤at <tmp>:1␤------> class B does A⏏ { has $!foo; method b() { $!foo := 42 }␤»
13:32 timotimo m: class B { has $!foo; method b() { $!foo := 42 } }; B.b
13:32 camelia rakudo-moar 8b40d1: OUTPUT«Cannot bind attributes in a type object␤  in method b at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:32 timotimo m: class B does A { has $!foo; method b() { $!foo := 42 } }; B.new.b
13:32 camelia rakudo-moar 8b40d1: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Invalid typename 'A'␤at <tmp>:1␤------> class B does A⏏ { has $!foo; method b() { $!foo := 42 }␤»
13:32 timotimo grmbl
13:32 timotimo role A { has $!foo }; class B does A { method b() { $!foo := 42 } }; B.new.b
13:32 timotimo m: role A { has $!foo }; class B does A { method b() { $!foo := 42 } }; B.new.b
13:32 camelia rakudo-moar 8b40d1: OUTPUT«X::TypeCheck::Binding exception produced no message␤  in method b at <tmp> line 1␤  in block <unit> at <tmp> line 1␤␤»
13:32 timotimo m: role A { has $!foo }; class B does A { method b() { $!foo = 42 } }; B.new.b
13:32 camelia rakudo-moar 8b40d1: ( no output )
13:33 lizmat yeah, I missed the .new in my example, but the result is the same, no?
13:33 lizmat binding just doesn't work
13:33 timotimo right
13:34 timotimo are assignments to native attributes already just nqp::bindattr?
13:34 timotimo er, not "native"
13:35 timotimo but that kind of makes it awkward to put Scalar objects into attributes and assigning binds the new value to replace the scalar instead of assigning into the scalar?
13:35 timotimo except if you use accessors, you potentially get an AttrRef that's scalar-like? perhaps?
13:35 lizmat what I want to achieve is to bind an nqp::list from a '$!reified' slot
13:36 lizmat if I just assign, I get this:
13:36 lizmat $ 6l 'my @a[10] = ^10; say @a.iterator.pull-one'
13:36 lizmat Segmentation fault: 11
13:36 lizmat :-(
13:36 lizmat ok, I guess I'll work around it  :-(
13:37 lizmat timotimo: do you agree this is buggable ?
13:38 timotimo huh, ouch
13:38 nine lizmat: all segfaults are buggable
13:38 timotimo quite
13:38 nine Well except self inflicted NativeCall trickery of course :)
13:45 lizmat RT #130030
13:45 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130030
13:46 travis-ci joined #perl6-dev
13:46 travis-ci Rakudo build errored. Elizabeth Mattijsen 'Make the ShapeIterator role more usable
13:46 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173660042 https://github.com/rakudo/rakudo/compare/c963efdd2c2c...8b40d1b14de0
13:46 travis-ci left #perl6-dev
13:46 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
13:53 tbrowder hi #perl6-dev
13:53 tbrowder question of the day ref arrays (containers): is returning a generated container from a sub expensive as compared to filling an input container with the generated data?
13:53 dalek rakudo/nom: 7ff1f13 | lizmat++ | src/core/Rakudo/Internals.pm:
13:53 dalek rakudo/nom: Make R:I:ShapeIterator *always* take a list
13:53 dalek rakudo/nom:
13:53 dalek rakudo/nom: To get around RT #130030
13:53 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7ff1f131d2
13:53 synopsebot6 Link:  https://rt.perl.org/rt3//Public/Bug/Display.html?id=130030
13:56 nine tbrowder: when in doubt, benchmark :)
13:56 nine tbrowder: also when you're totally sure, still benchmark!
14:00 tbrowder i understand, but i am more concerned with how it's done, i.e., is there an efficient return of a container such that there is no extra copying. i'm trying to decide, in general (not time, but space), which would be better.
14:05 raiph joined #perl6-dev
14:08 timotimo containers are just objects. objects are returned just by returning the pointer
14:09 timotimo there is no difference between returning an Int vs returning an Array
14:10 tbrowder okay!  many thanks, timotimo!
14:10 timotimo sure
14:11 raiph joined #perl6-dev
14:13 raiph joined #perl6-dev
14:15 raiph joined #perl6-dev
14:20 dalek rakudo/nom: 736ab11 | lizmat++ | src/core/ (3 files):
14:20 dalek rakudo/nom: Re-imagine .iterator and .values on shaped arrays
14:20 dalek rakudo/nom:
14:20 dalek rakudo/nom: Now uses the ShapeIterator role.  Makes it more than 4x as fast.
14:20 dalek rakudo/nom: Also fix ShapeIterator.pull-one: it needs to be raw to allow .values
14:20 dalek rakudo/nom: to return left-values
14:20 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/736ab11d98
14:20 lizmat afk&
14:26 stmuk_ nine: any suggestions about https://rt.perl.org/Ticket/Display.html?id=130031
14:32 raiph joined #perl6-dev
14:46 nine stmuk_: does C:\rakudo\share\perl6\ exist?
14:48 nine stmuk_: is the error message always about the 'resources' directory or is it sometimes something else like 'sources' or 'short'?
14:49 stmuk_ nine: the full directory path it complains about exists after the build terminates (but not before)
14:49 stmuk_ its always the same error
14:50 nine So C:\rakudo\share\perl6\resources does exist afterwards?
14:51 stmuk_ yes
14:53 nine On what file system does this happen?
14:54 stmuk_ NTFS I guess
14:54 nine The whole thing is extremely odd as exactly the same code seems to be able to create e.g. the sources directory just fine
14:55 stmuk_ https://irclog.perlgeek.de/perl6/2016-07-04#i_12783998
14:55 stmuk_ not sure if its relevant (since the release at the end of that month was ok)
14:56 stmuk_ hmm I can try .08 and .09
14:56 nine So far I've got absolutely no idea at all
14:58 nine You could try switching the my $resources-dir = self!resources-dir; and my $dist-dir = self!dist-dir; lines in src/core/CompUnit/Repository/Installation.pm (lines 173 and 174) to see if the error changes.
14:58 stmuk_ ok
14:58 nine That may give us a hint if this is about 'resources' somehow or just some confusion left by the previous statements
15:18 travis-ci joined #perl6-dev
15:18 stmuk_ exactly the same error & dir created
15:18 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Re-imagine .iterator and .values on shaped arrays
15:18 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173671383 https://github.com/rakudo/rakudo/compare/7ff1f131d21c...736ab11d9812
15:18 travis-ci left #perl6-dev
15:19 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
15:19 nine So it really is about the resources directory? WTF?
15:20 stmuk_ damm windows
15:22 nine Any anti virus involved?
15:22 stmuk_ nope
15:23 stmuk_ I've reproduced on two virtualbox VMs
15:24 nine Then I fear, only a bisect can give us another hint
15:24 stmuk_ yeah I'm trying that
15:27 [Tux] joined #perl6-dev
16:29 ggoebel joined #perl6-dev
17:30 stmuk_ nine: I can't reproduce the problem with nom anyway
17:32 dalek rakudo/nom: 9a6379d | lizmat++ | src/core/Rakudo/Internals.pm:
17:32 dalek rakudo/nom: Abstract indices logic into a private method
17:32 dalek rakudo/nom:
17:32 dalek rakudo/nom: So we can also use it for .kv, pairs and antipairs
17:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9a6379d50c
17:33 nine stmuk_: oh, then we're either lucky or we have one of those lovely heisenbugs on our hands
17:34 stmuk_ my glass is half empty :)
17:36 mst optimist: glass is half full
17:37 mst pessimist: glass is half empty
17:37 mst D&D player: I down the glass. what happens?
17:59 geekosaur joined #perl6-dev
18:08 dalek rakudo/nom: e42b68e | lizmat++ | src/core/ (3 files):
18:08 dalek rakudo/nom: Make .kv on shaped Arrays about 4x faster
18:08 dalek rakudo/nom:
18:08 dalek rakudo/nom: Using the new ShapeIterator logic.  Native shaped arrays for now uses
18:08 dalek rakudo/nom: the old logic.
18:08 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e42b68e002
18:13 [Tux] joined #perl6-dev
18:28 travis-ci joined #perl6-dev
18:28 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Abstract indices logic into a private method
18:28 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173704903 https://github.com/rakudo/rakudo/compare/736ab11d9812...9a6379d50ccb
18:28 travis-ci left #perl6-dev
18:28 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
18:31 dalek rakudo/nom: 0f2566a | lizmat++ | src/core/ (3 files):
18:31 dalek rakudo/nom: Make .pairs on shaped Arrays about 2.8x faster
18:31 dalek rakudo/nom:
18:31 dalek rakudo/nom: Using the new ShapeIterator logic.  .kv on native shaped arrays for
18:31 dalek rakudo/nom: now uses the old logic.
18:31 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0f2566a99a
18:39 vendethiel joined #perl6-dev
18:42 FROGGS joined #perl6-dev
18:45 dalek rakudo/nom: f608a33 | lizmat++ | src/core/ (3 files):
18:45 dalek rakudo/nom: Make .antipairs on shaped Arrays about 2.8x faster
18:45 dalek rakudo/nom:
18:45 dalek rakudo/nom: Using the new ShapeIterator logic.  .antipairs on native shaped
18:45 dalek rakudo/nom: arrays for now uses the old logic.
18:45 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f608a33809
18:46 seatek joined #perl6-dev
18:53 pmurias joined #perl6-dev
18:59 travis-ci joined #perl6-dev
18:59 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make .kv on shaped Arrays about 4x faster
18:59 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173711312 https://github.com/rakudo/rakudo/compare/9a6379d50ccb...e42b68e00291
18:59 travis-ci left #perl6-dev
19:00 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
19:05 dalek rakudo/nom: 7a2baf4 | lizmat++ | src/core/List.pm:
19:05 dalek rakudo/nom: Make List.kv about 30% faster
19:05 dalek rakudo/nom:
19:05 dalek rakudo/nom: Using the same trick developed for .kv on shaped arrays
19:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7a2baf46f4
19:11 pmurias joined #perl6-dev
19:11 FROGGS joined #perl6-dev
19:14 bart joined #perl6-dev
19:21 japhb .oO( lizmat has created the "one weird trick" ... )
19:28 masak japhb: ...that the doctors don't want you to know about? :P
19:30 DrForr . o ( who? )
19:30 lizmat .oO( remove trick from vocabulary )
19:38 travis-ci joined #perl6-dev
19:38 travis-ci Rakudo build errored. Elizabeth Mattijsen 'Make .pairs on shaped Arrays about 2.8x faster
19:38 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173715326 https://github.com/rakudo/rakudo/compare/e42b68e00291...0f2566a99a09
19:38 travis-ci left #perl6-dev
19:38 buggable [travis build above] ☠ Did not recognize some failures. Check results manually.
19:55 dalek rakudo/nom: 03c6212 | lizmat++ | src/core/ (2 files):
19:55 dalek rakudo/nom: Introduce R:I:IterateKeyValueFromIterator
19:55 dalek rakudo/nom:
19:55 dalek rakudo/nom: Logic abstracted away from List.kv, so we can use it elsewhere,
19:55 dalek rakudo/nom: specifically on 1dimmmed shaped arrays.
19:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/03c621252c
19:55 dalek rakudo/nom: ed36e60 | lizmat++ | src/core/Shaped1Array.pm:
19:55 dalek rakudo/nom: Give 1dimmed arrays its own iterator
19:55 dalek rakudo/nom:
19:55 dalek rakudo/nom: Makes for loops with these about 3x faster, as well as .values
19:55 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ed36e605ed
19:55 lizmat .oO( this channel is getting pretty boring )
19:56 mst maybe everybody's too busy understanding all the cool stuff you keep doing to do anything else :D
19:59 * lizmat hopes so  :-)
20:09 japhb We're all making way for the person Getting Things Done.  :-)
20:09 timotimo mst: did you see how POSTBUILD was renamed to TWEAK?
20:09 mst timotimo: nope
20:09 moritz that's not yet in nom, right?
20:09 timotimo well, it was. and i'm hoping for some testing and praise
20:09 timotimo it is not
20:09 mst didn't sleep friday night due to really early flight
20:10 timotimo oh :(
20:10 dalek rakudo/nom: 608de26 | lizmat++ | src/core/Shaped1Array.pm:
20:10 dalek rakudo/nom: Give 1dimmed arrays its own .kv
20:10 dalek rakudo/nom:
20:10 dalek rakudo/nom: Makes it 7x faster
20:10 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/608de26e30
20:10 mst so have basically spent the weekend going 'bleh'
20:10 moritz timotimo: what's the branch name?
20:12 moritz ah, POSTBUILD_method
20:13 japhb Having just read another Squirrel Girl collection this morning, I'm imagining all branches named in Squirrel: "chit-chiktuk-cht"
20:14 travis-ci joined #perl6-dev
20:14 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make .antipairs on shaped Arrays about 2.8x faster
20:14 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173717626 https://github.com/rakudo/rakudo/compare/0f2566a99a09...f608a3380918
20:14 travis-ci left #perl6-dev
20:40 jnthn timotimo: Just glanced the POSTBUILD_method branch and the code changes look sensible enough, at least :)
20:45 travis-ci joined #perl6-dev
20:45 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Make List.kv about 30% faster
20:45 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173721157 https://github.com/rakudo/rakudo/compare/f608a3380918...7a2baf46f401
20:45 travis-ci left #perl6-dev
20:45 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
20:47 dalek rakudo/nom: e829aa1 | lizmat++ | src/core/ (2 files):
20:47 dalek rakudo/nom: Introduce R:I:IteratePairFromIterator
20:47 dalek rakudo/nom:
20:47 dalek rakudo/nom: Abstract logic from List.pairs, so that we can use it for 1dimmed
20:47 dalek rakudo/nom: shaped arrays also.
20:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e829aa1bc7
20:54 MasterDuke jnthn: speaking of branches... and if you don't mind me bothering you again (and again...). do you have an opinion on my linenumber branch?
20:56 MasterDuke because i know the whole world is interested... https://github.com/MasterDuke17/rakudo/tree/source_file_line_numbers
20:58 dalek rakudo/nom: b7d9537 | lizmat++ | src/core/Shaped1Array.pm:
20:58 dalek rakudo/nom: Give 1dimmed shaped arrays its own .pairs
20:58 dalek rakudo/nom:
20:58 dalek rakudo/nom: Makes it about 3x as fast
20:58 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7d9537a7c
21:02 jnthn MasterDuke: Not quite sure why `if %*ENV<RAKUDO_BACKTRACE_SETTING> and ...` needs to look at %*ENV<RAKUDO_BACKTRACE_SETTING>?
21:03 jnthn I mean, we've already done filtering by this point...
21:03 jnthn It's a bit hack with the @?SOURCE_LINE_NUMBERS thingy
21:03 MasterDuke pretty sure if i don't do that it prints the longer stacktrace all the time
21:04 jnthn I think it's OK for now if people want it
21:04 MasterDuke yeah, i started with a hash, but missing serialization...
21:04 jnthn I mean the whole approach of post-processing is a bit of a hack.
21:04 MasterDuke ha, that too
21:05 jnthn Was there a reason not to arrange for us to emit mapped annotations as part of code-gen?
21:06 MasterDuke other than i don't know how to do that? dunno
21:06 MasterDuke where would that happen?
21:06 * lizmat would prefer mapped annotations  :-)
21:07 MasterDuke jnthn: actually, i thought you didn't want to mess with those?
21:07 timotimo i'm not sure how to signal different filenames to the Stmts (or whoever needs it) nodes
21:08 jnthn No, I didn't want any clever post-processing on the --ll-exception code path
21:09 timotimo because things could already be broken at this point
21:09 timotimo and --ll-exception ought to be as stable as possible
21:09 jnthn Right
21:09 jnthn But if it's just pulling out file/line info from the VM's mappings that are already with the mapped line/file there's no risk there
21:10 jnthn I think that if you kept a mapping of file/line overrides when compiling, then we just go on attaching $/ to .node(...)
21:10 MasterDuke that's where i tried to start, but wasn't able to figure out what exactly was going on and/or how to change it
21:10 jnthn And then it's .lineof in HLL::Compiler that would handle the mapping
21:11 MasterDuke (changing the original mapping that is)
21:11 jnthn iirc, MAST::Annotated takes a file/line
21:11 MasterDuke so then switched to the current strategy
21:13 MasterDuke jnthn: just checked, without that "if %*ENV<RAKUDO_BACKTRACE_SETTING> and ..." the long backtrace gets printed
21:13 MasterDuke m:  say 1/0
21:13 camelia rakudo-moar b7d953: OUTPUT«Attempt to divide 1 by zero using div␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:14 MasterDuke locally i get the long backtrace
21:14 dalek rakudo/nom: c5c6001 | lizmat++ | src/core/ (2 files):
21:14 dalek rakudo/nom: Introduce R:I:IterateAntiPairFromIterator
21:14 dalek rakudo/nom:
21:14 dalek rakudo/nom: Basically IteratePairFromIterator but with key/value reversed.  Make
21:14 dalek rakudo/nom: sure List.antipairs uses that, which makes it almost 2x faster.
21:14 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/c5c6001125
21:19 travis-ci joined #perl6-dev
21:19 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Give 1dimmed arrays its own iterator
21:19 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173729787 https://github.com/rakudo/rakudo/compare/7a2baf46f401...ed36e605edf7
21:19 travis-ci left #perl6-dev
21:19 jnthn MasterDuke: Odd, wonder why...
21:20 MasterDuke jnthn: something definitely seems off with RAKUDO_BACKTRACE_SETTING and RAKUDO_VERBOSE_STACKFRAME
21:21 japhb lizmat: At the current point, what's the fastest way to implement a 2D grid that has to be able to hold objects of various types?  Right now I'm just using a regular Array, and instantiating it with defaults using: my @grid = [ [ $default xx $columns ] xx $rows ];
21:22 MasterDuke m: %*ENV<RAKUDO_BACKTRACE_SETTING> = 1; say 1/0
21:22 camelia rakudo-moar b7d953: OUTPUT«Attempt to divide 1 by zero using div␤  in block <unit> at <tmp> line 1␤␤Actually thrown at:␤  in block <unit> at <tmp> line 1␤␤»
21:22 MasterDuke bisect: %*ENV<RAKUDO_BACKTRACE_SETTING> = 1; say 1/0
21:22 bisectable6 MasterDuke, On both starting points (old=2015.12 new=c5c6001) the exit code is 1 and the output is identical as well
21:22 bisectable6 MasterDuke, Output on both points: Attempt to divide 1 by zero using div␤  in block <unit> at /tmp/BxnEvLUc53 line 1␤␤Actually thrown at:␤  in block <unit> at /tmp/BxnEvLUc53 line 1␤
21:22 lizmat japhb: well, in that example, you would really want "is default" to work
21:22 MasterDuke bisect: %*ENV<RAKUDO_VERBOSE_STACKFRAME> = 2; say 1/0
21:22 bisectable6 MasterDuke, On both starting points (old=2015.12 new=c5c6001) the exit code is 1 and the output is identical as well
21:22 bisectable6 MasterDuke, https://gist.github.com/6750ac3d98a9ddb9f9baf78ae8f232f0
21:22 lizmat but generally, that would be the way to do it
21:23 lizmat japhb: but .STORE is still on my list to optimize for >1 dimmes
21:23 lizmat *dimmed
21:26 japhb dimmed?
21:27 MasterDuke jnthn: my guess is it's some check later on for filename.ends-with(".setting") that takes a differen path since my code changes the filename
21:28 dalek rakudo/nom: 1c425f9 | lizmat++ | src/core/Shaped1Array.pm:
21:28 dalek rakudo/nom: Give 1dimmed arrays its own .antipairs
21:28 dalek rakudo/nom:
21:28 dalek rakudo/nom: Making it more than 3x as fast.
21:28 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1c425f9726
21:29 lizmat japhb: 1dimmed 2dimmed 3dimmed Ndimmed  :-)
21:29 lizmat MasterDuke: why are you checking the filename at all ?
21:29 japhb lizmat: Ah!
21:29 jnthn MasterDuke: Ohh...yes, that's quite likely
21:31 jnthn MasterDuke: fwiw, https://github.com/perl6/nqp/blob/master/src/HLL/Compiler.nqp#L664 is a place I'd start looking with regard to writing out correct annotations in the first place
21:31 MasterDuke lizmat: because i wasn't sure how widely applicable my code would be, wanted to keep effects as minimal as possible at first
21:32 lizmat MasterDuke: I would like to see it everywhere, as it is also a very nice way to annotate string EVAL's
21:33 pmurias MasterDuke: I override serialize_sc when cross compiling
21:33 MasterDuke and the way @?SOURCE_LINE_NUMBERS is currently implemented, it only works for one source file at a time
21:33 lizmat $ perl -e '
21:33 lizmat #line 5 foo
21:33 lizmat die'
21:33 lizmat Died at foo line 5.
21:33 lizmat example from Perl 5
21:34 MasterDuke pmurias: yeah, the first file it looked at in the JS backed looked like the same simple edit could be made, but i think there's another file that complicates things
21:34 jnthn pmurias: Yes, I mentioned you in a comment on that PR :)
21:34 lizmat BTW, iterating a 1dimmed shaped array is now faster than iterating a unshaped array:
21:35 lizmat m: my @a[1000] = ^1000; my $now = now; for ^1000 { for @a { } }; say now - $now
21:35 camelia rakudo-moar c5c600: OUTPUT«0.45553289␤»
21:35 MasterDuke that PR is likely not spectacular
21:35 lizmat m: my @a = ^1000; my $now = now; for ^1000 { for @a { } }; say now - $now
21:35 camelia rakudo-moar c5c600: OUTPUT«0.609908␤»
21:35 jnthn lizmat: Nice! :)
21:35 jnthn lizmat++
21:36 * jnthn wanders back to Distraction Of The Day (the Switzerland/Indian TTR expansion pack :))
21:37 japhb That's so cool lizmat!
21:38 lizmat fwiw, it turns out it doesn't make sense to create special 2/3dim versions of .kv,.values,.pairs,antipairs
21:39 lizmat since the generic ShapeIterator has all of the index logic already in there, and can quickly pass its indices to atposnd
21:40 lizmat as opposed to using atpos2d(..., atpos_i($!indices,0), atpos_i($!indices,1))
21:40 moritz timotimo: fwiw I've done a small bit of testing with TWEAK, and so far, it seems to work perfectly
21:52 travis-ci joined #perl6-dev
21:52 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Give 1dimmed arrays its own .kv
21:52 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173733058 https://github.com/rakudo/rakudo/compare/ed36e605edf7...608de26e30e3
21:52 travis-ci left #perl6-dev
21:59 MasterDuke lizmat: i'm going to look into working directly with the annotations, and i'll keep the general use case in mind
21:59 lizmat MasterDuke++  :-)
22:23 timotimo moritz: that's much more testing than i did! :)
22:23 timotimo moritz: want to write some spec tests? ;)
22:28 travis-ci joined #perl6-dev
22:28 travis-ci Rakudo build errored. Elizabeth Mattijsen 'Introduce R:I:IteratePairFromIterator
22:28 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173739166 https://github.com/rakudo/rakudo/compare/608de26e30e3...e829aa1bc725
22:28 travis-ci left #perl6-dev
22:28 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
22:37 AlexDaniel joined #perl6-dev
23:02 travis-ci joined #perl6-dev
23:02 travis-ci Rakudo build failed. Elizabeth Mattijsen 'Give 1dimmed shaped arrays its own .pairs
23:02 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173741427 https://github.com/rakudo/rakudo/compare/e829aa1bc725...b7d9537a7c0a
23:02 travis-ci left #perl6-dev
23:02 buggable [travis build above] ☠ Did not recognize some failures. Check results manually. All failures are on JVM only.
23:14 seatek joined #perl6-dev
23:31 travis-ci joined #perl6-dev
23:31 travis-ci Rakudo build passed. Elizabeth Mattijsen 'Introduce R:I:IterateAntiPairFromIterator
23:31 travis-ci https://travis-ci.org/rakudo/rakudo/builds/173744416 https://github.com/rakudo/rakudo/compare/b7d9537a7c0a...c5c600112561
23:31 travis-ci left #perl6-dev
23:52 lizmat .oO( if I commit often enough, it will pass the build :-)
23:52 lizmat good night, #perl6-dev!
23:52 timotimo gnite liz :)

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