bartolin good morning, #perl6-dev 07:47
I want to report some findings regarding the (busted) jvm backend before leaving for christmas holidays 07:48
it looks like the jvm build is busted in three different ways atm:
1. method findmethod was changed in NQP a while ago. I opened a PR for rakudo regarding that problem: github.com/rakudo/rakudo/pull/967 07:49
2. there is something wrong with the build system. I didn't figure it out exactly, but I had to revert a803a153b3138de944f89637517cff6328b0e793 in order to build a working rakudo-jvm 07:51
with a vanilla build of rakudo-j BOOTSTRAP.jar is not found. it exists as blib/Perl6/BOOTSTRAP.jar but my build tried to find it at /share/nqp/lib/BOOTSRAP.jar 07:52
3. compiling rakudo-j dies with 'Classfile too large' (provided 1. is fixed). with this change to NQP I was able to build a working rakudo-j: gist.github.com/usev6/5af8723084aa...5e13e234f3 07:54
nine bartolin: that's odd. commit b96bf5bd05f7e9bfc325156e6a27c1fbb8377eae was supposed to fix the BOOTSTRAP.jar issue 07:56
bartolin its definitely not a clean solution, but I think a workaround for the limit of constant pool entries could be implemented in that area of code
nine: yeah I thought soo. I tried to find the problem yesterday evening, but failed 07:57
.oO( it's hard to find a fix when the build is busted in different ways )
07:59
nine
.oO( it's hard to notice a bust when the build is already busted in different ways )
08:00
bartolin yes, that's what I meant :-) 08:01
maybe we should apply some workaround in the vain of gist.github.com/usev6/5af8723084aa...5e13e234f3 in order to tackle the other problems 08:02
(at least temporarily)
anyway, I have to pack my bags now. I'm afk for a week. 08:03
dalek kudo/nom: 4b4bdc6 | usev6++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
Unbust JVM build (findmethod)

With nqp commit 49d6beb34a33780212039f5179b032659582a3f0 one version of findmethod was removed. Using the remaining version seems to work fine. There might be some spectest failures related to changes in this area, but at least rakudo-j does not die while compiling.
rakudo/nom: 011df48 | niner++ | src/vm/jvm/runtime/org/perl6/rakudo/Binder.java:
rakudo/nom: Merge pull request #967 from usev6/jvm_findmethod
rakudo/nom:
rakudo/nom: Unbust JVM build (findmethod)
nine bartolin: have a nice holiday!
bartolin thanks! 08:04
if someone else wants to take a look at the constant pool issue, maybe my findings are interesting ...
merry xmas for all of you 08:06
dalek ast: bc1ac9c | samcv++ | S15-unicode-information/uniprop.t:
Add test for the ZERO WIDTH JOINER codepoint

This currently doesn't work on MoarVM.
  github.com/MoarVM/MoarVM/issues/463
08:36
ast: ed95e41 | samcv++ | S15-nfg/test-gen.p6:
Add #!/usr/bin/env perl6 to test-gen.p6
roast: ad69dfd | samcv++ | S15-nfg/test-gen.p6:
roast: Change directory from t/spec in test-gen.p6
roast:
lizmat good *, #perl6-dev! 08:41
Files=1157, Tests=53970, 188 wallclock secs (10.64 usr 4.44 sys + 1120.84 cusr 123.40 csys = 1259.32 CPU)
samcv good * to you too lizmat 08:49
lizmat, perl 6 counts characters by graphemes right. Can I rely on .chars *should* tell me the number of grapheme clusters? 08:57
or are they not 100% always equivalent 08:58
lizmat my interpretation is that they should be
samcv yeah that's what i thought
probably going to add another test file to roast generated from one of the unicode test files in the next day or so
lizmat my uncertainty is that I don't know how unicode "grapheme clusters" are defined
samcv but. we fail like 50 of them and it super errors 08:59
in perl 6 or in unicode?
lizmat TimToady's definition is: what people perceive to be a single character
samcv i know how they are in unicode. moarvm is the thing that does that right
lizmat ok, then we are in agreement I think
samcv ok
yeah we fail 50 tests and like 09:00
100 of them doesn't even work because i can't create a string with a specific codepoint in it
lizmat it's my understanding that some aspects of unicode 9.x are not yet implemented
samcv say 0xD800.chr
m: say 0xD800.chr
camelia rakudo-moar 011df4: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤ in block <unit> at <tmp> line 1␤␤»
samcv not sure why it can't… but 09:01
m: Uni.new(0xD800).Str.say
camelia rakudo-moar 011df4: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 55296␤ in block <unit> at <tmp> line 1␤␤»
samcv right now my script is just not trying to test the 100 tests that use that codepoint
that is a MoarVM error yes? 09:02
lizmat I would think so, yes 09:03
samcv yeah. need to open that bug too. found a moarvm bug where a huge number of the characters Line_Break property is incorrect 09:04
so that is causing a lot of (probably almost all??) of the 50 failures out of the 720 i could run
first one i've actually discovered incorrect values, everything else has just been NYI really, aside from bidi_pairing bracket one which returns a string 09:05
unicodable6, U+D800
unicodable6 samcv, U+D800 <Non Private Use High Surrogate> [Cs] (unencodable character)
samcv why though :\ idk if that is true
it's in the HIGH_SURROGATES block 09:08
m: 0xD800.uniprop('Block').say
camelia rakudo-moar 011df4: OUTPUT«High Surrogates␤»
samcv oh maybe these are for utf-16? but that makes no sense because uh 09:14
surrogates i guess are used for utf-16 for allowing to use higher codes than utf-16 allows, but... nowhere else does it say anything about utf-16 and it's not documentation for utf-16, it just gives the code numbers 09:15
maybe i should just replace those with some other control code… since the rules for grapheme clusters do not distinguish the control codes as for breaking them up 09:16
lizmat samcv: sorry, was afk 09:24
samcv no problem
lizmat I have no idea, really 09:25
samcv i think ignoring those is fine for now
lizmat yeah... until it becomes someone's itch :-)
samcv though i need to find a way to fudge 54 tests at once. is there a tool for this?
lizmat that *they* want to scratch
samcv err i mean 'todo'
probably will matter when/if we have utf-16 support? 09:26
lizmat #?rakudo 54 todo "foo"
samcv no but they're not in order :P
lizmat ah, no, no tool that i'm aware of :-(
samcv otherwise it would be easy
yet…
so you are saying I should make one? :D
lizmat that would be great! But seriously, I'm not sure what fudging exactly does 09:27
perhaps it is easier to inject the necessary stuff into the TAP stream
samcv don't you need to fudge tests that cause rakudo to hang?
lizmat at runtime
samcv and todo for ones that don't work?
lizmat well, todoed tests *are* run
samcv yeah i know 09:28
lizmat m: use Test; todo "foo"; is 42,666 09:29
camelia rakudo-moar 011df4: OUTPUT«not ok 1 - # TODO foo␤␤# Failed test at <tmp> line 1␤# expected: '666'␤# got: '42'␤»
lizmat apparently you just need to run "todo" before the test 09:30
samcv hm
i guess i could just use my script, run the test, if it passes include it normally otherwise print out the #?rakudo.moar todo part :P 09:31
lizmat that could be one way, yes
samcv meh might as well make some utility to fudge all the tests though 09:33
better in the long run i think
lizmat grr another Terminal crash: Time Awake Since Boot: 330000 seconds # that can't be a coincendence 09:34
samcv i'm going to be asleep very soon. night lizmat 10:23
lizmat gnight, samcv 10:24
and thanks for all of the good work!
samcv :) you are welcome! 10:28
dalek kudo/nom: a4bc51a | lizmat++ | src/core/Rakudo/Internals.pm:
Make sure .sort on shaped arrays uses the leaves
kudo/nom: 8d33b89 | lizmat++ | src/core/ (2 files):
Make List.sort() about 4x faster

On a 100 element List, YMMV for other sizes of Lists
  - rewrite algorithm in nqp ops, don't use p6sort
  - use in place sorting and comparing, without any indirection
  - since we always use cmp, no need for another level of block to execute
  - this candidate only works on real List/Arrays and is iterator agnostic
samcv you too!
notviki . 10:46
yoleaux2 08:28Z <samcv> notviki: well it returned Str and int's before, so it was kind of already unpredictable, and that is what the synopsis says, it should return numbers. But we have uniprop-str uniprop-bool uniprop-int though they're not in roast or in docs
notviki .ask samcv OOC what does the number mean? I only ever saw 1 and 0... are those boolean? 10:52
yoleaux2 notviki: I'll pass your message to samcv.
notviki RT rt.perl.org/Ticket/Display.html?id=130391 is really weird.... the symptops are the same that were present in .10 R*, but the reporter says they got them in .11 R* :/ 10:56
DrForr That looks liek what he mentioned on FB. 10:57
notviki m: "x".uniprop('Your momma').say 10:59
camelia rakudo-moar 8d33b8: OUTPUT«0␤»
notviki -_- 11:00
dalek kudo/nom: 4b2cea0 | lizmat++ | / (2 files):
Make native @a.sort() about 12x faster

  - same as List.sort() improvement
  - use typed nqp::islt_x() for comparison because we can
11:31
timotimo *nice* 11:32
notviki: your momma is a solid 0 out of 10
is that the joke?
tadzik it is now! 11:33
how about "your momma is a Sub-Zero out of 10?" 11:34
timotimo GET OVER HERE 11:35
your momma really puts the Fat into Fatality
tadzik :D 11:40
dalek kudo/nom: 69dbab2 | lizmat++ | src/core/Str.pm:
Slightly improve Str.split(<a b c>)

Aka the multi-Cool variant, by using a nqp::list_i instead of a Pair to keep intermediate results.
12:14
kudo/nom: f0398fb | lizmat++ | src/core/Str.pm:
Make Str.split(<a b c>) about 3x faster

based on ("abcdeghi" xx 100).split(<b d f h>). Achieved by rewriting most of the initial search logic in nqp, but mostly by making the sort logic using nqp::cmp_i rather than <=>
13:16
timotimo *nice* 13:22
lizmat that one might actually be noticeable with test-t 13:23
timotimo i think so, too 13:24
dogbert17 lizmat++, optimizing 13:48
MasterDuke lizmat: Rust just did some sorting work that may be relevant: github.com/rust-lang/rust/pull/38192 14:06
yoleaux2 22 Dec 2016 11:38Z <notviki> MasterDuke: FWIW, $*ARGFILES.lines(Inf) no longer works after #965
dalek ast: 4c6d99b | dogbert17++ | S32-list/cross.t:
Add test for RT #126508
15:04
ast: 7cc4622 | dogbert17++ | S32-list/cross.t:
Merge pull request #202 from dogbert17/test-rt-126508

Add test for RT #126508
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126508
[Tux] It is not fair! three days ill, and you get under 6! 15:29
This is Rakudo version 2016.12-69-gf0398fbc5 built on MoarVM version 2016.12-19-ge2ffc358
csv-ip5xs 3.159
test 13.874
test-t 5.679
csv-parser 13.896
notviki woooooo 15:30
lizmat++ awesome \o/
timotimo nice 15:31
huggable: speed
huggable timotimo, tux.nl/Talks/CSV6/speed4.html
notviki buggable: speed
buggable notviki, ▄▄▄▄▅▅▄▄▅▆▄▄▄▄▅▄▆▅▅▅▅▃▄▄▄▃▄▄▄▄▄█▃▂▃▃▂▃▃▃▃▃▃▃▃▃▃▃▁▂ data for 2016-12-01–2016-12-23; variance: 5.679s–7.592s
timotimo that's the one
tadzik so what's the command to explain what different linus in Tux's IRC output mean? :) 15:37
timotimo well, ip5xs is the time when the XS version is run through Inline::Perl5 15:41
test is a simple test script that's not been touched in a while, test-t is the script that liz and tux have spent a bunch of effort on
not sure if csv-parser is perl6 or perl5
[Tux] perl6, from tony 15:42
timotimo ah, ok
interesting that its performance is almost exactly the same as test's 15:43
at least in this measurement
[Tux] in the last weeks, I test twice by default and post the fastest timing here. The second run was 15:44
This is Rakudo version 2016.12-69-gf0398fbc5 built on MoarVM version 2016.12-19-ge2ffc358
csv-ip5xs 3.084
test 13.446
test-t 5.872
csv-parser 14.025
timotimo oh, ok 15:46
tadzik nodnod 16:24
where does test-t live? 16:25
notviki huggable: csv
huggable notviki, nothing found
[Tux] github.com/Tux/CSV 16:26
notviki huggable: bench csv
huggable notviki, for i in $(seq 1 10000); do echo 'hello,","," ",world,"!"'; done > /tmp/hello.csv; perl6 -Ilib -MText::CSV test-t.pl </tmp/hello.csv
tadzik ach :) 16:27
notviki huggable: csv :is: github.com/Tux/CSV (see `bench csv` for how to run bench)
huggable notviki, Added csv as github.com/Tux/CSV (see `bench csv` for how to run bench)
tadzik or here? github.com/Tux/CSV/blob/master/test-t.pl
samcv . 20:25
yoleaux2 10:52Z <notviki> samcv: OOC what does the number mean? I only ever saw 1 and 0... are those boolean?
samcv notviki, it should return a boolean for boolean properties
and if it's not, let me know because either moarvm doesn't support it yet, or I need to update the script i use to generate the type of value each unicode property should be 20:26
that's one reason I worked on uniprop :P because i hated getting a 0 or a 1 for boolean values. hah 20:27
notviki, which bool properties were returning 1 or 0? 20:29
notviki samcv: Number 20:32
u: arabic digit 3
unicodable6 notviki, Found nothing!
notviki u: arabic three
unicodable6 notviki, U+063C ARABIC LETTER KEHEH WITH THREE DOTS BELOW [Lo] (ؼ)
notviki, U+0663 ARABIC-INDIC DIGIT THREE [Nd] (٣)
notviki, U+063F ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE [Lo] (ؿ)
notviki, gist.github.com/dccbecae8d23369896...80caa80a2c
samcv m: '3'.uniprop('Number').say 20:33
camelia rakudo-moar f0398f: OUTPUT«1␤»
samcv m: '3'.uniprop-int('Number').say
camelia rakudo-moar f0398f: OUTPUT«1␤»
notviki or that yeah :)
m: 'a'.uniprop('Number').say
camelia rakudo-moar f0398f: OUTPUT«0␤»
samcv blame moar. lol
oh wait
it's whether or not it IS a number right
not the number's value
notviki I dunno
samcv i will check.
notviki but I'd thought the "wether or not" would give a Bool 20:34
samcv let me check the alias names
i don't see that being a property... 20:35
m: '3'.uniprop-int('Numeric_Type').say 20:36
camelia rakudo-moar f0398f: OUTPUT«3␤»
samcv ok that's not right…
m: '3'.uniprop('Numeric_Type').say
camelia rakudo-moar f0398f: OUTPUT«Decimal␤»
samcv oh ok. there we go 20:37
weird...
why does it give me the Numeric_Value property when i ask for an int of the Numeric_Type. strange
m: '3'.uniprop-bool('Numeric_Type').say
camelia rakudo-moar f0398f: OUTPUT«True␤»
samcv m: 'a'.uniprop-bool('Numeric_Type').say
camelia rakudo-moar f0398f: OUTPUT«False␤»
samcv this is what you want notviki
uniprop-bool('Numeric_Type') i think 20:38
u: { .uniprop-bool('Numeric_Type') == True }
unicodable6 samcv, U+0030 DIGIT ZERO [Nd] (0)
samcv, U+0031 DIGIT ONE [Nd] (1)
samcv, U+0032 DIGIT TWO [Nd] (2)
samcv, gist.github.com/37d0e4f390afb9f922...17eb76643b
samcv yeah if you're using uniprop that's technically what you should use… since 'Number' is not a unicode property… but 20:39
since moarvm obviously has it, maybe I should add it to the list?
(of things to return a Bool for?) 20:40
u: { .uniprop-bool('Numeric_Type') != .uniprop-bool('Number') } 20:41
unicodable6 samcv, U+3405 <CJK Ideograph Extension A> [Lo] (㐅)
samcv, U+3483 <CJK Ideograph Extension A> [Lo] (㒃)
samcv, U+382A <CJK Ideograph Extension A> [Lo] (㠪)
samcv, gist.github.com/74c85137d6c50fb10e...65eb17bb26
notviki If it's not standard unicode then we shouldn't add it, 'cause there are other backends besides moar 20:42
samcv kk
yeah
m: '拾'.uniprop-bool.say
camelia rakudo-moar f0398f: OUTPUT«Cannot resolve caller uniprop-bool(Str); none of these signatures match:␤ (Str:D $str, Stringy:D $propname)␤ (Int:D $code, Stringy:D $propname)␤ in block <unit> at <tmp> line 1␤␤»
samcv m: '拾'.uniprop-bool('Number').say
camelia rakudo-moar f0398f: OUTPUT«False␤»
samcv m: '拾'.uniprop-bool('Numeric_Value').say
camelia rakudo-moar f0398f: OUTPUT«True␤»
samcv m: '拾'.uniprop-bool('Numeric_Type').say
camelia rakudo-moar f0398f: OUTPUT«True␤»
samcv hm.. 20:43
m: '拾'.unival.say
camelia rakudo-moar f0398f: OUTPUT«10␤»
samcv hmmmmmm yeah
so Number is missing some numbers
apparently
whatever way MoarVM decides if it's a number not sure 20:44
m: say '一' ~~ /<:Number>/
camelia rakudo-moar f0398f: OUTPUT«Nil␤»
samcv :(
that should work
m: say '一' ~~ /<:Numeric_Type>/
camelia rakudo-moar f0398f: OUTPUT«Nil␤»
samcv m: say '一' ~~ /<:Numeric_Value>/ 20:45
camelia rakudo-moar f0398f: OUTPUT«Nil␤»
samcv or i'm doing this wrong
m: say '一' ~~ /<:Numeric>/
camelia rakudo-moar f0398f: OUTPUT«Nil␤»
samcv m: say '1一' ~~ /<:Number>/
camelia rakudo-moar f0398f: OUTPUT«「1」␤»
samcv m: say '一' ~~ /<:Number>/
camelia rakudo-moar f0398f: OUTPUT«Nil␤»
samcv yeah that is the number one in japanese i think
m: say "∞".uniprop('Number') 20:46
camelia rakudo-moar f0398f: OUTPUT«0␤»
samcv m: say "∞".uniprop('Numerical_Type')
camelia rakudo-moar f0398f: OUTPUT«0␤»
samcv yeah so it looks like only rational numbers with values have a numerical type
that's what i remembered it being 20:47
notviki m: say ^42 - 2e0 21:28
camelia rakudo-moar f0398f: OUTPUT«-2e0..^40e0␤»
notviki m: say ^42 - 2+0i
camelia rakudo-moar f0398f: OUTPUT«42+0i␤»
notviki m: say ^42 - (2+0i)
camelia rakudo-moar f0398f: OUTPUT«40-0i␤»
notviki m: say Range ~~ Cool 21:29
camelia rakudo-moar f0398f: OUTPUT«True␤»
notviki ah
dalek kudo/nom: 08c37cd | lizmat++ | src/core/Rakudo/Internals.pm:
Introducing R:I.MERGESORT-REIFIED-LIST

This method takes a List with a fully $reified and sorts it in place using plain cmp and returns the given List.
21:30
kudo/nom: fc599d3 | lizmat++ | src/core/Any-iterable-methods.pm:
Any.sort() now uses R:I:MERGESORT-REIFIED-LIST
notviki samcv: was this supposed to be TODOed? I'm getting a failure not ok 59 - uniprop for Grapheme_Cluster_Break returns LF for newline codepoint 21:43
samcv i thought that worked… 21:44
m: "\n".uniprop('gcb').say
camelia rakudo-moar f0398f: OUTPUT«LF␤»
samcv m: use Test; is "\n".uniprop('Line_Break'), 'LF', ‘"\n".uniprop('Line_Break') return LF’;
camelia rakudo-moar f0398f: OUTPUT«ok 1 - "\\n".uniprop('Line_Break') return LF␤»
samcv you sure it's that one?
the two below it aren't supposed to work, but i todo'd them. unless i did it wrong 21:45
notviki gist.github.com/zoffixznet/f53c599...28fa2c5e0a
samcv m: 0x103D.uniname.say 21:46
camelia rakudo-moar f0398f: OUTPUT«MYANMAR CONSONANT SIGN MEDIAL WA␤»
samcv oh i see i messed up 21:47
dalek ast: 7b5d3c9 | (Zoffix Znet)++ | S15-unicode-information/uniprop.t:
Fix copy-pasto in test
samcv ok fixing 21:48
oh
notviki too slow :P
samcv hah
copy-posto :P
dalek ast: 671355e | samcv++ | S15-unicode-information/uniprop.t:
Fix two of the uniprop tests, which the correct values were wrong
21:49
samcv well it ended up doing it for one. at least i fixed a different other one. that was todo'd
remind me how to make spectest for only one test 21:50
make spectest t/S15-unicode-information/uniprop.t
notviki make t/S15-unicode-information/uniprop.t 21:51
samcv in roast or rakudo? neither one works
notviki make t/spec/S15-unicode-information/uniprop.t
samcv no rule for target
k
yay
dalek kudo/nom: 5ac4c06 | lizmat++ | src/core/List.pm:
List.sort() now uses R:I.MERGESORT-REIFIED-LIST
21:54
samcv just gonna make a little script to cd into the rakudo folder and make spectest 21:55
then go back
notviki :S 21:58
m: sink 42 - 42 22:08
camelia rakudo-moar fc599d: OUTPUT«WARNINGS for <tmp>:␤Useless use of "-" in expression "42 - 42" in sink context (line 1)␤»
notviki m: eager 42 - 42
camelia ( no output )
notviki would've expected those to be in reverse in when the warning is generated :S 22:09
RabidGravy ooh, "#0 0x00007ffff790ffb7 in gc_mark (tc=0x6037c0, st=<optimized out>, data=<optimized out>, 22:29
worklist=0x5ae4970) at src/6model/reprs/MVMCallCapture.c:55"
dalek ast: 2a806dd | samcv++ | S15-nfg/GraphemeBreakPropertyTest (2 files):
Add new test generated from GraphemeBreakPropertyTest Unicode 9.0

Add the script used to generate it as well.
22:30
samcv moar tests
lizmat samcv: will you do a PR to add it to spectest.data ? 22:31
samcv yea
i have the ones moar fails “todo'd” 22:32
lizmat, so i just add it to the file. and that's it right
lizmat yeah 22:33
RabidGravy I'm not sure how to report this, I can cause the segfault at will but can't reproduce with simpler code
lizmat at a logical place :-)
dalek p: 622ee56 | (Pawel Murias)++ | t/nqp/037-slurpy.t:
Test that slurpy positionals are mixed in in the correct place.
22:34
p: 6937b9e | (Pawel Murias)++ | src/vm/js/ (4 files):
[js] Support throwing and handling control exceptions.
p: 4111c28 | (Pawel Murias)++ | t/nqp/044-try-catch.t:
Test throwing and handling control exceptions.
samcv lizmat, github.com/rakudo/rakudo/pull/968 22:38
dalek kudo/nom: 2acc7fd | samcv++ | t/spectest.data:
Add S15-nfg/GraphemeBreakPropertyTest.t to spectest.data

I just added this to roast, so let's add it to the spectest.data file.
22:39
kudo/nom: b306de1 | lizmat++ | t/spectest.data:
Merge pull request #968 from samcv/GraphemeBreakTest

Add S15-nfg/GraphemeBreakPropertyTest.t to spectest.data
samcv yay
lizmat and thanks for moar tests!
samcv make t/spec/S15-nfg/GraphemeBreakPropertyTest.t isn't working for me though 22:40
do i have to run make spectest 22:41
notviki runs one for 99.9999% of changes; the rest being the cases where I accidentally forgot to 22:45
samcv oh that did it :)
yay all good 22:46
timotimo i wonder why it wouldn't let you just "make" it ... perhaps when spectest.data changes it wants the makefile to be re-built by Configure.pl? but that seems kind of dumb 22:50
notviki It does let you. Even if the file's not in spectest.data 22:53
timotimo strange
lizmat good night, #perl6-dev 23:05
notviki hmm... warnings in test files interfere with TAP
lizmat: night
m: use Test; plan 1; 42 - 42; ok 1 23:06
camelia rakudo-moar b306de: OUTPUT«WARNINGS for <tmp>:␤Useless use of "-" in expression "42 - 42" in sink context (line 1)␤1..1␤ok 1 - ␤»
notviki Looks like perl 5's `prove` is too permissive. "A harness must only read TAP output from standard output and not from standard error." testanything.org/tap-version-13-sp...ation.html 23:08
and the warning is in stderr :/
ooooohhhh 23:09
never mind :) I stuck a test into a sub, but I guess it gets called when being optimized 23:10
hmm 23:11
I'd say it may be a bug in optimizer
m: multi foo (Int) { say "hi" }; multi foo (Str) { say "meow" }; say "start"; foo "x" 23:12
camelia rakudo-moar b306de: OUTPUT«start␤meow␤»
notviki m: multi foo (Int) is pure { say "hi" }; multi foo (Str) { say "meow" }; say "start"; foo "x"
camelia rakudo-moar b306de: OUTPUT«start␤meow␤»
notviki m: multi infix:<z> (Int) is pure { say "hi" }; multi infix:<z> (Str) { say "meow" }; say "start"; infix:<z>("x") 23:13
camelia rakudo-moar b306de: OUTPUT«start␤meow␤»
notviki m: use Test; multi infix:<z> (Int) is pure { say "hi" }; multi infix:<z> (Str) { pass "meow" }; say "start"; infix:<z>("x")
camelia rakudo-moar b306de: OUTPUT«start␤ok 1 - meow␤»
notviki weird
ohhh.
doh, I marked the proto as is pure
AlexDaniel \o/ 23:15
notviki m: proto foo (|) is pure {*}; multi foo (Int) is pure { say "hi" }; multi foo (Str) { say "meow" }; say "start"; foo "x"
camelia rakudo-moar b306de: OUTPUT«meow␤WARNINGS for <tmp>:␤Useless use of "foo \"x\"" in expression "foo \"x\"" in sink context (line 1)␤start␤meow␤»
notviki
.oO( useless use :/ )
m: multi infix:<-> (Str $, Str $) { say "hi" }; say "start"; "x" - "x" 23:18
camelia rakudo-moar b306de: OUTPUT«hi␤WARNINGS for <tmp>:␤Useless use of "-" in expression "\"x\" - \"x\"" in sink context (line 1)␤start␤hi␤»
notviki m: multi infix:<-> (Str $, Str $) { say "hi" }; say "start"; $ = "x" - "x"
camelia rakudo-moar b306de: OUTPUT«hi␤start␤»
notviki 0.o
(two "hi"s in the one with the warning
)
m: multi infix:<-> (Str $, Str $) { say "hi" }; say "start"; quietly "x" - "x"
camelia rakudo-moar b306de: OUTPUT«hi␤start␤»
notviki wow... 23:19
samcv that is… interesting… 23:26
AlexDaniel what's wow about it? 23:40
ah, it attempts constant folding with a custom infix operator? 23:41
timotimo yeah, the "is pure" from the proto sticks to the custom candidates, too
notviki AlexDaniel: it doesn't attempt. It succeeds. The wow is the realization that users can't very safely overload core operators for their custom objects. 23:42
Well, and the two-hi bug too
AlexDaniel notviki: hmmmmmm
bisect: multi infix:<-> (Str $, Str $) { say "hi" }; say "start"; quietly "x" - "x" 23:43
bisectable6 AlexDaniel, On both starting points (old=2015.12 new=b306de1) the exit code is 0 and the output is identical as well
AlexDaniel, Output on both points: hi␤start
notviki WEll, and the useless use of useless use bug too
bisect: multi infix:<-> (Str $, Str $) { say "hi" }; say "start"; "x" - "x"
bisectable6 notviki, On both starting points (old=2015.12 new=b306de1) the exit code is 0 and the output is identical as well
notviki, Output on both points: hi␤WARNINGS for /tmp/ZiXcmLTWWw:␤Useless use of "-" in expression "\"x\" - \"x\"" in sink context (line 1)␤start␤hi
AlexDaniel vOv 23:44
samcv to add a response to a RT ticket i can just send a mail to [email@hidden.address] with the proper subject right? 23:54
does it take some amount of time to show up?
notviki ¯\_(ツ)_/¯ 23:55
samcv :\
i mean it should work? or should i just reply on the rt site
notviki lizmat replies via email, but I've no idea what the address is or how long it takes to show up. 23:56
AlexDaniel: I have a Christmas present for you! 23:57
AlexDaniel bring it on! 23:58
notviki m: dd ^10-2
camelia rakudo-moar b306de: OUTPUT«-2..^8␤»
notviki m: dd ^10−2
camelia rakudo-moar b306de: OUTPUT«8␤»
notviki ^_^
AlexDaniel moves his face closer to the display
why??? 23:59
notviki Guess :)
AlexDaniel no, I mean I know
it's a fancy minus
but why??
notviki Well, yeah. Guess :)
Guess why :)
I'll give you a hint...