[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]» |