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 statementat <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 | AlexDaniel │ brokenchicken: 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 |