[Coke] waves to lizmat from the past. 01:06
dugword github.com/rakudo/rakudo/pull/981 03:33
Pull request to resolve issue
Hey all, I just submitted a pull request to rakudo to resolve some issues with IO::Socket::INET. Please let me know if there is anything I can change in the code, or in the process I followed to document/submit my changes. (This'll be my first pull request on the project).
notviki dugword: what I'm seeing is we had port default to 80 but now it's removed? 03:34
dugword: it's more performant to write { unless $port ~~ PIO::MIN_PORT .. PIO::MAX_PORT; } as unless PIO::MIN_PORT <= $port <= PIO::MAX_PORT; 03:37
guess doesn't really matter for this method.
dugword I don't think that actually was the default. When I ran the code with no port specified I couldn't get a client to connect to 80 03:38
And the docs don't specify a default
Nor does roast
I can make that change if it is more performant. I think both are as easy to read
Lemme double check that port 80 thing though 03:39
notviki Also, it's probably a bad idea to have two multies repeating all the defaults like that. 03:40
And multi method new (*%args) { can just omit the argument since we're not using it, as methods ignore any extra named params anyway 03:41
dugword Idea for a better strategy on dealing with the defaults? Switch it back to a single method with an if statement for the client/server constructors? Or check to see if the values are defined before passing them to bless 03:44
Also, confirmed that IO::Socket::INET.new(:listen, :localhost<localhost>) does not listen on port 80. IO::Socket::INET.new(:listen, :localhost<localhost>, :localport(80)) does 03:47
That default is a lie :)
notviki But that's $localport, not $port 03:49
looks like there's a bug with it 03:51
If you use .new() to connect, the default would apply, but I also see .connect() method that would mess up the default
dugword d'oh, you are correct. port 80 does work as a default when connecting
I don't follow, the .connect() method seems to work with the new code 03:54
Both new and old code fail when a port isn't passed. .connect() requires two arguments 03:55
notviki No, I was talking about the old code. The 80 default for port only worked if you used .new() and not .connect()
So it's probably fine that it's omited
dugword: as for de-duplicating the defaults. I think if we stick them onto the attributes and add *%rest slurpies to .new()s and then just slip those into .bless(|%rest, ...) then it'll work. That'll also ensure all the attributes of subclasses get passed along as well. 03:57
dugword That's a good idea
Should I update the .connect() method? It could default to the current value of $.port 03:58
notviki No, it's fine. And leave off the 80 default altogether. Seems a strange default and probably not worth having it. 03:59
I'd also relax the port/localport requiring an Int to an Int(Cool) coercer instead 04:00
and $family too 04:01
dugword Will do, thanks 04:02
notviki dugword: BTW did you run the spectest on it? TEST_JOBS=7 make spectest 04:06
or TEST_JOBS=7 make stresstest (more thorough)
dugword I did, I get weird issues with one of the tests that looks at file events. But I was getting those before. make t/spec/S32-io/IO-Socket-INET.t passes 04:07
There are no IO::Socket::INET tests for the default port, or for parsing URIs like host:port 04:08
notviki OK
notviki hopes to commit one more fix in the next 50 minutes... 04:10
"Cannot iterate object with P6opaque representation (NQPMatch)" 04:11
Dammit, how do I see what's in the NQPMatch :/
notviki gives up on trying to fix it. 04:30
"# This is a cheaty and evil hack."
Yeah, well, then why did you put it in?
notviki purposfully avoids looking at git blame 04:31
dalek kudo/nom: 3d3e7e5 | (Zoffix Znet)++ | README.md:
Make reference to #perl6 a clickable URL
04:51
notviki There!
Last commit of 2016.
notviki goes to fetch celebratory carbonated water 04:52
samcv u: party 04:53
unicodable6 samcv, U+1F389 PARTY POPPER [So] (🎉)
notviki read that as "party pooper" at first... 04:54
samcv submit an emoji recommendation hhehe 04:55
dalek ast: 149ad98 | samcv++ | S15-nfg/GraphemeBreakTest (2 files):
Update Unicode Grapheme Break test to have more clear messages

May have fixed a couple tests which had the incorrect expected number of characters.
05:43
ast: e512b14 | samcv++ | S15-nfg/GraphemeBreakTest.t:
Todo failing tests in GraphemeBreakTest.t
Zoffix dugword, all done or are you working on more changes for your PR? 06:29
dugword Might be done, doing some testing and review 06:30
while trying to corral a 3 year old back to her bed 06:31
dalek kudo/nom: 6b92983 | (Zoffix Znet)++ | appveyor.yml:
Remove trailing whitespace
06:34
kudo/nom: 15a2f11 | (Zoffix Znet)++ | appveyor.yml:
Try to unbust appveyer

The build error message suggests this option, so let's give it a whirl.
dugword I closed it for now, I'll re-open when I'm done reviewing 06:41
notviki OK
bartolin oh noes, the jvm backend is broken again /o\ 07:27
bartolin looks at src/core/Cursor.pm suspiciously
dalek ast: 0fce7c1 | usev6++ | S (5 files):
Fudge some more failing tests for JVM
07:29
notviki :(
dalek kudo/nom: c5e54ef | (Zoffix Znet)++ | src/core/Range.pm:
Make Range.AT-POS on int ranges same as num Ranges and lists

When fetching an item at index higher than what's available, lists and Num ranges return Nil. Integer Ranges, on the other hand, return a Failure.
Fix by making int ranges behave same as num ranges and lists (return Nil).
Fixes RT#130449: rt.perl.org/Ticket/Display.html?id=130449
07:36
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130449
ast: 88106f4 | (Zoffix Znet)++ | S02-types/range.t:
Test out-of-range AT-POS on Range objects

RT#130449: rt.perl.org/Ticket/Display.html?id=130449 Rakudo fix: github.com/rakudo/rakudo/commit/c5e54efc88
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130449
TimToady hny from PST! 08:01
Zoffix HNY! 08:02
japhb wonders when the neighborhood fireworks will stop ... 08:20
samcv bartolin, have you ever used Collate on JVM? 08:21
and what are your thoughts on JVM's compareTo for strings, which is like super vague about how it sorts, not even telling you any rules of sorting
Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argument string 08:24
j: say 'a' cmp 'B'
camelia rakudo-jvm 8ca367: OUTPUT«More␤»
samcv m: say 'a' cmp 'B' 08:25
camelia rakudo-moar c5e54e: OUTPUT«More␤»
samcv TimToady, do you think these return values are sane? github.com/MoarVM/MoarVM/pull/477 for unicmp_s 08:26
dalek kudo/nom: 1e3a325 | (Zoffix Znet)++ | src/core/ (2 files):
Strip trailing whitespace
08:37
bartolin samcv: sorry, I know next to nothing about that topic
samcv there is Collation too though apparently 08:39
bartolin, are java strings stored as NFG codepoints or just as the actual provided ones? and doesn't do normalization? you know? 08:40
i know these are hard questions, just curious
j: "test".NFC.say
camelia rakudo-jvm 8ca367: OUTPUT«NFC not yet implemented. Sorry. ␤ in method throw at gen/jvm/CORE.setting line 27529␤ in method NFC at gen/jvm/CORE.setting line 14596␤ in block <unit> at <tmp> line 1␤␤»
bartolin is clueless about that 08:41
samcv j: say "\x[1E69]".ords.say 08:42
camelia ( no output )
samcv m: say "\x[1E69]".ords.say 08:43
camelia rakudo-moar c5e54e: OUTPUT«(7785)␤True␤»
samcv weird.
( that character changes on normalization )
oh wait
duh i'm dumb
j: say "\x[1E69]".ords
camelia rakudo-jvm 8ca367: OUTPUT«(7785)␤»
samcv m: 7785.base(16).say
camelia rakudo-moar c5e54e: OUTPUT«1E69␤»
samcv oh that was a bad example. the canonical form is the same 08:44
m: say "\x[1E0B]\x[0323]".ords
camelia rakudo-moar c5e54e: OUTPUT«(7693 775)␤»
samcv m: say "\x[1E0B]\x[0323]".ords.».base(16).say 08:45
camelia rakudo-moar c5e54e: OUTPUT«(1E0D 307)␤True␤»
samcv j: say "\x[1E0B]\x[0323]".ords.».base(16).say
camelia rakudo-jvm 8ca367: OUTPUT«(1E0B 323)␤True␤»
samcv ah here we go :)
java doesn't do any normalization
m: say "\x[1E0B]\x[0323]".chars 08:46
camelia rakudo-moar c5e54e: OUTPUT«1␤»
samcv j: say "\x[1E0B]\x[0323]".chars
camelia rakudo-jvm 8ca367: OUTPUT«2␤»
samcv looks like BreakIterator could return the proper number of characters 08:49
also java.text.Normalizer may be of interest for getting the same functionality as moar 08:50
looks like java has ways to do NFC and NFD and NFKC and NFKD docs.oracle.com/javase/6/docs/api/....Form.html 08:51
so looks like that could eventually be implemented
bartolin, so you say the JVM doesn't build atm? 08:54
bartolin samcv: yeah, looks like 9eef565c29 broke it. (make still works, but make install does not) 08:56
"This type cannot unbox to a native number" ...
samcv lameo. i don't really know java but i am willing to help out with the unicode stuff, maybe implement those
those errors piss me off when programming in nqp 08:57
bartolin, i'd also like to help add uniprop to JVM as well
bartolin that sounds great! ++samcv :-)
samcv i hope you know how to add ops to nqp or whatever? for jvm. can't be too hard?
java looks kind of boring of a language. is this true? 08:58
bartolin well, tbh I'm not really proficient with java. I'm only trying to do some housekeeping and keep rakudo-j "alive" -- hoping for someone else to take over 09:00
as psch noted a few times ago, we need a kind of champion for the JVM backend 09:01
s/ago/earlier/
samcv champion heh 09:02
compiling and installing would be a good bar to get to at least 09:03
bartolin aims at 'spectest mostly error free, so that regressions can be found (and fixed)' 09:05
samcv yeah 09:06
gfldex m: say (1/1000) < 0 09:09
camelia rakudo-moar 1e3a32: OUTPUT«False␤»
gfldex who broke my math?
m: say (1/1000).WHAT
camelia rakudo-moar 1e3a32: OUTPUT«(Rat)␤»
samcv well 1/1000 isn't less than 0 09:10
at least on odd numbered days
Zoffix bisectable6, say (1/1000) < 0
bisectable6 Zoffix, On both starting points (old=2015.12 new=1e3a325) the exit code is 0 and the output is identical as well
Zoffix, Output on both points: False
gfldex m: say (1/1000) > 0
camelia rakudo-moar 1e3a32: OUTPUT«True␤»
bartolin anyway, it would be really nice to get better unicode support for rakudo-j. I'd like to help with that, but I'm afraid I don't have enough tuits for the required learning and hacking :-(
Zoffix gfldex, what made you think math was broken? 09:12
gfldex lack of sleep
Zoffix OK
Zoffix done some work on 0-denominator Rats recently.
Well, I did last year 09:13
:P
gfldex well, I do have some problems in a script
samcv Zoffix, no, he thought it was an even numbered day
Zoffix m: say (1/1000) > 0/0 09:14
camelia rakudo-moar 1e3a32: OUTPUT«False␤»
Zoffix m: say (1/1000) < 0/0
camelia rakudo-moar 1e3a32: OUTPUT«False␤»
samcv easy mistake to makje
gfldex it's all good, found my mistake
Zoffix *phew* :)
samcv well 0/0 is NaN tho
so right, left side is greater 09:15
m: say 0/0
camelia rakudo-moar 1e3a32: OUTPUT«Attempt to divide by zero using div␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
samcv please camelia. why are you so mean
i just wanted to divide by zero :(
i do like the 'Attempt' part though. makes it clear you actually did _not_ divide by zero hehe 09:16
Zoffix m: my $a = 1/1000; my $b = 0/0; dd [ $a < $b, $a > $b, $a == $b ]
camelia rakudo-moar 1e3a32: OUTPUT«[Bool::False, Bool::False, Bool::False]␤»
samcv i think in some occurances though Java seems to compare ""lexigraphically" and other times by codepoint badly 09:19
maybe. i think i remember that. looking at the docs they say something about unicode codepoints, but maybe it was just the differences between sorting by NFC on moar vs like whatever Java had stored 09:20
the wiki page for lexographical order says it's by dictionary order, but has a specific meaning comparing length at specific points or whatever 09:21
dalek ast/6.c-errata: 9eb108d | (Zoffix Znet)++ | S02-types/nested_arrays.t:
Fix incorrect test

The test tests the range in error message is 0..Inf, but the actual range the error should be reporting must not include Inf itself.
09:26
ast: 7149170 | (Zoffix Znet)++ | S02-types/nested_arrays.t:
Fix incorrect test

The test tests the range in error message is 0..Inf, but the actual range the error should be reporting must not include Inf itself.
09:27
samcv j: say $*VERSION 09:29
camelia rakudo-jvm 8ca367: OUTPUT«Dynamic variable $*VERSION not found␤ in sub DYNAMIC at gen/jvm/CORE.setting line 589␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in method throw at gen/jvm/CORE.setting line 27529␤ in method throw at gen/jvm/CORE.setting line 301…»
samcv maybe i made up that variable
yeah
timotimo we have more than one kind of version 09:30
samcv yes
Zoffix j: say $*VM.version 09:31
camelia ( no output )
Zoffix j: say $*VM.version
camelia rakudo-jvm 8ca367: OUTPUT«v1.8␤»
samcv Unicode 10.0 adds exactly 8,518 characters, for a total of 136,690 characters. These additions include 4 new scripts and 56 new emoji characters. 09:33
The new scripts and characters in Version 10.0 add support for lesser-used languages worldwide, including:
TBD
Important symbol additions include:
TBD
56 emoji characters, such as ...
hahaha
timotimo that reminds me of the article on the GOP website proclaiming that trump clearly won the debate against hillary clinton that would start a few hours after they accidentally published it 09:34
samcv hah
it cites that it adds 4 scripts. but they don't know what?
they do mention one though, some ancient japanese script
timotimo i hope they didn't add java script
samcv also there are not enough symbols. i need a symbol for zero width joiner 09:35
i mean there IS an ISO symbol for it
but it's not in unicode
zero width non-joiner: upload.wikimedia.org/wikipedia/com...NJ.svg.png 09:36
zero width joiner: upload.wikimedia.org/wikipedia/com...WJ.svg.png
wow they prolly gonna add DIGIT ZERO short diagonal stroke form eventually maybe in unicode 10 09:37
well a lot of these things are for being able to transcribe written things, and retain the information on the page
278 additional emoji variation sequences WEW
on the proposed page 09:38
aka pipeline
oh wait no that was accepted i'm looking in the past. the dates this year are being in ISO
timotimo "WEW"? 09:39
samcv whew
timotimo ah
samcv reading the list of unicode rejections 09:43
2011 rejected a subscript forward slash
heh
b-but there are subscript numbers. they're reasoning was that there is already a slash character, just like use markup or something to render as subscript 09:44
timotimo :\ 09:46
dalek rakudo/nom: efc075b | (Zoffix Znet)++ | src/core/ (11 files):
rakudo/nom: Fix and consistify X::OutOfRange
rakudo/nom:
rakudo/nom: - Consistently use Str as range instead of Range object. One exception
rakudo/nom: is Range.in-range that still returns a Range because 6.c-errata
rakudo/nom: tests for some Dateish methods test that use Range.in-range actually
rakudo/nom: tests an exception has a Range object in it it. Why not make them all
rakudo/nom: Range objects? Because `.gist()` for int ranges that start from zero
rakudo/nom: shows them as "^42" instead of "0..42," which is a bit confusing in an
rakudo/nom: error message. Also, a .rotor X::OutOfRange may soon contain a more
rakudo/nom: elaborate Range description that can't be represented with Range object.
rakudo/nom: - Consitently use "Inf" (changes use of "0..*" to "0..Inf")
notviki github.com/rakudo/rakudo/commit/ef...2ce57ad701 09:47
samcv i'm hungry. feel like i haven't eaten since last year
don't know how i'm alive right now
timotimo everything i've eaten since last year i've thrown up already
samcv what did you eat?
timotimo a few slices of zwieback 09:48
[Tux] This is Rakudo version 2016.12-162-g1e3a325bd built on MoarVM version 2016.12-35-g293bda71 09:54
csv-ip5xs 3.090
test 12.972
test-t 5.258
csv-parser 14.046
timotimo i'll try sleep again 09:55
buggable: speed
buggable timotimo, ▆▄▅▅▅▄▅▅▅▅▅█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▃▃▃▂▂▂▂▂▂▂▁▁▁▁▂▁▂▃▁▁▂▁ data for 2016-12-10–2017-01-01; variance: 5.137s–7.592s
samcv j: say Q<ୈtest<ୈ 10:26
camelia rakudo-jvm 8ca367: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Couldn't find terminator > (corresponding < was at line 1)␤at <tmp>:1␤------> say Q<ୈtest<ୈ⏏<EOL>␤ expecting any of:␤ >␤»
samcv very interesting
j: say Q<ୈtest> 10:27
camelia rakudo-jvm 8ca367: OUTPUT«ୈtest␤»
samcv m: say Q<ୈtest>
camelia rakudo-moar efc075: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Couldn't find terminator <ୈ (corresponding <ୈ was at line 1)␤at <tmp>:1␤------> say Q<ୈtest>⏏<EOL>␤ expecting any of:␤ <ୈ␤»
samcv but i guess that makes sense if it parses by codepoint 10:28
dalek ast: 0963eed | moritz++ | S09-typed-arrays/native-int.t:
RT #130443: my int @a = ^Inf
11:15
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130443
dalek kudo/nom: d5f27f9 | bartolin++ | t/spectest.data:
Don't run test file on JVM

The test file contains only one test that dies with a StackOverflowError on JVM and isn't easily fudgeable.
11:16
kudo/nom: 268dc92 | (Zoffix Znet)++ | / (2 files):
Handle Mu in Test::is()

Fixes RT#126149: rt.perl.org/Ticket/Display.html?id=126149
11:18
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=126149
dalek ast: 6647021 | (Zoffix Znet)++ | S09-typed-arrays/native-int.t:
Tweak int array = ^Inf test

The bug it tests is sensitive to sink context and having the code as last value of the block uses its value as return value, so the test passes even before the bug fix.
Fix by using a dummy value as return value for the block.
11:26
ast: bb45101 | samcv++ | S05-modifier/sigspace.t:
Add test for trailing space with :sigspace regex being significant

Closes RT #30045
11:30
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=30045
dalek ast: 59c548d | samcv++ | S05-modifier/sigspace.t:
Make test `is` instead of `ok` for regex sigspace
11:34
gfldex m: role R { method m { say 'oi‽' } }; R.new.^mro.say; say R.new.^mro[0].HOW.^name; say R.new ~~ R; 12:46
camelia rakudo-moar 268dc9: OUTPUT«((R) (Any) (Mu))␤Perl6::Metamodel::ClassHOW␤True␤»
dalek ast: 65e399e | usev6++ | S05-capture/match-object.t:
Fudge newly added tests for r-j
13:14
kudo/nom: 9af9515 | usev6++ | src/core/Cursor.pm:
Remove special cases for JVM

  ... which are no longer needed. This fixes the build
for rakudo-j.
13:39
kudo/nom: 29b5eab | lizmat++ | src/core/Cursor.pm:
Merge pull request #983 from usev6/jvm_cursor

Remove special cases for JVM
nine I just love commits like these ^^^ :) 14:12
bartolin yeah, that was nice (and surprising) fix 14:17
btw, now that rakudo-j builds again, could you maybe build a current camelia-on-jvm? 14:18
nine bartolin: it's building right now. I'll watch it and help if needed 14:20
bartolin thanks! 14:21
nine++ # running camelia 14:22
nine Yeah, the good old java.lang.RuntimeException: Missing or wrong version of dependency 'gen/jvm/stage2/QRegex.nqp'
Aha, it's trying to load /home/camelia/rakudo-j-inst-1/share/nqp/lib/Perl6/ModuleLoader.jar instead of blib/Perl6/ModuleLoader.jar 14:37
"it" being NQP's module loader. So those gorram build issues may be fixed by shuffling around NQP's search paths
bartolin ooc did you do a git clean -dfx first? 14:39
nine No, but I did delete blib/Perl6/* 14:42
But since it finds the old, _installed_ QRegex.jar instead of the one in blib, it ought to be a search path priority issue
bartolin *nod*
nine nqp-j does have a --module-path argument, but AFAICS you can only give it a single path which is not enough to cover both blib and the installed nqp libs :/ 14:54
timotimo .u BEL 15:28
yoleaux2 U+0007 BELL [Cc] (␇)
U+0218 LATIN CAPITAL LETTER S WITH COMMA BELOW [Lu] (Ș)
U+0219 LATIN SMALL LETTER S WITH COMMA BELOW [Ll] (ș)
timotimo .u SYMBOL FOR BEL
yoleaux2 U+2407 SYMBOL FOR BELL [So] (␇)
timotimo do y'all think \␇ in strings should work? 15:29
psch "work" in what sense? make a sound..? 15:34
oh, wait, that one behind the \ is U+2407, isn't it 15:35
timotimo hah 15:38
correct
psch isn't that just an invalid escape sequence? 15:39
m: say "\␤"
camelia rakudo-moar 29b5ea: OUTPUT«␤␤»
psch m: say "\␇" 15:40
camelia rakudo-moar 29b5ea: OUTPUT«␇␤»
psch m: say "\2"
camelia rakudo-moar 29b5ea: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Unrecognized backslash sequence (did you mean $1?)␤at <tmp>:1␤------> say "\2⏏"␤»
psch m: say "\☃"
camelia rakudo-moar 29b5ea: OUTPUT«☃␤»
psch ...apparently not
i'm still not sure what "work" should mean in that context though vOv 15:41
timotimo well, you could get BEL when you write \SYMBOL FOR BEL 15:42
and the other ones
psch so every So that corresponds to an ascii escape should be convertable to it via backslashing? 15:43
timotimo yeah, that'd be fun, no?
maybe even for other invisible things like the ZWJ and ZWNJ
psch doesn't sound too bad i suppose
i'm guessing there's some uniprop that makes it clear which ones can be converted like that? 15:44
...although we'd probably hardcode that i guess 15:47
dalek p: c67a3cd | (Pawel Murias)++ | src/vm/jvm/QAST/JASTNodes.nqp:
[JVM] Avoid duplicating the mapping of opcode numbers.
16:00
p: 5f5ecf9 | (Pawel Murias)++ | t/serialization/01-basic.t:
Fix the test on the JVM.
notviki plans to merge abst5act's set work later today. 16:59
It only exposes an existing bug and re-hiding it in 6.c-errata doesn't need any changes to tests themselves. I don't want that PR to bit-rot. 17:00
lizmat good *, #perl6-dev! 18:06
m: class A { has $.x = 42 }; dd A.new("a" => 666) # TIL that this doesn't work
camelia rakudo-moar 29b5ea: OUTPUT«Default constructor for 'A' only takes named arguments␤ in block <unit> at <tmp> line 1␤␤»
notviki \o 18:07
lizmat m: class A { has $.x = 42 }; dd A.new(|{"a" => 666}) # yuck
camelia rakudo-moar 29b5ea: OUTPUT«A.new(x => 42)␤»
lizmat anyways, I have a feeling this has been discussed at length before my involvement with Perl 6 18:08
notviki prolly. That way is for passing Pair objects
m: class A { has $.x = 42 }; dd A.new(42 => 666) # same with this form
camelia rakudo-moar 29b5ea: OUTPUT«Default constructor for 'A' only takes named arguments␤ in block <unit> at <tmp> line 1␤␤»
lizmat m: class A { has $.x = 42 }; dd A.new(:a(666)) # use :named syntax for reliable passing of named params 18:09
camelia rakudo-moar 29b5ea: OUTPUT«A.new(x => 42)␤»
notviki m: class A { method new (*%_) { self.bless: |%_ }}; dd A.new(|("💩" => 666)) 18:14
camelia rakudo-moar 29b5ea: OUTPUT«A.new␤»
notviki m: class A { method new (*%_) { with self.bless { for %_ -> (:$key, :$value) { .^add_method: $key, { $value } }; $_}}}; dd A.new(|("💩" => 666)).^methods».name 18:19
camelia rakudo-moar 29b5ea: OUTPUT«("new", "")␤»
notviki m: class A { method new (*%_) { with self.bless { for %_ -> (:$key, :$value) { .^add_method: $key, { $value } }; $_}}}; dd A.new(|("💩" => 666))."💩"
camelia rakudo-moar 29b5ea: OUTPUT«===SORRY!=== Error while compiling <tmp>␤Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'.␤at <tmp>:1␤------> } }; $_}}}; dd A.new(|("💩" => 666))."💩"⏏<EOL>␤»
notviki m: class A { method new (*%_) { with self.bless { for %_ -> (:$key, :$value) { .^add_method: $key, { $value } }; $_}}}; dd A.new(|("💩" => 666))."💩"()
camelia rakudo-moar 29b5ea: OUTPUT«Int $value = 666␤»
notviki m: class A { method new (*%_) { with self.bless { for %_ -> (:$key, :$value) { .^add_method: $key, { $value } }; .^compose; $_}}}; dd A.new(|("💩" => 666)).^methods».name 18:20
camelia rakudo-moar 29b5ea: OUTPUT«("new", "")␤»
notviki shrugs
m: class A { method new (*%_) { with self.bless { for %_ -> (:$key, :$value) { .^add_method: $key, method ::('💩') { $value } }; .^compose; $_}}}; dd A.new(|("💩" => 666)).^methods».name
camelia rakudo-moar 29b5ea: OUTPUT«Package 'A' already has a method '💩' (did you mean to declare a multi-method?)␤ in any add_method at gen/moar/Metamodel.nqp line 472␤ in block at <tmp> line 1␤ in method new at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
notviki TIL perl6 has a --rxtrace switch 18:22
notviki spots "lib:." directory again :S 18:24
Thought I fixed that...
dugword timtoady 18:50
sorry ignore that
dalek p: 71d6a34 | (Joachim Durchholz)++ | tools/build/Makefile- (3 files):
Makefile readability improvements: Formatting

Unified formatting for list-of-file macros: One line per file, last line ends with \ (with a follow-up empty line)
Unified formatting for actions: Follow-up lines start with a tab (some lines had blanks instead, others didn't)
19:56
p: 796756c | (Joachim Durchholz)++ | tools/build/Makefile- (2 files):
Improve Makefile readability: Add _DIR to ?_STAGE?
TimToady timotimo: the current behavior of "\␇" is correct and unlikely to change, since it would violate the general rule that only backslashed alphanums are meta 20:31
also note that it's not illegal because double quotes default to allowing random redundant backslashing (even in P5), while single quotes default to the other semantics keeping unrecognized backslashes 20:32
m: say '\␇' 20:33
camelia rakudo-moar 29b5ea: OUTPUT«\␇␤»
psch wonders if the general idea has a usable application 20:35
as in, a backslash sequence that strip one layer, so to speak
i.e. SYMBOL OF BELL would turn into BEL, some grapheme with a numeric representation turns into its .Num value 20:36
well, .Num.Str value
i guess that's mixing types and q// on a level that doesn't help 20:37
+adverbs
lizmat perlgeek.de/blog-en.cgi/perl-6/201...-cron.html # moritz++
lizmat wonders: 20:38
couldn't we abbreviate "my $result = $proc.start.result;" to "my $result = $proc.result" ?
and is the ".list" in "my $output = $collector.list.join;" needed ?
notviki s: Channel.new, 'join', \() 20:42
SourceBaby notviki, Something's wrong: ␤ERR: Type check failed in binding to &code; expected Callable but got Method+{<anon|45721456>} (Method+{<anon|4572145...)␤ in sub do-sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 42␤ in sub sourcery at /home/zoffix/services/lib/CoreHackers-Sourcery/lib/CoreHackers/Sourcery.pm6 (CoreHackers::Sourcery) line 29␤ in block <unit> at -e
notviki *sigh*
TimToady m: say '\qq/\c[SYMBOL FOR BELL]/'
camelia rakudo-moar 29b5ea: OUTPUT«␇␤»
notviki m: say '\c[SYMBOL FOR BELL]' 20:43
camelia rakudo-moar 29b5ea: OUTPUT«\c[SYMBOL FOR BELL]␤»
notviki :S what sorcery is that...
TimToady single quotes still recognize \q thingies 20:44
this is primarily so you can still interpolate occasionally into long q-style heredocs containing code 20:45
notviki Didn't know we had any \q thingies :o
psch only Q doesn't do \q i think?
oh, there was an adverb for that, i think :c? 20:46
m: say Q/\qq[{ 1 + 1 }]/
camelia rakudo-moar 29b5ea: OUTPUT«\qq[{ 1 + 1 }]␤»
psch m: say Q:c/\qq[{ 1 + 1 }]/
camelia rakudo-moar 29b5ea: OUTPUT«\qq[2]␤»
TimToady no, that comes in with Q:b which is implied by Q:q 20:47
psch m: say Q:b/\qq[{ 1 + 1 }]/
camelia rakudo-moar 29b5ea: OUTPUT«2␤»
psch m: say Q:!b/\qq[{ 1 + 1 }]/
camelia rakudo-moar 29b5ea: OUTPUT«\qq[{ 1 + 1 }]␤»
psch right
dalek kudo/nom: e6ccb47 | usev6++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
[JVM] Complete adaptation to findmethod changes

With github.com/rakudo/rakudo/pull/967 a few occurences of 'findmethod' were changed to unbust the JVM build. It turned out that some other tweaks were necessary, because 'findmethod' throws an exception now if it can't find the method. Where the return value from 'findmethod' is checked manually, the code now uses the new method 'findmethodNonFatal'.
21:31
rakudo/nom: 702f845 | (Zoffix Znet)++ | src/vm/jvm/runtime/org/perl6/rakudo/ (2 files):
rakudo/nom: Merge pull request #984 from usev6/jvm_findmethod
jnthn (from bit of backlog I read) I'd tend to suggest writing `my $result = $proc.start.result` as `my $result = await $proc.start` (the thinking being `await` will start do the more scalable thing in the coming months, while `result` will be the blocking escape hatch) 21:32
yoleaux2 30 Dec 2016 23:52Z <japhb> jnthn: Found another possible oo-monitors bug for you (github.com/jnthn/oo-monitors/issues/9). Hopefully this one is golfed down enough to make it easier to debug.
jnthn .tell japhb Thanks! Will likely get time to look at it in the next few days. 21:33
yoleaux2 jnthn: I'll pass your message to japhb.
jnthn Happy 2017, everyone. :) I'll be back to hacking on stuff from tomorrow-ish. :)
dalek ast: 8d48abf | usev6++ | S (15 files):
Revert "Fudge for X::Assignment::RO on JVM, RT #130470"

This reverts commit e89914d71d1268914216d1eadac6e37511d1a546.
The test failures were fixed with Rakudo commit e6ccb47087d252a5c77c74bfd8c92ef63feccde6
21:35
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130470
p: 891eb6f | (Pawel Murias)++ | t/nqp/044-try-catch.t:
Test nqp::getextype.
21:38
p: 5daf0e3 | (Pawel Murias)++ | / (3 files):
Generate Makefile-JS.in in Configure.PL rather then keep it in the repo.
bartolin r: 'say 0/0 cmp 42' # on latest r-j fails with 'ArithmeticException: BigInteger divide by zero' 21:51
camelia rakudo-moar 702f84: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "say 0/0 cmp 42" in sink context (line 1)␤»
..rakudo-jvm 8ca367: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "say 0/0 cmp 42" in sink context (line 1)␤»
bartolin r: say 0/0 cmp 42 # on latest r-j fails with 'ArithmeticException: BigInteger divide by zero' 21:52
camelia rakudo-moar 702f84: OUTPUT«More␤»
..rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in method Num at gen/jvm/CORE.setting line 26188␤ in method Bridge at gen/jvm/CORE.setting line 26213␤ in sub infix:<cmp> at gen/jvm/CORE.setting line 11095␤ in block <unit> at <tmp> line…»
bartolin oh, that happened on older r-j as well (8ca367 is from 2016-11-27) 21:53
so, the failing tests are probably new tests
there are failing tests in S03-operators/cmp.t, S32-list/produce.t, S32-num/fatrat.t and S32-num/rat.t 21:54
psch r: say try 0/0; say $!.perl 21:55
camelia rakudo-moar 702f84: OUTPUT«Attempt to divide by zero using div␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
..rakudo-jvm 8ca367: OUTPUT«Attempt to divide by zero using div␤ in method floor at gen/jvm/CORE.setting line 26197␤ in method Str at gen/jvm/CORE.setting line 26217␤ in method gist at gen/jvm/CORE.setting line 10002␤ in sub say at gen/jvm/CORE.setting line 33656␤ in bl…»
psch r: use nqp; nqp::div_I(0, 0, Int) 21:57
camelia rakudo-moar 702f84: OUTPUT«(signal FPE)»
..rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in block <unit> at <tmp> line 1␤␤»
psch r: use nqp; nqp::div_In(0, 0, Int)
camelia rakudo-moar 702f84: OUTPUT«This type cannot unbox to a native number: P6opaque, Int␤ in block <unit> at <tmp> line 1␤␤»
..rakudo-jvm 8ca367: OUTPUT«===SORRY!===␤Operation 'div_In' requires 2 operands␤»
psch ah
still curious
but then i haven't actually looked at the cmp impl
bartolin I suspected some recent changes (like a567eb44ca) to cause the failures, since Zoffix++ did some work in that area 21:59
psch infix:<cmp>(Real, Real) looks weird from here, but that probably just means i shouldn't look at code right now anymore... :) 22:00
m: say (0/0).Bridge
camelia rakudo-moar 702f84: OUTPUT«NaN␤»
psch m: say (0/0).Bridge cmp 42
camelia rakudo-moar 702f84: OUTPUT«More␤»
psch j: say (0/0).Bridge cmp 42
camelia rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in method Num at gen/jvm/CORE.setting line 26188␤ in method Bridge at gen/jvm/CORE.setting line 26213␤ in block <unit> at <tmp> line 1␤␤» 22:01
psch j: say (0/0).Bridge
camelia rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in method Num at gen/jvm/CORE.setting line 26188␤ in method Bridge at gen/jvm/CORE.setting line 26213␤ in block <unit> at <tmp> line 1␤␤»
psch j: say (0/0).Num
camelia rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in method Num at gen/jvm/CORE.setting line 26188␤ in block <unit> at <tmp> line 1␤␤»
psch github.com/rakudo/rakudo/blob/nom/...nal.pm#L45 22:02
is where we could check for ?$!denominator i suppose
or patch div_In to call through to a HLL exception handler maybe, although i guess that'd still throw upwards far enough
r: use nqp; nqp::div_In(0,0) 22:03
camelia rakudo-jvm 8ca367: OUTPUT«java.lang.ArithmeticException: BigInteger divide by zero␤ in block <unit> at <tmp> line 1␤␤»
( no output )
psch i mean, who's right there..? :)
bartolin well, that's to complicated for me (at least for this evening) 22:05
ahh, there is already a ticket for (0/0).Num: RT #128264 22:11
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128264
bartolin I'll update it with the nqp stuff (maybe tomorrow)
maybe I'll also fudge the failing tests with that ticket number 22:12
notviki If nqp::div_In returns a native num, it should handle the _Inf/NaN cases, per IEEE
psch yeah in the end it's a decision about backend congruity, which i find is hard to find a consensus for 22:13
notviki And github.com/rakudo/rakudo/commit/498d0a4ae4 looks LTA to me, because it's producing a type that can't be used in a Rat, and I'm not entirely clear on the commit message; it says it lets us .Rat'ify Inf/NaN while keeping div-by-zero exception... well, we have that without any special types, can't we? 22:14
m: my Rat $x = Inf.Rat 22:15
camelia rakudo-moar 702f84: OUTPUT«Type check failed in assignment to $x; expected Rat but got Rational[Num,Int] (?)␤ in block <unit> at <tmp> line 1␤␤»
psch not sure i can grasp the intention of that patch, i think i'll go bedwards... :) 22:17
bartolin there is also irclog.perlgeek.de/perl6/2010-02-24#i_2027452 22:18
(taken from a comment in S32-num/rat.t)
github.com/perl6/roast/blob/8d48ab...rat.t#L232 22:19
notviki Yeah and for the the `cmp` thing TimToady also said we shouldn't throw 22:20
(that's what I implemented)
And I don't know Java, but it looks like div_In is implemented as an integer division (which can't have NaN/Inf) which is then converted into a Num, which is why it's exploding: return new BigDecimal(getBI(tc, a)).divide(new BigDecimal(getBI(tc, b)), 309, RoundingMode.HALF_UP).doubleValue(); 22:21
Here's IEEE 754-2008 for reference: www.csee.umbc.edu/~tsimo1/CMSC455/I...4-2008.pdf Page 49, Section 7.2 says Inf/Inf or 0/0 is a NaN for "operations that produce results in floating-point format" and the next section 7.3 tells that for definite numerators you get Inf with its sign when divinding by zero 22:25
bartolin notviki++
dalek kudo/nom: 3c13b73 | (Zoffix Znet)++ | tools/build/NQP_REVISION:
(nqp bump) Bring in NQP with new makefile generator

Full set of changes: github.com/perl6/nqp/compare/0ccfb63...5daf0e3
22:53
kudo/nom: a578e7b | ab5tract++ | src/core/set_operators.pm:
Fix bag/set (^) without affecting set

This should address the issues that led to the previous revert.
22:58
kudo/nom: 1087f84 | ab5tract++ | src/core/set_operators.pm:
Fix pervasive defined-ness bug
rakudo/nom: a687d95 | (Zoffix Znet)++ | src/core/set_operators.pm:
rakudo/nom: Merge pull request #934 from ab5tract/ab5tract/sym-diff-bag-mix
rakudo/nom:
rakudo/nom: Fix bag/mix (^) without affecting set
ast: bc86bee | ab5tract++ | S03-operators/ (2 files):
Re-introduce the fixes for bag/mix symdif (#187)

  * Re-introduce the fixes for bag/mix symdif
This time, we don't change any of the set tests.
All of the 'showkv' calls were removed as they are no longer necessary and several new tests to ensure symmetric behavior on (+) and (.) operators.
  * Move away from showkv, add tests for empty bags and sets
23:23