dalek ast: d8650f2 | usev6++ | S32-num/int.t:
Test for X::Numeric::Overflow passes on JVM
05:27
roast: 0981b4b | usev6++ | S05-mass/charsets.t:
roast: Unfudge tests that require Java 8 (unicode 6.1)
roast:
roast: The tests in question require unicode 6.1 and therefore
roast: fail with Java < 8. On the other hand we already have
roast: unfudged tests that require Java 8 elsewhere.
roast:
roast: Java 8 was released 2014-03-18 so it seems reasonable
roast: to unfudge those tests.
[Tux] This is Rakudo version 2016.09-144-g2285d35 built on MoarVM version 2016.09-27-g0bdbd6e 07:36
csv-ip5xs 3.169
test 16.171
test-t 7.026
csv-parser 17.886
psch hm, i'm not too happy about unfudging tests needing java 1.8 08:45
mostly 'cause hack is only 1.7.0_111 :l 08:46
s/only/on/
although that seems to be a distro version thing. 1.8 isn't in apt-cache 08:47
bartolin psch: I have no strong opinion about that. but I would prefer to keep it consistent. so, if we revert the above commit we should also fudge some other tests which don't pass with jdk 1.7 08:50
nine I guess hack could also be updated
bartolin (or do I remember that wrong? I'm mostly testing with jdk 1.8 now)
psch bartolin: well, i'd prefer we make 1.8 a hard-ish requirement on the spectest-side
as in, let people build with 1.7 if they want to, and only force 1.7 on the compiler as well 08:51
bartolin even better
psch but failing tests due to 1.7 are eh
although we probably should note in roast that those *are* 1.7 failures
maybe even skip if we can fudge that somehow...
nine: yes please :)
j: $*VM.properties<java.version>.say 08:54
camelia rakudo-jvm 2a1605: OUTPUT«1.7.0_79␤»
psch camelia is also some 30 minor patches behind hack
nine psch: I don't even have an account on hack ;) But you could have one on my server.
nine goes off to update camelia
Should I install jdk 1.8 on camelia instead?
psch nine: thanks, i'll just bugged moritz about hack though :)
yeah, if only for unicode 08:55
i'm not sure we have anything else that depends on 1.8, but it might be somewhat faster too i hope :)
bartolin I'm afraid we have some kind of a structural problem with regard to the unicode version on JVM anyway. with moarvm we know which unicode version we support -- with jvm that depends on the locally installed java version 08:58
so, I think it would be nice to have a way to fudge according to the java version (or the supported unicode version)
bartolin doesn't know about a simple way to do that 08:59
errands & 09:00
psch well, whatever the harness does to test for jvm or moar could probably be extended to $*VM.properties<java.version> if $backend eq 'jvm' or something
although i'm not sure about the fudge syntax, that'd have to be something relative which means more parsing for the fudger 09:01
s/harness/fudger/
hm, although we could probably go with a min version 09:02
hm, the java 9 RC is planned for 2017-01-26 09:03
ohh, the process control changes look pretty neat 09:06
not sure we want to build Proc::Async on that, but it'd probably be easier than on 1.7 heh 09:07
but yeah, probably a bad idea, considering release is supposed to be on 2017-03-23 and there'll probably be a few months for distros etc to fully catch up and all... 09:08
nine j: $*VM.properties<java.version>.say 09:09
camelia rakudo-jvm 2a1605: OUTPUT«1.8.0_101␤»
psch nine++
nine Oh, it didn't even have to rebuild? 09:10
psch well, the build targets 1.7
rakudo build that is
r: say gather do for ^4 { next if $_ < 2; .take } 09:20
camelia rakudo-moar 2285d3, rakudo-jvm 2a1605: OUTPUT«(2 3)␤»
psch r: say gather do for ^4 { redo if $_ < 2 && $++ == 0; .take }
camelia rakudo-moar 2285d3, rakudo-jvm 2a1605: OUTPUT«(0 1 2 3)␤»
psch r: say gather do for ^4 { .take; redo if $_ < 2 && $++ == 0; }
camelia rakudo-jvm 2a1605: OUTPUT«Error in socket connection:org.perl6.nqp.runtime.UnwindException␤ at org.perl6.nqp.runtime.ThreadContext.<init>(ThreadContext.java:125)␤ at org.perl6.nqp.runtime.GlobalContext.getCurrentThreadContext(GlobalContext.java:340)␤ at org.perl6.nqp.runtime.G…»
..rakudo-moar 2285d3: OUTPUT«(0 0 1 2 3)␤»
psch r: say gather do for ^4 { .take; redo if $_ < 2 && $++ == 0; 1 }
camelia rakudo-moar 2285d3: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 1 in sink context (line 1)␤(0 0 1 2 3)␤»
..rakudo-jvm 2a1605: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 1 in sink context (line 1)␤Error in socket connection:org.perl6.nqp.runtime.UnwindException␤ at org.perl6.nqp.runtime.ThreadContext.<init>(ThreadContext.java:125)␤ at org.perl6.nqp.runtime.GlobalCo…»
psch humm
that's kinda extra weird 09:21
'cause CX::Next and CX::Redo handlers are somewhat linked during codegen
as in, we handle codegen for them together
but CX::Last gets its own code path for handler generation 09:22
so the fact that redo and last don't work but next does..?
oh geez 09:45
shoulda probably checked that earlier...
ah nvm bad test case
r: 'my \x := gather do for ^3 { .take; last }; use nqp; say nqp::getattr(List.from-iterator(x.iterator), List, q[$!todo]).reify-until-lazy 09:56
camelia rakudo-moar 2285d3: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" ␤at <tmp>:1␤------> ator), List, q[$!todo]).reify-until-lazy⏏<EOL>␤ expecting any of:␤ single quotes␤ …»
..rakudo-jvm 2a1605: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unable to parse expression in single quotes; couldn't find final "'" ␤at <tmp>:1␤------> ator), List, q[$!todo]).reify-until-lazy⏏<EOL>␤ expecting any of:␤ single quotes␤ t…»
psch r: my \x := gather do for ^3 { .take; last }; use nqp; say nqp::getattr(List.from-iterator(x.iterator), List, q[$!todo]).reify-until-lazy
camelia rakudo-moar 2285d3: OUTPUT«1␤»
..rakudo-jvm 2a1605: OUTPUT«Error in socket connection:org.perl6.nqp.runtime.UnwindException␤ at org.perl6.nqp.runtime.ThreadContext.<init>(ThreadContext.java:125)␤ at org.perl6.nqp.runtime.GlobalContext.getCurrentThreadContext(GlobalContext.java:340)␤ at org.perl6.nqp.runtime.G…»
psch that seems to be the most gutsy way to get that error afaict
as in, the UnwindException probably comes from reify-until-lazy on a List::Reifier that was build with gather/take *and* last..? 09:57
r: my \x := gather do for ^3 { .take; last }; use nqp; say nqp::getattr(List.from-iterator(x.iterator), List, q[$!todo]).reify-at-least(2)
camelia rakudo-moar 2285d3, rakudo-jvm 2a1605: OUTPUT«1␤»
lizmat Files=1146, Tests=53274, 235 wallclock secs (13.55 usr 4.08 sys + 1408.17 cusr 137.00 csys = 1562.80 CPU)
bartolin just another thought wrt fudging and unicode support: *if* we are going to do that, wouldn't it be useful to have some optional condition like 'unicode >= 6.1' for the fudge syntax? that way roast wouldn't be polluted with checks for specific backend versions -- that infomation could be kept in the fudger 10:17
psch i suppose it depends on whether we to fudge specifically for unicode or for backend versions 10:18
i'm somewhat sure jvm doesn't bump unicode during minor patches, but not completely
FROGGS we could let the backends expose their supported unicode version 10:25
jnthn fwiw, I suspect to do NFG and other Perl 6 Unicode features right we may well end up shipping our own Unicode database on the JVM anyway 10:37
Which'd give us control over it
psch oh, right, that's a thing 10:40
FROGGS yes, that's the only sane way to go 10:45
also, IIRC we are meant to let the user lexically choose the unicode version 10:46
that too means we have do ship it ourselfs
jnthn is happy to kick that particular can a little way down the road :) 10:47
Unicode's only stability policy is relatively strong, so I'm curious if such a thing would be overkill 10:48
timotimo own*
ownly? :)
jnthn uh, yes :)
Maybe I shoulda done coffee instead of tea this morning :) 10:49
ShimmerFairy jnthn: for what it's worth, I believe I wrote in the "set Unicode version" stuff into the spec more for telling old perl6's if your expectation of Unicode is too new for them. And even if that wasn't my intent at the time, such a feature is probably most useful for that :) 12:29
(e.g. a newly-added script with properties that don't match what they defaulted to in previous Unicode versions) 12:30
an even better example would be brand new properties, which are kinda hard to work around with an old Unicode version :P 12:34
nine Isn't that just something for the Perl 6 version? 12:38
ShimmerFairy nine: not unless we want to tie specific Unicode versions to Perl 6 versions, which we don't currently do. (That is, MoarVM's UCD is updated as new versions come out IIRC) 12:39
(not that a minimum Unicode version would be bad, I'm just not sure about "and no newer") 12:44
jnthn Maybe given the Unicode stability policy, something like "`use 6.c` promises a minimum of Unicode 8, `use 6.d` promises a minimum of Unicode 9" etc. 14:51
Would be sufficient. 14:52
dogbert17 o/ 18:11
FWiW, sometimes the test t/spec/S17-supply/start.t, i.e throwing a lot of 'Invalid read of size 4', must run it many times to get that effect 18:12
it looks quite suspicious 18:13
looks like this 18:14
==4344== Invalid read of size 4
==4344== at 0x416EA53: MVM_sc_get_object (sc.c:178)
==4344== by 0x416EBD1: MVM_sc_get_sc_object (sc.c:199)
==4344== by 0x40D5B3F: MVM_interp_run (interp.c:3013)
==4344== by 0x40F8B0F: start_thread (threads.c:77)
==4344== by 0x41E4756: uv__thread_start (in /home/dogbert/repos/rakudo/install/lib/libmoar.so)
==4344== by 0x45EAF71: start_thread (pthread_create.c:312)
==4344== by 0x44DAF8D: clone (clone.S:129)Y
==4643== Address 0x5aff1f0 is 24 bytes inside a block of size 108 free'd 18:18
==4643== at 0x402B3D8: free (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==4643== by 0x414E8DD: MVM_free (alloc.h:29)
==4643== by 0x414F806: gc_free (SCRef.c:114)
==4643== by 0x411A11F: MVM_gc_collect_free_nursery_uncopied (collect.c:580)
==4643== by 0x411520E: MVM_gc_global_destruction (orchestrate.c:511)
==4643== by 0x41C8CCF: MVM_vm_destroy_instance (moar.c:391)
==4643== by 0x8048EB8: main (main.c:194)
dalek p: d06cbaf | (Pawel Murias)++ | t/nqp/019-file-ops.t:
Fix bug cause by refactoring.
18:28
nqp: 4c697e3 | (Pawel Murias)++ | src/vm/js/ (3 files):
nqp: [js] Get and set attributes using accessors.
dogbert17 my ramblings above have now been transformed to rt.perl.org/Public/Bug/Display.html?id=129832 18:53
dalek kudo/nom: 8f14219 | MasterDuke17++ | src/Perl6/Metamodel/CurriedRoleHOW.nqp:
Add shortname() method to CurriedRoleHOW

Fixes RT #129830
18:58
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129830
dalek kudo/nom: 3ca0f8b | lizmat++ | src/Perl6/Metamodel/CurriedRoleHOW.nqp:
Merge pull request #899 from MasterDuke17/RT129830

Add shortname() method to CurriedRoleHOW
raiph .tell lizmat Please read www.reddit.com/r/perl/comments/557...ks/d8ha7sd for a summary regarding Chas Owens' fears/assertions re NYI Uni and Str roundtripping. Perhaps everyone has already heard enough about it already but if not, maybe it's worth mentioning this sub-thread as a topic completely distinct from books in the 19:16
weekly. Also, do you think an RT and/or doc patch are warranted?
dalek kudo/more_sizeof_tests: 7c11722 | FROGGS++ | t/04-nativecall/12-sizeof. (2 files):
add more tests for nativesizeof()
19:51
psch raiph++ 19:56
that interaction seems to have been handled very gracefully
i'm not deep enough into Unicode to offer technical feedback though
arnsholt It's not at all clear to me *why* this is a problem 20:05
jnthn Str roundtrips *Unicode* just fine in so far as if you ask any other Unicode-aware program if the input and output are equivalent, they should answer yes (reference: unicode.org/faq/normalization.html#1 )
arnsholt Except possibly in the case where you're forced to interact with other programs that don't handle Unicode correctly
Yeah, that's the thing. Str is Unicode; if you're relying on exact code point sequences you're a) doing it wrong, and b) not actually Unicode-compliant 20:06
jnthn What's being asked for is a way to roundtrip the exact codepoints that were read in, while at the same time actually wanting to work with them as codepoints rather than bytes. Compared to working with Unicode and working with bunches of bytes, that's a rather more niche use-case. 20:07
(Thus why it's not been prioritized.) 20:08
And yes, I think you'd generally want to do it when dealing with other things with "interesting" Unicode handling.
psch jnthn: iiuc we're doing what Unicode demands, but the poster demands backwards compat with not-quite Unicode compliant programs, without wanting to fall back to byte-like handling? 20:09
jnthn psch: Something like that 20:10
It's not an unreasonable request, but it would be an unreasonable default.
psch right, so it does exactly fall into the propose/speculated 'use Uni' space 20:11
jnthn Well, the Uni data type
Which will get more attention with time
psch oh, i'm not trying to push for it, don't get me wrong. i just wanna understand the concerns raised in the post
well, and maybe also the "what we're gonna do about it" 20:12
...considering that jvm is so far behind on NFG i might have to learn this stuff eventually anyway :)
(although maybe bartolin++ picks it up instead, they've been doing a hell of a job on things i couldn't figure out :) )
jnthn :-) 20:13
jnthn is happy to see folks hacking on the JVM bits
psch i *still* have a big "are there giant performance snags nobody noticed" thought running around in my brain 20:14
but i'm fairly sure i don't know the architecture well enough to judge that in the first place
nevermind the jvm itself, sooo
anyway, yeah, the problem in the reddit post is sort of "my app is bad at unicode, and rakudo isn't. fix that in rakudo please" 20:15
if i understood this correctly at least
...unfortunately i think we cannot reach a consensus there, basically at all 20:16
because "well if you use this pragma" it already makes it seem like you need "this pragma"
and using the pragma when you don't need it doesn't hurt either, because apps that do unicode right still deal with it correctly
feels somewhat faustian 20:17
jnthn I'd not say "doesn't hurt"
psch ...no, that's the wrong word. "faustian" that is
jnthn "Turns O(1) things into O(n) things" hurts.
Which will be a side-effect
.chars on a Uni is O(n), not O(1) like on Str
psch oh, okay. so that's the big gain when you know you're dealing with Unicode compliant apps 20:18
timotimo so we're not going to be creating synthetics for "ä in NFG", "ä in NFC", "ä in NKFC", ... ?
jnthn No
timotimo hm 20:19
jnthn We'll just keep an array of codepoints.
Uni is actually a VMArray today REPR-wise
timotimo and we'll offer stringy operations on top of that, yeah?
right
jnthn Yeah, though some are kinda hard-ish to define
timotimo so it's theoretically mutable ... do we allow it to be mutated?
jnthn No
timotimo OK, so string-y in that way, too
jnthn In fact we could base it on MultiDimArray to take advantage of fixed-width 20:20
timotimo ah
not that that's an advantage at the moment :P
jnthn Not yet, though will be in the future
timotimo performance-wise, i mean
right
psch .tell raiph check irclog.perlgeek.de/perl6-dev/2016-...i_13363563 for more input re: that reddit post 20:21
oh wait
we still don't have that kinda bot here
geez
anyway, thanks for the explanation jnthn++ :) 20:22
psch gets themselves bedwards
jnthn :) 20:23
Rest well
timotimo good bed, psch
jnthn: any clue about if we should make positional sizes unsigned across the board? 20:24
hm, maybe those repr ops predate us having real unsigned integers in our bytecode?
jnthn timotimo: I considered going down that path and didn't
It seems nice until you consider that pretty much all index calcs are done with Int/int anyway 20:25
timotimo mhm 20:26
also, we're not in reach of having even int8 arrays with 2**64 slots
jnthn m: say 2 ** 63 20:29
camelia rakudo-moar 3ca0f8: OUTPUT«9223372036854775808␤»
timotimo m: say (2 ** 63) / (1024 * 1024 * 1024 * 1024), " terabyte" 20:30
camelia rakudo-moar 3ca0f8: OUTPUT«8388608 terabyte␤»
timotimo m: say (2 ** 63) / (1024 * 1024 * 1024 * 1024 * 1024), " petabyte"
camelia rakudo-moar 3ca0f8: OUTPUT«8192 petabyte␤»
cygx_ put in his own 2 cent: www.reddit.com/r/perl/comments/557...ks/d8jlxji 20:40
timotimo jnthn: will we move toward using Uni for path names and such? 20:42
jnthn timotimo: Doubt it 20:43
cygx_ what's the perl6 story on how to handle non-normalized filenames? 20:44
or rther, what is it supposed to be :p
jnthn cygx_: The utf8-c8 encoding is meant to play that role by mapping things that would either fail to decode or be changed by normalization to synthetic codepoints, then back. 20:45
Moar already uses it in the applicable places 20:47
timotimo ah, so we'll get support for normalization changes there
jnthn Yeah
The thing already needs a doing over
cygx_
.oO(what about utf-16-ish things like windows)
timotimo windows has unicode awareness built into the FS 20:48
so we don't have that problem there, right?
like, you can't have a file ä.txt and a file ä.txt (with the other thing) as two separate files in the same dir?
jnthn
.oO(WideCharToMultiByte/MultiByteToWideChar)
20:49
geekosaur yes, it normalizes. So does OS X HFS+ 20:50
cygx_ geekosaur: according to a 2011 stackoverflow answer, Windows at the very least did not use to... 20:51
"the file system treats path and file names as an opaque sequence of WCHARs." 20:52
from msdn.microsoft.com/en-us/library/w...s.85).aspx 20:53
geekosaur the complete version of that sentence (including the initial part) makes no sense though 20:57
"There is no need to perform any Unicode normalization on path and file name strings for use by the Windows file I/O API functions" can only be true if it *does* normalize
cygx_ the formulation is misleading, but the rest of the paragraph clarifies it 20:59
you do not 'need' to normalize because all strings are non-normalized 21:00
you 'only' have to treat them as opaque
geekosaur soooo, windows acts like native unicode except when it doesn't and introduces all the problems that unnormalized names give you. wonder how many people have stolen data that way so far. (also wonder how many windows programs explode if you have both versions of a compose-able letter) 21:01
dalek p: 916b2fd | FROGGS++ | tools/build/MOAR_REVISION:
bump moar for nativecall improvements
21:11
kudo/nom: 677db95 | FROGGS++ | t/04-nativecall/12-sizeof. (2 files):
add more tests for nativesizeof()
21:12
kudo/nom: 6977b87 | FROGGS++ | tools/build/NQP_REVISION:
bump nqp/moar for nativecall improvements
lizmat m: 42 R= my $a; say $a # wheeee :-) 21:36
camelia rakudo-moar 6977b8: OUTPUT«42␤»
dalek ast: 7d6ddc6 | MasterDuke17++ | S12-class/attributes.t:
Test .gist for attribute types

Requires github.com/rakudo/rakudo/pull/899
Tests for RT #129830
23:21
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129830
Zoffix .tell psch we do have the .tell bot. It just got stuck behind the netsplit 23:49
yoleaux2 Zoffix: I'll pass your message to psch.