[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 1Actually 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 1Actually 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::ClassHOWTrue» | ||
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 1Actually 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 |