»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
samcv i think they just need to bump the version number for the changes to take effect? 00:00
idk they bumped it to 5.0.0 23 hours ago
00:01 grondilu_ left 00:13 lukaramu left 00:18 Jesmaybe joined
AlexDaniel notviki: did anybody answer your bash question? 00:20
notviki Yeah, folks in #bash :)
AlexDaniel ohhh, #bash… one of the greatest channels ever
geekosaur hm, did I miss a question? 00:22
notviki it was like 8 hours ago
geekosaur ok, yeh, wasn't awake yet :p 00:23
00:23 dataf3l left 00:27 ufobat left 00:29 dataf3l joined, bjz joined 00:31 wamba joined 00:40 AlexDaniel left
RabidGravy I need to blog more about Perl 6, except for the advent stuff I made on in 2015 00:41
one
00:42 aborazmeh joined, aborazmeh left, aborazmeh joined 00:44 mr_ron left 00:49 Jesmaybe left, Rawriful left, Jesmaybe joined 00:53 pmurias left 00:55 Tonik left 01:01 RabidGravy left, dataf3l left 01:28 Jesmaybe left 01:30 Jesmaybe joined, Jesmaybe left 01:33 BenGoldberg left 01:36 BenGoldberg joined 01:40 newbie1 left 01:42 BenGoldberg left 01:45 BenGoldberg joined 01:46 wamba left 01:48 dantia left 02:16 bjz left
dalek c: 72a5d92 | (Zoffix Znet)++ | doc/Type/Date.pod6:
Document infix:<-> and infix:<+> for Date
02:20
synopsebot6 Link: doc.perl6.org/type/Date
02:29 Actualeyes left 02:48 kalkin- joined 02:49 bjz joined 02:52 kalkin-_ left 02:53 killbill left 03:00 bjz left 03:04 bjz joined
dalek c: 5421c04 | (Zoffix Znet)++ | doc/Type/DateTime.pod6:
Document infix +/- on DateTime/Duration

Discussion: irclog.perlgeek.de/perl6/2016-12-22#i_13786280 Implemented in github.com/rakudo/rakudo/commit/6b850babd5 Tests: github.com/perl6/roast/commit/2188e7ef52
03:06
synopsebot6 Link: doc.perl6.org/type/DateTime
03:20 xtreak joined, floutenvy joined 03:45 floutenvy left
titsuki_ m: my @a = 1,2; say @a =:= @a.item; 03:48
camelia rakudo-moar a9272b: OUTPUT«False␤»
titsuki_ bisect: my @a = 1,2; say @a =:= @a.item;
bisectable6 titsuki_, On both starting points (old=2015.12 new=a9272bf) the exit code is 0 and the output is identical as well
titsuki_, Output on both points: False
03:51 floutenvy joined
titsuki_ bisect: my @a = 1,2; say @a.WHERE === @a.item.WHERE; 03:53
bisectable6 titsuki_, On both starting points (old=2015.12 new=a9272bf) the exit code is 0 and the output is identical as well
titsuki_, Output on both points: True
03:54 floutenvy left 03:55 noganex joined 03:57 bjz left 03:58 noganex_ left
samcv i should try and get my XCompose file highlighter into github hah. They might accept it probably. since there's SO many on github. and they usually look at how many repositories with different people before accepting new languages 03:58
04:02 dantia joined
samcv unless it's “Not a language” 04:04
04:25 cibs left 04:27 cibs joined 04:28 bjz joined 04:37 kurahaupo left 04:39 xtreak left
moritz uhm, do we have an advent post for today? 04:40
04:41 xtreak joined
moritz ab6tract? 04:41
04:51 khw left 04:57 madjestic left 05:02 bjz left 05:16 Cabanossi left 05:17 pyrimidine left 05:18 Cabanossi joined 05:31 pyrimidine joined 05:36 pyrimidine left, BenGoldberg left 05:41 Actualeyes joined 05:51 xtreak left, aborazmeh left 05:52 xtreak joined 05:58 Vynce joined 06:07 itcharlie_linux joined 06:18 pyrimidine joined 06:22 pyrimidine left 06:26 Vynce left 07:01 skids left 07:02 bjz joined 07:07 darutoko joined 07:12 susmus left 07:13 kaare_ left 07:14 susmus joined, quietfanatic left 07:16 bluebell_ joined, kaare_ joined 07:23 teksteiner joined 07:43 CIAvash joined 07:47 djbkd left 07:50 susmus_ joined 07:54 susmus left 08:01 domidumont joined 08:06 domidumont left, domidumont joined 08:11 bjz left 08:13 domidumont left 08:14 domidumont joined 08:15 labster left 08:16 xtreak left 08:17 labster joined 08:19 xtreak joined, pyrimidine joined 08:24 pyrimidine left 08:27 xtreak left 08:29 xtreak joined 08:37 pyrimidine joined 08:38 bjz joined 08:39 pyrimidi_ joined, pyrimidine left 08:41 bjz left 08:43 pyrimidi_ left 08:45 toolforger joined, xtreak left 08:49 aries_liuxueyang left 08:55 wamba joined 08:58 rindolf joined
lizmat I was under the impression Zoffix was on today ? 09:00
ah, no, ab5tract
or ab6tract
09:03 pierre_ joined
lizmat paging ab6tract 09:08
09:08 bluebell_ left
TEttinger advent intervention 09:09
lizmat starts whipping up a plan B
TEttinger Emoji, Perl 6, and You! 09:13
lizmat :-)
samcv emoji?
M-Illandan will TimToady be writing day24 of advent calendar? 09:14
lizmat: Please do write an emoji filled perl6 post! At least, we can claim an emoji language for ourselves :-) 09:15
samcv lol.
lizmat I don't think he planned for this year's 24th
samcv i sometimes use the 🐧 emoji for my heredocs
M-Illandan speaking of emojis, I don't know if this will be tolerable 09:16
www.youtube.com/watch?v=4yZERI42eR...e=youtu.be
samcv oh god
lizmat .u 🐧
yoleaux U+1F427 PENGUIN [So] (🐧)
samcv that looks terrible M-Illandan
like really horrible 09:17
M-Illandan yeah, I know. Kids, these days....
samcv hmm will see if linguist accepts my PR for the XCompose highlighter I made github.com/github/linguist/pull/3402
everything is better with colors!
though it's not really a language there's 39k xcompose files on github 09:18
TEttinger I mean, man there's some unusual special combos emojipedia.org/men-with-bunny-ears-...ng-type-5/ 09:23
samcv well TEttinger the gendered/skincolored are just sequences though 09:25
color + gender unicode codepoints + whatever
so basically you can have whatever you want
TEttinger bunny ears partying isn't unusual enough?
samcv well... that unicode has listed as ZWJ sequences
which is basically just a set of ones that it's possible to set gender or skin color etc
true 09:26
09:26 kaare_ left
samcv how do we know they're parting though 09:26
TEttinger I'm just waiting on full CIELAB color being represented in Unicode
samcv cielab?
TEttinger complex color encoding scheme that can store white and brighter than white (i.e. the sun) as different colors 09:27
samcv TEttinger, unicode.org/emoji/charts/emoji-zwj-...ences.html
here are all your zwj sequences !
so those PLUS the skin tones 09:28
not all of them show different ones in the list for skin tone
full list here: www.unicode.org/Public/emoji/4.0//e...uences.txt
and then even more in the not yet fully complete 5.0 www.unicode.org/Public/emoji/5.0//e...uences.txt 09:29
TEttinger I wonder if you can change hair color independently of skin color
samcv no
that does not exist
yet
^
09:30 pierre_ left
TEttinger full paper doll system in your I18N code 09:30
samcv i mean there's plenty in that list they don't denote as having skin color allowed, but easily will probably have that added sometime
paper?
TEttinger paper doll is a way of laying out images over each other to make a composite image from several component parts, like pieces of paper IRL or images on a computer 09:31
samcv i'm not sure if any other unicode properties are de jure applied to multiple codepoints that aren't derived 09:32
ah
TEttinger many older Flash games used it to avoid storing an image per character per animation per frame
samcv oh lizmat i hear you reply to RT with email
lizmat samcv: yeah, it's easier as I've given up on trying to log into RT 09:33
samcv it's slow though
right
well it finally added my email. at least it wasn't there for at least 30 mins
can we change the topic to say Unicode is our friend instead of UTF-8? since UTF-8 is just the encoding algorithm. unless it's refering to peoples IRC being set in UTF-8 09:36
toolforger +1 09:37
09:37 RabidGravy joined
timotimo AFAIK it's the latter 09:38
though by now it's probably a bit archaic
samcv yeah
timotimo i don't think people actually still run around with irc clients set to latin1 or something
samcv plus if we say Unicode people will know what we mean though
or UTF-16 :P
if that EVER was a thing.
09:38 wamba left
samcv if it's Unicode it could mean for both 09:38
timotimo i'm not sure about utf-16, but i believe ucs-16 is widespread in CJK territories? 09:41
09:41 xtreak joined
timotimo could be utf-16, though 09:42
09:42 domidumont left 09:43 Vynce joined
TEttinger timotimo: UCS-16 wouldn't make too much sense though for CJK would it? since a lot of characters that are uncommon in Chinese are outside the BMP 09:43
samcv timotimo, what do you think about using Ubuntu 14.04 and GCC 6 for travis? github.com/rakudo/rakudo/pull/970 09:44
timotimo you are right, TEttinger
timotimo needs still to wake up
samcv: well, if we stick with an older version in our continuous integration, we can easily tell when we accidentally require something newer 09:45
samcv i guess that's true. hm
though. i was more wanting too see if the flapping tests would stop
timotimo if it's noticably faster, that'd be nice
samcv if we upgraded
toolforger UTF-16 is what Java does (sort of)
samcv some nativelib thingy
is flapping 09:46
internally at least
timotimo that could be a legit problem, though
samcv yeah. or not?
TEttinger I'm still surprised at some of the places UTF-16 is used. I think Java and .NET use UTF-16 now and not UCS-16, and LocalStorage in the browser can only store text (always as UTF-16, which seems wasteful considering that a lot of saved info is Base64 encoded, which is optimal for UTF-8 but awful for -16)
samcv i just wanted to see if the test stopped flapping randomly
and we can put it back if no change
toolforger Ah. See the first answer on stackoverflow.com/questions/675651/...fault-mean for the real answer 09:47
samcv internally they use it i believe
toolforger Exactly
.net stores UTF-16 externally if you don't specify an encoding, which is a misfeature in my book 09:48
Java forces you to select an encoding, and everybody and their cat use UTF-8
I.e. Perl code will see UTF-16 only when reading files written by cowboy-coded .net applications 09:49
samcv it's mostly irrelevant except for internals though
"I am looking at StreamWriter right now in reflector and I am certain I can see that the default is actaully UTF8NoBOM."
i see this though
09:49 liz joined
toolforger Well, even stackoverflow can be wrong :-) 09:49
samcv true 09:50
09:50 ufobat joined, liz is now known as Guest14192
samcv but it should mostly not matter the internal representation of the codepoints tbh 09:50
timotimo TEttinger: that's an interesting insight
there used to be a time when people would recoil in horror at the word "stackoverflow" 09:51
toolforger news.ycombinator.com/item?id=3906590 says that Javascript is UTF-16 by default
and a few more things
timotimo btw, moarvm represents codepoints as 32bit signed integers internally :P
toolforger *signed*? Now that's messed up
timotimo it's not messed up
negative codepoints are our synthetic graphemes 09:52
it's how we make O(1) access to graphemes possible
i.e. if unicode didn't define ü as a single codepoint, moar would assign a negative number for you
samcv ugh i was going to try to get to the 1/2 point of our test coverage for unicode properties. 09:53
samcv finishes the last 8 to get to ~68
TEttinger nice, timotimo
samcv nice 09:54
timotimo i didn't realize there's so many properties :o
samcv yes
toolforger How do you encode CJK like U+24f5c then? Wikipedia claims that its UTF-16 representation is 11011000_01010011 11011111_01011100, that's two negative numbers
samcv like 136?
i'm up to 53/124
timotimo toolforger: "encode"?
samcv see this crazy list timotimo github.com/perl6/roast/issues/195
lizmat bots:
toolforger s/encode/represent/ 09:55
samcv toolforger, uhm are you uh
you use
forget the name. but there's special codepoints
timotimo m: say chr(0x24f5c)
camelia rakudo-moar a9272b: OUTPUT«𤽜␤»
timotimo radical stroke? o_O
samcv for getting more than the number allowed in a 16-bit int
TEttinger timotimo mentioned 32-bit instead of 16-bit 09:56
timotimo samcv: surrogates
samcv yes!
timotimo the worst thing ever :)
samcv pretty much
toolforger true
timotimo json prescribes the use of surrogates even though it's specified utf8-encoded
samcv what
toolforger oO
timotimo needless to say JSON::Fast doesn't do that ... or at least it has no specific thing to make it happen
samcv the hell?
timotimo yes, it's true. yes, it's absolutely horrifying. 09:57
samcv well unicode has grapheme tests that hase surrogate
but it's supposed to be encoding agnostic but
moarvm doesn't let you encode that codepoint because... reasons
timotimo To escape a code point that is not in the Basic Multilingual Plane, the character is represented as a twelve-character sequence, encoding the UTF-16 surrogate pair. So for example, a string containing only the G clef character (U+1D11E) may be represented as "\uD834\uDD1E".
samcv so i wasn't able to use those tests :(
eww
that's the grossest thing i've ever seen 09:58
but json doesn't allow \u higher than 0 chars long right
that was my impression
s/0/4
timotimo One of the key architectural features of JSON is that JSON-encoded objects are valid Javascript literals that can be evaluated using the eval function, for example. Unfortunately, older Javascript implementations only support 16-bit Unicode escape sequences with four hex characters in string literals, so there's no other way than to use UTF-16 surrogates in escape sequences for code points above 0xFFFF in a
portable way. (The \u{...} syntax that allows arbitrary code points was only introduced in ECMAScript 6.)
yes
toolforger still gross, but now at least understandable 09:59
timotimo this same stackoverflow post seems to say that you only have to use those surrogates if you want \u stuff
moritz which is why JSON supports surrogate pairs
timotimo But as you mentioned, there's no need to use escape sequences if your application supports Unicode JSON text. Simply encode the characters directly in the respective Unicode format.
moritz hey, UTF-16, here I'm coming!
timotimo in any case, the to-json stuff in JSON::Fast has no mechanism to generate \u sequences (that i know of)
toolforger Downside of UTF-16 is that it encodes differently than 7-bit ASCII 10:00
timotimo yeah, but nobody noticed because Bush Hid The Facts
toolforger every other byte is a null byte, which messes up pretty much software to boot
timotimo so we get to have wchar_t, hooray! 10:01
toolforger argh
timotimo did you know that moar can hold null bytes in strings without issue?
toolforger finally 10:02
Java can, too :-)
so this particular craziness is timing out eventually
totally different topic: There was that guy who was trying to get debug info like line numbers into the JVM backend; I now have time to help with that, does anybody know his name or some keywords to google the IRC log for? (I used the wrong search keywords.) 10:04
timotimo perhaps it was MasterDuke? 10:07
irclog.perlgeek.de/perl6-dev/2016-...i_13604824 - incriminating evidence 10:08
samcv timotimo, if moar couldn't hold null bytes in strings I would be sad
timotimo there's plenty of reasons for sadness still left 10:09
toolforger Mmm... what's masterduke's github name? 10:10
Ah. I think I got it - MasterDuke17 seems to be the one 10:11
timotimo yup, can be found in CREDITS
toolforger github.com/MasterDuke17/nqp/tree/s...ers_on_jvm looks like the right one
timotimo time for christmas day breakfast 10:12
have a good one!
toolforger gtg too, rl interrupt - have a nice christmas day everyone! 10:13
samcv you too!
toolforger :-)
10:14 toolforger left
timotimo i mean 10:14
happy holidays!
timotimo fights in the war on christmas
raah! raah! raah!
timotimo throws christmas balls
o/
lizmat PSA: I've written a blog post that can be used for today's Advent calendar slot
those of you with access, please let me know of any comments / suggestions 10:15
I will publish this in 45 minutes unless ab6tract appears and posts his planned advent post
moritz preview URL is perl6advent.wordpress.com/?p=6446&...eview=true #savedyouaclick 10:19
10:22 pmurias joined
moritz lizmat: reading it now; re stealing from perl, one might mention that yesterday python 3.6 was released, which has string interpolation and underscores in number literals :-) 10:22
lizmat moritz: thanks, couldn't find it
moritz: do you have a link for that ?
moritz lizmat: docs.python.org/3.6/whatsnew/3.6.html 10:24
lizmat: I like the post. As a small improvement, please change the category from "Uncategorized" to 2016
lizmat moritz: will do 10:25
M-Illandan moritz: do I have to be logged in to preview that post? 10:30
10:33 pyrimidine joined 10:34 user100500 joined
samcv wait python didn't have string interpolation moritz 10:35
yes M-Illandan 10:36
M-Illandan samcv: Nope, didn't work
10:37 pyrimidine left 10:38 Vasyl left
moritz samcv: no, it didn't 10:38
samcv woah
insane
10:39 Vasyl joined
samcv what did you do then? perl 5 it and concat everything? 10:39
moritz it has now about 4 or 5 different ways to format string
samcv TIMTWTDI and all of them suck?
moritz "%d %s" % (20, 'pounds')
samcv so sprintf basically
moritz that's "old style"
samcv gross
i mean unless like. that's what you actually want 10:40
moritz new style is "{} {name}".format(40, name='pounds')
samcv what. is that interpolation
moritz no
samcv or just sprintf with different syntax
moritz that's a method call
samcv yes i see that
how do you interpolate in strings now
moritz *now* with 3.6 you can do currency = 'pounds';; f"20 {pounds}" 10:41
samcv oh i found it
print(f"Who lives in a Pineapple under the sea? {name}.")
'f' strings
moritz *now* with 3.6 you can do currency = 'pounds';; f"20 {pounds:20s}"
samcv still lame
moritz and iirc there's a fourth way to do string formatting too, but I forgot what it was
and "there should be preferrably one (and only one) obvious way to do things", oh my, the hypocracy 10:42
M-Illandan I know the f"blah" and (format strings) % (arguments) stuff
moritz I kinda link python as a language, but the community can be aggreviating 10:43
M-Illandan AFAIK, python has had the format strings stuff even as far back as python 2.4
moritz s/link/like/
M-Illandan Doesn't matter - what am I doing here talking about python?
moritz good question :-)
10:44 Guest14192 left
M-Illandan moritz: continuing your thread of conversation, you can see all the 4 ways here - stackoverflow.com/a/4450610 10:45
lizmat paging ab6tract
M-Illandan Looks like I have seen them all, but somehow forgot. Nah, I don't do python all that regularly.
moritz a, string.Template 10:46
lizmat: just go ahead and publish
it's been more than 12 hours since the desired publishing time
samcv also % for string operator is weird
10:46 revere left 10:47 revere joined, xtreak left
lizmat moritz: doing final touches now 10:49
10:49 xtreak joined
lizmat perl6advent.wordpress.com/2016/12/...e-year-on/ # last post 10:52
RabidGravy yaay lizmat++
M-Illandan lizmat++
moritz lizmat++
M-Illandan I kind of expected that title :-) 10:53
10:54 revere left, revere joined 10:57 mr-foobar joined 10:58 floutenvy joined
samcv hahah Those who don’t know Perl are doomed to re-implement it, poorly. 10:59
great
M-Illandan lizmat: The post is great, but this is a bit jarring to me: " Which, to me, is why so much got stolen from Perl." Perhaps reword that a bit? 11:02
11:02 xtreak left
M-Illandan Something about idea transfer, cross pollination? :-) 11:03
moritz right, not everybody might be of the mindset that idea "stealing" is good
M-Illandan Especially, not in a festive post
11:03 TEttinger left
dalek on: 4b5bff1 | moritz++ | / (2 files):
Allow U+0085 NEXT LINE in string literals

JSON::Tiny was forbidding \n, should have only forbidden LINE FEED
11:04
samcv it reads fine to me, but i could could be changed
11:06 user100500 left
samcv or maybe change it to “borrowing” in quotation marks or something 11:06
11:07 floutenvy left 11:09 pierre_ joined
lizmat s/stolen/borrowed/ samcv++ 11:09
11:09 Vynce left
lizmat putting it in quotation marks could be interpreted negatively as well 11:10
M-Illandan++ # jarring me :-)
samcv not as negative as stolen i guess
but yeah
taking could also work 11:11
lizmat how about adding the line: "Even the borrowing they borrowed from Perl" :-) 11:12
huf "inspired" is even less engative
samcv they borrowed borrowing?
11:12 ufobat left
lizmat yes, because Perl borrowed quite a lot herself :-) 11:12
from awk and sed to name but twp 11:13
*two
huf perl as the vehicle for idea distribution
M-Illandan lizmat: If you're open to more changes, a bit of a grammar change - we usually don't say "so much got borrowed from Perl", but "so many ideas were borrowed from Perl". The implementation was not borrowed, but ideas were
samcv borrowing
replevin
pledging
borrowed plumes
plagiarism (thieving)
here are some synonyms thesarus says to borrowing. lol
huf replevin?!
well.
M-Illandan replevin? That's a legal term 11:14
11:14 Vasyl left
lizmat thinking about "inspired by Perl": I think that would put Perl on a pedestal too much 11:14
11:14 Vasyl joined
samcv imitate, take up money, adopt, apply, take, fly a kite rent, take by the hour, borrow from Peter to pay Paul 11:15
imitate might work too
M-Illandan lizmat: nothing wrong with that, actually. Even Matz (Ruby's creator) publicly credits Perl for his creation
samcv borrow from Peter to pay Paul. hmm. curious
thesauri are weird 11:16
lizmat M-Illandan: rephrased as "Which, to me, is why so many ideas were borrowed from Perl. And still are!"
M-Illandan samcv: More than thesaurus and dictionaries, English is weird
lizmat: perfect!
samcv and that the plural of thesaurus is thesauri?
very good lizmat
M-Illandan shrug 11:17
I don't have a dictionary or thesaurus
lizmat is afk for some shopping, back in about 15
samcv that's some fast shopping
M-Illandan errand shopping is quick.
Festival shopping, blech! 11:18
M-Illandan is too chatty today. Will go back to lurking
11:22 AlexDaniel joined
samcv how do i build the JVM backend 11:22
without getting java.lang.RuntimeException: Class file too large!
11:23 bjz joined
pmurias samcv: I get the same error :/ 11:25
samcv your class is too big
need to separate into smaller classes
but you probably knew that. ? 11:26
11:26 Vasyl left
RabidGravy did "Pair ~~ Associative" become a thing recently or has it always been like that 11:26
samcv u: ⸮ 11:27
unicodable6 samcv, U+2E2E REVERSED QUESTION MARK [Po] (⸮)
11:27 Vasyl joined
samcv cool i have that on my xcompose already :D apparently it's used for rhetorical questions 11:28
is perl 6 the best language ever⸮
AlexDaniel ¿¡? … what's the right combination 11:30
samcv for what?
on mine it's ? + <
AlexDaniel
right 11:31
samcv oh < backspace
s/oh/or
11:32 labster left
AlexDaniel ¿⸮? is there a character for the missing one? 11:32
u: question mark
unicodable6 AlexDaniel, U+003F QUESTION MARK [Po] (?)
AlexDaniel, U+00BF INVERTED QUESTION MARK [Po] (¿)
AlexDaniel, U+037E GREEK QUESTION MARK [Po] (;)
AlexDaniel, gist.github.com/f868c8113ba2711fa5...755a407162
AlexDaniel no
samcv what greek question mark looks like a ; semicolon 11:33
u: { .uniprop('Question_Mark') }
unicodable6 samcv, Found nothing!
samcv err maybe that's not a praperty 11:34
should be
lizmat it was just some shopping for some strawberries, blueberries, bananas at the greengrocers across the street :-)
samcv whatever this is close enough
u: { .uniprop('Sentence_Break') }
unicodable6 samcv, U+0000 NULL [Cc] (control character)
samcv, U+0001 START OF HEADING [Cc] (control character)
samcv, U+0002 START OF TEXT [Cc] (control character)
lizmat m: say (a => 42)<a>
camelia rakudo-moar 742d1b: OUTPUT«42␤»
samcv come on unicodable6 :( 11:35
lizmat RabidGravy: pretty sure you have always been able to consider a Pair a Hash with one key
m: say (a => 42)<b>
camelia rakudo-moar 742d1b: OUTPUT«(Mu)␤»
samcv m: '.'.uniprop('Sentence_Break').say
camelia rakudo-moar 742d1b: OUTPUT«ATerm␤»
samcv u: { .uniprop-bool('Sentence_Break') }
RabidGravy yeah, I think I've just something else in this code that it just falls back to that one, and gets in an awful tizz
AlexDaniel samcv: there are probably too many for it to handle 11:36
samcv :\
u: a
unicodable6 samcv, U+000A LINE FEED (LF) [Cc] (control character)
samcv, U+0009 CHARACTER TABULATION [Cc] (control character)
samcv, U+000B LINE TABULATION [Cc] (control character)
samcv ok it's not dead
AlexDaniel it's still trying to gist it, I'm pretty sure
samcv we will find out eventually
11:37 CIAvash left
samcv there shouldn't be THAT many sentence_break for uniprop-bool but 11:37
sentence_break with just plain uniprop will return ALL things
since things that aren't sentence reak return some textual thingy
unicodable6 samcv, U+0002 START OF TEXT [Cc] (control character)
samcv, U+0001 START OF HEADING [Cc] (control character)
samcv, U+0004 END OF TRANSMISSION [Cc] (control character)
samcv m: 'a'.uniprop('Sentence_Break').say
camelia rakudo-moar 742d1b: OUTPUT«Lower␤»
samcv m: 'a'.uniprop-bool('Sentence_Break').say 11:38
camelia rakudo-moar 742d1b: OUTPUT«True␤»
samcv oh. or maybe not
dammit
AlexDaniel oh, you also did :u a… which will, yes, return all unicode characters with a
samcv: by the way, did your changes to json module go through?
samcv yes
:D
AlexDaniel samcv: so, is .trans faster than several .subst ? 11:39
samcv probably but it's still 2.8x faster than before
11:39 pyrimidine joined
samcv with trans and strings not regex 11:39
also if it just did trans i'm not sure what would happen in some cases hmm
AlexDaniel which cases?
samcv m: Q<\\␤>.trans([Q<\>] => Q<\\>, "\n" => Q<\n>).say 11:40
camelia rakudo-moar 742d1b: OUTPUT«\\\␤»
AlexDaniel samcv: ok it finished. At some point it failed with “Input (902693 characters) is not a valid JSON string”
samcv yeah
AlexDaniel unicodable6: help
unicodable6 AlexDaniel, Just type any unicode character or part of a character name. Alternatively, you can also provide a code snippet or a regex
samcv see that
it did not work 11:41
AlexDaniel u: { .uniname ~~ /«[BLUE|GREEN|RED|YELLOW|BLACK|WHITE|PURPLE]»/ }
unicodable6 AlexDaniel, U+204C BLACK LEFTWARDS BULLET [Po] (⁌)
AlexDaniel, U+210C BLACK-LETTER CAPITAL H [Lu] (ℌ)
AlexDaniel, U+204D BLACK RIGHTWARDS BULLET [Po] (⁍)
AlexDaniel, gist.github.com/ccdc6cfa4e6dd2c69f...1646c8f377
samcv m: Q<\␤>.trans([Q<\>] => Q<\\>, "\n" => Q<\n>).say
camelia rakudo-moar 742d1b: OUTPUT«\\␤»
samcv m: Q<\␤>.trans([Q<\>] => Q<\\>, ["\n"] => Q<\n>).say
camelia rakudo-moar 742d1b: OUTPUT«\\␤»
samcv oh wait
11:41 Vasyl left
AlexDaniel u: { .uniname ~~ /«[BLUE|GREEN|RED|YELLOW|PURPLE]»/ } 11:41
samcv m: Q<\␤>.trans([Q<\>] => Q<\\>, ["\n"] => Q<\n>).print
camelia rakudo-moar 742d1b: OUTPUT«\\»
unicodable6 AlexDaniel, U+2ED8 CJK RADICAL BLUE [So] (⻘)
AlexDaniel, U+2EE9 CJK RADICAL SIMPLIFIED YELLOW [So] (⻩)
AlexDaniel, U+2F9A KANGXI RADICAL RED [So] (⾚)
AlexDaniel, gist.github.com/32ec4505763a572be6...8210dcb915
samcv m: Q<\␤>.trans( ["\n"] => Q<\n>).print
camelia rakudo-moar 742d1b: OUTPUT«\\»
ab6tract lizmat: i see you wrote a post for today
samcv uhm
m: "\\\n".trans( ["\n"] => Q<\n>).print 11:42
camelia rakudo-moar 742d1b: OUTPUT«\\»
lizmat ab6tract: yes, because there wasn't any
samcv wtf
ab6tract sorry for running late. i did speak to zoffix yesterday who indicated that it would be ok to post it today
samcv why isn't this working
lizmat well, noon would have been late already
11:42 floutenvy joined
samcv m: (Q<\> ~"\n").trans( ["\n"] => Q<\n>).print 11:42
camelia rakudo-moar 742d1b: OUTPUT«\\»
samcv T_T
ab6tract lizmat: from a european perspective, maybe
anyway, i joined the chat and asked, got a response that it would be fine 11:43
lizmat ab6tract: ok, well I guess we can haz two today :-)
samcv :D
please post!
lizmat ab6tract: sorry, but nobody online this morning knew about it
ab6tract lizmat: no worries 11:44
lizmat and there was no draft in the system either
11:44 pyrimidine left
ab6tract in fact it actually takes some weight off my shoulders 11:44
lizmat but please, make it snow :-)
ab6tract just wanted to clear up that it wasn't my plan for the sun to set without a post
lizmat ok: miscommunication is the root of all evil :)
ab6tract :)
11:45 floutenvy left
lizmat I just want to make clear that I didn't want to usurp your post 11:45
or maybe we just need to break tradition ands have a post on the 25th ?
samcv m: (Q<\> ~"\n").trans( Q<\> => [Q<\\>], ["\n"] => ['\n']).print 11:46
camelia rakudo-moar 742d1b: OUTPUT«\\\n»
samcv oh this works
AlexDaniel m: say (「\」 ~ “\n”).trans([“\n”, 「\」] => [‘\n’, 「\\」])
camelia rakudo-moar 742d1b: OUTPUT«\\\n␤»
samcv m: for ^10000 { (Q<\> ~"\n").trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) }
camelia ( no output )
samcv m: for ^10000 { (Q<\> ~"\n").trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) }; say now - INIT now
camelia rakudo-moar 742d1b: OUTPUT«2.582949␤»
AlexDaniel samcv: the text is too small to show any meaningful difference 11:47
samcv m: for ^10000 { (Q<\> ~"\n").subst(Q<\>, Q<\\>).subst("\n", '\n') }; say now - INIT now
camelia rakudo-moar 742d1b: OUTPUT«4.1198321␤»
AlexDaniel … and still…
samcv is it though
:P 11:48
AlexDaniel eval: for ^10000 { slurp().trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) }; say now - INIT now
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«0.80084660»
AlexDaniel eval: for ^10000 { slurp().trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) }; say now - INIT now
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«0.7967286»
AlexDaniel eval: for ^10000 { slurp().subst(Q<\>, Q<\\>).subst("\n", '\n') }; say now - INIT now
11:48 pierre_ left
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«3.10224563» 11:48
AlexDaniel eval: for ^10000 { slurp().subst(Q<\>, Q<\\>).subst("\n", '\n') }; say now - INIT now
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«3.12681158»
AlexDaniel WHY??????
samcv why which
AlexDaniel how can it possibly be so much slower??
samcv subst?
AlexDaniel yes 11:49
samcv it runs twice
instead of once
AlexDaniel but it is 4 times slower
samcv it does 2x as many things 2x
samcv prepares another pull for JSON::Fast 11:50
11:50 Vasyl joined
AlexDaniel evalable6: stdin ocw.mit.edu/ans7870/6/6.006/s08/le...speare.txt 11:51
this is probably a bit too big… 11:52
evalable6 AlexDaniel, Successfully fetched the code from the provided URL.
AlexDaniel eval: say stdin().chars 11:53
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«(exit code 1) 04===SORRY!04=== Error while compiling /tmp/aW22puBQba␤Undeclared routine:␤ stdin used at line 1␤»
AlexDaniel eval: say stdout().chars
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«(exit code 1) 04===SORRY!04=== Error while compiling /tmp/pqVwoGTKrX␤Undeclared routine:␤ stdout used at line 1␤»
11:53 FROGGS joined
evalable6 AlexDaniel, gist.github.com/16fba71e9e51afe408...4808b34aac 11:53
AlexDaniel eval: say slurp().chars
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«219264»
AlexDaniel eval: for ^10000 { slurp().trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) }; say now - INIT now
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«0.9461154»
11:54 wamba joined
AlexDaniel eval: for ^10000 { slurp().subst(Q<\>, Q<\\>).subst("\n", '\n') }; say now - INIT now 11:54
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«3.4399082»
AlexDaniel samcv: seems like the amount of text doesn't matter as much 11:55
bench: compare HEAD slurp().trans( Q<\> => [Q<\\>], ["\n"] => ['\n']) ||| slurp().subst(Q<\>, Q<\\>).subst("\n", '\n') 11:56
benchable6 AlexDaniel, starting to benchmark the 1 given commit
AlexDaniel, gist.github.com/5cc7a488d26c1f21b2...20e70ef3c4
AlexDaniel eval: say slurp().subst(Q<\>, Q<\\>).subst("\n", '\n').substr(0, 50) 11:58
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«This is the 100th Etext file presented by Project »
AlexDaniel eval: say slurp().trans( Q<\> => [Q<\\>], ["\n"] => ['\n']).substr(0, 50)
evalable6 AlexDaniel, rakudo-moar 742d1b9: OUTPUT«This is the 100th Etext file presented by Project »
samcv AlexDaniel, well the amount of text matters, just not that much how much you break it up 11:59
total characters matters more
compared to chars per iteration
AlexDaniel riight 12:00
samcv uhm tr is slower somehow 12:03
wtf
err trans 12:04
1.8 vs 5.7 seconds
HOW 12:05
AlexDaniel samcv: are you sure? 12:06
samcv yes
let me double double check 12:07
AlexDaniel perhaps it's other way round, right? :)) 12:08
12:10 pierre_ joined
samcv ack had to kill X 12:10
moar ate all my ram
timotimo sorry about that :S
samcv 4000 × 100000 byte string 12:13
is too long apparently
timotimo er, yeah
samcv still shouldn't eat all my ram tho
timotimo yeah, should have just given the typical error message instead
"can't allocate a gigazillion bytes"
samcv what error why tho
timotimo because malloc be like "hell naw" 12:14
samcv m: say 100000 * 4000
camelia rakudo-moar 742d1b: OUTPUT«400000000␤»
samcv m: say (100000 * 4000 )/1000
camelia rakudo-moar 742d1b: OUTPUT«400000␤»
samcv m: say (100000 * 4000 )/1000000
camelia rakudo-moar 742d1b: OUTPUT«400␤»
timotimo times 4 again because 32bit per character
samcv that's 400MB string?
yeah
i have that much ram though 12:15
oh well. it's very big
timotimo thing is, when we change things, we may have multiple copies in memory
we also try to express strings as "this string, but only chars n to x"
samcv just gonna have to do 10000 x 4000 byte string
which is 10x smaller
which it json converts in 5.5 seconds
err prolly less 12:16
err yeah. that
err yeahhh this is slowwwww 12:17
and i'ts probably working on all my ram now
it's at 20% of 16GB already
tr is like 10x slower 12:19
for a 4MB string 12:20
even for a 400kb string 12:21
12:22 wamba left 12:26 zakharyas joined, grondilu left, mr-foobar left
samcv pmurias, when did the JVM backend for rakudo break? 12:29
u: { .uniprop('STerm') } 12:31
unicodable6 samcv, U+002E FULL STOP [Po] (.)
samcv, U+0021 EXCLAMATION MARK [Po] (!)
samcv, U+003F QUESTION MARK [Po] (?)
samcv, gist.github.com/e17359d4569657e5a3...81f03d5549
samcv this is what i was trying to find before. This is sentence terminators
12:38 toolforger joined
moritz u: *.uniprop('STerm') 12:38
unicodable6 moritz, U+002A ASTERISK [Po] (*)
moritz, U+002E FULL STOP [Po] (.)
moritz, U+0075 LATIN SMALL LETTER U [Ll] (u)
moritz, gist.github.com/4aa57ad20e01cb016a...785ab231bd
toolforger MasterDuke, are you there? I can try some debugging on your ArrayIndexOutOfBoundsException now. 12:40
12:41 pyrimidine joined 12:42 bjz left 12:43 Rawriful joined
samcv bisectable6, say so 0x0343.uniprop('Full_Composition_Exclusion') == 0x0343.chr.uniprop('Full_Composition_Exclusion') 12:47
bisectable6 samcv, On both starting points (old=2015.12 new=742d1b9) the exit code is 0 and the output is identical as well
samcv, Output on both points: False
samcv what. 12:48
h-how is that possible
toolforger computers... 12:49
"everything is possible on high seas, in court, and with computers" ;-)
12:50 bjz joined
samcv well... that's a normalization property 12:50
so it seems there is some normalization going on?
m: say 0x0343.chr.ord; say 0x0343
camelia rakudo-moar 742d1b: OUTPUT«787␤835␤»
samcv well then.
toolforger oO 12:51
samcv that is some normalization all right
u: 0x0343
unicodable6 samcv, Found nothing!
samcv u: U+0343
unicodable6 samcv, U+0343 COMBINING GREEK KORONIS [Mn] (◌̓)
toolforger I'd have expected to be .chr.ord be identity
samcv m: 0x0343.uniprop('Depreciated').say 12:52
camelia rakudo-moar 742d1b: OUTPUT«0␤»
samcv i spelled it wrong
m: 0x0343.uniprop('Depreciated').say
camelia rakudo-moar 742d1b: OUTPUT«0␤»
samcv or not
m: 0x0343.uniprop('Deprecated').say
camelia rakudo-moar 742d1b: OUTPUT«False␤»
samcv oh i did
lizmat
.oO( takes some appreciation :-)
12:53
m: 0x0343.uniprop<Deprecated>.say
camelia rakudo-moar 742d1b: OUTPUT«Type Str does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
lizmat wonder if a AT-KEY interface would make sense here 12:54
samcv i think that would be cool
would save typing
m: 0x0F43.uniprop('Full_Composition_Exclusion').say 12:56
camelia rakudo-moar 742d1b: OUTPUT«1␤»
samcv hmm that shouldn't return a 1
toolforger is uniprop on integers or on characters?
toolforger is confused
samcv both
characters get converted to codepoints (integers) 12:57
toolforger ah
samcv but making the codepoint a string, normalizes it how it should be in unicode
toolforger ah well
samcv which is what should happen
toolforger not really straightforward, but then Unicode is anything but straightforward
OTOH maybe characters should not be converted to strings in that case 12:58
samcv well you are passing it a string 12:59
if you pass an int, it does the int. if you pass a string. it gets the codepoint of the string, so if you put it through the normal string which does normalization
hmm
m: 0x0F43.uniprop('Full_Composition_Exclusion').say 13:00
camelia rakudo-moar 742d1b: OUTPUT«1␤»
samcv m: 0x0F43.str.uniprop('Full_Composition_Exclusion').say
camelia rakudo-moar 742d1b: OUTPUT«No such method 'str' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
13:00 MasterDukeLaptop joined
toolforger so characters aren't a separate data type in Perl6? 13:00
samcv how do i set a str object to specific codes. or i could remember how to make codepoints that won't get normalized :\
no
13:02 dayangkun joined
MasterDukeLaptop toolforger: you are interested in looking into that AIOOBE? 13:02
toolforger MasterDuke, yes
MasterDukeLaptop great
toolforger Just tell me how to reproduce it
toolforger hasn't tried yet
13:03 dayangkun left
MasterDukeLaptop well, i believe you'll have to use a slightly older nqp+rakudo since the JVM build is broken right now 13:04
toolforger I just cloned your repo
MasterDukeLaptop excellent
toolforger If that builds, I'll be fine
so I do perl Configure.pl --backends=jvm, right? 13:05
MasterDukeLaptop yeah
toolforger done, make is running 13:06
oh. it's complaining about a wrong bootstrap class path, that may or may not be a problem.
MasterDukeLaptop hm, don't think i've seen that before 13:07
do you have nqp-j built also?
samcv hits head on computer 13:08
ok added one line and now it's generating the last 2 unicode property value bool's
toolforger Not exactly sure about boostrap classpath issues, might be related to what JDK is installed
samcv forgot to print-line(:flush) for that :P function i wrote just to keep under 80 width
MasterDukeLaptop oh ha, the code i was working on is nqp 13:09
notviki .tell ab6tract well, I guess you can post yours for 25th, because why not, eh?
yoleaux notviki: I'll pass your message to ab6tract.
MasterDukeLaptop toolforger: pretty sure i've built with both jdk 7 and 8
notviki .tell ab6tract oh, never mind. read more of the backlog 13:10
yoleaux notviki: I'll pass your message to ab6tract.
toolforger MasterDukeLaptop I'll take a closer look at that, but it's essentially just a warning that the compile-time runtime the code is being checked against may not match the one it is going to be run against in the future 13:11
E.e. this happens if you have just OpenJDK 8 installed and the code is compiled with source=1.7
about nqp-j: that should be built with --backends=jvm afaik 13:12
13:12 lukaramu joined
MasterDukeLaptop ah, good to know. well the aioobe happens when you run perl6-j with --ll-exception 13:13
yeah, backends=jvm for both rakudo and nqp
toolforger oh. do I need to install perl6 for that, or is nqp enough?
notviki toolforger: actually .ord.chr is a method to test you ain't got a synthetic :) 13:14
toolforger so it's a bug, not a feature :-D
ab6tract notviki: just hit publish as a pt 2
yoleaux 13:09Z <notviki> ab6tract: well, I guess you can post yours for 25th, because why not, eh?
13:10Z <notviki> ab6tract: oh, never mind. read more of the backlog
ab6tract :)
notviki \o/
MasterDukeLaptop pretty sure perl6 is required. i would like to get nqp to support the line directives, but i don't believe it does right now
13:15 rburkholder joined
toolforger okay, I'll need a bit of handholding to install perl6 then 13:15
ab6tract usually TimToady does the honors on the 25th. are plans different this year?
toolforger hasn't used perl6 yet
13:15 pierre_ left 13:16 pierre_ joined
MasterDukeLaptop same perl Configure.pl --backends=jvm 13:16
toolforger Do I need to clone another repo for that? 13:17
notviki ab6tract: I don't see any posts on the 25th of previous years
MasterDukeLaptop but you might need to point its --prefix to wherever nqp installed to
13:17 pierre_ left
toolforger Ah, I never bothered to install nqp anywhere 13:18
MasterDukeLaptop did you do "make install"?
toolforger nope
been running nqp with explicit paths 13:19
good enough for the test runs I've been doing
maybe not good enough when having to interoperate with perl6, but not a real problem
MasterDukeLaptop think you need to, it will just put it in an 'install' directory right there in the source
toolforger knows how to do make install with options
ab6tract notviki: off by one error in my memory then ;)
MasterDukeLaptop and then i guess point your rakudo --prefix to e.g., ../nqp/install 13:20
samcv i have all mine in ~/perl6
toolforger I'll probably nqp, perl6, and install side-by-side 13:21
samcv --prefix"$HOME/perl6" for nqp moar and rakudo
timotimo i have a ~/perl6/install which is my --prefix
MasterDukeLaptop fwiw, i have moar, nqp, and rakudo all built with --prefix=<something>
toolforger samcv everything is in ~/Projects/$CURRENT_PROJECT/
so I can have multiple versions of perl6, nqp, or whatever
samcv that works
yeah 13:22
samcv needs to start keeping multiple versions
though it hasn't been much of an issue so far at least
toolforger Essentially I am doing a per-issue install :-)
lizmat goes afk for the rest of the day 13:23
toolforger easy if you don't actually use perl6 itself
MasterDukeLaptop i also have a system installed perl6 (using system package manager), frequently useful to compare against 13:24
toolforger sounds like a good setup 13:25
also, eating your own dog food is a good idea if you are involved in design decisions 13:26
MasterDukeLaptop well, back to explaining what wasn't working. so i was able to compile rakudo with my nqp branch, which adds custom ASM Attributes with file name + line number, to support line directives 13:29
toolforger ok
MasterDukeLaptop and if the rakudo class files was extracted from the jar, and in your CWD, everything worked fine 13:30
but that's obviously not a final solution, so i then tried to get it to read the class file from memory/the jar it was running from 13:31
and that where/when i get the aioobe
toolforger strange
the jvm shouldn't care about where a class originated from
unless the class somehow got misassociated with a package in the jar, or something 13:32
MasterDukeLaptop strange, yeah!
i definitely expected it to "just work"
toolforger the other bug in this case is that it's an aioob exception instead of something more instructive
so I suspect packaging errors in the jar, but that's just a wild guess, I have to dig deeper to say anything definitive 13:33
do I download and build your rakudo repo to get perl6?
(nqp build finished just now) 13:34
13:34 newbie1 joined
MasterDukeLaptop i don't *think* i had made any changes in rakudo 13:35
toolforger kk 13:36
afk for 10 minutes
pmurias samcv: no sure when the too large error appeared would have to bisect it, a method rename I did in nqp-j a while ago broke rakudo-j but that has been fixed 13:37
samcv hm
pmurias the "too large error" has happened in the past 13:38
13:42 RabidGravy left
toolforger oh. Configure.pl wants a moar installed to to --prefix 13:43
MasterDukeLaptop, would that be enough to reproduce the problem?
MasterDukeLaptop should be
toolforger ok, I'll be back once moar is installed 13:44
pmurias MasterDukeLaptop: does the HEAD rakudo jvm backend build for you?
MasterDukeLaptop that might be something to look into, i would think that using only --backends=jvm wouldn't moar
no
toolforger confirming: -backends=jvm does not install moar, I guess you need both 13:45
samcv almost time for bed. well. super time for bed 13:46
it's almost 6am
MasterDukeLaptop *wouldn't require moar
notviki just woke up 13:47
almost 9am :)
samcv goodnight all
pmurias goodnight
timotimo night samcv
notviki night
toolforger Configure.pl --install wants moar, so whatever
g'night samcv! 13:48
samcv ♥ all
13:49 ufobat joined 13:50 RabidGravy joined
MasterDukeLaptop toolforger: you'll probably have to git reset back to sometime around the november or october release for rakudo, HEAD doesn't build right now 13:50
13:55 bjz_ joined 13:56 bjz left 14:04 bjz_ left
toolforger Oh. rakudo wants another --gen-moar. 14:05
#silly
toolforger is probably doing it wrong, but if it works: whatever 14:06
MasterDukeLaptop hm, that might be worth filing a bug about, i would have assumed --backends=jvm wouldn't need moar at all
toolforger --install wants moar 14:07
maybe that's a good idea if the jvm version isn't yet considered stable enough to be guaranteed to work
MasterDukeLaptop true 14:08
14:08 pierre_ joined, pierre_ left, pierre_ joined, espadrine joined
MasterDukeLaptop pmurias: btw, in case it wasn't clear i was replying to you, rakudo HEAD dies in stage classfile with 'Class file too large' 14:11
toolforger Strange. the jvm build code retries compilations with some class-splitting mechanism if it hits a classfile-too-large problem on the first attempt
M-Illandan ab6tract: there's something wrong with your post. The link to OO::Monitors appears to point nowhere 14:12
.tell ab6tract there's something wrong with your post. The link to OO::Monitors appears to point nowhere 14:13
yoleaux M-Illandan: I'll pass your message to ab6tract.
14:15 espadrine left
toolforger not sure whether it's the retrying that fails, or the classfile split that is not successful enough 14:15
either would be plausible from what I saw in the jvm backend
M-Illandan toolforger: what's the generated class file size? It's probably dying from asm throwing that exception because the generated class file was larger than 64k 14:16
erm, the byte array was larger than 64k
toolforger I haven't tried building anything
just talking from what I gathered from code reading 14:17
Is it even writing the class file when it hits the limit?
timotimo it shouldn't 14:18
toolforger unfortunately asm is pretty bad at reporting the cause of size problems
M-Illandan perl6-jvm/nqp
no, it just outright throws that runtime exception 14:19
toolforger it doesn't even throw a specialized exception, so the driver has to inspect the text of the exception message
according to Java lore, that's Worst Practices
14:20 ufobat left
toolforger worth filing as a bug against ASM 14:20
timotimo huh, is it really asm that's throwing the exception? 14:21
M-Illandan hmm, what would you throw otherwise?
pmurias inspecting the text of an exception messages seems icky in Perl 6 too :/
toolforger I'd do "class ClassFileSizeTooLarge extends RuntimeException" as a fast fix
and/or give ASM an error-state reporting API 14:22
M-Illandan Most of these methods generated by nqp-j are synthetic methods. How would you deal with them?
toolforger THe only thing you can do is to split them up so each individual method is less than the size limit 14:23
maybe let the compiler emit a warning message if a method is more than some arbitrary (but still valid) size 14:24
14:24 Ven joined
toolforger say, 32K 14:24
so people get an early warning if one of these synthetic methods warrants attention in case it grows 14:25
the other option would be to really split the function, but you need to know the basic blocks and otherwise inner structure to do that 14:26
toolforger never liked those size limits in the JVM 14:27
14:27 xinming left
toolforger oh. There's another reasons to stay well below maximum sizes 14:29
Somebody might want to instrument the generated class, and this tends to increase sizes 14:30
pmurias having the compiler split classes up seems a much better solution the forcing users to do it manually in their Perl6 code 14:31
toolforger agrees
question is how much work it would be to teach the compiler this particular trick 14:32
and what the performance implications would be
timotimo it's not the classes that are too big, it's the compunits ;( 14:33
toolforger I think class size is pretty unlimited in the class file format
but I recall having seen multiple 64k limits 14:34
14:34 xinming joined
pmurias timotimo: so the setting would need to be split up? 14:35
toolforger not sure which ones, but number of methods, string pool size, number of local variables and such would all be candidates I'd want to check
timotimo pmurias: that's my impression
ideally we'd just be able to generate multiple .class files per compunit
14:38 xinming left
toolforger splitting up is going to have a performance impact 14:39
I am not sure that automatic splitting is really a good idea
14:40 xinming joined
toolforger I'd also really like to see Perl classes map to Java classes 14:40
s/Java classes/Java class files/
helps with system analysis
btw some people wrote visitors that walk the AST and just count sizes instead of actually generating code 14:43
not sure how much that would help with ASM actually 14:44
14:44 xinming left 14:45 xinming joined 14:46 zakharyas left
toolforger One approach might be to pack all local variables into a synthetic data class, and do "void fn(params) { SDC locals = new SDC; fn1(locals, params); fn2(locals, params); ...; return fn99(locals, params)". Would need a lot of tweaking to deal with loops etc. (that's why I said "basic blocks" above). 14:46
14:52 kurahaupo joined
pmurias toolforger: what's the alternative to splitting? 14:53
"sorry you compunit is too big, can't compile :/"
dalek rl6-most-wanted: d5262b2 | (Tom Browder)++ | most-wanted/modules.md:
add WIP module Text::More
14:56
MasterDukeLaptop toolforger: have you got a rakudo-j built? 14:58
dalek rl6-most-wanted: e62a9e1 | (Tom Browder)++ | most-wanted/modules.md:
add WIP module CGI
14:59
nine Even if splitting has a performance impact it beats not being able to compile rakudo at all. 15:00
dalek rl6-most-wanted: 8862761 | (Tom Browder)++ | most-wanted/modules.md:
ass WIP module Date::Time::Format::More
15:02
MasterDukeLaptop toolforger: i'm afk for a bit, but i'll check back if you have any questions
dalek rl6-most-wanted: 8d95d92 | (Tom Browder)++ | most-wanted/modules.md:
correct module name
15:03
pmurias nine: splitting CORE is one way to avoid doing the splitting for rakudo-j
nine: I mean splitting it up on the Perl 6 level 15:05
dalek rl6-most-wanted: c0d154d | (Tom Browder)++ | most-wanted/modules.md:
add WIP module DateTime::Math::More
15:06 bjz joined
dalek rl6-most-wanted: b991ba8 | (Tom Browder)++ | most-wanted/modules.md:
add WIP module Number::More
15:07
15:07 MasterDukeLaptop left 15:09 skids joined 15:15 bjz left
toolforger Splitting at the Perl level would definitely be the fastest approach to get results 15:16
15:20 pyrimidi_ joined, pyrimidine left 15:21 setty1 left 15:48 domidumont joined 15:51 pyrimidine joined, pyrimidi_ left 15:53 mr-foobar joined 15:54 pierre_ left 15:56 pyrimidi_ joined, pyrimidine left 15:57 lukaramu left 16:00 pierre_ joined 16:03 kurahaupo left 16:04 grumble is now known as grumbells 16:11 Ven left 16:15 espadrine joined 16:24 pierre_ left 16:25 pierre_ joined 16:27 domidumont left 16:29 pierre_ left 16:30 khw joined 16:36 leego left, pierre_ joined 16:37 leego joined 16:38 pierre_ left, pierre_ joined 17:09 espadrine left
moritz m: say (my &code).^name 17:13
camelia rakudo-moar 328281: OUTPUT«Callable␤»
notviki m: say (my @code).^name 17:14
camelia rakudo-moar 328281: OUTPUT«Array␤»
notviki m: say (my %code).^name
camelia rakudo-moar 328281: OUTPUT«Hash␤»
17:23 pierre__ joined
timotimo m: say (my |code).^name 17:25
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed my␤at <tmp>:1␤------> 3say (my7⏏5 |code).^name␤»
17:25 pierre_ left
timotimo m: say (my \code).^name 17:26
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Term definition requires an initializer␤at <tmp>:1␤------> 3say (my \code7⏏5).^name␤»
AlexDaniel m: say (my $code).^name
camelia rakudo-moar 328281: OUTPUT«Any␤»
17:27 skids left
AlexDaniel m: proto \x 17:28
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤ scoped term definitions (only 'my' is supported at the moment) not yet implemented. Sorry. ␤at <tmp>:1␤------> 3proto \x7⏏5<EOL>␤ expecting any of:␤ new term to be defined␤»
AlexDaniel what scoped? :) 17:29
m: proto $x
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Cannot use '(unknown scope)' with variable declaration␤at <tmp>:1␤------> 3proto $x7⏏5<EOL>␤ expecting any of:␤ constraint␤»
AlexDaniel ah, unknown scope! Alright!
17:30 Ven joined
timotimo fun 17:33
17:36 espadrine joined 17:43 pierre__ left 17:49 mr_ron joined 17:59 raiph joined
raiph m: say bar # Can one intercept an X::Undeclared error so this says 'bar'? 18:05
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ bar used at line 1. Did you mean 'VAR', 'bag'?␤␤»
timotimo that's compile-time 18:06
18:09 StefanS_ joined 18:10 toolforger left
AlexDaniel m: BEGIN {say ‘bar :P’; exit}; say bar 18:13
camelia rakudo-moar 328281: OUTPUT«bar :P␤»
AlexDaniel m: say bar; BEGIN {say ‘bar :P’; exit} 18:14
camelia rakudo-moar 328281: OUTPUT«bar :P␤»
raiph AlexDaniel: :P 18:16
AlexDaniel idable6: :P
ubidable6: :P
unicodable6 AlexDaniel, U+003A COLON [Po] (:)
AlexDaniel, U+0050 LATIN CAPITAL LETTER P [Lu] (P)
AlexDaniel ubistdable6: :P
unicodable6 AlexDaniel, U+0050 LATIN CAPITAL LETTER P [Lu] (P)
AlexDaniel, U+003A COLON [Po] (:)
bisectable6 AlexDaniel, On both starting points (old=2015.12 new=3282813) the exit code is 0 and the output is identical as well
AlexDaniel, Output on both points: WARNINGS for /tmp/JxAlwkB9mc:␤Useless use of ":P" in sink context (line 1)
AlexDaniel I wonder if there's a way to trigger all 6 bots at the same time 18:17
raiph timotimo: thx, but that doesn't mean the answer is no, right?
18:21 itcharlie_linux left 18:29 espadrine left 18:35 djbkd joined 18:54 StefanS_ left
notviki m: BEGIN %*ENV<RAKUDO_EXCEPTIONS_HANDLER>="Foo"; class Exceptions::Foo {method process ($e) { say $e.routine_suggestion.keys[0]; False } }; { say bar } 18:56
camelia rakudo-moar 328281: OUTPUT«bar␤»
timotimo raiph: you can build a slang that makes undefined specifiers evaluate to their name as a string 18:59
raiph notviki: thx
timotimo: thx 19:00
19:04 BenGoldberg joined 19:17 wamba joined 19:40 darutoko left 19:43 teksteiner left 19:50 wamba left 19:56 floutenvy joined
samcv morning everybody 19:58
BenGoldberg o/ 19:59
Good afternoon.
20:02 floutenvy left
samcv i.imgur.com/4UDK3Rz.jpg 20:05
come in noodles. paging noodles 20:06
notviki that was a fast sleep... 20:09
20:12 MasterDukeLaptop joined
MasterDukeLaptop m: sub a() { b }; sub b() { say callframe }; a; 20:13
camelia rakudo-moar 328281: OUTPUT«<tmp> at line 1␤»
MasterDukeLaptop i'm blanking, how do i get 'a' printed? 20:14
notviki m: sub a() { b }; sub b() { say callframe(1).code.name }; a; 20:15
camelia rakudo-moar 328281: OUTPUT«a␤»
MasterDukeLaptop thanks 20:16
samcv AlexDaniel, ⁂ how about asterism for the hyper whatever star? 20:24
u: ⁂
unicodable6 samcv, U+2042 ASTERISM [Po] (⁂)
AlexDaniel BLARGH!!!!! 20:25
is there any way to disable the built-in shit editor in GitHub?
samcv disable? you mean the text editor?
AlexDaniel I can't stand it. It the worst idea ever
yes
samcv don't use it
AlexDaniel I want to have a regular browser textarea
samcv oh you mean the box? the box that holds the document? 20:26
notviki So that you curse every time you press TAB to indent? :P
samcv
notviki AlexDaniel: I need tickets to fix!
20:27 floutenvy joined
AlexDaniel so that I can paste stuff with the middle click, so that I can write unicode characters without breaking everything, so that I can press ctrl+f once without needing to double check if it is using their search field (otherwise it doesn't really search)… 20:27
so that I don't have to wait for 10 seconds before the goddamn editor actually loads up 20:28
notviki has none of those issues with that editor....
AlexDaniel I never use it to write code, so I don't care about TAB (I've never actually noticed)
notviki well, except for middle click. I don't use it to paste, so I've no idea what it does
AlexDaniel samcv: not a bad idea of course, but why not ⁑? 20:29
samcv quite
20:29 lichtkind__ joined
AlexDaniel though arguably if * is whatever and ⁂ is hyperwhatever, then we have some room for superwhatever ⁑ 20:30
samcv or ⁑ for whatever and ⁂ for hyper whatever? idk. but we should have a different star possible for the whatever to distinguish it from the other * operators
u: asterisk 20:31
unicodable6 samcv, U+002A ASTERISK [Po] (*)
samcv, U+0359 COMBINING ASTERISK BELOW [Mn] (◌͙)
samcv, U+204E LOW ASTERISK [Po] (⁎)
samcv, gist.github.com/a14f9b55bc57732161...20a93837ab
AlexDaniel u: ⁂
unicodable6 AlexDaniel, U+2042 ASTERISM [Po] (⁂)
AlexDaniel asterism :o
notviki: I love your enthusiasm! I'll try to start today (it needs some code to be written) 20:32
though if it results in nothing, I'm not going to reveal what I was trying :P 20:33
20:33 lichtkind_ left 20:34 floutenvy left
kalkin- samcv: I like the idea 20:39
samcv of the two for the whatever star and then ⁂ for hyper whatever?
what's the long way of writing hyper whatever? 20:40
samcv isn't sure why she uses the right alt key not the menu key since she never uses the menu key (for Compose key) 20:41
though i don't use the right alt for ALT either!
so it's right by my thumb on my laptop
20:42 labster joined
geekosaur sometimes have to do more work to get the menu key to work; gnome/unity/mate establish passive grabs on it, for example, and you have to disable that or you get unexpected behavior when defining it as the Compose key 20:42
20:43 TEttinger joined
samcv also I can't get konsole to work with my compose key :( it's not following what all the other applications are doing. I mean it only does the system wide ones not my user configured one 20:45
notviki samcv: ** 20:47
(what's the long way of writing hyper whatever?)
samcv i don't like that tbh
20:47 Tonik joined
notviki m: say **.uc.("a".."z") 20:48
camelia rakudo-moar 328281: OUTPUT«(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)␤»
notviki m: say ("a", **, "c") ~~ ("a", "b", "b", "c")
camelia rakudo-moar 328281: OUTPUT«False␤»
notviki :S
m: say ("a", "b", "b", "c") ~~ ("a", **, "c")
camelia rakudo-moar 328281: OUTPUT«True␤»
notviki m: \term:<⁂> .= new HyperWhatever; say ("a", "b", "b", "c") ~~ ("a", ⁂, "c") 20:51
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Preceding context expects a term, but found infix .= instead␤at <tmp>:1␤------> 3\term:<⁂> .=7⏏5 new HyperWhatever; say ("a", "b", "b", ␤»
notviki m: my \term:<⁂> = new HyperWhatever:; say ("a", "b", "b", "c") ~~ ("a", ⁂, "c")
camelia rakudo-moar 328281: OUTPUT«Cannot make a HyperWhatever object using .new␤ in block <unit> at <tmp> line 1␤␤»
notviki screw you!
m: my \term:<⁂> = **; say ("a", "b", "b", "c") ~~ ("a", ⁂, "c")
camelia rakudo-moar 328281: OUTPUT«True␤»
notviki \o/
notviki doesn't like it 20:52
m: my \term:<⁂> = **; say ("a", "b", "b", "c") ~~ ("a", adsftfsdugjhert sdgvfb, "c") 20:53
camelia rakudo-moar 328281: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routines:␤ adsftfsdugjhert used at line 1␤ sdgvfb used at line 1␤␤»
notviki ugh copy-paste is broken again... I hate this system
m: my \term:<⁑> = **; say ("a", "b", "b", "c") ~~ ("a", ⁑, "c")
camelia rakudo-moar 328281: OUTPUT«True␤»
samcv hmm guess i can do 3 + * or 2 + * to get the two asterisk or three one 20:54
nice
21:01 mscha joined
mscha This may be a dumb question, but if you have a sub MAIN($foo, Bool :$verbose=True), how do you run it with $verbose = False? 21:02
Usage: foo [--verbose (False True)] <foo>
Which makes no sense to me.
notviki mscha: --verbose=False should work 21:03
depending on your compiler version 21:04
samcv 1 21:06
down vote
I was having a very similar issue and for some reason what worked for me was putting all my custom compose key settings at the top of the original file all the way over in /usr/share/X11/locale/en_US.UTF-8/Compose and then making a hardlink to it called .XCompose in the home directory instead of writing my own .XCompose in the home directory from scratch. It worked for me, maybe it'll work for you.
hmm
ok i will have to try that so Konsole doesn't be dumb and ignore my settings!
i think it worked on an older version of qt or kde or something rather
21:08 FROGGS left
mscha notviki: doesn't work for me (Rakudo Star 2016.11) :-( 21:12
./foo --verbose=False bar
Usage: foo [--verbose (False True)] <foo>
notviki mscha: that feature was included only in 2016.12 release 21:14
(and we don't have Rakudo Star for that release)
mscha Ah. :)
21:14 Ben_Goldberg joined, BenGoldberg left
geekosaur samcv, toolkits like gtk and qt don't use the stock compose stuff 21:15
that hack might work (but also might be overwritten by updates). there's other stupid you have to do for gtk and qt in the general case. 21:16
21:17 BenGoldberg_ joined
notviki mscha: actually, doesn't work even on my HEAD 21:17
notviki looks closer
21:17 Ben_Goldberg left, BenGoldberg_ is now known as Ben_Goldberg, Ben_Goldberg is now known as BenGoldberg
notviki mscha: oh, it works :) I just misspelt the name 21:18
mscha :)
notviki mscha: --/verbose 21:19
That should work everywhere
mscha Ah, it does! I thought I tried that (after reading Synopsis 6)... 21:20
Of course, even nice would be if --no-verbose would automagically work... 21:21
samcv geekosaur, they are supposed to though 21:22
sec geekosaur let me show you my config that should make all gtk and qt programs use it
geekosaur not really, as I understand it. they *emulate* it, to varying extents
but they use XIM instead of XCompose 21:23
samcv here github.com/samcv/dot-files/blob/ma...compose.sh
exactly
that config worked up until very recently
21:25 Tonik left 21:31 mscha left 21:37 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 21:41 bjz joined 21:42 labster left, aindilis` joined 21:44 aindilis left 21:45 dantia left
samcv wow that hard link totally screwed up my X 21:47
mad it lag and randomly freeze
oh well 21:48
21:52 lukaramu joined 21:53 djbkd left 21:54 djbkd joined 21:59 djbkd left 22:03 wamba joined 22:06 rindolf left 22:09 mr_ron left 22:13 samcv joined 22:14 samcv left, samcv joined 22:17 lostinfog joined, domidumont joined 22:18 lostinfog left 22:20 floutenvy joined 22:25 mr_ron joined 22:27 grondilu joined 22:31 domidumont left 22:33 domidumont joined 22:34 pierrot left, bjz left
rightfold I finally get the MONKEY-SEE-NO-EVAL pun 22:35
22:35 floutenvy left
notviki What's the pun? 22:36
rightfold en.wikipedia.org/wiki/Three_wise_monkeys
notviki wonders where MONKEY-GUTS fit into that pun.... 22:37
22:40 floutenvy joined 22:42 floutenvy left
rightfold Where can I report docs.perl6.org bugs? 22:43
As in UI bugs
AlexDaniel huggable: doc issue 22:45
huggable AlexDaniel, nothing found
AlexDaniel rightfold: github.com/perl6/doc/issues
rightfold: label it as 「site」 22:46
rightfold thanks
El_Che rightfold: or send a PR
rightfold I like to discuss issues before PRing right away, to make sure it's actually an issue :)
El_Che rightfold: of course. It depends what it is (a typo, an example, something just wrong, etc) 22:47
22:49 ab6tract left
rightfold AlexDaniel: I can't add labels though 22:52
AlexDaniel rightfold: don't worry
rightfold :3
22:55 floutenvy joined 23:00 pierrot joined 23:01 floutenvy left 23:02 floutenvy joined 23:08 domidumont left
MasterDukeLaptop nqp: class A { proto method a() {*}; multi method a($b) { say("scalar") }; multi method a(@b) { say("array") } }; A.a(34); A.a(["cd"]) 23:17
camelia nqp-moarvm: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ at <unknown>:1 (<ephemeral file>:a)␤ from <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2/NQPHLL.nqp:1577 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:eval)␤ from ge…»
MasterDukeLaptop nqp: class A { proto method a(|) {*}; multi method a($b) { say("scalar") }; multi method a(@b) { say("array") } }; A.a(34); A.a(["cd"]) 23:18
camelia nqp-moarvm: OUTPUT«Unable to parse expression in method_def; couldn't find final ')' at line 2, near "|) {*}; mu"␤ at gen/moar/stage2/NQPHLL.nqp:765 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPHLL.moarvm:panic)␤ from gen/moar/stage2/NQPHLL.nqp:772 (/home/camelia/rakudo-…»
MasterDukeLaptop ^^^ can i do what i want in nqp?
m: class A { proto method a(|) {*}; multi method a($b) { say("scalar") }; multi method a(@b) { say("array") } }; A.a(34); A.a(["cd"]) 23:19
camelia rakudo-moar 38ec79: OUTPUT«scalar␤array␤»
MasterDukeLaptop works in perl 6 23:20
nqp: class A { proto method a($foo) {*}; multi method a($b) { say("scalar") }; multi method a(@b) { say("array") } }; A.a(34); A.a(["cd"])
camelia nqp-moarvm: OUTPUT«Ambiguous dispatch to multi 'a'.␤ at gen/moar/stage2/NQPCORE.setting:362 (/home/camelia/rakudo-m-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:dispatch)␤ from <tmp>:1 (<ephemeral file>:a)␤ from <tmp>:1 (<ephemeral file>:<mainline>)␤ from gen/moar/stage2…»
dalek c: 81f6ddc | (Zoffix Znet)++ | html/js/main.js:
Do not focus search with Escape key

Unless we're at the very top of the page
Fixes #1078
23:26
rightfold yay 23:27
23:27 bjz joined 23:29 sammers joined 23:31 stanley left 23:41 Rawriful left
samcv nice found this on reddit. if you add this to your ~/.inputrc file echo 'set completion-ignore-case On' >> /etc/inputrc 23:44
whenever you type the letter e, it will print a super long string of SSSSSSSSSSSSSS
but only that letter
would be an alright prank
AlexDaniel huh? 23:45
samcv www.reddit.com/r/archlinux/comment..._infinite/
when you're typing, whenever the letter e is pressed it just starts dumping a ton of the letter S
and doesn't stop
BenGoldberg Zoffix++ 23:49
23:50 labster joined
dalek c: 4d2f623 | titsuki++ | doc/Type/ (2 files):
Document item
23:51
c: 8fe7351 | titsuki++ | / (20 files):
Merge remote-tracking branch 'upstream/master' into add-item
c: d34217f | titsuki++ | doc/Type/Any.pod6:
Use dd instead of smart match
synopsebot6 Link: doc.perl6.org/type/Any
c: c72d402 | titsuki++ | doc/Type/ (2 files):
Merge pull request #1076 from titsuki/document-item

Document item
23:52 floutenvy left
rightfold Hmm, can't use native functions with * 23:55