Geth kudo/nom: fe49a7738a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:Iterator.ListIndexes

Takes a source List and an iterator generating indices and produces an iterator that supplies List with mapped elements of the source List.
00:23
kudo/nom: 1a54bba5e6 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make List.combinations(N) about 20% fasters

By no longer needing intermediate Seqs, but doing all with iterators until we need the final Seq.
00:25
lizmat and that concludes my hacking for today 00:26
good night, #perl6-dev!
samcv night lizmat 00:44
Geth ast: 8db96d67e4 | usev6++ | S15-unicode-information/uniname.t
[JVM] Refudge tests for uniname (fixed on Moar)
08:03
[Tux] This is Rakudo version 2016.12-312-g1a54bba5e built on MoarVM version 2016.12-115-ged2df9ac 09:54
csv-ip5xs 2.931
test 12.421
test-t 4.994
csv-parser 13.374
RabidGravy Ooooooh 10:19
so what's the scope for that being the same as the csv-ip5xs before the end of the year? 10:20
the trajectory seems good
lizmat Files=1164, Tests=56530, 188 wallclock secs (11.04 usr 4.58 sys + 1121.34 cusr 116.86 csys = 1253.82 CPU) 10:38
lizmat doesn't understand why the last tweet uses X+ instead of Z+, and the one before that is wrong: it generates a1,b2,a2,b2 10:49
brokenchicken moritz ?? 10:50
timotimo it uses X+ instead of Z+ because otherwise you only add 2 to the first element 10:53
lizmat ah, good point :-) TIL :-) 10:55
but the example output a1,b1,b1,b2 *is* wrong
right ?
timotimo yup 10:56
typod
we're apparently now getting mails from our wordpress page in ... spanish?
the weekly i mean
"algarnatiblog ahora está siguiendo Weekly changes in and around Perl 6" 10:57
lizmat apparently some blog is now following P6W ? 10:58
*spanish blog
timotimo yeah, but ... shouldn't it use our language, not their language? 11:00
Geth kudo/nom: 00c3551c86 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Hopefully fix RT #130556

As I've not been able to build the JVM on my macOS machine for quite some time now :-(
11:03
bartolin lizmat: thanks a lot, I'll try your fix. ooc, how does the JVM build fail on your machine? 11:06
lizmat Stage jast : java.lang.OutOfMemoryError: PermGen space 11:07
Exception in thread "main"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"
bartolin oh 11:08
:-/
timotimo might be able to up the amount of memory it allocates with a -X argument to the java command in the launcher
lizmat where does that live? 11:09
timotimo should be the perl6-j launcher script 11:10
lizmat timotimo: but this is during build ?
timotimo it probably already has a memory-defining command in there 11:11
well, yeah, but you can probably change it and just run make again
lizmat I don't have a perl6-j just yet then ?
timotimo for trying out it might be enough to jus tcopy-paste the command it spits out for building the core setting
and experimenting to find out what works
lizmat java -Xss1m -Xms500m -Xmx2000m 11:12
timotimo permgen size is probably influenced by the -Xmx parameter 11:13
i mean, -Xms is the beginning size for the heap and -Xss is the stack size IIRC
lizmat well, I upped Xmx from 2000 to 3000, still same error :-( 11:20
lizmat gets a fresh checkout 11:21
timotimo oof
-XX:MaxPermSize=128M 11:22
this seems ot exist
bartolin lizmat++ # looks like you fixed the problem, spectest still running 11:41
Geth kudo/nom: 9c25d15bf9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing Iterator.Callable

Create an iterator from a pointy block (without Slip checking). To be used for creating simple ad-hoc iterator:
   $ 6 'my $i = 0; Rakudo::Iterator.Callable( {
   $i < 10 ?? $i++ !! IterationEnd
   } ).push-all(my @a); dd @a'
   Array @a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
11:47
lizmat bartolin: a fresh checkout gives a different error: 11:53
Stage jast : java.lang.InternalError: convert=Lambda(a0:L,a1:L,a2:I,a3:L,a4:L,a5:L,a6:L,a7:L,a8:L)=>{
t9:V=MethodHandle(String,int,ThreadContext,Object,Object,Object,Object,Object)void(a1:L,a2:I,a3:L,a4:L,a5:L,a6:L,a7:L,a8:L);t9:V}
after that, it just keeps eating all CPU on my machine and need to kill -9 it :-( 11:54
bartolin has no idea what that error is about 12:01
timotimo let's file an LTA Error bug with sun and see how that works out 12:03
lizmat I think it's trying to say it's in la la land 12:05
gfldex m: my &l = { state $i = 0; $i < 10 ?? $i++ !! IterationEnd } but role :: { method Iterator { Rakudo::Iterator.Callable(self) } }; for &l { .say } 12:06
camelia rakudo-moar 9c25d1: OUTPUT«-> ;; $_? is raw { #`(Block+{<anon|46943728>}|47254304) ... }␤»
lizmat gfldex: I think you're misunderstanding what an Iterator is 12:07
gfldex i believe so
samcv not sure how to respond to the last reply to this RT rt.perl.org/Ticket/Display.html?id=130542 12:08
gfldex how does `for` know when to request a .Iterator ?
lizmat gfldex: for one, it would be .iterator (lowercase i)
gfldex m: my &l = { state $i = 0; $i < 10 ?? $i++ !! IterationEnd } but role :: { method iterator { Rakudo::Iterator.Callable(self) } }; for &l { .say } 12:09
camelia rakudo-moar 9c25d1: OUTPUT«-> ;; $_? is raw { #`(Block+{<anon|58375664>}|58686240) ... }␤»
samcv if somebody could look at the last post, and the person asked about why BELL on MVM and JVM were different
timotimo will it look for .iterator if it gets passed something with $ or & sigil?
samcv and they seem to have some issues they want to bring up
timotimo right, it looks like they want to tell us to build our own unicode database stuff for rakudo-j
samcv that seems uhm. a waste of effort 12:10
i mean why use a VM if you have to provide all that stuff? and then it won't be as fast either
lizmat timotimo samcv well, if you want to be guaranteeing the same level of unicode at all backends...
samcv i mean backends are different. that's inherent imo. but
lizmat but yeah, it does feel like a lot of effort 12:11
well, you know the adage: compile once, run everywhere :-)
samcv i mean I may programmatically generate the alias names 12:12
lizmat gfldex: for &l will just iterate once for the iterator, "for" isn't smart enough to know what you mean :-)
samcv and i am not sure all the unicode properties JVM implements tbh
brokenchicken lizmat: I'm not involved with perl6 twitter account..
timotimo i'd hope all our unicode tests would succeed on all our backends, tbh
samcv i agree with that
lizmat brokenchicken: ah, yeah, oops, sorry :-) 12:13
samcv at least timotimo
gfldex how does Perl 6 The Language feels about exposing Iterators to the users? (<-- this is a ENODOC question)
lizmat docs.perl6.org/type/Iterator # isn't this the doc ? 12:14
gfldex it is an I'm not sure it should
moritz it should
because people might want to implement their own iterators
or they might come across an iterator that has leaked out 12:15
gfldex then we need to doc how Iterators are used by buildins and control structures
lizmat so what more would be needed than docs.perl6.org/type/Iterator ?
moritz gfldex: why?
samcv but I mean. I would be ok with adding support for unicode properties we don't have on JVM. but it seems a waste to implement what is already there
looking at java's page on what you can call on a character, there are properties they may not support but I haven't digged in 12:16
timotimo we need to implement NFG on java, too
that'll potentially mean we'll have to implement a few more properties 12:17
samcv i don't see the GCB property
gfldex moritz: we already doc that for, map, grep and .[] use Iterator but we don't link from those to Iterator.pod6 .
I don't like this kind of semi-hidden docs
samcv I am willing to do that going down the road if somebody wants to work on NFG support for java, and be able to generate the UCD properties using the same script and not duplicate a lot of the effort
moritz gfldex: the more likely it is that people use stuff, the better it should be documented. I think the current coverage for Iterator is fine for the amount of direct usage we expect 12:19
gfldex: and it's not like the entirely of the type docs are supposed to be a narrative that breaks down when Iterator docs are there, even if somewhat out of context 12:20
samcv ok in this: %points{$cp}{$key} = $hashy{$key}; 12:22
how do i make sure $cp isn't coerced into a string?
it needs to stay an int
Int i mean 12:23
moritz my Int %points;
geekosaur my %points{Int}
or that I guess
moritz erm, listen to geekosaur, not me
samcv will that only force the highest level keys to be Int's?
moritz mine constraints the values, not the keys
yes
samcv it stores string/bool/int/arrays
moritz so any
samcv ok
moritz maybe Cool, if you prefer 12:24
samcv well i only need to constrain the highest level key
the highest level key _must_ be an int. the other ones are values
that have non string types that is
k let me try that 12:25
@geekosaur,
subst-mutate is the same as ~~ s/// right? 12:27
geekosaur should be
samcv i wish it were shorter than that, .match is nice and short 12:28
but I digress. let me try the int thing
geekosaur I think the idea is to dissuade people from using the mutating one
samcv but people use it with ~~ s/// right? hm 12:29
i actually prefer the .match syntax oftentimes
tidyer
though I could do $var.=subst(/before/, 'after') but still not as pretty 12:30
lizmat samcv: if the keys are to be Ints, wouldn't it make more sense to make the lowest level an array ? 12:32
timotimo in theory you could use an array instead of a hash, though that may become rather big
ah liz already thought of that
samcv they're not all contiguous and not added in the same order
lizmat well, depends on how sparse your array would be 12:33
samcv well all the unicode numbers
geekosaur added in order doesn't matter
lizmat since there is a significant overhead in forcing Int fgor keys
*for
timotimo bigger than stringifying?
lizmat I'm pretty sure that even at 20% use of the array, would come
geekosaur but a sparse array of potentially length 0x10FFFF might be problematic...
lizmat out better
samcv didn't seem to be much slower 12:34
didn't notice anything. worked
lizmat ok, then let's shut up :-)
samcv now I can be happy again :)
timotimo yays
lizmat geekosaur: since we don't have object hashes at the VM level
samcv may have been faster due to, having to call .sort a lot? idk
we don't?
what if I make it type int? not Int? 12:35
lizmat we need to mimic it with a normal hash that takes the .WHICH as a key, and the key/value pair as the value
geekosaur "object hash" means any hash not keyed by strings
samcv yeah
timotimo don't forget that there's also object hash literals 12:37
you'll need to use those if you want to assign to a % variable and not have it stringify all the keys
lizmat m: dd :{ 42 => "foo"} # timotimo this what you mean ? 12:43
camelia rakudo-moar 9c25d1: OUTPUT«:{42 => "foo"}␤»
lizmat m: dd { 42 => "foo"} # as opposed to this
camelia rakudo-moar 9c25d1: OUTPUT«Hash % = {"42" => "foo"}␤»
timotimo thats what i mean, yes 12:45
mh, you're not supposed to write %foo = { ... } anyway, right? 12:46
samcv time for bed for me. night all! 12:47
timotimo gnite samcv
lizmat good night samcv 12:48
Geth kudo/nom: ae4bd3bcbe | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing Iterator.SequentialIterators

An iterator that merges the iterators generated by the source iterator sequentially.
12:51
kudo: smls++ created pull request #993:
Make endpoint-excuding string ranges work with non-alphanumeric chars
12:52
kudo/nom: daf7e5185b | smls++ | src/core/Range.pm
Make endpoint-excuding string ranges work with non-alphanumeric chars

Range.iterator for the case of a Str minimum, used `.pred` and `.succ` to adjust the minimum and maximum value for $!excludes-min or
  $!excludes-max. This worked correctly for alphanumeric characters
  (e.g. "a".succ -> "b"), but not for others (e.g. "!".succ -> "!").
So now $!excludes-min and $!excludes-max are passed along to the constructor of the Iterator, so that it can adjust its start and end code points accordingly.
12:54
kudo/nom: 9a746618b0 | lizmat++ | src/core/Range.pm
Merge pull request #993 from smls/nom

Make endpoint-excuding string ranges work with non-alphanumeric chars
kudo/nom: d17c6497a0 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Oops, we need to instantiate
13:09
diakopter moritz: the clog doesn't urlize quite right: irclog.perlgeek.de/moarvm/2017-01-13#i_13914958 14:29
moritz diakopter: to me it looks like there's a … character there, which must be escaped in URLs, no? 14:31
.u …
yoleaux2 U+2026 HORIZONTAL ELLIPSIS [Po] (…)
diakopter I'm sure some standard says "must" somewhere, but github uses them
moritz diakopter: example? 14:32
diakopter: like, where github actually provides an unescaped URL?
diakopter the links they generate when you click the compare button 14:33
moritz diakopter: do you have a concrete example for me? 14:34
diakopter well, now it's giving me three dots, but I've seen the ellipsis before
moritz diakopter: like, and URL I can click where I can see it?
diakopter maybe they used to have the ellipsis, and they still have the ellipsis in their API that spits out that link 14:35
or does Geth add that ellipsis character
brokenchicken Geth ads it
I'll swap for plain three dots
One of my terminals doesn't register it as part of the link
diakopter well I definitely remember seeing the ellipsis in the address bar someday ago :D 14:36
brokenchicken Done.
moritz diakopter: but that might be your browser showing you the unescaped URL 14:37
diakopter true
moritz see also github.com/moritz/ilbot/issues/47 for some discussion about URL finding heuristics 14:38
diakopter well that link with three dots doesn't work
(nor does the ellipsis one)
moritz typically a dot terminates a sentence when not followed by an identifier character 14:40
diakopter Geth: oh, it needs to generate a compare link with the previous commit, not the first commit of the series 14:41
brokenchicken: I mean
brokenchicken seems so; it's not available in the data that gets sent tho 14:44
diakopter cache the last one? 14:45
brokenchicken that'd mean it'd be storing a database of all repos it ever seen :/ 14:46
Inelegant.
diakopter not on disk, I just meant in memory from startup
it always can get some baseline
brokenchicken How? 14:47
diakopter the one I linked above should be github.com/MoarVM/MoarVM/compare/d...d1da1bac41
by asking for the head commit? surely that's possible
I guess it would need to do that on all branches though, bleh 14:48
brokenchicken: actually you can get the parent commit from here: developer.github.com/v3/repos/comm...gle-commit 14:57
well, parents :)
gfldex m: sub circumfix:<α ω>($a){ say „$a is the beginning and the end.“ }; α♥ω; 15:00
camelia rakudo-moar d17c64: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus statement␤at <tmp>:1␤------> 3 „$a is the beginning and the end.“ }; α7⏏5♥ω;␤ expecting any of:␤ prefix␤ term␤»
gfldex are custim circumfix NYI? 15:01
lizmat m: sub circumfix:<α ω>($a){ say „$a is the beginning and the end.“ }; α "♥" ω # whitespace and quoting 15:07
camelia rakudo-moar d17c64: OUTPUT«♥ is the beginning and the end.␤»
lizmat gfldex: ^^^
actually, only quoting needed:
m: sub circumfix:<α ω>($a){ say „$a is the beginning and the end.“ }; α"♥"ω
camelia rakudo-moar d17c64: OUTPUT«♥ is the beginning and the end.␤»
gfldex m: constant term:<♥> = "♥"; sub circumfix:<α ω>($a){ say „$a is the beginning and the end.“ }; α♥ω 15:09
camelia rakudo-moar d17c64: OUTPUT«♥ is the beginning and the end.␤»
gfldex lizmat: i'm not sure if quoting "love" would give the right impression :-> 15:10
lizmat well, it needs to be quoted somewhere :-) 15:11
brokenchicken diakopter: which parent should I use if there are multiple ones?
diakopter: never mind; I was wrong. The WebHook payload does include "before" and "after" keys that look like they contain the shas I should use for the compare URL 15:15
Geth kudo/nom: 717b37f07e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Oops, need to use callable of the instance!

This created weird scoping effects :-(
15:20
diakopter brokenchicken: cool 15:31
lizmat sircmpwn.github.io/2017/01/13/The-...hon-3.html # interesting 15:46
news.ycombinator.com/item?id=13397332 # HN comments 15:47
DrForr brokenchicken: Aaaah, as usual blind as a bat. 15:49
lizmat bartolin: fwiw, a subsequent make fails again with: 15:50
Stage jast : java.lang.OutOfMemoryError: PermGen space
make: *** [CORE.setting.jar] Killed: 9
DrForr Actually the highlight is on the wrong section of code there, I think - 'when 3' should be triggering, and that does indeed have {1,2}, yet is-legal-place fails. I'll pay wit it a bit more later 16:00
Geth kudo/nom: 502fc77a68 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make List.combinations() 1.5x, List.combinations(3..5) 2x faster

By using the new R:It.SequentialIterators and R:It.Callable functionality
16:13
bartolin lizmat: the clogs have this from 2016-11: irclog.perlgeek.de/perl6-dev/2016-...i_13555660 I haven't seen that particular error with jdk 1.7 on debian, though. maybe it's specific for osx 16:19
lizmat bartolin: noted 16:20
bartolin lizmat: unfortunately your commit 00c3551c86 from earlier today did not fix RT #130556. I mixed up my builds earlier today. I tried to build on bcc113cf and apply your patch, but I get the same error there :-( 16:21
lizmat :-( 16:22
bartolin: could you pull HEAD and build and then post the full stacktrace ? 16:23
bartolin lizmat: yes, will do
lizmat at least I have matching gen/jvm/CORE.setting now
bartolin lizmat: if you want, I can give you an account on the box I use for daily spectests (freebsd) 16:25
lizmat let's see if I can fix it first :-) 16:26
bartolin ++lizmat :-)
on a different note: I sent a signed CLA to the Perl Foundation by email, but didn't get a response, yet. I mailed it to the trademark@... address, as suggested by samcv (IIRC). any ideas for a different recipient? 16:29
lizmat [Coke] might be able to nudge things :-) 16:32
bartolin ok, will ask him. thanks 16:33
lizmat: actually the error looks different now: gist.github.com/usev6/8a2fd8fd55bb...e0f4aece9a 16:45
lizmat huh, that's inside Mappy-values.pull-one ? 16:49
that's the wrong iterator 16:50
bartolin no, it's in ListIndexes for me (gen/jvm/CORE.setting:5626) 16:52
lizmat grrr 16:53
bartolin ListIndexes.pull-one
lizmat bartolin: could you change ($!list := nqp::getattr(list,List,'$!reified')), 16:54
to ($!list := nqp::decont(nqp::getattr(list,List,'$!reified'))),
?
a few lines before that
bartolin found it, hold on 16:55
Geth pan style="color: #d55e83">geth: 9b74eb8562 | (Zoffix Znet)++ | bin/geth.p6
Update help message

  - point to perl6/geth
  - tell which events to send
17:03
bartolin lizmat: that doesn't change anything (identical backtrace)
Geth kudo/nom: 505766f3a7 | (Elizabeth Mattijsen)++ | 2 files
Make $?BITS a proper HLL citizen
17:05
kudo/nom: 78edbbbdef | (Elizabeth Mattijsen)++ | src/core/List.pm
Make permutations() almost 20% faster

Thanks to using compile-time $?BITS instead of $*KERNEL.bits
lizmat bartolin: :-( 17:06
jnthn TimToady should we document $?BITS now, or keep it as a Rakudo specific internal thing ?
bartolin: hmmm.. perhaps decont the line where $buffer := nqp::decont($!indexes.pull-one) ? 17:08
perhaps the JVM is containerising an IterationBuffer when it is returned ? 17:09
bartolin but we have that in other places as well (no decont for $buffer := $!indexes.pull-on)
lizmat well, clutching at straws here 17:10
bartolin tries that
lizmat but "This type does not support positional operations" in these contexts generally means it's getting a Scalar
and afaik, this would be one of the few cases where an IterationBuffer is returned rather than a nqp::list or List 17:11
Geth p/master: 4 commits pushed by pmurias++ 17:12
brokenchicken recalls using $*KERNEL.bits in .combinations 17:14
lizmat &dinner
brokenchicken ah, only in throwage: github.com/rakudo/rakudo/blob/nom/...or.pm#L403 17:15
bartolin lizmat: adding that second nqp::decont resulted in a different error (probably not an improvement): "Cannot do aggregate operation on a type object" 17:17
lizmat: I added some debugging statements and it looks like $buffer ended up being Mu (instead of IterationEnd) 17:32
that somehow reminds me of RT #130532 17:34
r: use nqp; class A { has Mu $!foo; method bar () { $!foo := nqp::null; say nqp::isnull($!foo) ?? "null" !! $!foo } }.new.bar
camelia rakudo-jvm fb4f16: OUTPUT«(Mu)␤»
..rakudo-moar 78edbb: OUTPUT«null␤»
bartolin lizmat: indeed, if I run the same code on MoarVM, I get an IterationEnd. I'll try to golf it some more later 17:52
lizmat bartolin++ 18:09
Geth p: 7479ce662d | (Pawel Murias)++ | 6 files
[js] Fix stuff by make js-lint.
18:48
kudo/nom: a017356b84 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R:It.Permutations

  - abstracted logic from permutations()
  - optimized calculation of number of elems to generate
  - add option for returning an IterationBuffer rather than a List
19:02
kudo/nom: b5293c2bd0 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make permutations(n) about 15x faster

  - by using the new R:It.Permutations iterator
  - based on permutations(5)
19:03
lizmat sometimes I wish we had something like nqp::swap_i($a,$b) 19:11
Geth kudo/nom: fb633afd8a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Add some documentation for Permutations
19:22
kudo/nom: 85df851129 | (Elizabeth Mattijsen)++ | src/core/List.pm
Make List.permutations use R:It.Permutations

This only makes it go a few percent faster, but it will also allow getting riud of R:In.ListsFromSeq.
kudo/nom: 65f8f02856 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Get rid of R:In.ListsFromSeq

This is no longer needed in the core. If you need something like this in the core, you probably need something like R:It.ListIndexes
19:27
lizmat afk for a few hours&
pmurias would caching the scalar contvars are cloned of break anything? all $_ in a given compunit would be cloned from the same Scalar 20:02
jnthn pmurias: Need to be extremely careful; variables can have traits placed on them, and even $_ can be declared typed 20:04
for @i -> Int $_ { } 20:05
timotimo i have a branch where i tried to cache ScalarDescriptor, but it broke regarding readwriteness 20:40
only in a single spec test
AlexDaniel brokenchicken: I wonder if you know about this issue. Create a file called ‘tëst’ (e + combining character) in directory ‘foo’, then do 「for dir(‘foo’) { .slurp.say }」. It won't work saying “no such file or directory” 21:03
geekosaur oy, not that one again 21:04
AlexDaniel sure it's normalized, but I haven't asked it to throw away information
geekosaur: was it discussed before?
geekosaur not in terms of perl 6
has bitten gtk file chooser dialogs and various OS X Cocoa APIs, among others 21:05
basically, not doing a good job of dealing with UTF8 encodings vs. POSIX byte strings. don't we have utf8-c8 for that?
timotimo utf8-c8 won't do it 21:06
because e + combining blah is valid UTF8 and thus will go through the NFG mechanism
we'll have something for this, though 21:07
AlexDaniel should I file a bug report?
timotimo we don't have one yet?
AlexDaniel I have no idea
geekosaur timotimo, that was exactly my point. you need to be able to roundtrip, so it does not matter that it happens to be valid, it should *always* use a roundtrippable encoding 21:08
timotimo aye, it should.
geekosaur otherwise you have problems ranging from this kind of bug to potential security concerns
timotimo i seem to recall we wanted to have something for that 21:09
geekosaur (not major ones but still) 21:10
AlexDaniel hm… 21:11
6c: for dir(‘foo’) { .slurp.say } 21:12
committable6 AlexDaniel, gist.github.com/04d8958ded882d6599...ebd2c204ec
AlexDaniel wait, it works on HEAD??
bisect: for dir(‘foo’) { .slurp.say }
bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=65f8f02) because on both starting points the exit code is 1
timotimo huh
bisectable6 AlexDaniel, bisect log: gist.github.com/7199a0ed24323a9c56...14c1c0db2e
AlexDaniel, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053
timotimo haha 21:13
AlexDaniel no, not that
commit: HEAD for dir(‘foo’) { .slurp.say }
committable6 AlexDaniel, ¦«HEAD»: blah␤
AlexDaniel commit: HEAD for dir(‘foo’) { .slurp.say }; exit 0
committable6 AlexDaniel, ¦«HEAD»: blah␤
AlexDaniel bisect: for dir(‘foo’) { .slurp.say }; exit 0
bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=65f8f02) because on both starting points the exit code is 1
AlexDaniel wtf
bisectable6 AlexDaniel, bisect log: gist.github.com/753c59ec98baa26d5a...6f13eaa217
AlexDaniel, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053
AlexDaniel commit: HEAD~150..HEAD~100 for dir(‘foo’) { .slurp.say } 21:15
committable6 AlexDaniel, gist.github.com/b61192e1e408d1f7b7...01da07ce4d 21:16
AlexDaniel I have no idea what's going on :|
I think it's this: github.com/rakudo/rakudo/commit/HEAD~134 21:18
commit: 7c8b705b33^,7c8b705b33 for dir(‘foo’) { .slurp.say } 21:19
committable6 AlexDaniel, gist.github.com/07e2a3a2a9ce481e3f...01fa23cf0e
AlexDaniel yea, looks like…
timotimo now try a different filename
AlexDaniel timotimo: like? 21:20
timotimo dunno
but something with a different combiner
AlexDaniel should it normalize into something different? 21:21
timotimo don't know! 21:28
i'm just saying ... fuzz it :)
so that we don't accidentally think this is a fix where it's really just a strange edge case
bartolin lizmat: I've updated RT #130556. It seems to be the same bug as RT #130532. Basically R::I.OneValue does not work correctly on r-j. I have no idea how to fix the underlying problem in nqp-j. maybe you have an idea for a workaround at the Rakudo level? 21:33
AlexDaniel timotimo: for that we'd need tests…
timotimo well, sure 21:34
AlexDaniel github.com/perl6/roast/issues/221 21:35
timotimo this will be a nightmare to get right cross-platform :) 21:37
well, maybe
brokenchicken AlexDanielbrokenchicken: I wonder if you know about this issue. 21:40
Nope.
AlexDaniel it seems to be fixed 134 commits ago, so I'm not sure if there is any issue at all now… 21:41
brokenchicken Oh. Awesome.
AlexDaniel or we just broke the normalization completely and simply haven't noticed yet
timotimo yeah 21:42
that's what i meant
but we do have lots of tests for unicodey stuffs
lizmat j: my Mu $a := 42; $a := Mu; say $a =:= Mu 21:52
camelia rakudo-jvm fb4f16: OUTPUT«True␤»
lizmat j: my $a := 42; $a := Mu; say $a =:= Mu 21:53
camelia rakudo-jvm fb4f16: OUTPUT«True␤»
lizmat j: use nqp; my $a := 42; $a := Mu; say nqp::eqaddr($a,Mu) 21:54
camelia rakudo-jvm fb4f16: OUTPUT«1␤»
lizmat j: use nqp; my $a := 42; $a := nqp::null; say nqp::eqaddr($a,Mu) 21:57
camelia rakudo-jvm fb4f16: OUTPUT«0␤»
Geth kudo/nom: 8c2d9e2914 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Hopefully really fix RT #130556 and RT #130532

Well, until we can get this nqp::null / nqp::isnull / nqp::ifnull business sorted on the JVM backend.
21:59
lizmat bartolin ^^^ 22:00
bartolin tries that 22:05
\o/ that seems to work. lizmat++ 22:15
lizmat whee!
bartolin I didn't run a spectest -- it will start in about one hour anyway. I'll report back tomorrow :-) 22:17
lizmat ok, thanks for keeping up the good jvm work! 22:18
Geth kudo/nom: 53a7aca032 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
Remove R:In.SeqFromSeqs

It wasn't used anymore.
22:19
samcv j: say 'a' ~~ /<:L>/ 22:34
camelia rakudo-jvm fb4f16: OUTPUT«「a」␤»
samcv j: say 'a' ~~ /<:L>/
camelia rakudo-jvm fb4f16: OUTPUT«「a」␤»
samcv j: say '1' ~~ /<:L>/
camelia rakudo-jvm fb4f16: OUTPUT«Nil␤»
samcv j: say '1' ~~ /<:AHex>/
camelia rakudo-jvm fb4f16: OUTPUT«java.util.regex.PatternSyntaxException: Unknown character property name {AHex} near index 7␤\p{AHex}␤ ^␤ in method ACCEPTS at gen/jvm/CORE.setting line 32947␤ in block <unit> at <tmp> line 1␤␤»
Geth kudo/nom: 62a7cf2cb3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Add optional "is-lazy" flag to R:It.Callable

Using a multi method for better performance.
22:44
kudo/nom: 5724c276b5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
R:It.Roller is now a client of R:It.Callable
22:53
kudo/nom: f761d34a54 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
Introducing R.It.RoundrobinIterables

The workhorse of roundrobin()
23:37
kudo/nom: 73d0cec77e | (Elizabeth Mattijsen)++ | src/core/List.pm
Make roundrobin() about 4x faster

  - by using the new shiny R::It.RoundrobinIterables
kudo/nom: b7cd77dda1 | (Elizabeth Mattijsen)++ | src/core/List.pm
Give roundrobin() the same sig as zip() and cross()

This was probably overlooked during the GLR. Does not cause any spectest breakage.
23:46
lizmat and that concludes my hacking for today
good night, #perl6-dev!
timotimo gnite liz 23:54