Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6-dev, 2017-01-14

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

All times shown according to UTC.

Time Nick Message
00:18 vendethiel joined #perl6-dev
00:23 Geth rakudo/nom: fe49a7738a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
00:23 Geth rakudo/nom: Introducing R:Iterator.ListIndexes
00:23 Geth rakudo/nom:
00:23 Geth rakudo/nom: Takes a source List and an iterator generating indices and produces an
00:23 Geth rakudo/nom: iterator that supplies List with mapped elements of the source List.
00:23 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fe49a7738a
00:25 Geth rakudo/nom: 1a54bba5e6 | (Elizabeth Mattijsen)++ | src/core/List.pm
00:25 Geth rakudo/nom: Make List.combinations(N) about 20% fasters
00:25 Geth rakudo/nom:
00:25 Geth rakudo/nom: By no longer needing intermediate Seqs, but doing all with iterators
00:25 Geth rakudo/nom: until we need the final Seq.
00:25 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a54bba5e6
00:26 lizmat and that concludes my hacking for today
00:26 lizmat good night, #perl6-dev!
00:44 samcv night lizmat
02:02 FROGGS__ joined #perl6-dev
02:24 user__ joined #perl6-dev
02:48 ilbot3 joined #perl6-dev
02:48 Topic for #perl6-dev is now Perl 6 language and compiler development 2.0 | Logs at http://irclog.perlgeek.de/perl6-dev/today
03:00 FROGGS_ joined #perl6-dev
04:15 vendethiel joined #perl6-dev
04:33 vendethiel joined #perl6-dev
05:26 ggoebel joined #perl6-dev
08:03 Geth roast: 8db96d67e4 | usev6++ | S15-unicode-information/uniname.t
08:03 Geth roast: [JVM] Refudge tests for uniname (fixed on Moar)
08:03 Geth roast: review: https://github.com/perl6/roast/commit/8db96d67e4
08:11 AlexDaniel joined #perl6-dev
08:12 AlexDaniel joined #perl6-dev
09:31 RabidGravy joined #perl6-dev
09:54 [Tux] This is Rakudo version 2016.12-312-g1a54bba5e built on MoarVM version 2016.12-115-ged2df9ac
09:54 [Tux] csv-ip5xs        2.931
09:54 [Tux] test            12.421
09:54 [Tux] test-t           4.994
09:54 [Tux] csv-parser      13.374
10:19 RabidGravy Ooooooh
10:20 RabidGravy so what's the scope for that being the same as the csv-ip5xs before the end of the year?
10:20 RabidGravy the trajectory seems good
10:36 cognominal joined #perl6-dev
10:38 lizmat Files=1164, Tests=56530, 188 wallclock secs (11.04 usr  4.58 sys + 1121.34 cusr 116.86 csys = 1253.82 CPU)
10:43 hankache joined #perl6-dev
10:49 * 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:50 lizmat brokenchicken moritz ??
10:53 timotimo it uses X+ instead of Z+ because otherwise you only add 2 to the first element
10:55 lizmat ah, good point  :-)   TIL   :-)
10:55 lizmat but the example output a1,b1,b1,b2 *is* wrong
10:55 lizmat right ?
10:56 timotimo yup
10:56 timotimo typod
10:56 timotimo we're apparently now getting mails from our wordpress page in ... spanish?
10:56 timotimo the weekly i mean
10:57 timotimo "algarnatiblog ahora está siguiendo Weekly changes in and around Perl 6"
10:58 lizmat apparently some blog is now following P6W ?
10:58 lizmat *spanish blog
11:00 timotimo yeah, but ... shouldn't it use our language, not their language?
11:03 Geth rakudo/nom: 00c3551c86 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
11:03 Geth rakudo/nom: Hopefully fix RT #130556
11:03 Geth rakudo/nom:
11:03 Geth rakudo/nom: As I've not been able to build the JVM on my macOS machine for quite
11:03 Geth rakudo/nom: some time now  :-(
11:03 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/00c3551c86
11:06 bartolin lizmat: thanks a lot, I'll try your fix. ooc, how does the JVM build fail on your machine?
11:07 lizmat Stage jast       : java.lang.OutOfMemoryError: PermGen space
11:07 lizmat Exception in thread "main"
11:07 lizmat Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main"
11:08 bartolin oh
11:08 bartolin :-/
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
11:09 lizmat where does that live?
11:10 timotimo should be the perl6-j launcher script
11:10 lizmat timotimo: but this is during build ?
11:11 timotimo it probably already has a memory-defining command in there
11:11 timotimo well, yeah, but you can probably change it and just run make again
11:11 lizmat I don't have a perl6-j just yet then ?
11:11 timotimo for trying out it might be enough to jus tcopy-paste the command it spits out for building the core setting
11:11 timotimo and experimenting to find out what works
11:12 lizmat java -Xss1m -Xms500m -Xmx2000m
11:13 timotimo permgen size is probably influenced by the -Xmx parameter
11:13 timotimo i mean, -Xms is the beginning size for the heap and -Xss is the stack size IIRC
11:20 lizmat well, I upped Xmx from 2000 to 3000, still same error  :-(
11:21 * lizmat gets a fresh checkout
11:21 timotimo oof
11:22 timotimo -XX:MaxPermSize=128M
11:22 timotimo this seems ot exist
11:41 bartolin lizmat++ # looks like you fixed the problem, spectest still running
11:47 Geth rakudo/nom: 9c25d15bf9 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
11:47 Geth rakudo/nom: Introducing Iterator.Callable
11:47 Geth rakudo/nom:
11:47 Geth rakudo/nom: Create an iterator from a pointy block (without Slip checking).  To
11:47 Geth rakudo/nom: be used for creating simple ad-hoc iterator:
11:47 Geth rakudo/nom:   $ 6 'my $i = 0; Rakudo::Iterator.Callable( {
11:47 Geth rakudo/nom:       $i < 10 ?? $i++ !! IterationEnd
11:47 Geth rakudo/nom:   } ).push-all(my @a); dd @a'
11:47 Geth rakudo/nom:   Array @a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
11:47 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9c25d15bf9
11:53 lizmat bartolin: a fresh checkout gives a different error:
11:53 lizmat 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)=>{
11:53 lizmat 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}
11:54 lizmat after that, it just keeps eating all CPU on my machine and need to kill -9 it  :-(
12:01 * bartolin has no idea what that error is about
12:03 timotimo let's file an LTA Error bug with sun and see how that works out
12:05 lizmat I think it's trying to say it's in la la land
12:06 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) ... }␤»
12:07 lizmat gfldex: I think you're misunderstanding what an Iterator is
12:07 gfldex i believe so
12:08 samcv not sure how to respond to the last reply to this RT https://rt.perl.org/Ticket/Display.html?id=130542
12:08 gfldex how does `for` know when to request a .Iterator ?
12:08 lizmat gfldex: for one, it would be .iterator (lowercase i)
12:09 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) ... }␤»
12:09 samcv if somebody could look at the last post, and the person asked about why BELL on MVM and JVM were different
12:09 timotimo will it look for .iterator if it gets passed something with $ or & sigil?
12:09 samcv and they seem to have some issues they want to bring up
12:09 timotimo right, it looks like they want to tell us to build our own unicode database stuff for rakudo-j
12:10 samcv that seems uhm. a waste of effort
12:10 samcv i mean why use a VM if you have to provide all that stuff? and then it won't be as fast either
12:10 lizmat timotimo samcv well, if you want to be guaranteeing the same level of unicode at all backends...
12:10 samcv i mean backends are different. that's inherent imo. but
12:11 lizmat but yeah, it does feel like a lot of effort
12:11 lizmat well, you know the adage: compile once, run everywhere  :-)
12:12 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  :-)
12:12 samcv and i am not sure all the unicode properties JVM implements tbh
12:12 brokenchicken lizmat: I'm not involved with perl6 twitter account..
12:12 timotimo i'd hope all our unicode tests would succeed on all our backends, tbh
12:12 samcv i agree with that
12:13 lizmat brokenchicken: ah, yeah, oops, sorry  :-)
12:13 samcv at least timotimo
12:13 gfldex how does Perl 6 The Language feels about exposing Iterators to the users? (<-- this is a ENODOC question)
12:14 lizmat https://docs.perl6.org/type/Iterator  # isn't this the doc ?
12:14 gfldex it is an I'm not sure it should
12:14 moritz it should
12:14 moritz because people might want to implement their own iterators
12:15 moritz 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
12:15 lizmat so what more would be needed than https://docs.perl6.org/type/Iterator ?
12:15 moritz gfldex: why?
12:15 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
12:16 samcv 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
12:17 timotimo that'll potentially mean we'll have to implement a few more properties
12:17 samcv i don't see the GCB property
12:17 gfldex moritz: we already doc that for, map, grep and .[] use Iterator but we don't link from those to Iterator.pod6 .
12:17 gfldex I don't like this kind of semi-hidden docs
12:17 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
12:19 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:20 moritz 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:22 samcv ok in this: %points{$cp}{$key} = $hashy{$key};
12:22 samcv how do i make sure $cp isn't coerced into a string?
12:22 samcv it needs to stay an int
12:23 samcv Int i mean
12:23 moritz my Int %points;
12:23 geekosaur my %points{Int}
12:23 geekosaur or that I guess
12:23 moritz erm, listen to geekosaur, not me
12:23 samcv will that only force the highest level keys to be Int's?
12:23 moritz mine constraints the values, not the keys
12:23 moritz yes
12:23 samcv it stores string/bool/int/arrays
12:23 moritz so any
12:23 samcv ok
12:24 moritz maybe Cool, if you prefer
12:24 samcv well i only need to constrain the highest level key
12:24 samcv the highest level key _must_ be an int. the other ones are values
12:24 samcv that have non string types that is
12:25 samcv k let me try that
12:25 samcv @geekosaur,
12:27 samcv subst-mutate is the same as ~~ s/// right?
12:27 geekosaur should be
12:28 samcv i wish it were shorter than that, .match is nice and short
12:28 samcv but I digress. let me try the int thing
12:28 geekosaur I think the idea is to dissuade people from using the mutating one
12:29 samcv but people use it with ~~ s/// right? hm
12:29 samcv i actually prefer the .match syntax oftentimes
12:29 samcv tidyer
12:30 samcv though I could do $var.=subst(/before/, 'after') but still not as pretty
12:32 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
12:32 timotimo ah liz already thought of that
12:32 samcv they're not all contiguous and not added in the same order
12:33 lizmat well, depends on how sparse your array would be
12:33 samcv well all the unicode numbers
12:33 geekosaur added in order doesn't matter
12:33 lizmat since there is a significant overhead in forcing Int fgor keys
12:33 lizmat *for
12:33 timotimo bigger than stringifying?
12:33 lizmat I'm pretty sure that even at 20% use of the array, would come
12:33 geekosaur but a sparse array of potentially length 0x10FFFF might be problematic...
12:33 lizmat out better
12:34 samcv didn't seem to be much slower
12:34 samcv didn't notice anything. worked
12:34 lizmat ok, then let's shut up  :-)
12:34 samcv now I can be happy again :)
12:34 timotimo yays
12:34 lizmat geekosaur: since we don't have object hashes at the VM level
12:34 samcv may have been faster due to, having to call .sort a lot? idk
12:34 samcv we don't?
12:35 samcv 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
12:35 geekosaur "object hash" means any hash not keyed by strings
12:35 samcv yeah
12:37 timotimo don't forget that there's also object hash literals
12:37 timotimo you'll need to use those if you want to assign to a % variable and not have it stringify all the keys
12:43 lizmat m: dd :{ 42 => "foo"}   # timotimo this what you mean ?
12:43 camelia rakudo-moar 9c25d1: OUTPUT«:{42 => "foo"}␤»
12:43 lizmat m: dd { 42 => "foo"}   # as opposed to this
12:43 camelia rakudo-moar 9c25d1: OUTPUT«Hash % = {"42" => "foo"}␤»
12:45 timotimo thats what i mean, yes
12:46 timotimo mh, you're not supposed to write %foo = { ... } anyway, right?
12:47 samcv time for bed for me. night all!
12:47 timotimo gnite samcv
12:48 lizmat good night samcv
12:51 Geth rakudo/nom: ae4bd3bcbe | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
12:51 Geth rakudo/nom: Introducing Iterator.SequentialIterators
12:51 Geth rakudo/nom:
12:51 Geth rakudo/nom: An iterator that merges the iterators generated by the source iterator
12:51 Geth rakudo/nom: sequentially.
12:51 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae4bd3bcbe
12:52 Geth rakudo: smls++ created pull request #993: Make endpoint-excuding string ranges work with non-alphanumeric chars
12:52 Geth rakudo: review: https://github.com/rakudo/rakudo/pull/993
12:54 Geth rakudo/nom: daf7e5185b | smls++ | src/core/Range.pm
12:54 Geth rakudo/nom: Make endpoint-excuding string ranges work with non-alphanumeric chars
12:54 Geth rakudo/nom:
12:54 Geth rakudo/nom: Range.iterator for the case of a Str minimum, used `.pred` and `.succ`
12:54 Geth rakudo/nom: to adjust the minimum and maximum value for $!excludes-min or
12:54 Geth rakudo/nom: $!excludes-max. This worked correctly for alphanumeric characters
12:54 Geth rakudo/nom: (e.g. "a".succ -> "b"), but not for others (e.g. "!".succ -> "!").
12:54 Geth rakudo/nom:
12:54 Geth rakudo/nom: So now $!excludes-min and $!excludes-max are passed along to the
12:54 Geth rakudo/nom: constructor of the Iterator, so that it can adjust its start and
12:54 Geth rakudo/nom: end code points accordingly.
12:54 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/daf7e5185b
12:54 Geth rakudo/nom: 9a746618b0 | lizmat++ | src/core/Range.pm
12:54 Geth rakudo/nom: Merge pull request #993 from smls/nom
12:54 Geth rakudo/nom:
12:54 Geth rakudo/nom: Make endpoint-excuding string ranges work with non-alphanumeric chars
12:54 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9a746618b0
13:09 Geth rakudo/nom: d17c6497a0 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
13:09 Geth rakudo/nom: Oops, we need to instantiate
13:09 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d17c6497a0
13:34 Geth joined #perl6-dev
13:34 buggable joined #perl6-dev
13:42 Ven joined #perl6-dev
14:27 pmurias joined #perl6-dev
14:29 diakopter moritz: the clog doesn't urlize quite right: https://irclog.perlgeek.de/moarvm/2017-01-13#i_13914958
14:31 moritz diakopter: to me it looks like there's a … character there, which must be escaped in URLs, no?
14:31 moritz .u …
14:31 yoleaux2 U+2026 HORIZONTAL ELLIPSIS [Po] (…)
14:31 diakopter I'm sure some standard says "must" somewhere, but github uses them
14:32 moritz diakopter: example?
14:32 moritz diakopter: like, where github actually provides an unescaped URL?
14:33 diakopter the links they generate when you click the compare button
14:34 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
14:34 moritz diakopter: like, and URL I can click where I can see it?
14:35 diakopter maybe they used to have the ellipsis, and they still have the ellipsis in their API that spits out that link
14:35 diakopter or does Geth add that ellipsis character
14:35 brokenchicken Geth ads it
14:35 brokenchicken I'll swap for plain three dots
14:35 brokenchicken One of my terminals doesn't register it as part of the link
14:36 diakopter well I definitely remember seeing the ellipsis in the address bar someday ago :D
14:36 Geth joined #perl6-dev
14:36 brokenchicken Done.
14:37 moritz diakopter: but that might be your browser showing you the unescaped URL
14:37 diakopter true
14:38 moritz see also https://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
14:38 diakopter (nor does the ellipsis one)
14:40 moritz typically a dot terminates a sentence when not followed by an identifier character
14:41 diakopter Geth: oh, it needs to generate a compare link with the previous commit, not the first commit of the series
14:41 diakopter brokenchicken: I mean
14:44 brokenchicken seems so; it's not available in the data that gets sent tho
14:45 diakopter cache the last one?
14:46 brokenchicken that'd mean it'd be storing a database of all repos it ever seen :/
14:46 brokenchicken Inelegant.
14:46 diakopter not on disk, I just meant in memory from startup
14:46 diakopter it always can get some baseline
14:47 brokenchicken How?
14:47 diakopter the one I linked above should be https://github.com/MoarVM/MoarVM/compare/d9482b9ba3...d1da1bac41
14:47 diakopter by asking for the head commit? surely that's possible
14:48 diakopter I guess it would need to do that on all branches though, bleh
14:57 diakopter brokenchicken: actually you can get the parent commit from here: https://developer.github.com/v3/repos/commits/#get-a-single-commit
14:57 diakopter well, parents :)
15:00 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␤»
15:01 gfldex are custim circumfix NYI?
15:07 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.␤»
15:07 lizmat gfldex: ^^^
15:07 lizmat actually, only quoting needed:
15:07 lizmat m: sub circumfix:<α ω>($a){ say „$a is the beginning and the end.“ }; α"♥"ω
15:07 camelia rakudo-moar d17c64: OUTPUT«♥ is the beginning and the end.␤»
15:09 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.␤»
15:10 gfldex lizmat: i'm not sure if quoting "love" would give the right impression :->
15:11 lizmat well, it needs to be quoted somewhere  :-)
15:11 brokenchicken diakopter: which parent should I use if there are multiple ones?
15:15 brokenchicken 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:20 Geth rakudo/nom: 717b37f07e | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
15:20 Geth rakudo/nom: Oops, need to use callable of the instance!
15:20 Geth rakudo/nom:
15:20 Geth rakudo/nom: This created weird scoping effects  :-(
15:20 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/717b37f07e
15:31 diakopter brokenchicken: cool
15:46 lizmat https://sircmpwn.github.io/2017/01/13/The-problem-with-Python-3.html  # interesting
15:47 lizmat https://news.ycombinator.com/item?id=13397332  # HN comments
15:49 DrForr brokenchicken: Aaaah, as usual blind as a bat.
15:50 lizmat bartolin: fwiw, a subsequent make fails again with:
15:50 lizmat Stage jast       : java.lang.OutOfMemoryError: PermGen space
15:50 lizmat make: *** [CORE.setting.jar] Killed: 9
16:00 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:13 Geth rakudo/nom: 502fc77a68 | (Elizabeth Mattijsen)++ | src/core/List.pm
16:13 Geth rakudo/nom: Make List.combinations() 1.5x, List.combinations(3..5) 2x faster
16:13 Geth rakudo/nom:
16:13 Geth rakudo/nom: By using the new R:It.SequentialIterators and R:It.Callable functionality
16:13 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/502fc77a68
16:19 bartolin lizmat: the clogs have this from 2016-11: https://irclog.perlgeek.de/perl6-dev/2016-11-12#i_13555660  I haven't seen that particular error with jdk 1.7 on debian, though. maybe it's specific for osx
16:20 lizmat bartolin: noted
16:21 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:22 lizmat :-(
16:23 lizmat bartolin: could you pull HEAD and build and then post the full stacktrace ?
16:23 bartolin lizmat: yes, will do
16:23 lizmat at least I have matching gen/jvm/CORE.setting now
16:25 bartolin lizmat: if you want, I can give you an account on the box I use for daily spectests (freebsd)
16:26 lizmat let's see if I can fix it first  :-)
16:26 bartolin ++lizmat :-)
16:29 stmuk joined #perl6-dev
16:29 bartolin 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:32 lizmat [Coke] might be able to nudge things  :-)
16:33 bartolin ok, will ask him. thanks
16:45 bartolin lizmat: actually the error looks different now: https://gist.github.com/usev6/8a2fd8fd55bb8b2dc68d08e0f4aece9a
16:49 lizmat huh, that's inside Mappy-values.pull-one ?
16:50 lizmat that's the wrong iterator
16:52 bartolin no, it's in ListIndexes for me (gen/jvm/CORE.setting:5626)
16:53 lizmat grrr
16:53 bartolin ListIndexes.pull-one
16:54 lizmat bartolin: could you change ($!list := nqp::getattr(list,List,'$!reified')),
16:54 lizmat to ($!list := nqp::decont(nqp::getattr(list,List,'$!reified'))),
16:54 lizmat ?
16:54 lizmat a few lines before that
16:55 bartolin found it, hold on
17:00 TimToady joined #perl6-dev
17:03 Geth geth: 9b74eb8562 | (Zoffix Znet)++ | bin/geth.p6
17:03 Geth geth: Update help message
17:03 Geth geth:
17:03 Geth geth: - point to perl6/geth
17:03 Geth geth: - tell which events to send
17:03 Geth geth: review: https://github.com/perl6/geth/commit/9b74eb8562
17:03 bartolin lizmat: that doesn't change anything (identical backtrace)
17:05 Geth rakudo/nom: 505766f3a7 | (Elizabeth Mattijsen)++ | 2 files
17:05 Geth rakudo/nom: Make $?BITS a proper HLL citizen
17:05 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/505766f3a7
17:05 Geth rakudo/nom: 78edbbbdef | (Elizabeth Mattijsen)++ | src/core/List.pm
17:05 Geth rakudo/nom: Make permutations() almost 20% faster
17:05 Geth rakudo/nom:
17:05 Geth rakudo/nom: Thanks to using compile-time $?BITS instead of $*KERNEL.bits
17:05 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/78edbbbdef
17:06 lizmat bartolin: :-(
17:06 lizmat jnthn TimToady should we document $?BITS now, or keep it as a Rakudo specific internal thing ?
17:08 lizmat bartolin: hmmm.. perhaps decont the line where $buffer := nqp::decont($!indexes.pull-one) ?
17:09 lizmat 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)
17:10 lizmat well, clutching at straws here
17:10 * bartolin tries that
17:10 lizmat but "This type does not support positional operations" in these contexts generally means it's getting a Scalar
17:11 lizmat and afaik, this would be one of the few cases where an IterationBuffer is returned rather than a nqp::list or List
17:12 Geth nqp/master: 4 commits pushed by pmurias++
17:12 Geth nqp/master: a5aed351b3 | [js] Avoid duplicating code when emitting closures.…
17:12 Geth nqp/master: a1438cb8a5 | Make nqp::istype also work for roles that are part of an ancestor.…
17:12 Geth nqp/master: bbb730ee36 | [js] Fix a bug, where closures didn't get their outer ctx set properly.…
17:12 Geth nqp/master: eb4e820f43 | [js] Use closure templates to avoid duplicating code while emitting.…
17:12 Geth nqp/master: review: https://github.com/perl6/nqp/compare/a5aed351b3...eb4e820f43
17:14 * brokenchicken recalls using $*KERNEL.bits in .combinations
17:14 lizmat &dinner
17:15 brokenchicken ah, only in throwage: https://github.com/rakudo/rakudo/blob/nom/src/core/Rakudo/Iterator.pm#L403
17:17 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:32 bartolin lizmat: I added some debugging statements and it looks like $buffer ended up being Mu (instead of IterationEnd)
17:34 bartolin that somehow reminds me of RT #130532
17:34 bartolin r: use nqp; class A { has Mu $!foo; method bar () { $!foo := nqp::null; say nqp::isnull($!foo) ?? "null" !! $!foo } }.new.bar
17:34 camelia rakudo-jvm fb4f16: OUTPUT«(Mu)␤»
17:34 camelia ..rakudo-moar 78edbb: OUTPUT«null␤»
17:52 bartolin lizmat: indeed, if I run the same code on MoarVM, I get an IterationEnd. I'll try to golf it some more later
18:09 lizmat bartolin++
18:48 Geth nqp: 7479ce662d | (Pawel Murias)++ | 6 files
18:48 Geth nqp: [js] Fix stuff by make js-lint.
18:48 Geth nqp: review: https://github.com/perl6/nqp/commit/7479ce662d
19:02 Geth rakudo/nom: a017356b84 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
19:02 Geth rakudo/nom: Introducing R:It.Permutations
19:02 Geth rakudo/nom:
19:02 Geth rakudo/nom: - abstracted logic from permutations()
19:02 Geth rakudo/nom: - optimized calculation of number of elems to generate
19:02 Geth rakudo/nom: - add option for returning an IterationBuffer rather than a List
19:02 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a017356b84
19:03 Geth rakudo/nom: b5293c2bd0 | (Elizabeth Mattijsen)++ | src/core/List.pm
19:03 Geth rakudo/nom: Make permutations(n) about 15x faster
19:03 Geth rakudo/nom:
19:03 Geth rakudo/nom: - by using the new R:It.Permutations iterator
19:03 Geth rakudo/nom: - based on permutations(5)
19:03 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b5293c2bd0
19:11 lizmat sometimes I wish we had something like nqp::swap_i($a,$b)
19:22 Geth rakudo/nom: fb633afd8a | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
19:22 Geth rakudo/nom: Add some documentation for Permutations
19:22 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/fb633afd8a
19:22 Geth rakudo/nom: 85df851129 | (Elizabeth Mattijsen)++ | src/core/List.pm
19:22 Geth rakudo/nom: Make List.permutations use R:It.Permutations
19:22 Geth rakudo/nom:
19:22 Geth rakudo/nom: This only makes it go a few percent faster, but it will also allow
19:22 Geth rakudo/nom: getting riud of R:In.ListsFromSeq.
19:22 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/85df851129
19:27 Geth rakudo/nom: 65f8f02856 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
19:27 Geth rakudo/nom: Get rid of R:In.ListsFromSeq
19:27 Geth rakudo/nom:
19:27 Geth rakudo/nom: This is no longer needed in the core.  If you need something like
19:27 Geth rakudo/nom: this in the core, you probably need something like R:It.ListIndexes
19:27 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/65f8f02856
19:27 lizmat afk for a few hours&
20:02 pmurias would caching the scalar contvars are cloned of break anything? all $_ in a given compunit would be cloned from the same Scalar
20:04 jnthn pmurias: Need to be extremely careful; variables can have traits placed on them, and even $_ can be declared typed
20:05 jnthn for @i -> Int $_ { }
20:33 AlexDaniel joined #perl6-dev
20:40 timotimo i have a branch where i tried to cache ScalarDescriptor, but it broke regarding readwriteness
20:40 timotimo only in a single spec test
21:03 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:04 geekosaur oy, not that one again
21:04 AlexDaniel sure it's normalized, but I haven't asked it to throw away information
21:04 AlexDaniel geekosaur: was it discussed before?
21:04 geekosaur not in terms of perl 6
21:05 geekosaur has bitten gtk file chooser dialogs and various OS X Cocoa APIs, among others
21:05 geekosaur basically, not doing a good job of dealing with UTF8 encodings vs. POSIX byte strings. don't we have utf8-c8 for that?
21:06 timotimo utf8-c8 won't do it
21:06 timotimo because e + combining blah is valid UTF8 and thus will go through the NFG mechanism
21:07 timotimo we'll have something for this, though
21:07 AlexDaniel should I file a bug report?
21:07 timotimo we don't have one yet?
21:07 AlexDaniel I have no idea
21:08 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.
21:08 geekosaur otherwise you have problems ranging from this kind of bug to potential security concerns
21:09 timotimo i seem to recall we wanted to have something for that
21:10 geekosaur (not major ones but still)
21:11 AlexDaniel hm…
21:12 AlexDaniel 6c: for dir(‘foo’) { .slurp.say }
21:12 committable6 AlexDaniel, https://gist.github.com/04d8958ded882d65996286ebd2c204ec
21:12 AlexDaniel wait, it works on HEAD??
21:12 AlexDaniel bisect: for dir(‘foo’) { .slurp.say }
21:12 bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=65f8f02) because on both starting points the exit code is 1
21:12 timotimo huh
21:12 bisectable6 AlexDaniel, bisect log: https://gist.github.com/7199a0ed24323a9c564cb914c1c0db2e
21:12 bisectable6 AlexDaniel, (2015-12-25) https://github.com/rakudo/rakudo/commit/07fecb52eb1fd07397659f19a5cf36dc61f84053
21:13 timotimo haha
21:13 AlexDaniel no, not that
21:13 AlexDaniel commit: HEAD for dir(‘foo’) { .slurp.say }
21:13 committable6 AlexDaniel, ¦«HEAD»: blah␤
21:13 AlexDaniel commit: HEAD for dir(‘foo’) { .slurp.say }; exit 0
21:13 committable6 AlexDaniel, ¦«HEAD»: blah␤
21:13 AlexDaniel bisect: for dir(‘foo’) { .slurp.say }; exit 0
21:13 bisectable6 AlexDaniel, Bisecting by output (old=2015.12 new=65f8f02) because on both starting points the exit code is 1
21:13 AlexDaniel wtf
21:13 bisectable6 AlexDaniel, bisect log: https://gist.github.com/753c59ec98baa26d5ac10f6f13eaa217
21:13 bisectable6 AlexDaniel, (2015-12-25) https://github.com/rakudo/rakudo/commit/07fecb52eb1fd07397659f19a5cf36dc61f84053
21:15 AlexDaniel commit: HEAD~150..HEAD~100 for dir(‘foo’) { .slurp.say }
21:16 committable6 AlexDaniel, https://gist.github.com/b61192e1e408d1f7b7a4d001da07ce4d
21:16 AlexDaniel I have no idea what's going on :|
21:18 AlexDaniel I think it's this: https://github.com/rakudo/rakudo/commit/HEAD~134
21:19 AlexDaniel commit: 7c8b705b33^,7c8b705b33 for dir(‘foo’) { .slurp.say }
21:19 committable6 AlexDaniel, https://gist.github.com/07e2a3a2a9ce481e3f885b01fa23cf0e
21:19 AlexDaniel yea, looks like…
21:19 timotimo now try a different filename
21:20 AlexDaniel timotimo: like?
21:20 timotimo dunno
21:20 timotimo but something with a different combiner
21:21 AlexDaniel should it normalize into something different?
21:28 timotimo don't know!
21:28 timotimo i'm just saying ... fuzz it :)
21:28 timotimo so that we don't accidentally think this is a fix where it's really just a strange edge case
21:33 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…
21:34 timotimo well, sure
21:35 AlexDaniel https://github.com/perl6/roast/issues/221
21:37 timotimo this will be a nightmare to get right cross-platform :)
21:37 timotimo well, maybe
21:40 brokenchicken AlexDaniel │ brokenchicken: I wonder if you know about this issue.
21:40 brokenchicken Nope.
21:41 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.
21:41 AlexDaniel or we just broke the normalization completely and simply haven't noticed yet
21:42 timotimo yeah
21:42 timotimo that's what i meant
21:42 timotimo but we do have lots of tests for unicodey stuffs
21:52 lizmat j: my Mu $a := 42; $a := Mu; say $a =:= Mu
21:52 camelia rakudo-jvm fb4f16: OUTPUT«True␤»
21:53 lizmat j: my $a := 42; $a := Mu; say $a =:= Mu
21:53 camelia rakudo-jvm fb4f16: OUTPUT«True␤»
21:54 lizmat j: use nqp; my $a := 42; $a := Mu; say nqp::eqaddr($a,Mu)
21:54 camelia rakudo-jvm fb4f16: OUTPUT«1␤»
21:57 lizmat j: use nqp; my $a := 42; $a := nqp::null; say nqp::eqaddr($a,Mu)
21:57 camelia rakudo-jvm fb4f16: OUTPUT«0␤»
21:59 Geth rakudo/nom: 8c2d9e2914 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
21:59 Geth rakudo/nom: Hopefully really fix RT #130556 and RT #130532
21:59 Geth rakudo/nom:
21:59 Geth rakudo/nom: Well, until we can get this nqp::null / nqp::isnull / nqp::ifnull
21:59 Geth rakudo/nom: business sorted on the JVM backend.
21:59 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8c2d9e2914
22:00 lizmat bartolin ^^^
22:05 * bartolin tries that
22:15 bartolin \o/ that seems to work. lizmat++
22:15 lizmat whee!
22:17 bartolin I didn't run a spectest -- it will start in about one hour anyway. I'll report back tomorrow :-)
22:18 lizmat ok, thanks for keeping up the good jvm work!
22:19 Geth rakudo/nom: 53a7aca032 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Internals.pm
22:19 Geth rakudo/nom: Remove R:In.SeqFromSeqs
22:19 Geth rakudo/nom:
22:19 Geth rakudo/nom: It wasn't used anymore.
22:19 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/53a7aca032
22:34 samcv j: say 'a' ~~ /<:L>/
22:34 camelia rakudo-jvm fb4f16: OUTPUT«「a」␤»
22:34 samcv j: say 'a' ~~ /<:L>/
22:34 camelia rakudo-jvm fb4f16: OUTPUT«「a」␤»
22:34 samcv j: say '1' ~~ /<:L>/
22:34 camelia rakudo-jvm fb4f16: OUTPUT«Nil␤»
22:34 samcv j: say '1' ~~ /<:AHex>/
22:34 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␤␤»
22:44 Geth rakudo/nom: 62a7cf2cb3 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
22:44 Geth rakudo/nom: Add optional "is-lazy" flag to R:It.Callable
22:44 Geth rakudo/nom:
22:44 Geth rakudo/nom: Using a multi method for better performance.
22:44 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/62a7cf2cb3
22:53 Geth rakudo/nom: 5724c276b5 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
22:53 Geth rakudo/nom: R:It.Roller is now a client of R:It.Callable
22:53 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5724c276b5
23:25 lucasb joined #perl6-dev
23:37 Geth rakudo/nom: f761d34a54 | (Elizabeth Mattijsen)++ | src/core/Rakudo/Iterator.pm
23:37 Geth rakudo/nom: Introducing R.It.RoundrobinIterables
23:37 Geth rakudo/nom:
23:37 Geth rakudo/nom: The workhorse of roundrobin()
23:37 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f761d34a54
23:37 Geth rakudo/nom: 73d0cec77e | (Elizabeth Mattijsen)++ | src/core/List.pm
23:37 Geth rakudo/nom: Make roundrobin() about 4x faster
23:37 Geth rakudo/nom:
23:37 Geth rakudo/nom: - by using the new shiny R::It.RoundrobinIterables
23:37 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/73d0cec77e
23:46 Geth rakudo/nom: b7cd77dda1 | (Elizabeth Mattijsen)++ | src/core/List.pm
23:46 Geth rakudo/nom: Give roundrobin() the same sig as zip() and cross()
23:46 Geth rakudo/nom:
23:46 Geth rakudo/nom: This was probably overlooked during the GLR.  Does not cause any
23:46 Geth rakudo/nom: spectest breakage.
23:46 Geth rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b7cd77dda1
23:46 lizmat and that concludes my hacking for today
23:46 lizmat good night, #perl6-dev!
23:54 timotimo gnite liz

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