Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-11-25

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 znpy joined #perl6
00:06 dalek modules.perl6.org/new-db-builder: 603b213 | (Zoffix Znet)++ | / (8 files):
00:06 dalek modules.perl6.org/new-db-builder: Ditch `logo` from the Dists model
00:06 dalek modules.perl6.org/new-db-builder:
00:06 dalek modules.perl6.org/new-db-builder: We can now auto-generate logosprites from dist names and checking the logotype dir for the actual file, so we don"t need to store that piece of data in DB
00:06 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/603b213812
00:22 ab5tract m: say +"@a = []".comb < +"@a.clear"
00:22 camelia rakudo-moar : OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5\@a.clear' (indicated by 7⏏)␤  in block <unit> at /tmp/uDz2KAbbcX:1␤␤Actually thrown at:␤  in block <unit> at /tmp/uDz2KAbbcX:1␤␤»
00:22 ab5tract m: say +"@a = []".comb < +"@a.clear".comb
00:22 camelia rakudo-moar : OUTPUT«True␤»
00:35 dalek modules.perl6.org/new-db-builder: 76486e8 | (Zoffix Znet)++ | lib/ (4 files):
00:35 dalek modules.perl6.org/new-db-builder: Toss dists no longer in ecosystem from db on build complete
00:35 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/76486e8ff7
00:42 secwang joined #perl6
00:44 dalek modules.perl6.org/new-db-builder: 727a71e | (Zoffix Znet)++ | lib/ (2 files):
00:44 dalek modules.perl6.org/new-db-builder: Refactor: get deleted dists num prior to dumping them instead of fetching all rows twice in db builder
00:44 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/727a71edcf
00:50 BenGoldberg joined #perl6
00:53 dalek modules.perl6.org/new-db-builder: 5f9443f | (Zoffix Znet)++ | / (13 files):
00:53 dalek modules.perl6.org/new-db-builder: Move DbBuilder classes inside the ModulesPerl6:: namespace
00:53 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/5f9443fadb
00:55 dalek modules.perl6.org/new-db-builder: b617f22 | (Zoffix Znet)++ | t/01-models/02-dists.t:
00:55 dalek modules.perl6.org/new-db-builder: Fix tests: ::Dists model ->remove_old now returns num of dists dumped instead of invocant
00:55 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/b617f22043
00:55 dalek perl6-most-wanted: cee0cf6 | (David Warring)++ | most-wanted/modules.md:
00:55 dalek perl6-most-wanted: Update modules.md
00:55 dalek perl6-most-wanted:
00:55 dalek perl6-most-wanted: Mention PDF::Grammar,PDF-Tools and Crypt::RC4
00:55 dalek perl6-most-wanted: review: https://github.com/perl6/perl6​-most-wanted/commit/cee0cf680f
01:05 yeahnoob joined #perl6
01:06 adhoc_ joined #perl6
01:15 dalek modules.perl6.org/new-db-builder: e58d9ca | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist (3 files):
01:15 dalek modules.perl6.org/new-db-builder: Add PostProcessor plugin pipeline
01:15 dalek modules.perl6.org/new-db-builder: review: https://github.com/perl6/modul​es.perl6.org/commit/e58d9cad96
01:20 perlawhirl hellow all... is there a way i can do a 'getch()' type function ( without importing the NCurses module )
01:20 perlawhirl ie... i want to read one string without waiting for a newline
01:20 perlawhirl i mean... one char
01:26 gfldex perlawhirl: see https://github.com/rakudo/rakudo/bl​ob/bcebf8e96ff7cd68cdc9f4ef9815c724​544082e6/src/core/IO/Handle.pm#L171
01:27 uruwi Hold on perlawhirl
01:28 uruwi https://github.com/bluebear94/messing-​around-with-perl6/blob/master/kbd.pl6
01:28 uruwi You might want to look at this
01:28 uruwi It requires a Unix-like environment, though
01:30 uruwi gfldex, I tried using it and it _does_ wait for a newline; one can solve this by using `stty raw noecho`
01:33 uruwi Okay, does anyone know of a portable solution...
01:34 gfldex please note that with stty raw you may have to handle ^C by hand
01:35 uruwi ^
01:35 uruwi though in my example I bind it to `q` :P
01:37 uruwi But stty raw is useful if you don't want users (in)advertently exiting the program.
01:39 konobi tput?
01:40 geekosaur ? tput is still unix specific...
01:41 perlawhirl i am on linux so can call stty... will have a go at that... eventually someone will write a Term::ReadKey module :D
01:41 geekosaur also: I wouldn't use stty raw unless you really need to block terminal signals as well. stty -icanon min 1 time 1
01:41 konobi geekosaur: not really... the same mechanism works on win32, you just need a win32 termcap thing
01:43 geekosaur and tput is output, doesn't help with input
01:43 zengargoyle input and output are the same-ish talking to a tty.
01:43 geekosaur tput does not call the terminfo ioctls
01:43 geekosaur er, termios
01:43 zengargoyle holdover from the days when display and keyboard were connected to computer over serial.
01:43 uruwi * `stty raw -echo time 1`
01:44 geekosaur tput is terminfo database lookups
01:44 konobi geekosaur: the node.js "blessed" library seems to cope pretty well with tty's without needing to link to any libraries
01:44 zengargoyle all communication between the two is escape codes on that 2-way pipe.
01:44 konobi steal stuffz!
01:44 geekosaur zengargoyle, changing to character oriented input is not an escape sequence
01:45 geekosaur whatever, this looks like everyone reverted to 4.2BSD when I wasn't looking
01:45 zengargoyle i think it's just moves to the pseudo tty layer.
01:45 geekosaur what does that have to do with
01:45 geekosaur never mind
01:45 konobi geekosaur: https://github.com/chjj/blessed
01:46 geekosaur konobi, you are remarkably good at missing the point
01:46 geekosaur when did I say anything abotu libraries
01:46 geekosaur but I think I'm just going to back out because there's so much incorrect and circa-1982 info here that it's not worth it
01:47 konobi geekosaur: tput is termcap and terminfo... so you get input and output
01:47 geekosaur konobi, tput is a program, not a library
01:47 geekosaur it queries the terminfo database
01:47 geekosaur it does not do input
01:47 konobi mmm... might be the terminology on the package... but i swear it does input and output
01:47 geekosaur in particular it does not make stty calls for you
01:48 geekosaur man 1 tput
01:48 konobi well, termcap does the stty stuff, iirc
01:48 geekosaur what I suspect is meant there is that it uses the tput program to do output escape sequences and possibly to look up function key definitions
01:50 konobi anyways... it's all in plain JS there... so no C library linking needed
01:50 uruwi It uses the node standard library.
01:50 uruwi The Perl 6 base libraries might not have the same capabilities.
01:50 konobi a small amount
01:52 uruwi Which brings me to wondering why the Perl6 NCurses bindings won't work on Cygwin
01:52 adhoc joined #perl6
01:53 xpen joined #perl6
01:53 z8 joined #perl6
01:55 konobi uruwi: actually... it only uses fs/path stuff from node core... the rest is all natural
01:56 uruwi Seems to use event emitters, too
01:56 uruwi I don't know if Perl6 has an equivalent...
01:56 konobi when it all comes down to it... it's all just escape sequences on a tty anyway
01:57 uruwi I know.
01:57 uruwi The question is how to disable line buffering.
01:58 konobi lemme see
01:58 geekosaur that is not done with an escape sequence
01:58 geekosaur it is done with an ioctl to the tty driver
02:01 geekosaur there *are* escape sequences output afterward, usually, because old terminals used to require stupid stuff, and usually one switches to/from the alternate screen, but outputting those escapes does not switch you out of line mode
02:01 Some-body_ joined #perl6
02:03 konobi geekosaur: ugh... i'd have to delve back into bootloader code to work it out again
02:04 geekosaur it's using stty, not tput
02:04 geekosaur stty doesn't output escape sequences, it uses driver ioctls
02:06 zengargoyle http://www.linusakesson.net/programming/tty/ - may be an interesting read
02:09 Actualeyes joined #perl6
02:10 Ben_Goldberg joined #perl6
02:11 Ben_Goldberg joined #perl6
02:12 Ben_Goldberg joined #perl6
02:12 * geekosaur was the author of the tty section of the first edition of _Unix Power Tools_, fwiw. it's not in later editions because POSIX took over and you no longer needed to know whether you had to use stty(), ioctl(TIOCSTTY), or ioctl(TCSETA)...
02:14 geekosaur (had to know that even if using the stty command because the different systems had different stty options)
02:14 dayangkun joined #perl6
02:14 konobi yeah... solaris tty stuff was a huge PITA initially
02:28 zengargoyle ah, SunOS.  accidentally have caps-lock set on your termnal and it thinks you just don't do case at all... W\E\L\C\O\M\E \T\O S\U\U\NOS
02:30 geekosaur STTY -OLCUC -IUCLC
02:31 zengargoyle more like \E\X\I\T (unset caps-lock) login again... ;)
02:31 geekosaur not with the backslashes...
02:35 BenGoldberg_ joined #perl6
02:36 zengargoyle i don't remember it being that easy. but it was a *long* time ago.
02:37 geekosaur iirc the gotcha there was it also turned off icrnl so you had to use EXIT<control-J>
02:37 geekosaur or something silly like that
02:37 kaare_ joined #perl6
02:38 BenGoldberg_ joined #perl6
02:39 adhoc joined #perl6
02:39 molaf_ joined #perl6
02:40 geekosaur but it treated uppercase as lowercase and used backslash to indicate uppercase
02:40 konobi bah... i'll have to follow up.
02:46 Ben_Goldberg joined #perl6
02:47 adhoc joined #perl6
02:49 zengargoyle joined #perl6
02:53 Mhoram joined #perl6
02:54 BenGoldberg joined #perl6
02:56 BenGoldberg joined #perl6
03:02 telex joined #perl6
03:03 perlawhirl uruwi: That kbd script... is that yours?
03:09 vendethiel joined #perl6
03:18 noganex_ joined #perl6
03:23 skids perlawhirl: https://gist.github.com/skids/0b1cfabedddd95a824c8 is from some unpublished code I've started to pay with.  It is not portable off UNIX but is does handle the cases like cat foo | perl6 interactive-script.pm where stdin != tty.  Right now the IO system is still too abstract to make this easy.
03:23 skids *play
03:32 yeahnoob joined #perl6
03:34 perlawhirl thanks skids will check it out
03:38 cdg joined #perl6
03:47 hankache joined #perl6
03:49 hankache joined #perl6
03:49 jevin joined #perl6
03:54 yeahnoob joined #perl6
04:13 zengargoyle joined #perl6
04:34 kmel joined #perl6
04:40 hobbs joined #perl6
05:04 geraud joined #perl6
05:33 JimmyZ m: use Test; use Test;
05:33 camelia rakudo-moar : ( no output )
06:38 dalek joined #perl6
06:40 TEttinger joined #perl6
06:56 domidumont joined #perl6
07:01 domidumont joined #perl6
07:11 doublec_ joined #perl6
07:13 CIAvash joined #perl6
07:21 edehont joined #perl6
07:44 [Tux] again up, two days in a row:
07:44 [Tux] test             50000    23.517    23.403
07:44 [Tux] test-t           50000    21.276    21.162
07:44 [Tux] csv-parser       50000    29.581    29.468
07:45 cdg joined #perl6
07:46 _28_ria joined #perl6
07:48 [Sno] joined #perl6
07:53 RabidGravy joined #perl6
08:05 dalek rakudo/nom: 8ef5a59 | TimToady++ | src/Perl6/ (2 files):
08:05 dalek rakudo/nom: allow unival terms, because why not?
08:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ef5a59eeb
08:05 dalek roast: 373ecf3 | TimToady++ | S15-literals/numbers.t:
08:05 dalek roast: test for unival literals
08:05 dalek roast: review: https://github.com/perl6/roast/commit/373ecf3002
08:06 rurban joined #perl6
08:12 FROGGS joined #perl6
08:15 TimToady m: say ⅐
08:15 camelia rakudo-moar : OUTPUT«0.142857␤»
08:15 TimToady m: say ⅐.perl
08:15 camelia rakudo-moar : OUTPUT«<1/7>␤»
08:15 darutoko joined #perl6
08:22 TimToady of course this can be used for obfuscation...
08:22 TimToady m: say ⅰi
08:22 camelia rakudo-moar : OUTPUT«0+1i␤»
08:22 FROGGS uniWAT FTW
08:23 TimToady but I think it fits in well with our story of being completely Unicode friendly
08:24 TimToady and it's a trivial patch
08:26 TimToady cuneiform has some great numbers
08:26 TimToady m: say 𒐳
08:26 camelia rakudo-moar : OUTPUT«432000␤»
08:26 TEttinger "but can language X do this?"
08:27 TEttinger if the question is anything unicode related, for perl it's yes, for many others, no
08:27 TEttinger well, perl6
08:27 TimToady m: say Ⅹ
08:27 camelia rakudo-moar : OUTPUT«10␤»
08:31 krakan joined #perl6
08:31 grondilu lol, is that roman?
08:31 grondilu m: say IX
08:31 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/rUsVVzjyao␤Undeclared name:␤    IX used at line 1␤␤»
08:31 TimToady m: say Ⅸ
08:31 camelia rakudo-moar : OUTPUT«9␤»
08:31 grondilu oh ok
08:34 uruwi m: say 1
08:34 camelia rakudo-moar : OUTPUT«1␤»
08:34 TimToady m: say ^Ⅹ Xx Ⅹ
08:34 camelia rakudo-moar : OUTPUT«(0000000000 1111111111 2222222222 3333333333 4444444444 5555555555 6666666666 7777777777 8888888888 9999999999)␤»
08:34 uruwi m: say 二
08:34 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/q3bf0T8gDr␤Undeclared routine:␤    二 used at line 1␤␤»
08:34 TimToady m: say ㆓
08:34 camelia rakudo-moar : OUTPUT«2␤»
08:35 TimToady m: say ㈡
08:35 camelia rakudo-moar : OUTPUT«2␤»
08:35 uruwi What was the difference?
08:35 uruwi m: say ⑨
08:35 camelia rakudo-moar : OUTPUT«9␤»
08:35 TimToady m: say '二'.uniprop
08:35 camelia rakudo-moar : OUTPUT«Lo␤»
08:35 TimToady m: say '二'.unival
08:35 camelia rakudo-moar : OUTPUT«2␤»
08:35 TimToady it's a letter, so parses as identifier
08:36 uruwi say "二".char
08:36 uruwi m: say "二".char #gdi
08:36 camelia rakudo-moar : OUTPUT«Method 'char' not found for invocant of class 'Str'␤  in block <unit> at /tmp/SiwxA6vgAQ:1␤␤»
08:36 uruwi m: say char("二")
08:36 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/x3QfxRmVUs␤Undeclared routine:␤    char used at line 1. Did you mean 'chars', 'chr'?␤␤»
08:36 uruwi m: say chr("二")
08:36 camelia rakudo-moar : OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '7⏏5二' (indicated by 7⏏)␤  in block <unit> at /tmp/LLLqxHiKVU:1␤␤Actually thrown at:␤  in block <unit> at /tmp/LLLqxHiKVU:1␤␤»
08:37 uruwi Oh screw it
08:37 g4 joined #perl6
08:38 Ven joined #perl6
08:38 masak morning, #perl6
08:38 uruwi It's 3:38 AM where I am
08:38 mrf o/ masak
08:39 uruwi Going to bed
08:39 TimToady only 12:39 here, but oughta go to bed...
08:40 masak m: say ord("二") - ord("亊")
08:40 camelia rakudo-moar : OUTPUT«2␤»
08:40 * masak grins
08:43 grondilu m: say 三
08:43 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/6rvzLDfUz8␤Undeclared routine:␤    三 used at line 1␤␤»
08:44 grondilu m: say uniname "三"
08:44 camelia rakudo-moar : OUTPUT«<CJK Ideograph>␤»
08:45 grondilu m: say uniname "㆓"
08:45 camelia rakudo-moar : OUTPUT«IDEOGRAPHIC ANNOTATION TWO MARK␤»
08:46 zakharyas joined #perl6
08:52 bjz joined #perl6
08:55 azawawi joined #perl6
08:56 azawawi hi
08:57 azawawi and good morning #perl6
09:00 masak m: say ord("三") - ord("亊")
09:00 camelia rakudo-moar : OUTPUT«-129␤»
09:00 masak heh.
09:04 cognominal joined #perl6
09:05 jonas2 joined #perl6
09:05 dalek rakudo/nom: 2e38ba6 | lizmat++ | src/core/ (6 files):
09:05 dalek rakudo/nom: Introduce Any.gistseen
09:05 dalek rakudo/nom:
09:05 dalek rakudo/nom: This method allows a developer to easily create a .gist method that is
09:05 dalek rakudo/nom: aware of self-referential structures (such can occur with arrays, lists,
09:05 dalek rakudo/nom: hashes and pairs).  This replaces the ad-hoc code found so far.
09:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e38ba6762
09:07 kjs_ joined #perl6
09:21 lizmat hmmm.... looks like TimToady's unival commit broke the JVM build, because nqp::unipropcode doesn't exist on JVM yet
09:21 lizmat gen/jvm/Perl6-Actions.nqp
09:21 lizmat Error while compiling op unipropcode (source text: "nqp::unipropcode(\"NumericValueNumerator\")"), no registered operation handler
09:21 dakkar joined #perl6
09:22 lizmat m: use nqp; say nqp::unipropcode("NumericValueNumerator")
09:22 camelia rakudo-moar : OUTPUT«10␤»
09:22 lizmat j: use nqp; say nqp::unipropcode("NumericValueNumerator")
09:22 camelia rakudo-jvm 4d8a90: OUTPUT«===SORRY!===␤Error while compiling op unipropcode (source text: "nqp::unipropcode(\"NumericValueNumerator\")"), no registered operation handler␤»
09:23 lizmat fudging is not that easy, atm, as I don't think Actions/Grammar.nqp *are* currently fudged  :-(
09:28 JimmyZ or by nqp::config() or something?
09:29 ely-se joined #perl6
09:33 llfourn joined #perl6
09:38 espadrine joined #perl6
09:48 El_Che a silly question: Can I embed a perl6 compiled regex (rx) within a regex match with the :Perl5 modifier?
09:51 pochi_ joined #perl6
09:52 El_Che tests from the replace sounds like it does
09:54 RabidGravy joined #perl6
09:55 eliasr joined #perl6
09:55 lucs joined #perl6
09:57 lizmat afk until late&
09:58 Begi joined #perl6
09:58 grondilu m: my $rx = /foo/; say "foo" ~~ m:p5/$rx/
09:58 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/kshctkdqAb␤Adverb p5 not allowed on m␤at /tmp/kshctkdqAb:1␤------> 3my $rx = /foo/; say "foo" ~~ m:p5/$rx/7⏏5<EOL>␤»
09:59 grondilu m: my $rx = /foo/; say "foo" ~~ m:P5/$rx/
09:59 camelia rakudo-moar : OUTPUT«「foo」␤»
10:00 Actualeyes joined #perl6
10:00 El_Che m: my $rx = rx:i/<[a..z]>||<[1..9]>/; '.' ~~ m:Perl5/$rx/ ; '.a' ~~ m:Perl5/\.$rx*/
10:00 camelia rakudo-moar : ( no output )
10:00 El_Che m: my $rx = rx:i/<[a..z]>||<[1..9]>/; '.' ~~ m:Perl5/$rx/
10:00 camelia rakudo-moar : ( no output )
10:00 El_Che it does on my repl :)
10:00 El_Che m: my $rx = rx:i/<[a..z]>||<[1..9]>/; '.a' ~~ m:Perl5/\.$rx/
10:00 camelia rakudo-moar : ( no output )
10:01 grondilu you need to say something you know
10:04 El_Che grondilu: actually I am trying to find the combination \G + the /c modifier in the perl6 adverbs
10:04 El_Che :c is clear. Not so clear about \G
10:04 * El_Che keeps reading
10:05 rindolf joined #perl6
10:08 dalek star: 2a70ed7 | (Jens Rehsack)++ | / (3 files):
10:08 dalek star: introduce support for sdkroot and sysroot to support cross-builds
10:08 dalek star:
10:08 dalek star: To allow building for another location rather the final install prefix,
10:08 dalek star: regardless whether chroot based builds, cross-compile or canadian cross sdk
10:09 brrt joined #perl6
10:09 dalek joined #perl6
10:10 FROGGS is a canadian cross sdk something like a cansas city shuffle?
10:11 * FROGGS .oO( There was a time. )
10:12 arnsholt FROGGS: I'm increasingly thinking that CArrays really shouldn't do the auto-resize thing, and be restricted to a single size. Thoughts on that?
10:13 jnthn morning, #perl6
10:13 arnsholt o/ jnthn
10:14 arnsholt jnthn: Did my Gist hang on your machine as well, BTW? (If you've had time to try it)
10:14 jnthn arnsholt: Didn't have time yet, sorry
10:14 arnsholt No problem
10:15 El_Che if I rephrase my regex question, is there an equivalent in Perl6 for the perl5 \G anchor
10:15 arnsholt I know you've got a massive pile of stuff on your plate
10:15 jnthn Yeah...cleaning up the supplies API at the moment...
10:15 FROGGS arnsholt: hmmm
10:16 FROGGS arnsholt: what if you want to read a blob of mem until you find something null?
10:16 arnsholt FROGGS: Then it'll be length *
10:16 arnsholt But that's generally for arrays coming from C, which aren't resized anyways
10:17 FROGGS still the CArrays grows over the not-owned memory
10:17 arnsholt El_Che: http://doc.perl6.org/language/regexes#Continue
10:17 Actualeyes joined #perl6
10:17 Begi2 joined #perl6
10:18 FROGGS arnsholt: but yeah, when the user creates an array (s)he should perhaps make it a fixed sized array instead
10:18 FROGGS arnsholt: to avoid realloc hell
10:18 RabidGravy I love the way that actually using a library in real code changes the way you think about its interface
10:19 FROGGS RabidGravy: in what way?
10:20 RabidGravy in that a nice concise simple interface can often be a pain in the arse when faced with real world problems ;-)
10:21 RabidGravy anyway off to hand over all my worldly goods to the car repairers ;-)
10:21 arnsholt FROGGS: Yeah, I would like it to be so that you always have to declare the size of a CArray when creating one on the Perl 6 side. For arrays coming from C we'll have to allow undefined size, of course
10:21 RabidGravy have fun
10:21 FROGGS RabidGravy: :o)
10:22 FROGGS arnsholt: can we declare fixed sized CArrays already?
10:23 arnsholt Nope
10:23 El_Che arnsholt: Thx. That corresponds with perl5's /c. I am looking at the perl-ldap code and I see they use a /\G(?: ... )/gcx syntax
10:24 pmurias joined #perl6
10:24 El_Che maybe it is declaring twice the same thing
10:25 pmurias how should unipropcode be implemented on the JVM, by porting over ucd2c into ucd2java?
10:25 FROGGS arnsholt: then let's play with that thought when it is implemented :o)
10:28 RabidGravy joined #perl6
10:30 arnsholt FROGGS: Sounds like a plan. I don't think it should be too hard to implement either
10:32 FROGGS arnsholt: would be nice to steal that task from jnthn++
10:49 jnthn Task-stealing from jnthn encouraged. :)
10:53 RabidGravy :)
10:53 RabidGravy okay the car menders didn't want to take my money
10:54 * jnthn isn't sure whether that's good news or bad... :)
10:54 arnsholt I'm not sure shaped CArrays were ever jnthn's job, TBH =)
10:59 n0xff joined #perl6
11:01 jnthn Cute
11:01 jnthn method flat(Supply:D:) {
11:01 jnthn supply {
11:01 jnthn whenever self -> \inner {
11:01 jnthn whenever inner -> \value {
11:01 jnthn emit value;
11:01 jnthn }
11:01 jnthn }
11:01 jnthn }
11:01 jnthn }
11:01 jnthn :)
11:01 moritz nice
11:01 brrt joined #perl6
11:01 moritz that only flattens one level, though
11:01 moritz is that desired?
11:02 jnthn I think so...we don't really have an item/list distinction with supplies
11:03 jnthn So you'd not really have a way to stop it
11:05 RabidGravy is "supply" the new "react" or does it do something else I can't work out from the above?
11:06 jnthn supply = returns a supply that, when tapped, runs the block
11:06 jnthn react = runs the block immediately and waits until all of the whenevers in it have run their course.
11:06 jnthn react is more for the "top level"
11:06 RabidGravy gotcha
11:09 arnsholt jnthn: I think you said something about the "of" syntax for typing aggregate things recently. Is that implemented, or still TODO?
11:10 jnthn arnsholt: I refactored handling of "of" recently, and implemented "is" too
11:10 jnthn m: my @arr of int; say @arr.WHAT # now works
11:10 camelia rakudo-moar : OUTPUT«(array[int])␤»
11:11 jnthn m: my @buf is buf8; say @buf.WHAT
11:11 camelia rakudo-moar : OUTPUT«(Buf[uint8])␤»
11:11 jnthn That also :)
11:11 jnthn m: use NativeCall; my @carr is CArray of int8; say @carr.WHAT # maybe this
11:11 camelia rakudo-moar : OUTPUT«(IntTypedCArray[int8])␤»
11:11 jnthn :)
11:12 arnsholt Oh, neat!
11:12 JimmyZ m: my @buf is uint8; say @buf.WHAT
11:12 camelia rakudo-moar : OUTPUT«===SORRY!===␤Method 'BUILDALLPLAN' not found for invocant of class 'Perl6::Metamodel::NativeHOW'␤»
11:12 jnthn uint8 isn't a container type :)
11:12 JimmyZ m: my uint8 @buf; say @buf.WHAT
11:12 camelia rakudo-moar : OUTPUT«(array[uint8])␤»
11:12 jnthn m: use NativeCall; my int8 @carr is CArray; say @carr.WHAT # cuter way, maybe
11:12 camelia rakudo-moar : OUTPUT«(IntTypedCArray[int8])␤»
11:12 JimmyZ anyway, LTA :)
11:13 jnthn Yeah, not sure what to do about that
11:13 jnthn Not sure I feel like demanding everyone "does Container" or some similar role on everything they wish to use as a container type
11:14 khisanth_ joined #perl6
11:14 jnthn Though it'd be the Java way out of the problem. :)
11:15 El_Che m: my regex foo { . }
11:15 camelia rakudo-moar : ( no output )
11:15 El_Che m: my regex Foo :i { . }
11:15 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/LzwzlOpqVy␤Malformed regex␤at /tmp/LzwzlOpqVy:1␤------> 3my regex Foo 7⏏5:i { . }␤»
11:15 El_Che adverbs not implemented for regexes?
11:15 arnsholt m: my Regex Foo { :i . } # <--
11:15 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/2JMFdOlPvu␤Malformed my␤at /tmp/2JMFdOlPvu:1␤------> 3my Regex7⏏5 Foo { :i . } # <--␤»
11:16 arnsholt Well, if you spell it right, anyways >.<
11:17 El_Che arnsholt: thx. I got it from here: https://en.wikipedia.org/wiki/Perl_6_rules: regex addition :ratchet :sigspace { <term> \+ <expr> }
11:18 jnthn Then it's wrong, they go inside the curlies
11:19 El_Che jnthn: I'll change it there
11:19 jnthn regex + ratchet + sigspace = rule, also ;)
11:19 jnthn El_Che++
11:20 El_Che what better way to learn perl6 regex than trying to rewrite a perl5 regex mastodont from Net::LDAP :)
11:38 rurban joined #perl6
11:39 Ven joined #perl6
12:01 arnsholt El_Che: A propos regexes, you can scope adverbs inside groups too: m/foo [:i bar]/
12:09 Skarsnik joined #perl6
12:14 zengargoyle joined #perl6
12:19 znpy joined #perl6
12:20 ely-se joined #perl6
12:26 BenGoldberg joined #perl6
12:30 perlawhirl joined #perl6
12:32 El_Che arnsholt: interesting
12:36 perlawhirl hello everyone
12:36 perlawhirl need a lil help
12:36 DrForr Mornin'.
12:37 perlawhirl in perl5 you could put a map in a hash to generate some KV pairs... i'm trying to do the same with perl 6 and failing ==> http://pastebin.com/QxtwuK79
12:37 jnthn Try |( map { $_ => $_ } 1 .. 9 )
12:38 jnthn Or my %h = flat ...
12:38 perlawhirl thanks jnthn... you're a star
12:39 perlawhirl was watching your talk on objects ∩ concurrency today... very enjoyable and informative
12:40 jnthn :)
12:40 rurban joined #perl6
12:42 jojotus joined #perl6
12:44 stmuk what's the JVM status? does it sort of work yet? or not so much.. :)
12:45 moritz it works on and off
12:50 zengargoyle my %h = |map { $_ => $_ }, 1..9; say %h;
12:51 zengargoyle m: my %h = |map { $_ => $_ }, 1..9; say %h;
12:51 camelia rakudo-moar : OUTPUT«1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5, 6 => 6, 7 => 7, 8 => 8, 9 => 9␤»
12:51 zengargoyle did TimToady go back on loosening precedence of | ?
12:51 zengargoyle m: |1..10
12:51 camelia rakudo-moar : OUTPUT«WARNINGS:␤Useless use of ".." in expression "|1..10" in sink context (line 1)␤»
12:52 zengargoyle m: say |1..10
12:52 camelia rakudo-moar : OUTPUT«1..10␤»
12:52 zengargoyle m: say |(1..10)
12:52 camelia rakudo-moar : OUTPUT«12345678910␤»
12:52 * zengargoyle hopes so, likes tight |
12:54 dalek nqp: 6d3179e | (Stefan Seifert)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
12:54 dalek nqp: Fix error messages referring to the wrong op.
12:54 dalek nqp:
12:54 dalek nqp: Thanks to ilmari++ for catching my copy&pasto!
12:54 dalek nqp: review: https://github.com/perl6/nqp/commit/6d3179e1f9
12:55 ilmari nine++ # quick fix
13:03 z8 joined #perl6
13:14 jnthn m: undef
13:14 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/LjGkdyylqa␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤       an undefined type object such as Any or Int,␤   :!defined as a matcher,␤        Any:U as a type constraint,␤    Nil as the …»
13:14 pmurias joined #perl6
13:19 johan joined #perl6
13:22 kjs_ joined #perl6
13:34 dalek rakudo/resupply: 461ceab | jnthn++ | / (5 files):
13:34 dalek rakudo/resupply: Start cleaning up Supply design/implementation.
13:34 dalek rakudo/resupply:
13:34 dalek rakudo/resupply: This commit substantially refactors how supplies work on the inside,
13:34 dalek rakudo/resupply: along with a couple of API changes to deal with design issues.
13:34 * jnthn wrote a long commit message instead of a blog post :P
13:35 jnthn https://github.com/rakudo/rakudo/commit/​461ceaba9c979538a5e4649755116bd9d06c83d0 for anyone wanting to read it
13:35 dalek joined #perl6
13:40 cdg joined #perl6
13:42 jdv79 that was unusually long
13:43 AlexDaniel joined #perl6
13:43 jdv79 i think i followed about half of it
13:44 timotimo hm, so Publisher is a bit like Vow?
13:44 AlexDaniel m: say ⅐ + 5
13:44 camelia rakudo-moar : OUTPUT«5.142857␤»
13:44 AlexDaniel finally!
13:44 raiph joined #perl6
13:45 AlexDaniel m: ∞.say
13:45 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/Qi7jV5dQMM␤Bogus statement␤at /tmp/Qi7jV5dQMM:1␤------> 3<BOL>7⏏5∞.say␤    expecting any of:␤        prefix␤        term␤»
13:45 jnthn timotimo: Kinda, sorta :)
13:45 timotimo the last two lines look like something unfortunate has happened there
13:46 jnthn It's providing the same kind of "security"
13:46 timotimo mhm
13:46 jnthn last two lines?
13:46 timotimo of the commit message
13:46 jnthn oops
13:46 timotimo if the publisher doesn't know anything about the tappers, it won't know when all tappers have been closed?
13:46 jnthn :)
13:47 jnthn A publisher *does* have a list of tappers
13:47 timotimo perhaps i ought to re-read?
13:47 timotimo oh. publisher does, supply doesn't?
13:47 jnthn Right
13:47 jdv79 as always i look forward to the excellent docs that will just appear someday so i can fully grasp the power:)
13:48 RabidGravy joined #perl6
13:48 moritz jdv79: learn the virtue of impatience, learn it by trying (and reading the source and design docs), and write the excellent docs yourself!
13:48 AlexDaniel .u 𒐳
13:48 yoleaux U+12433 CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN [Nl] (𒐳)
13:49 AlexDaniel .u 1
13:49 yoleaux U+FF11 FULLWIDTH DIGIT ONE [Nd] (1)
13:49 AlexDaniel m: say 11
13:49 camelia rakudo-moar : OUTPUT«11␤»
13:50 AlexDaniel m: say 11Ⅸ𒐳
13:50 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/OnFft4FMRm␤Bogus postfix␤at /tmp/OnFft4FMRm:1␤------> 3say 117⏏5Ⅸ𒐳␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement mo…»
13:50 AlexDaniel m: say 11 * Ⅸ𒐳
13:50 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/wZv5QSC5E7␤Bogus postfix␤at /tmp/wZv5QSC5E7:1␤------> 3say 11 * Ⅸ7⏏5𒐳␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement…»
13:50 AlexDaniel m: say 11 * Ⅸ +𒐳
13:50 camelia rakudo-moar : OUTPUT«432099␤»
13:52 dalek rakudo/resupply: cf00a6d | jnthn++ | src/core/Supply.pm:
13:52 dalek rakudo/resupply: Refactor batch to use whenever.
13:52 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/cf00a6d959
13:57 bjz joined #perl6
14:09 cognominal why in the REPL, the default is not MONKEY-TYPING and augment ? I fear that the anwer is, go support a ~/.perl6-repl and do it. Not quite there yet. :(
14:14 kaare_ joined #perl6
14:18 jnthn The last case I remember of making -e/scripts/REPL work differently caused sufficient confusion we ended up undoing it.
14:18 moritz because the REPL is supposed to behave as similar as possible to the standard behavior
14:19 arnsholt Definitely
14:19 moritz jnthn: yes, "no strict" as default caused confusion, iirc
14:19 jnthn moritz: Yes, that's the one I was thinking of
14:19 arnsholt But supporting a ~/.rakudorepl.rc should be pretty simple though
14:19 dalek rakudo/resupply: fa096b0 | jnthn++ | src/core/Supply.pm:
14:19 dalek rakudo/resupply: Refactor a bunch more methods to use whenever.
14:19 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/fa096b0ca1
14:20 arnsholt Just inject eval "~/.rakudorepl.rc".IO.slurp into the code before we start reading code from stdin
14:20 jnthn Not a lot less lines of code with supply/whenever, but certainly feels clearer to me :)
14:21 moritz arnsholt: that might not do what people expect wrt scoping
14:22 zengargoylew joined #perl6
14:23 arnsholt Oh, right. It'd have to inject the contents of the file in Perl6::Compiler.interactive
14:23 arnsholt That'd be the same as if the code were typed at the REPL
14:25 ely-se concatenate the file and stdin
14:26 arnsholt cognominal: It should be a pretty straightforward feature to implement. In src/Perl6/Compiler.nqp.interactive (lines 122 to 174 in HEAD), you'd have to read in the contents of the RC file, and run it with self.eval($contents) before the call to the superclass at the end of the method
14:26 cognominal Anssering to the similarity requirement. On the other hand, one use of the REPL is incremantal/interactive writing of a class. That was my initial motivation.
14:26 arnsholt It's a bit more work than just "$file".IO.slurp, since it's NQP code not Perl 6 code, but not tremendously so
14:27 moritz arnsholt: probably nqp::open, nqp::readall
14:28 arnsholt Yeah, that's the order of magnitude I assumed it'd be
14:28 cognominal If I follow my I idea, the prompt would indicate the current entity.
14:28 timotimo there's a new bug report on the RT basically about regex literals looking into the lexical environment for a class named "Regex" and when you're inside the class body of Regex and use a regex literal it goes boom
14:28 cognominal > class A {
14:28 cognominal A>  method foo {}
14:28 cognominal A> }
14:28 cognominal >
14:28 timotimo that's not about MONKEY-TYPING or augmenting, though
14:28 arnsholt That's harder
14:28 cognominal in that sense, no augment here
14:29 timotimo that's just our inability to understand end-of-line inside things that aren't finished
14:29 Ven joined #perl6
14:30 arnsholt Yeah, which is a shame, but significantly harder to implement
14:30 cognominal I have not yet grasped all of CPS, but what I want mean some ongoing context
14:31 timotimo you want to turn our parser into CPS?
14:31 cognominal on the other hand, I want to use the class as well. So my example is only part of the spec.
14:32 cognominal timotimo, thinkout out loud, not sure it makes sense
14:32 skids joined #perl6
14:32 timotimo hmm
14:32 arnsholt Hang on, let's backtrack a bit. Which feature are you wanting here: working multi-line input on the REPL, or "augment class ..." to work at the REPL from the start?
14:32 zengargoylew i'd sorta be happy if you could just multi-line a block: {␤code...␤code...␤code..␤}␤
14:33 timotimo m: my @foo := gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }] / }; say @foo[0];
14:33 camelia rakudo-moar : OUTPUT«Type check failed in binding; expected Positional but got Seq␤  in block <unit> at /tmp/AJ0uG7g2Xv:1␤␤»
14:33 timotimo m: my $foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }] / }; say $foo[0];
14:33 camelia rakudo-moar : OUTPUT«hello␤»
14:33 arnsholt zengargoylew: Everyone would love that, I think. Unfortunately it's actually a decidedly non-trivial feature
14:33 cognominal yea, there is what I want and how to to it. Mixing the two :(
14:33 timotimo m: my $foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }] / }; say $foo[1];
14:33 camelia rakudo-moar : OUTPUT«taken␤Nil␤»
14:34 timotimo m: my $foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }] / }; say $foo[2];
14:34 camelia rakudo-moar : OUTPUT«taken␤Nil␤»
14:34 timotimo m: my $foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }]+ % \s+ / }; say $foo[2];
14:34 camelia rakudo-moar : OUTPUT«taken␤taken␤hello hello hello␤»
14:34 timotimo m: my $foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }]+ % \s+ / }; say $foo[1];
14:34 camelia rakudo-moar : OUTPUT«taken␤hello hello␤»
14:34 zengargoylew played with rlwrap a bit.  it's nice to use $EDITOR once in a while.  sorta painful when it takes it line by line. :)
14:34 timotimo m: my @foo = gather { "hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }]+ % \s+ / }; say @foo[1];
14:34 camelia rakudo-moar : OUTPUT«taken␤taken␤taken␤hello hello␤»
14:34 zengargoylew hacked up a filter to remove /^> /
14:35 lucasb joined #perl6
14:35 cognominal ho, I did not noticed the multiline  REPL has been removed
14:35 Skarsnik Hello, does someone already tried to compile the clang branch of smokegen? It seem unrelated but it's the tool used for Qt/Kde bindings
14:35 timotimo how do i do this stuff again :P
14:35 zengargoylew and add custom colored prompt... sorta *looks* a bit better anyways.
14:36 timotimo m: my $foo = gather { "hello hello hello hello" ~~ / [<ident> { take $/.Str; say "taken" }]+ % \s+ / }; say $foo.list[1];
14:36 camelia rakudo-moar : OUTPUT«taken␤hello hello␤»
14:36 timotimo ah, of course
14:36 timotimo $/.Str matches from the start %)
14:36 timotimo so yeah, grammar parsing can work with gather/take already, but the really difficult part is that we'd have to switch the string being matched against from underneath the parser
14:37 timotimo otherwise we don't have a benefit to the "CPS transform"
14:37 timotimo (in quotes because we're not actually transforming the code. not on moar anyway)
14:37 cognominal About this incremental compilation, probably what I ask for is lazy string :)
14:38 timotimo yeah, that's a way to do it.
14:38 timotimo but that's post-6.c
14:38 cognominal I know :)
14:38 zengargoylew what's CPS?
14:38 timotimo contiunation-passing-style
14:39 timotimo we had the beginning of a "moreinput" thing that'd let the grammar request extra text
14:39 cognominal from what I understand (very little), this is passing the general context to any routine
14:40 cognominal s/this is/CPS is/
14:40 timotimo "continuation passing style" happens when you treat instruction pointers + stack as a first-class entity
14:41 cognominal I told the what, timotimo spells the how  :)
14:41 timotimo call/cc is a tool to invoke a function and also pass in a "continuation" that, when called, will teleport your instruction pointer back to where the call/cc was in the code
14:42 cognominal It means one can snaphote the state of the interpreter and go back to it.
14:42 cognominal That makes all sort of backtracking thing for *free*, well at the cost of support CPS
14:43 cbk joined #perl6
14:43 cognominal I have seen mention of CPS in moarvm
14:43 cognominal *snapshot
14:43 timotimo moar has single-shot continuations
14:43 cognominal what means thing shot?
14:44 timotimo after a continuation has been invoked, it can't be invoked again
14:44 cognominal ok
14:44 timotimo there's a fun language called "oort" that has first-class labels (as in goto)
14:47 ely-se terrible idea with incredibly complexity and no benefits at all
14:47 timotimo oh hey ely-se
14:47 dalek rakudo/resupply: bae2138 | jnthn++ | src/core/Supply.pm:
14:47 dalek rakudo/resupply: Most of the rest of the on -> whenever switch.
14:47 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/bae21381de
14:48 timotimo i'm conflicted with regards to my multidim spec tests. they throw an exception currently, so in order to get through them i'd either have to test with lives-ok or fudge with "skip" rather than "todo" :(
14:49 cognominal /msg ely-se a
14:50 cognominal I am not sure the allusion to Chopin or the Cure is transparent.
14:51 timotimo ?
14:51 rurban joined #perl6
14:53 cognominal I sent a "letter to  ely-se" https://fr.wikipedia.org/wiki​/La_Lettre_%C3%A0_%C3%89lise   https://www.youtube.com/watch?v=-AUCSkHCrwY
14:54 cognominal Some playword need explanation. Like : Ga
14:54 cognominal G-grand a-petit  for J'ai grand appétit :)
14:55 Ven uhm.
14:56 Hotkeys joined #perl6
14:57 cognominal Ven,  http://valerie.ufoot.org/citat​ions/jeuxdemots/rebus?lang=fr
14:58 Woodi hallo #perl6 :)
14:59 Woodi do REPL have ability to save 'session' to file ? would be nice way to start implementation of new thing :)
15:01 Woodi or save session to temp file, use EDITOR on it and restart REPL with edited file...
15:01 Ven it doesn't yet, at least
15:02 masak maybe serialization could be nmade to do that, I dunno
15:02 masak it sounds hard/risky to add after the fact
15:03 masak and you get all kinds of fun serialization format versioning difficulties that we already have with precompiled modules
15:04 telex joined #perl6
15:04 timotimo masak: i think he really means just a dump of the lines you wrote
15:04 zengargoylew RLWRAP_EDITOR=vim exec rlwrap -m -M .pl6 -r -R perl6 # gets close... saves history, allows editing. ...
15:05 zengargoylew can do a bit of multi-line stuff, but it's quirky
15:06 zengargoylew TAB completes on seen things
15:08 zengargoylew i think you have to remove Linenoise.pm or they conflict a bit.
15:10 lucasb can't I use S/// with the binding operator '~~' ?
15:11 masak timotimo: that would likely be enough in some cases, but any non-deterministic instruction would not restore the state well.
15:11 timotimo that's true
15:12 pmurias we could serialize the lexical scope
15:12 dalek doc: 788b09c | (Zoffix Znet)++ | doc/Language/grammars.pod:
15:12 dalek doc: Fix code example to not emit warnings when run
15:12 dalek doc: review: https://github.com/perl6/doc/commit/788b09cbd8
15:13 timotimo i think we should concentrate on making the ipython/jupyter integration good because things like the notebook will give us exactly what we need in that case
15:13 pmurias but it doesn't seem that usefull and they will bitrot on updates
15:13 timotimo because it keeps output around and stuff like that
15:13 pmurias ipython integration seem more more usefull than trying to reimplement smalltalk images
15:13 timotimo and lets you re-run individual parts on demand
15:14 timotimo verily.
15:16 xpen joined #perl6
15:17 lucasb m: my $s = 'abc'; say $s ~~ S/a/x/
15:17 camelia rakudo-moar : OUTPUT«Potential difficulties:␤    Smartmatch with S/// can never succeed because the subsequent string match will fail␤    at /tmp/umnqxfm5LR:1␤    ------> 3my $s = 'abc'; say $s ~~ S/a/x/7⏏5<EOL>␤False␤»
15:17 masak ipython integration sounds good.
15:20 dalek doc: e3655a5 | (Zoffix Znet)++ | doc/Language/grammars.pod:
15:20 dalek doc: Remove ~, since it is not needed in the example and is distracting from the subject matter, if the reader is not aware of it
15:20 dalek doc: review: https://github.com/perl6/doc/commit/e3655a5a32
15:21 ely-se c:
15:24 Woodi timotimo: yes, I mean just lines typed into REPL
15:24 Woodi what are that ipert/ipython thingies ?
15:24 Woodi *iperl there
15:25 muraiki joined #perl6
15:25 JimmyZ jnthn++ # the resupply code is much clear .
15:25 moritz Woodi: ipython is a generic REPL/notebook implmementation
15:25 AlexDaniel joined #perl6
15:26 Woodi ok, googled it. thanx
15:27 timotimo i should stop calling it "ipython" and using their new name "jupyter" instead, eh?
15:28 Woodi looks like pyWolfram in a tab :)
15:28 hankache joined #perl6
15:29 ZoffixW joined #perl6
15:29 muraiki jupyter integration would be awesome
15:30 ZoffixW Is token ws { ... } magical? I'm looking at the second example at http://docs.perl6.org/langu​age/grammars#Action_Objects and I don't see it used anywhere other than being declared, but if I comment it out, the code fails
15:30 pmurias ZoffixW: yes
15:31 ZoffixW Also, I don't get why rule pair { <key=.identifier> '=' <value=.identifier> } works at all. I thought rules has :sigspace turned on, so how come it's matching even though there's space between the '=' and tokens, but in the stuff it's parsing there isn't any space
15:31 ZoffixW pmurias, what does it do?
15:33 pmurias ZoffixW: search S09 for :sigspace
15:33 ZoffixW Thanks
15:35 pmurias ZoffixW: :sigspace inserts <.ws>
15:35 moritz ... wherever there's a space in the regex
15:35 pmurias ZoffixW: ws is declared as \h* - so zero space matches that too
15:35 ZoffixW Ah
15:37 zengargoylew thought <ws> was a bit more than just \h*  depending on the characters around it.
15:39 ZoffixW Kinda weird that if I comment out token ws, rule pair { <key=.identifier>'='<value=.identifier>} still works but rule pair { <key=.identifier>'='<value=.identifier> } does not (not the space before the closing brace
15:39 ZoffixW Even though third example here works regardless of the extra space before closing brace in the `rule`: http://docs.perl6.org/langu​age/grammars#Named_Regexes
15:40 pmurias zengargoylew: it's declared as \h* in the example
15:41 zengargoylew ah, gotcha
15:42 zengargoylew but if you comment out the ws in the example doesn't it then fallback to the predefined ws?
15:43 ZoffixW Ah, I see now. The predefined ws takes that \n+ in token TOP. Thanks, zengargoylew++
15:44 ab6tract joined #perl6
15:44 ab6tract o/ #perl6
15:44 ab6tract regarding object hashes again...
15:44 ZoffixW \o
15:45 ab6tract m: my $now = DateTime.now; my %h; say %h{$now} if $now === %h.keys[0];
15:45 camelia rakudo-moar : ( no output )
15:45 ab6tract so it's not actually storing the object in the key after all
15:45 ab6tract or is that because it is now in a new container?
15:46 moritz ab6tract: it only autovivifies on write operations
15:46 ab6tract arg, that test case is borked
15:46 ab6tract m: my $now = DateTime.now; my %h; %h{$now} = "now is now!"; say %h{$now} if $now === %h.keys[0];
15:46 camelia rakudo-moar : ( no output )
15:47 ab6tract m: my $now = DateTime.now; my %h; %h{$now} = "now is now!"; say %h{$now} if $now === %h.keys[0]; %h.keys[0].WHAT.say
15:47 camelia rakudo-moar : OUTPUT«(Str)␤»
15:47 CIAvash joined #perl6
15:47 ab6tract so it looks like this is still doing the old $obj.WHICH ..
15:48 ab6tract moritz: am i still holding it wrong? :(
15:48 JimmyZ It still doesn't Objectk key, iirc
15:48 JimmyZ *doesn't support
15:50 ab6tract JimmyZ: ah.. TimToady did write the "object hash" a while ago. i asked after the semantics last night, because they are not documented afaict
15:50 ab6tract m: say "green" === my $green = "green"
15:50 camelia rakudo-moar : OUTPUT«True␤»
15:50 moritz ab6tract: you should declare 'my %h{Any}' I believe
15:51 ab6tract i also thought this was a bit weird... bare string is not the same as containerized string, no?
15:51 moritz m: my $now = DateTime.now; my %h{Any}; %h{$now} = "now is now!"; say %h{$now} if $now === %h.keys[0]; %h.keys[0].WHAT.say
15:51 camelia rakudo-moar : OUTPUT«now is now!␤(DateTime)␤»
15:51 dalek doc: 9e9b82a | (Zoffix Znet)++ | doc/Language/grammars.pod:
15:51 dalek doc: Explain why token ws {} is in the example
15:51 dalek doc: review: https://github.com/perl6/doc/commit/9e9b82a8f6
15:52 ab6tract moritz: Ah! thank you
15:52 TimToady m: my %h := :{now => "NOW!"}; say %h.perl
15:52 camelia rakudo-moar : OUTPUT«:{:now("NOW!")}␤»
15:53 TimToady m: my %h := :{(now) => "NOW!"}; say %h.perl
15:53 camelia rakudo-moar : OUTPUT«:{Instant.new(<425849244517/294>) => "NOW!"}␤»
15:53 moritz ab6tract: doc patches are also very welcome :-)
15:54 TimToady m: my %h := :{42.000 => "NOW!"}; say %h.perl
15:54 camelia rakudo-moar : OUTPUT«:{42.0 => "NOW!"}␤»
15:54 ab6tract moritz: that's my end game :)
15:54 loren joined #perl6
15:54 TimToady there's your literal form
15:54 ab6tract TimToady: does it require a bind?
15:54 loren evening, perl6
15:54 TimToady yes, in that case
15:54 loren m: say "".elems;
15:54 camelia rakudo-moar : OUTPUT«1␤»
15:55 loren Why a empty Str's elems is '1'
15:55 ab6tract m: "".comb.elems.say
15:55 camelia rakudo-moar : OUTPUT«0␤»
15:55 khw joined #perl6
15:55 ab6tract loren: because that is the equivalent of calling elems on a list of one item
15:56 ab6tract if we looked into the source, we would probably find elems defined on Any such that it calls .List.elems
15:56 loren .., i think it's a little strange
15:56 masak Perl 6 deliberately confuses a 1-element list and a single item.
15:57 masak it's... unusual, yes.
15:57 ab6tract (or .list.elems  ... still not 100% on the functional differences between the two
15:57 hankache joined #perl6
15:57 masak but Perl 5 basically does the same, except with less type system.
15:57 ab6tract loren: it's only strange if you are expecting .elems on a string to refer to characters, at which point you would probably also expect to be able to index into the string
15:57 loren I haven't noticed that
15:58 ab6tract neither of which perl has ever cottoned to, afaik
15:59 loren ..Ok, get it .
16:00 loren m: say "xxxx".elems; #This will print also '1', aha?
16:00 camelia rakudo-moar : OUTPUT«1␤»
16:00 loren ..-_-
16:01 ab6tract m: say
16:01 camelia rakudo-moar : OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/BLsu1h0rut:1␤------> 3say7⏏5<EOL>␤Other potential difficulties:␤    Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argume…»
16:01 ab6tract m: say "xxxx".comb
16:01 camelia rakudo-moar : OUTPUT«(x x x x)␤»
16:01 TimToady languages that confuse strings with arrays can't really do NFG properly, I suspect
16:01 jnthn TimToady: I've been having a bit of a cleanup of Supply, to resolve a number of issues and untangle things.
16:01 ab6tract yeah, some languages like to treat strings as lists of characters
16:02 loren Yeah, i come from c++, so ..
16:02 zengargoylew m: put
16:02 camelia rakudo-moar : OUTPUT«␤»
16:02 TimToady jnthn: so I gather
16:02 jnthn No, gather is for lists :P
16:02 ab6tract TimToady: so what's your take?
16:02 * zengargoylew wonders if say error should mention put also.
16:02 jnthn TimToady: Very little of it affects existing code, BUT the place it will is a big one :(
16:03 TimToady I take it I should read your very long commit message
16:03 jnthn Yes, please :)
16:03 TimToady should get to it pretty soon in the backlog, if y'all don't keep saying interesting things :)
16:03 jnthn Ignore the last line of the message; I did a mis-edit.
16:03 arnsholt jnthn: Is there a synonym of the shape syntax that lets me use a $ sigil instead of the @?
16:04 jnthn arnsholt: No, you'd need to pass :shape to the consturctor
16:04 arnsholt Right. Thanks!
16:04 timotimo m: class Foo { has @.test[10] }
16:04 camelia rakudo-moar : ( no output )
16:04 timotimo ^- we can support that in NativeCall now! ohmygosh!
16:05 hankache evening
16:05 hankache :)
16:08 Skarsnik timotimo, maybe add a test in NC for it? (whatever it is!) xD
16:10 hankache how's everyone doing?
16:11 * moritz can't speak for everyone
16:12 * CIAvash didn't know there was a `put` routine!
16:12 arnsholt jnthn: Oh, right. 'Cause the shape isn't part of the type, is it? Only the type parameter is
16:13 jnthn arnsholt: It is under the hood; we hide it somewhat
16:13 jnthn arnsholt: To be clear: the number of dimensions are part of the type
16:14 jnthn The sizes of them aren't
16:14 TimToady so we can have dynamically sized dimensions eventually
16:15 arnsholt Right, right. That meshes with what I've seen in Array.pm, come to think of it. So then something like "my CArray[int] $foo" would be unspecified as regards to number of dimensions, right?
16:15 jnthn m: my ($a, $b) = 3, 4; my @x[$a;$b]; say @x.shape; # Like this, TimToady? :)
16:15 camelia rakudo-moar : OUTPUT«(3 4)␤»
16:16 TimToady oh, jnthn distributes the future!
16:16 loren good night, everyone
16:16 TimToady *ooh
16:16 dalek doc: 910fa06 | (Zoffix Znet)++ | doc/Language/exceptions.pod:
16:16 dalek doc: Fix grammar
16:16 dalek doc: review: https://github.com/perl6/doc/commit/910fa068bc
16:16 dalek perl6-roast-data: 45a472a | coke++ | / (9 files):
16:16 dalek perl6-roast-data: today (automated commit)
16:16 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/45a472accf
16:18 TimToady .tell zengargoyle yes, I decided to keep | where it was, and if we want a slipper at so/not precedence, call it something else, like "sl" or some such, but then its not really saving keystrokes over |(1..10)
16:18 yoleaux TimToady: I'll pass your message to zengargoyle.
16:18 jnthn There's already slip at listop precedence :)
16:19 TimToady yes, but that doesn't help inside the comma
16:19 jnthn true :)
16:20 TimToady it's a little late to claim "slip" for that, and make "slip-all-the-things" for the listop...
16:21 TimToady so we'll probably leave things a the |(1..10) status quo
16:21 TimToady *at
16:21 TimToady **unless you're French
16:22 dalek doc: 9bb938f | (Zoffix Znet)++ | doc/Language/exceptions.pod:
16:22 dalek doc: Grammar / clarification
16:22 dalek doc: review: https://github.com/perl6/doc/commit/9bb938f80b
16:29 arnsholt jnthn: For a declaration like "my @foo[2; 3] is Foo of Bar" the Foo.new constructor gets called twice, first without and then with the shape parameter. Whence the first one?
16:30 jnthn Um... :)
16:30 timotimo jnthn: hum. so we can't actually do CArray with @.test[10]?
16:30 jnthn arnsholt: I'm not actually sure.
16:31 arnsholt timotimo: Not *yet* =)
16:31 timotimo well, if the size of the dimensions isn't part of the type ... then what?
16:34 arnsholt jnthn: Hmm, nm. On closer inspection looks like I'm wrong =)
16:34 arnsholt I think
16:37 TimToady jnthn: supply vs publish is a bit of a mixed metaphor; did you consider "Supplier"?
16:37 dwarring joined #perl6
16:37 [Coke] is '⅓'.unival.WHAT.gist, '(Rat)', "'⅓' is a Rat"; --- that shouldn't need a gist to check if it's a Rat
16:39 TimToady probably predates 'is' handling type objects
16:40 lucasb m: my @a[-1]
16:40 camelia rakudo-moar : OUTPUT«Memory allocation failed; could not allocate 18446744073709551608 bytes␤»
16:40 TimToady m: use Test; is ⅓.WHAT, Rat, "I smell a rat!"
16:40 camelia rakudo-moar : OUTPUT«ok 1 - I smell a rat!␤»
16:40 arnsholt jnthn: Actually, I was wrong about being wrong. There are two calls:
16:40 arnsholt m: class Foo does Positional { method new(:$shape) { say "shaped {?$shape}/{$shape.^name}"; nqp::create(self) }; }; my @foo[2;3] is Foo
16:40 camelia rakudo-moar : OUTPUT«shaped False/Any␤shaped True/List␤»
16:41 arnsholt So if I make the shape required it fails:
16:41 arnsholt m: class Foo does Positional { method new(:shape($)!) { say "shaped"; nqp::create(self) }; }; my @foo[2;3] is Foo
16:41 camelia rakudo-moar : OUTPUT«===SORRY!===␤Required named parameter 'shape' not passed␤»
16:43 jnthn TimToady: I pondered Supplier, and worried if it'd be a tad close to Supply
16:43 timotimo "SupplySource"
16:43 jnthn I wanted one word. :)
16:44 jnthn TimToady: It does fit nicely though.
16:44 TimToady how often will the "Publisher" name occur in normal code?
16:44 jnthn I'm not entirely sure (more)
16:44 mst Quartermaster
16:45 timotimo Sourcepply
16:45 jnthn If code that's doing async I/O, time-based stuff, and working with existing supplies, nearly never
16:45 jnthn *In
16:45 jnthn In code that's exposing live supplies (like, a UI framework that wants to provide a supply of UI events), maybe it'd show up somewhat. Depends how you factor it.
16:45 jnthn In the "I want to expose a supply people can tap for status updates", it'd be common
16:46 timotimo .o( we can encode the size of an inlined array in CArray as the number of dimensions )
16:46 jnthn I went with publisher largely because in the case you use it, you actually are wanting to do a kind of publish/subscribe model.
16:46 TimToady we could put them on the Dole :)
16:46 jnthn The other thing on this
16:47 raiph joined #perl6
16:47 zengargoylew Producer
16:47 jnthn We'd like a method where you can take one supply (an on-demand one typically, but either way one where you're doing some processing) and be able to share its results out (as a live supply).
16:48 jnthn And publish is a nice name for such a method.
16:49 TimToady "share" is shorter, and you just used that word :)
16:49 jnthn Very true. :)
16:49 jnthn I could happily call it share. But I don't want to call the noun a SharingPlatter :)
16:50 jnthn Sharer feels really odd :)
16:50 jnthn I'd rather go with Supplier than either of those :)
16:50 mst I liked Quartermaster :(
16:51 mst "the thing you get your supplies from"
16:51 jnthn Dealer
16:51 timotimo Treasurer
16:51 domidumont joined #perl6
16:51 mst (I am not seriously proposing it because it's probably non-obvious to many people but ...)
16:53 arnsholt timotimo: Not if we want to support multi-dimensional C arrays (which are a thing too =)
16:54 TimToady I suspect people could easily learn to distinguish Supply from Supplier, and the relationship would, I suspect, be more obvious
16:54 jnthn arnsholt: The memory layout of MultiDimArray matches how C lays things out, I believe
16:54 timotimo arnsholt: damn it.
16:54 jnthn (I actually looked that up when working on the REPR)
16:54 timotimo jnthn: yeah, we just can't easily encode multi-dimensional array sizes in the number of dimensions
16:54 timotimo so that CStruct can work with inlined arrays
16:55 TimToady though to be sure, "share" doesn't imply doling things out in a sane fashion, like an allowance
16:56 ab6tract mst: Quartermaster reminds me of a Jamie Oliver recipe where he offhandedly suggests that you ask your fishmonger to debeard your mussels
16:56 TimToady maybe there's a better verb for how suppliers feed a supply chain
16:56 TimToady unfortunately, "supply" is taken...
16:56 jnthn TimToady: Maybe so. I think we can go with Supplier as the name, anyway.
16:56 geekosaur provision?
16:56 jnthn (For what I called Publisher)
16:57 jnthn distribute maybe works...
16:57 lucs dispenser?
16:57 domidumont joined #perl6
16:57 arnsholt jnthn: Looks like the first, shape-less invocation of the constructor comes from Perl6::World; install_lexical_container calling build_container. Ring any bells?
16:57 TimToady distribute isn't too bad
16:58 domidumont joined #perl6
16:58 jnthn arnsholt: Hmmm
16:58 jnthn Yeah, I know what bit of code that is :)
16:59 TimToady though in the commercial metaphor, distributor is downstream rather than upstream like your suppliers, but maybe that's just fine here, since a supplier's downstream entities are distributors to them
17:00 TimToady automakers are distributors of batterys :)
17:02 arnsholt jnthn: Since it's being constructed by ::World, there's a good reason for it I can't avoid? =)
17:03 jnthn arnsholt: There may not be a good reason
17:05 jnthn arnsholt: Could you try this patch: https://gist.github.com/jnthn/34266189529166caa286
17:05 jnthn (Bit busy on something else at the moment... :))
17:06 arnsholt Yeah, I'm semi-busy right now too, but I'll try it later tonight and get back to you. Cheers!
17:08 jnthn ok, cool :)
17:12 FROGGS joined #perl6
17:13 vytas joined #perl6
17:16 ZoffixW joined #perl6
17:17 ZoffixW Should unit class IRC::Client::Plugin::HNY:ver<1.001001> does IRC::Client::Plugin; be sufficient or do I actually have to `use IRC::Client::Plugin;` first?
17:17 ZoffixW I'm getting "Invalid typename 'IRC::Client::Plugin'"
17:17 jnthn Need a use first.
17:17 ZoffixW aw :(
17:19 TimToady we could make 'unit' special that way, I suppose...but then people might think it's 'class' that is doing the magic
17:20 ZoffixW I'd kinda expected `does` to do the magic
17:20 TimToady hard to know where the balance point is on that, since you could pull in the wrong thing by accident with a typo
17:21 TimToady though usually a typo won't exist
17:21 jnthn It'd be a bit surprising to have a unit => curlies refactor break the code.
17:22 donaldh joined #perl6
17:22 jnthn ZoffixW: In Perl 6, class/role <=> compilation unit are fairly decoupled.
17:22 donaldh pwd
17:22 jnthn /home/donaldh/illegal_things
17:22 ZoffixW :)
17:23 * donaldh ahem
17:23 jnthn .oO( So that's where he keeps his secret Perl 7 plans... )
17:23 donaldh Does perl6 have a way of augmenting USAGE with POD?
17:23 TimToady autouse would also encourage people to spread dependency info all over the program, which could be construed as an antipattern, unless it's a keep-things-nearby pattern :)
17:24 ZoffixW Is there something wrong with this? I'm getting "/home/zoffix/devbox/tmp/perl6-​IRC-Client/lib/IRC/Client.pm6" and looks like it on the code inside the tap. I thought it'd close over or something
17:24 ZoffixW m: class Foo { multi method timer () { 1 }; multi method timer(Str) {say "42"} }; my @plugins = Foo.new; Supply.interval( .timer ).tap({ .timer("43") }) for @plugins.grep(*.^can('timer'));
17:24 camelia rakudo-moar : ( no output )
17:24 jnthn I think if you put declarator docs on the MAIN subs, they go into usage.
17:24 ZoffixW And I can't repro in camelia :/
17:25 timotimo ZoffixW: .timer is $_.timer, so maybe you want something else there?
17:25 timotimo i mean in the Supply.interval( ... ) thing
17:25 timotimo m: say .timer
17:25 camelia rakudo-moar : OUTPUT«Method 'timer' not found for invocant of class 'Any'␤  in block <unit> at /tmp/I3IpnmpcYz:1␤␤»
17:25 ZoffixW timotimo, hehe... well, inside the .tap({}) I do want the $_.timer, but where $_ is an item from @plugins
17:25 z8 joined #perl6
17:25 timotimo ooh!
17:26 timotimo yeah, now i see the postfix for :)
17:26 timotimo i hallucinated a ; there
17:29 ZoffixW This works: http://fpaste.scsys.co.uk/501918
17:29 ZoffixW I guess there's no way to do a postfix for() AND have something to close over.
17:29 timotimo please be more specific?
17:29 timotimo oh!
17:30 timotimo well, duh, { $_.foo } will always give you a closure that takes a single argument and puts it into $_
17:30 timotimo try OUTER::$_ ?
17:30 timotimo m: $_ = "hi"; do { say OUTER::$_ }
17:30 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/JpJ_Ji_R7C␤Malformed lookup of ::$_; please use ::('$_'), ::{'$_'}, or ::<$_>␤at /tmp/JpJ_Ji_R7C:1␤------> 3$_ = "hi"; do { say OUTER7⏏5::$_ }␤»
17:30 timotimo m: $_ = "hi"; do { say $OUTER::_ }
17:30 camelia rakudo-moar : OUTPUT«hi␤»
17:30 timotimo m: $_ = "hi"; say $OUTER::_ for <1 2 3>
17:30 camelia rakudo-moar : OUTPUT«hi␤hi␤hi␤»
17:30 timotimo m: $_ = "hi"; say $_ for <1 2 3>
17:30 camelia rakudo-moar : OUTPUT«1␤2␤3␤»
17:30 timotimo does that help?
17:31 mst ZoffixW: timer seems a really weird name for a method providing an interval?
17:31 mst also now there's no way for a plugin to decide maybe it doesn't want to have one
17:31 ZoffixW Yeah, $OUTER::_ works :) Thanks, timotimo++ (Perl 6)++
17:31 timotimo mst: it's even stranger to me to have a candidate that takes a string and returns a constant string :D
17:31 mst timotimo: hm?
17:31 timotimo not important
17:32 mst ZoffixW: seems like you'd be better allow the interval value to return 0 and then providing a default implementation that does that in the plugin role
17:32 timotimo should there be a way for things to declare they "don't want to have one"? why should a child be allowed to specify it doesn't want to have broccoli?
17:32 timotimo sometimes you really do know better!
17:32 * timotimo AFK for a bit
17:32 mst timotimo: uhhh, he's testing can()
17:32 timotimo oh!
17:32 mst so he's already decided it's optional
17:32 ZoffixW Yeah, it is optional.
17:32 mst I'm just proposing a nicer way to make it optional
17:32 timotimo well, shows how much of the code example i read!
17:32 mst lol
17:33 ZoffixW And yeah, currently I have an issue that I want my role to have something like: multi method interval() { ... } and then have ... stuff
17:33 ZoffixW k, I'll do the return 0 stuff
17:33 ZoffixW and call it interval mst++
17:33 TimToady on the subject of Unicode-isms, I think I'm also in favor of building in the simple literal powers with superscripts as postfixes, for similar reasons: 1) It's trivial to implement, 2) it's a well-known notation, 3) the tight binding of postfixes actually works out more intuitively than **, 4) most powers in real code are literal (indeed, most powers are ² or ³ :), and 5) mathies will love it to pieces.
17:34 ZoffixW But.. but... Math::Operators::Superscripts ...
17:34 ZoffixW http://modules.perl6.org/repo/​Math::Operators::Superscripts
17:34 ZoffixW :D
17:35 TimToady well, it's a nice prototype :)
17:35 ZoffixW TimToady, but I agree. Since there's the fractions stuff it'd kinda expected powers would work too.
17:35 TimToady but one of our big principles is, "Math just is."
17:36 TimToady the question to me is actually whether we draw the line at making 1½ work :)
17:36 ZoffixW lol
17:36 Hotkeys lol
17:37 TimToady and I'm of two minds about that...
17:37 Hotkeys I can't be bothered to figure out how to easily type superscripts so I'll stick to the x ** y notation :p
17:37 pmurias joined #perl6
17:38 TimToady someone will eventually write a "pretty this to Unicode" program
17:38 ZoffixW .tell hahainternet I recall you really wanted those superscript powers: http://irclog.perlgeek.de/p​erl6/2015-11-25#i_11598216
17:38 yoleaux ZoffixW: I'll pass your message to hahainternet.
17:39 ZoffixW Hotkeys, sure, but if you type them all the time and you're typing them off from some paper that uses proper powers and your program will be looked at by something who's not "really" a programmer... :)
17:40 TimToady for sure we can't make ⅔r³ work without introducing a bad prefix vs term ambiguity, but 1½ has no such difficulty
17:40 ZoffixW Oh, it's Operators::Math::Superscripts
17:40 Hotkeys ZoffixW: fair enough
17:42 ZoffixW m: multi postfix:<½> ($n) { $n - .5 };  say 1½
17:42 camelia rakudo-moar : OUTPUT«0.5␤»
17:42 ZoffixW ehehe. Perl 6++ :)
17:43 ZoffixW minus the math error :P
17:43 Hotkeys isn't 1½ 1.5?
17:43 ZoffixW yeah
17:43 ZoffixW Should be + instead of - :)
17:43 Hotkeys just checking for my sanity's sake
17:43 Hotkeys :p
17:43 gtodd after christmas I can't wait for perl6 (and 5)   start saving the planet ... the way it saved Human Genome Project :-)
17:43 gtodd http://worrydream.com/ClimateChange/
17:44 ZoffixW \o/
17:44 Hotkeys perl 6 saved the human genome project?
17:44 ZoffixW Wait, perl saved the genome... that
17:44 gtodd perl5 :-D
17:44 ZoffixW I guess this is based on a true story: https://xkcd.com/208/
17:44 ZoffixW :)
17:45 Hotkeys I didn't click the link but I knew exactly what it was
17:46 Hotkeys also this comic describes me when I learned regex
17:46 ZoffixW :P
17:46 Skarsnik 250Mb? now we need a big data DB to handle this at least!
17:47 ZoffixW m: multi prefix:<⅔> ($n) { $n * 2/3 }; multi postfix:<⅔>($n) { $n + 2/3 }; multi postfix:<³>($n){ $n**3 };  my \r = 2; say [1⅔,  ⅔r³ ]
17:47 camelia rakudo-moar : OUTPUT«[1.666667 5.333333]␤»
17:47 ZoffixW This is magical :P
17:48 Hotkeys now make it work for any power/fraction :p
17:48 gtodd hehe ... in the section on model-driven [reading/authoring/debate] on http://worrydream.com/ClimateChange/  Mr. Victor asks  "What if there were an npm for scientific models?"  ... but but why can't CPAN be the gold standard?!
17:49 Hotkeys m: ⅔.uninames
17:49 camelia rakudo-moar : OUTPUT«Cannot call uninames(Rat); none of these signatures match:␤    (Str:D $str)␤  in block <unit> at /tmp/ed9LMIRzMf:1␤␤»
17:49 Hotkeys huh
17:49 ZoffixW m: ⅔.Str.uninames
17:49 camelia rakudo-moar : ( no output )
17:49 ZoffixW m: say ⅔.Str.uninames
17:49 camelia rakudo-moar : OUTPUT«(DIGIT ZERO FULL STOP DIGIT SIX DIGIT SIX DIGIT SIX DIGIT SIX DIGIT SIX DIGIT SEVEN)␤»
17:49 Hotkeys m: ⅔.nude
17:49 camelia rakudo-moar : ( no output )
17:49 Hotkeys er
17:50 ZoffixW heh
17:50 Hotkeys m: say ⅔.nude
17:50 camelia rakudo-moar : OUTPUT«(2 3)␤»
17:50 Hotkeys fancy
17:50 Hotkeys I didn't realize these already worked as rats
17:50 ZoffixW m: "⅔".uninames
17:50 camelia rakudo-moar : ( no output )
17:50 ZoffixW curses
17:50 ZoffixW m: say "⅔".uninames
17:50 camelia rakudo-moar : OUTPUT«(VULGAR FRACTION TWO THIRDS)␤»
17:50 ZoffixW Oh, I didn't realize I was being vulgar...
17:50 Hotkeys lol
17:51 jnthn TWO &*%!ING THIRDS
17:51 Hotkeys m: say "³".uninames
17:51 camelia rakudo-moar : OUTPUT«(SUPERSCRIPT THREE)␤»
17:52 jnthn Time for dinner; bbl
17:52 gtodd m: my %thing.push: <q w e r t y> ; say "there" if "q" ~~ %thing ;  say "there" if  %thing.values ~~ /w/ ;
17:52 Hotkeys m: say 3³
17:52 camelia rakudo-moar : OUTPUT«there␤there␤»
17:52 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/jvNkWWErA1␤Bogus postfix␤at /tmp/jvNkWWErA1:1␤------> 3say 37⏏5³␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statement end␤        statement modifier␤ …»
17:53 Hotkeys I like the use of bogus
17:53 gtodd why doesn't:   say "there" if "w" ~~ %thing.values    work?
17:53 gtodd or why do I feel like it should work :-\
17:54 Hotkeys m: my %thing.push: <q w e r t y>; say %thing
17:54 camelia rakudo-moar : OUTPUT«e => r, q => w, t => y␤»
17:55 ZoffixW m: my @a = 1, 2, 0, False, 42, True; @a.grep(*).say
17:55 camelia rakudo-moar : OUTPUT«(1 2 0 False 42 True)␤»
17:55 ZoffixW ENOTMAGICALENOUGH
17:55 ZoffixW m: my @a = 1, 2, 0, False, 42, True; @a.grep(so *).say
17:55 camelia rakudo-moar : OUTPUT«(1 2 42 True)␤»
17:56 ZoffixW cool
17:56 Hotkeys so?
17:56 ZoffixW m: say 'foo' ~~ /foo/; say so 'foo' ~~ /foo/;
17:56 camelia rakudo-moar : OUTPUT«「foo」␤True␤»
17:56 ZoffixW Converts to boolean
17:56 Hotkeys I didn't know this existed
17:57 Hotkeys I was looking for something like this a couple weeks ago
17:57 ZoffixW :)
17:57 molaf joined #perl6
17:58 vendethiel joined #perl6
17:58 raiph joined #perl6
17:58 rurban joined #perl6
17:59 lucasb joined #perl6
18:02 ZoffixW Hm. I wonder how that new CompUnit stuff will work with circular references. I've got IRC::Client that `use`s IRC::Client::Plugin just for the sake of saying has IRC::Client::Plugin @.plugins; and in IRC::Client::Plugin I have `use IRC::Client` for the sake of having a method interval (IRC::Client) { ... } :/
18:02 ZoffixW Maybe I should avoid using those as types.
18:03 ilmari can't you forward-declare the class?
18:03 ZoffixW Not sure what that is... is it  class IRC::Client { ... }
18:03 ZoffixW literally
18:03 nine yes
18:03 ZoffixW Thanks. I'll try
18:04 Hotkeys I've been doing irc plugin stuff too what a coincidence
18:04 Hotkeys and by doing
18:04 Hotkeys I mean not doing
18:04 Hotkeys but intend to do at a future time
18:05 Hotkeys because I was trying to figure out the best way to load and unload plugins and then just kind of stopped working on my irc thing
18:05 ZoffixW I'm making a Perl 6 version of my New Years bot (https://metacpan.org/pod/App::IRCBot::NewYears) and showcase Perl 6 at Freenode's New Years party. People constantly notice the bot and ask what lang it's written in. Would be nice to broadcast Perl 6's existence :P
18:06 Hotkeys I'm just making (and by making I mean the same as I did with doing above) a general IRC bot for shenanigans etc.
18:07 ZoffixW Cool :)
18:07 raiph joined #perl6
18:07 Hotkeys Do you know a simple way to load and unload plugins?
18:08 Hotkeys specifically the unloading part
18:08 ZoffixW Seems like I *can't* forward-declare the class: "The following packages were stubbed but not defined: IRC::Client::IRC::Client::Plugin"
18:08 ZoffixW Hotkeys, what do you mean by unloading?
18:08 ZoffixW Just have an $!is-active attribute and set/unset it
18:09 Hotkeys I guess that would be the smart thing to do
18:09 Skarsnik unloading the code :)
18:10 Hotkeys what about like
18:10 Hotkeys hot reloading plugins
18:10 Hotkeys is that an unadvisable thing
18:11 rindolf joined #perl6
18:11 ZoffixW Probably :)
18:11 ZoffixW No idea how to do that in P6
18:11 Hotkeys Me either
18:11 Skarsnik The issue is decision like purging the symbole table for the module or not
18:11 psch joined #perl6
18:11 Skarsnik require reload the file
18:11 Skarsnik like in p5
18:12 pink_mist I think hot reloading plugins is an inadvisable thing in every language I've heard of :P if it wasn't in P6, I'd be (even more) amazed (than I already am)
18:12 Skarsnik in perl5 to do that it was something like that : delete the module entry in @INC, requiere on it
18:13 pink_mist Skarsnik: that wouldn't be clean ... you really ought to do more than that
18:13 Hotkeys I know someone who did it with a python bot
18:13 Hotkeys not sure if it was advisable
18:13 Hotkeys but
18:13 Hotkeys he did :p
18:13 Skarsnik but it work :)
18:13 ab5tract pink_mist: is there an actually "clean" way to do it in P5?
18:13 ab5tract as i understand it, is a long open and unsolved problem
18:14 ab5tract *it is
18:14 ab5tract unless you had the forethought to never import a sub and always use it fully namespaced
18:14 Skarsnik and it really make sens for a IRC BOT
18:14 gtodd m: my %thing.push: <q w e r t y> ; say "there" if "q" ~~ %thing ;  say "there" if "w" ~~ any(%thing.values) ;
18:14 camelia rakudo-moar : OUTPUT«there␤there␤»
18:14 nine That ClimateChange site is somewhat depressing
18:15 gtodd why is the "any" needed for %thing.values ( alist?)  but not for %thing ?  is there a "default" for "~~" against arrays  ?
18:16 ZoffixW Oh wow. Two modules using each other actually freezes perl6
18:16 nine ZoffixW: yes, we did have protection against that, but it's broken. It's on my TODO list for curli
18:16 ZoffixW k :)
18:16 gtodd nine: ... we are going to have fight on the same team to survive :-|
18:16 ZoffixW nine++ # fixing things
18:17 gtodd nine: should become obvious at some point ... but  possibly a bit too late
18:18 nine gtodd: it's the interactive "world carbon emissions (in GtCO2/yr) and carbon budget" diagram that makes it seem almost hopeless
18:19 * ZoffixW plans to just hitch a ride with Elon Musk to Mars
18:19 gtodd :-D you said "almost" =-D
18:19 Hotkeys gfodd what's wrong with "thing" ~~ any @foo
18:19 spider-mario joined #perl6
18:20 TimToady too much carbon on Mars as well, relative to oxygen :)
18:20 Hotkeys smart match "thing" with any of @foo
18:20 ZoffixW :)
18:20 nine TimToady: well you can hardly make it worse there ;)
18:20 Hotkeys we just need to put more oxygen there TimToady no problem
18:20 TimToady well, really you mostly need more hydrogen
18:21 ZoffixW TimToady, not true actually! There're two oxygens for every carbon! :P
18:21 Hotkeys lol
18:21 TimToady and install a magnetic field, while you're at it
18:21 DrForr So it's already got a head start on carbon sinks.
18:21 Hotkeys we just need to reactivate mars geologically
18:21 Hotkeys no problem
18:21 Hotkeys get that core all hot and bothered
18:21 TimToady that would take...some patience
18:22 DrForr Bruce Willis will save us!
18:22 ZoffixW Meh, dig a hole. Underground city. Problem solved :P
18:22 Hotkeys I prefer dome cities
18:22 TimToady till the next fire drill
18:22 Hotkeys much more futuristic
18:23 gtodd Hotkeys: nothing wrong with it ... just wonder why the junctions aren't automagical ... I thought they were at one point
18:23 ZoffixW And there's likely more of that briny water they recently discovered. Split that up with electrolysis. Boom: you got oxygen to breath and hydrogen to make fuel (CH4) and moar oxygen
18:23 gtodd m:  (1,2,3,4,5) ~~ (*,2,3,*)
18:23 camelia rakudo-moar : ( no output )
18:23 DrForr That *does* increase the risk that Arnold Schwarzenegger will have to save you, not worth the risk IMO.
18:23 ZoffixW :)
18:23 gtodd m:  say "magic" if (1,2,3,4,5) ~~ (*,2,3,*)
18:23 camelia rakudo-moar : ( no output )
18:23 ZoffixW m: say  (1,2,3,4,5) ~~ (*,2,3,*)
18:23 camelia rakudo-moar : OUTPUT«False␤»
18:24 TimToady m: say  (1,2,3,4,5) ~~ (**,2,3,**)
18:24 camelia rakudo-moar : OUTPUT«True␤»
18:24 ZoffixW 0.o whoa!
18:24 TimToady * now is just a single smartmatch
18:24 gtodd oh right
18:24 gtodd forgot about that change
18:24 TimToady m: say  (1,2,3,4,5) ~~ (**,2,*,4,**)
18:24 camelia rakudo-moar : OUTPUT«True␤»
18:25 TimToady m: say  (1,2,3,4,5) ~~ (**,Int,*,Int,**)
18:25 camelia rakudo-moar : OUTPUT«True␤»
18:25 TimToady because we made that work
18:25 ZoffixW 0.o
18:25 psch ZoffixW: your forward declaration for IRC::Client::Plugin didn't work because it was inside IRC::Client, btw
18:25 cdg joined #perl6
18:25 ZoffixW I thought I tried the other way too
18:25 * ZoffixW tries again
18:26 gtodd and "**" is read as "any number of smartmatches"  ?
18:26 psch the other way should work, although i don't know how that interacts with the statement level package declarator
18:26 TimToady kinda ties in with the multi-dimensional notion
18:26 ZoffixW psch, "Too late for unit-scoped class definition; Please use the block form." **uses block form** "The following packages were stubbed but not defined: IRC::Client::Plugin"
18:27 psch ZoffixW: huh.  is that gisted or so somewhere?
18:28 ZoffixW psch, here: https://github.com/zoffixznet/perl6-IRC-Client
18:28 ZoffixW psch, you can run examples/bot.pl6 to see the error
18:28 arnsholt jnthn: Patch removes the shape-less constructor. Running spectest now
18:29 ZoffixW psch, and here I'm doing the forward declaration and I only really need it for line 13: https://github.com/zoffixznet/perl6-IRC-​Client/blob/master/lib/IRC/Client.pm6#L2
18:29 Hotkeys pff what kind of nick limit is 9 chars
18:30 psch ZoffixW: i'll look closer in a moment
18:30 ZoffixW Hotkeys, RFC1459? :)
18:30 Hotkeys pff
18:31 Ihavemorethan9ch close enough
18:31 nine Seems like build on JVM is broken again: Error while compiling op unipropcode (source text: "nqp::unipropcode(\"NumericValueNumerator\")"), no registered operation handler
18:31 FROGGS nine: I'd continue with writing tests, or is there anything else I should look into?
18:31 gtodd smartmatch against a hash seems to match "any (%hash.keys)" automagically  as in  my %hash = <A B C D> ; "A" ~~ %hash ;
18:31 nine FROGGS: tests sound good :) I have cleaned a couple of spec tests yesterday in the roast/curli branch
18:31 ZoffixW m: say "Ihavemorethan9ch".chars
18:31 camelia rakudo-moar : OUTPUT«16␤»
18:32 psch nine: i'm working around that right now
18:32 FROGGS nine: my plan was to write tests for creating CURI's and installing into them
18:32 psch with dummy getuniprop_str and unipropcode (and only matching unum when when we're on moar)
18:32 FROGGS nine: dunno what tests in that area exist already
18:33 nine FROGGS: other missing pieces are $?REPO and detecting loops when loading modules. The latter involves communicating a list of loading modules to the precomp process
18:33 gtodd but then for the values you need to explicitly say "B" ~~ any (%hash.values) ;  ... gaak I don't need to worry if it once upon a time used to not be like that :-)
18:33 FROGGS nine: okay, I stick with tests :o)
18:33 Hotkeys interesting, rfc 2813 also has "
18:33 Hotkeys Each user is distinguished from other users by a unique nickname having a maximum length of nine (9) characters. "
18:33 nine FROGGS: acking for CompUnit in roast is enlightening :)
18:33 Hotkeys oops newline
18:34 FROGGS nine: oh, good idea
18:34 dalek rakudo/curli: 9345857 | jnthn++ | src/core/ThreadPoolScheduler.pm:
18:34 dalek rakudo/curli: Fix thinko in scheduler that swallowed exceptions.
18:34 dalek rakudo/curli:
18:34 dalek rakudo/curli: Deals with a bunch of silent failures that made debugging harder.
18:34 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/9345857f0d
18:34 ZoffixW heh
18:35 dalek joined #perl6
18:35 FROGGS nine: cool, there are no install tests yet
18:36 nine FROGGS: the tests that are still failing may also give some inspiration
18:36 FROGGS true
18:38 rigsby joined #perl6
18:39 kjs_ joined #perl6
18:40 psch oh ffs
18:40 psch r: say  nqp::getcomp('perl6')
18:40 pink_mist <ab5tract> pink_mist: is there an actually "clean" way to do it in P5? <-- sorry, was off ... there's modules that can remove things from a namespace, but I don't know if they're 100% at what they do
18:40 camelia rakudo-jvm 4d8a90: OUTPUT«===SORRY!===␤java.l​ang.NullPointerException␤»
18:40 camelia ..rakudo-moar: OUTPUT«Method 'gist' not found for invocant of class 'Perl6::Compiler'␤  in block <unit> at /tmp/tmpfile:1␤␤»
18:40 psch no .gist i'm ok with
18:40 psch grmbl
18:42 zengargoylew somebody once pointed out that the thing to do was load the module in a Safe and then dispose of the Safe when done with the module...
18:43 Hotkeys a Safe? (not in docs.perl6.org)
18:44 ZoffixW It's in a safe place...
18:44 ZoffixW badum tsss
18:44 Hotkeys oh you
18:44 zengargoylew nah, in P5
18:44 Hotkeys oh
18:44 Hotkeys whoops
18:44 Hotkeys is there anything similar in the six?
18:47 hahainte1net oh thanks ZoffixW
18:47 zengargoylew i sorta expect/expected p6 to be all restricted scopelike that a use/require of something is only visible to the block that does it (and inner things).
18:48 hahainternet and thanks TimToady for unicode superscripts, but you should not leave out $x₁ and $x₂ being legit variable names :)
18:48 yoleaux 17:38Z <ZoffixW> hahainternet: I recall you really wanted those superscript powers: http://irclog.perlgeek.de/p​erl6/2015-11-25#i_11598216
18:48 Sqirrel joined #perl6
18:48 zengargoylew sorta like: blah; ...; { use Foo; blah; ...; } # Foo is totally not a thing out of the block.
18:49 TimToady hahainternet: I'm kinda dubious of that one, in particular due to 1-based vs 0-based assumptions
18:49 Hotkeys just let $x_0 also exist :p
18:49 hahainternet TimToady: alphabetic subscripts are also permitted
18:49 hahainternet so $x_a and $x_b for example
18:50 hahainternet i just think these characters should be permitted in variable names
18:50 TimToady Hotkeys: $x_0 already exists :P
18:50 hahainternet rather than any special handling
18:50 Hotkeys I meant with subscript :p
18:50 Hotkeys I just cba to figure out how to type subscripts in the windows
18:50 Hotkeys without too much effort
18:51 hahainternet depends on how your compose key works, i'm not sure how to do subscript as on Debian
18:51 Hotkeys I don't think I have a compose key
18:51 hahainternet but regardless, doing y_a and y_b for your different variable names are common
18:51 Hotkeys is that like the any key?
18:51 uruwi[A] x₀
18:51 hahainternet Hotkeys: it's shift + altgr for me
18:51 zengargoylew compose + _ + 1
18:51 * uruwi has WinCompose
18:52 vike joined #perl6
18:52 gtodd m: say "Ƹ̵̡Ӝ̵̨̄Ʒ" ;
18:52 camelia rakudo-moar : OUTPUT«Ƹ̵̡Ӝ̵̨̄Ʒ␤»
18:53 * zengargoylew wanted to update the How to input Unicode part of the docs, but decided it was too hard. :P
18:53 ZoffixW Hotkeys, not knowing how to type it and cba to learn how to type it are poor arguments for letting $x₀ be a thing :P
18:53 FROGGS looks a bit ill in my client
18:54 Hotkeys did you mean not letting
18:54 Hotkeys and if you did I am not at all against them
18:54 zengargoylew plus, Debian and probably others using iBus has sorta broken XCompose functionality anyways.
18:54 hahainternet FROGGS: the subscript and superscript fonts are mostly ignored
18:54 hahainternet and i typed those on debian so
18:55 ZoffixW Hotkeys, no I meant "for letting" :) If you have trouble typing them, that means you'll likely won't use them :P
18:55 hahainternet the only way these will get any attention is when something properly supports their use
18:55 hahainternet and i see no difference between $y1, $y2 and $y₁ and $y₂
18:55 Hotkeys They should still be allowed though
18:55 ZoffixW m: multi term:<x₀> { 42 }; say x₀
18:55 camelia rakudo-moar : OUTPUT«42␤»
18:56 zengargoylew hahainternet: what do you mean fonts are ignored?  i'm on debian and see sub/super scripts just fine.
18:56 ZoffixW hahainternet, the latter is much harder to type :P
18:56 hahainternet zengargoylew: certain alphabetic subscripts don't exist in unicode at all, and many are not included in your 'regular' fonts
18:56 Hotkeys if we can't get subscripts on scalars can we use them for arrays ;p
18:56 hahainternet so they look weird as they're brought in from other fonts
18:57 ZoffixW Even if you set them as compose sequences, it's more time
18:57 hahainternet ZoffixW: so?
18:57 hahainternet it also takes longer to use uppercase letters
18:57 Hotkeys eg @x₁
18:57 hahainternet should they be restricted in variables?
18:57 Hotkeys :D
18:57 ZoffixW lol fair enough :P
18:57 hahainternet i mean, it really doesn't take long to do shift + altgr + _ + 0
18:57 zengargoylew ah, codepoint vs formatting.
18:58 Hotkeys that combo uses my whole hand :P
18:58 gtodd .u U+1F98B
18:58 yoleaux No characters found
18:58 hahainternet for ² and ³ on debian you can cheat and just hold altgr + press 2,3
18:58 hahainternet but they are 'third level keys' and are documented so incredibly poorly you'd be lucky to find a list anywhere
18:58 uruwi joined #perl6
18:58 hankache joined #perl6
18:58 * uruwi wonders why there is still no superscript -1
18:59 hahainternet $x¯¹
18:59 hahainternet it's two characters
18:59 ZoffixW I don't have those
18:59 ZoffixW The "hold altgr + press 2,3" I mean
18:59 hahainternet ZoffixW: what are you on?
18:59 ZoffixW LSB Version:core-2.0-amd64:core-2.0-noarch:co​re-3.0-amd64:core-3.0-noarch:core-3.1-amd​64:core-3.1-noarch:core-3.2-amd64:core-3.​2-noarch:core-4.0-amd64:core-4.0-noarch
18:59 ZoffixW Distributor ID:Ubuntu
18:59 ZoffixW Description:Ubuntu 12.04 LTS
18:59 ZoffixW Release:12.04
18:59 ZoffixW Codename:precise
19:00 uruwi Actually, I'd prefer an option that's one character wide.
19:00 ZoffixW Oopps Sorry. I thought that would be one line
19:00 hahainternet ah i don't know anything about ubuntu i'm afraid
19:00 Hotkeys who is it that mentioned wincompose
19:00 Hotkeys just got it and this is wonderful
19:00 uruwi I mentioned it
19:00 hahainternet uruwi: then you should go talk to the unicode standard types, because i want $x_c too :)
19:00 ZoffixW hahainternet, it's a fork of debian, so I'd imagine stuff would be similar
19:00 hahainternet ZoffixW: it was a fork of debian a long time ago
19:00 hahainternet now it's a testing platform for mark shuttleworth's broken ideas ;)
19:00 ZoffixW hehe :P
19:01 hahainternet anyway yeah, holding altgr is the 'third level' selection, so your distro may configure it differently
19:01 FROGGS m: use Test; is ::('Foo'), Failure, '...'  # :/
19:01 camelia rakudo-moar : OUTPUT«not ok 1 - ...␤␤# Failed test '...'␤# at /tmp/FWeST2YcbN line 1␤# expected: (Failure)␤#      got: (Failure)␤»
19:01 hahainternet for compose sequences for superscripts it's hold shift + altgr, ^ then the number
19:01 ZoffixW hahainternet, oh, I was just trying my Compose key
19:01 hahainternet ¹³³⁷
19:02 zengargoylew depends on tweaks,  my compose is rightwindowskey on one machine and capslock on another.
19:02 hahainternet anyhow TimToady my feeling is, if it's in unicode and it has unambiguous use in maths or computing, there's no reason we shouldn't support it, but i know it's easy to say that without me doing the implementation
19:02 timotimo
19:02 ZoffixW dammit... Worked once with Compose+shift+6, but now it doesn't :S something's borked
19:02 hahainternet so i will try and put some more time into learning nqp
19:02 Hotkeys uruwi[A]: subscripts won't work for me :(
19:02 hahainternet ZoffixW: shift + altgr first, in that order
19:02 ZoffixW timotimo, was the Weekly published for this week?
19:02 hahainternet it's a bit wacky
19:03 ZoffixW hahainternet, same difference
19:03 hahainternet ZoffixW: weird, wish i could help i'm afraid
19:03 gtodd U+1F98B (butterfly) is recommended for Unicode 9
19:03 ZoffixW
19:03 hahainternet i assume … is ... in p6 too
19:03 ZoffixW That looks like a ballsack on my screen
19:04 hahainternet i don't have that font char :(
19:04 ZoffixW hahainternet, http://irclog.perlgeek.de/p​erl6/2015-11-25#i_11598956
19:04 hahainternet wait, i'm confused
19:04 hahainternet what's with the link?
19:04 El_Che had a great few hours at work transposing perl5 regex into the perl6 dialect
19:05 El_Che nice
19:05 ZoffixW hahainternet, oh. Usually when I can't see chars on IRC, they show up fine in the browser.
19:05 Hotkeys m: say (1…3).perl
19:05 camelia rakudo-moar : OUTPUT«(1, 2, 3).Seq␤»
19:05 Hotkeys ayy
19:05 hahainternet ZoffixW: oh really? that shouldn't be the case!
19:05 hahainternet the same font selection should be carried out
19:05 hahainternet bloody ubuntu :p
19:06 ZoffixW hahainternet, not if you use different fonts for IRC/Browser :P
19:06 ZoffixW I don't want fixed-width fonts in the browser :P
19:06 hahainternet ZoffixW: it doesn't actually use a single font you know
19:07 hahainternet when a font doesn't have a particular glyph
19:07 hahainternet it pulls said glyphs from other fonts
19:07 ZoffixW I highly doubt that
19:07 Hotkeys wincompose isn't doing anything that requires shift key for me
19:07 Hotkeys :(
19:07 ZoffixW hahainternet, anyway. here's that char: http://i.imgur.com/JSvLkVp.png
19:07 geekosaur depends on the client
19:07 hahainternet ZoffixW: https://en.wikipedia.org/wiki/Fallback_font
19:08 hahainternet https://wiki.archlinux.org/index.php​/Fonts#Fallback_font_order_with_X11
19:08 hahainternet it's a real thing, believe me or not ;)
19:08 geekosaur I note that hexchat on most Debian-derivatives does not handle codepoints > U+FFFF
19:10 cdg joined #perl6
19:10 psch welp, there goes my workaround for <unum> on jvm
19:10 Hotkeys oh
19:10 psch we don't have the compiler object yet during Grammar or Actions compilation, which i probably should've been aware of... :)
19:10 Hotkeys I figured it out
19:10 ZoffixW hahainternet, ah OK. You meant a fallback font. I thought you meant it goes over a bunch of my installed fonts, trying to find some chars.
19:11 Hotkeys you dont have to hold the compose key
19:11 Hotkeys I'm a goof
19:11 ZoffixW You don't?
19:11 ZoffixW Whoa!
19:11 Hotkeys for wincompose
19:11 ZoffixW Hotkeys++
19:11 Hotkeys idk about linoox
19:11 hahainternet ZoffixW: that is ultimately how it works, see the second link
19:11 Hotkeys but if it works
19:11 Hotkeys then np
19:11 Hotkeys :p
19:11 hahainternet you can control the order in which it searches :)
19:11 ZoffixW Damn. And now the superscript stuff works ⁶¹²
19:12 hahainternet and yeah sorry was i not clear about compose, it's shift+hold, press altgr and release both on Debian
19:12 hahainternet swank :D
19:12 Hotkeys $x₃
19:12 hahainternet it's a unicode party!
19:12 Hotkeys ¹²³⁴⁵
19:12 Hotkeys this is so useful
19:12 psch i suppose the alternative is throwing NYI when we get dummy values back from unipropcode and getuniprop_str...
19:12 Hotkeys Imean not incredibly but
19:12 Hotkeys yknow
19:12 ZoffixW hahainternet, I've been holding compose while typing "—" for a good 5-6 years :P
19:12 Hotkeys haha
19:12 hahainternet ZoffixW: D: i'm so sorry
19:13 psch 'cause i'm not implementing those on r-j right now vOv
19:13 hahainternet psch: i don't know if i mentioned i saw what you did, and i thank you greatly for it
19:13 psch hahainternet: uh, what? :)
19:14 hahainternet psch: your module the other day
19:14 hahainternet when we were discussing unicode super/subscripts etc
19:14 psch hahainternet: oh, the superscript slang?  that was just poking around towards making it work - it doesn't (or didn't for me) work
19:14 hahainternet still deserves a thanks
19:14 Hotkeys thanks uruwi[A] now I am a unicode god
19:14 Hotkeys ok brb going to lecture
19:14 psch hahainternet: FROGGS++ can probably give you pointers towards actually making it work, fwiw
19:18 FROGGS umm, what?
19:19 FROGGS ahh, slangs :o)
19:19 psch https://gist.github.com/pe​schwa/7202b9f622de517cd881 this one
19:19 * psch afk for a bit
19:20 flussence I don't see it mentioned above so: all the compose keycombos are in /usr/share/X11/locale/en_US.UTF-8/Compose (seems to be the case here even though that's not my system locale)
19:21 TimToady it is quite certain that, if keyboard manufacturers added an explicit Compose key, they'd put it in the wrong place
19:21 zengargoylew time to pack up from work and start the awesome 4½ day weekend
19:22 ZoffixW flussence++ sweet
19:22 arnsholt jnthn: There's a spectest break with your patch. t/spec/S02-types/is-type.t bails with the error "Cannot modify an immutable BagHash" after test number 8 (t/spec/S02-types/is-type.rakudo.moar:39)
19:22 MadcapJake joined #perl6
19:22 hankache zengargoylew 4 and a half!! I am jealous
19:23 zengargoylew maybe that will be enough free time to figure out adding =data to POD! :)
19:23 ZoffixW Doesn't seem to be accurate tho. I see "<Multi_key> <backslash> <o> <slash> : "🙌"", but pressing that sequence does nothing
19:23 Hotkeys TimToady: even if they just renamed the right alt button that'd be okay
19:23 Hotkeys I never use right alt anyway
19:23 * ZoffixW uses right Windows key for Compose
19:24 nine Note to self: if you set ENV vars _after_ running the sub process, no debugging in the world will make it see the variable...
19:24 retupmoca zengargoylew: have you seen Data::Section::Simple ?
19:24 * Hotkeys has no right windows key
19:24 flussence 🙌 wfm
19:24 Hotkeys only left
19:24 * retupmoca has no idea if it actually works, fwiw
19:24 Hotkeys and I use left windows key to open things
19:24 cdg joined #perl6
19:24 Hotkeys hit left windows key, type part of name, hit enter
19:24 zengargoylew just remap it to whatever you want.  caps-lock seems to suit me best.
19:24 Hotkeys hope windows got what I wanted to open right
19:24 MadcapJake What am I doing wrong in this: https://gist.github.com/Madc​apJake/0089315a03c13e30c514
19:25 leont joined #perl6
19:25 Hotkeys that seems reasonable zengargoylew, the only real use for capslock is yelling
19:25 ZoffixW MadcapJake, age is private?
19:25 Hotkeys even then I often hold shift
19:25 ZoffixW MadcapJake, oh, I'm blind never mind
19:26 MadcapJake ZoffixW: Just trying to play with declaring custom accessors
19:26 zengargoylew sadly you can't really mix XCompose and iBus
19:26 retupmoca MadcapJake: $!age is private - you either need to make it public '$.age' or write a custom submethod BUILD
19:26 MadcapJake oh you can't do it with `new`?
19:27 retupmoca self.bless(...) will only initialize public attributes by default
19:27 zengargoylew iBus 'borrows' some of the standard XCompose mappings but not all, and doesn't read ~/.XCompose
19:27 ZoffixW How about that. I was right :P
19:27 MadcapJake ohh, what exactly is the difference between `new` and `BUILD`?
19:28 arnsholt new has to actually construct the object; for example using low-level primitives like nqp::create
19:28 arnsholt BUILD only has to initialize an already constructed object
19:28 ZoffixW MadcapJake, this might be helpful: http://docs.perl6.org/language/objects#Submethods
19:29 yqt joined #perl6
19:30 zengargoylew retupmoca: i'm not sure Data::Section::Simple is actually supposed to be possible.  still need to ask TimToady about that.
19:30 arnsholt http://docs.perl6.org/languag​e/objects#Object_Construction (linked to from the submethod section) is more relevant
19:31 zengargoylew the =finish section it's using is *supposed* to be POD according to the S26
19:31 retupmoca zengargoylew: Ah, ok. I don't actually know anything about it, other than "it exists"
19:32 kjs_ joined #perl6
19:32 zengargoylew i'm not sure if current handling of =finish is an accident in implementation or a change in spec....
19:35 MadcapJake so it goes `new` -> `bless` -> `BUILDALL` -> { `Mu.BUILD`, `Any.BUILD`, ... , `self.BUILD` }
19:36 * zengargoylew commute &
19:37 MadcapJake so when would you ever want to override `new`?
19:39 jnthn arnsholt: Hm, are those tests about "is Foo" on state vars?
19:39 cdg joined #perl6
19:39 jnthn arnsholt: If so, one was passing bogusly and one was failing and todo'd already, so I'd be fine with skipping them both
19:39 TimToady MadcapJake: if you wanted a positional interface, for one thing
19:39 hankache MadcapJake i do it to pass positional arguments instead of named
19:42 MadcapJake ok cool!  I get it, which route would you take for doing a "named constructor" paradigm, perhaps turn `new` into a multi method?
19:47 xfix joined #perl6
19:48 retupmoca I usually do 'multi method new', but I've also done 'method otherName { self.bless(...) }' as well
19:49 dalek roast/curli: a138e08 | FROGGS++ | S11-repository/curli-install.t:
19:49 dalek roast/curli: add tests for installing into a CURI
19:49 dalek roast/curli: review: https://github.com/perl6/roast/commit/a138e086ae
19:49 FROGGS nine: ^^
19:49 FROGGS not much, but it is a start
19:50 dalek rakudo/curli: 7155a27 | FROGGS++ | t/spectest.data:
19:50 dalek rakudo/curli: run test file S11-repository/curli-install.t
19:50 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/7155a27447
19:51 nine FROGGS: a good start :)
19:53 ZoffixW joined #perl6
19:54 ZoffixW Is the colon instead of () for method calls only for builtins?
19:54 arnsholt jnthn: Yeah, it's the state %h is BagHash one
19:54 ZoffixW $.ssay: $msg;   # $.ssay:⏏ $msg; expecting any of: colon pair
19:57 ZoffixW Kinda weird we have both "Classes and Objects" and "Object Orientation" in the docs
19:57 eliasr joined #perl6
19:58 psch m: class A { method ssay($a) { say $a }; method foo { self.ssay: "foo" } }; A.new.foo
19:58 camelia rakudo-moar : OUTPUT«foo␤»
19:58 psch ZoffixW: $. in a class doesn't exactly mean self, only somewhat
19:58 psch (i'm not sure on the exact difference...)
19:58 ZoffixW psch++, ok, thanks
20:02 zacts joined #perl6
20:02 * flussence just replaced some ridiculous «$sock.print:("rn" RX~ @lines).join» hack in an old one-off script with a way more readable lexical «use newline :crlf»  :D
20:03 mst RX~ ?
20:03 flussence R[X[&infix:<~>]]
20:04 arnsholt mst: R reverses the argument order of an infix
20:04 leont That is rather awful…
20:04 yoleaux 22 Nov 2015 09:01Z <FROGGS> leont: I try to golf it down to a testcase
20:04 flussence looks cute but takes 15 minutes to figure out wtf it does first time...
20:04 arnsholt Yeah. Why not "@lines X~ "\r\n"" though?
20:05 TimToady why no tjust RX~ ?
20:05 TimToady oh, that's what you have
20:05 flussence arnsholt: @lines was a bunch of quoted strings in the actual code, it *was* slightly easier to follow by putting the line ending up front instead of having it dangling
20:06 TimToady sure, end-weight is important sometimes, and the usual reason for using R
20:06 arnsholt Ah, right. That makes sense, yeah
20:06 ZoffixW Someone said P6's S/// is the same as P5's s///r, but I don't see S/// in the docs nor specs and I can't figure out how to actually use it.
20:06 ZoffixW m: say 'foo' ~~ S/foo/foos/;
20:06 camelia rakudo-moar : OUTPUT«Potential difficulties:␤    Smartmatch with S/// can never succeed because the subsequent string match will fail␤    at /tmp/J7GZIfOmVj:1␤    ------> 3say 'foo' ~~ S/foo/foos/7⏏5;␤False␤»
20:06 TimToady R/ often has a big hairy thing to be divided by something simple
20:07 ZoffixW s///r is "return the result instead of trying to assign it"
20:07 TimToady ~~ is not "the binding operator" in P6
20:07 TimToady it's the smartmatch operator
20:07 TimToady it happens to topicalize as well
20:08 flussence that error message could probably use a "Did you mean '='?" then
20:08 flussence wait, that's wrong
20:08 dalek roast: b287fb8 | arnsholt++ | S02-types/is-type.t:
20:08 dalek roast: Skip bogus is Foo on state variables.
20:08 dalek roast: review: https://github.com/perl6/roast/commit/b287fb8de9
20:08 TimToady but you can't use it *only* for topicalization unless your RHS returns something that is a known success/failure value
20:08 ZoffixW Then what's the right way to use S///?
20:08 TimToady m: say S/foo/foos/ with 'foo';
20:08 camelia rakudo-moar : OUTPUT«foos␤»
20:09 ZoffixW Oh
20:09 * ZoffixW never heard of with
20:09 TimToady m: say S/foo/foos/ given 'foo';
20:09 camelia rakudo-moar : OUTPUT«foos␤»
20:09 flussence S/// works on $_, for everything else you'd need .subst
20:09 ZoffixW m: say S/foo/foos/ for 'foo'
20:09 camelia rakudo-moar : OUTPUT«foos␤»
20:09 ZoffixW cool
20:10 TimToady m: say ("foo" andthen S/foo/foos/)
20:10 camelia rakudo-moar : OUTPUT«foos␤»
20:10 flussence m: given 'foobar' { my $baz = S[(.)$0] = 'xx'; dd $_, $baz }
20:10 camelia rakudo-moar : OUTPUT«Str $var = "foobar"␤Str $var = "fxxbar"␤»
20:10 colomon /me did not realize S/// was a thing.  s///, sure.  But S?
20:11 TimToady m: "foo" ~~ say S/foo/foos/)
20:11 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/TjHOET_HLw␤Unexpected closing bracket␤at /tmp/TjHOET_HLw:1␤------> 3"foo" ~~ say S/foo/foos/7⏏5)␤»
20:11 TimToady m: "foo" ~~ say S/foo/foos/
20:11 camelia rakudo-moar : OUTPUT«foos␤»
20:12 TimToady so there's lots of ways to do it, just not the one you want
20:12 TimToady but I figgered it would be better to fail in that case than to try to dwim
20:12 ZoffixW I went with:   $!debug and say ".privmsg({$msg.subst("\n", "␤", :g)})";
20:13 dalek rakudo/nom: 6313051 | arnsholt++ | src/Perl6/World.nqp:
20:13 dalek rakudo/nom: Be more specific about when to create container types.
20:13 dalek rakudo/nom:
20:13 dalek rakudo/nom: jnthn++ for the patch.
20:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/63130515ce
20:13 Skarsnik .subst is easier to use x)
20:13 ZoffixW It reminds me of JavaScript... and I'm not a huge fan of JavaScript :)
20:14 flussence m: use newline "␤".pred; say 'hi!';
20:14 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/m9RZGS6Hi3␤Error while importing from 'newline':␤no EXPORT sub, but you provided positional argument in the 'use' statement␤at /tmp/m9RZGS6Hi3:2␤------> 3".pred7⏏5; say 'hi!';␤»
20:15 flussence m: OUR::<$?NL> := "␤".pred; say 'hi!';
20:15 camelia rakudo-moar : OUTPUT«hi!␤»
20:15 timotimo ZoffixW: it wasn't publihed for this week yet :(
20:15 flussence m: BEGIN OUR::<$?NL> := "␤".pred; say 'hi!';
20:15 camelia rakudo-moar : OUTPUT«hi!␤»
20:15 ZoffixW timotimo, ok :)
20:16 flussence m: BEGIN OUR::<$?NL> := "␤".pred; say $?NL.perl;
20:16 camelia rakudo-moar : OUTPUT«"\n"␤»
20:16 ZoffixW timotimo, wait until next week and do a double-feature :)
20:16 flussence m: BEGIN OUR::<$?NL> := "\x[2423]"; say $?NL.perl;
20:16 camelia rakudo-moar : OUTPUT«"\n"␤»
20:17 dalek rakudo/curli: 5344dfd | (Stefan Seifert)++ | src/core/CompUnit (3 files):
20:17 dalek rakudo/curli: Fix circular module loading detection and error messaging
20:17 dalek rakudo/curli: review: https://github.com/rakudo/rakudo/commit/5344dfdab1
20:18 nine ZoffixW: ^^^
20:18 ZoffixW weee
20:18 ZoffixW nine++
20:18 ZoffixW nine, but does that mean it's impossible to have two modules `use` each other?
20:18 nine ZoffixW: yes and that's a good thing ;)
20:19 nine ZoffixW: the solution to your problem really is predeclaring the class.
20:19 ZoffixW Hm. But that means I have a real usecase for which P6—with all its might—doesn't exist.
20:19 ZoffixW nine, but I've tried that and I'm getting errors
20:19 ZoffixW s/doesn't exist/can't solve/;
20:20 ZoffixW nine, http://irclog.perlgeek.de/p​erl6/2015-11-25#i_11598614
20:20 timotimo ZoffixW: i'm afraid i'll end up doing it double-feature style next week, yeah :|
20:22 dalek rakudo/nom: 6ca14ad | peschwa++ | src/Perl6/ (2 files):
20:22 dalek rakudo/nom: Restrict <unum> matching to moar.
20:22 dalek rakudo/nom:
20:22 dalek rakudo/nom: NQP-J doesn't have (proper) getuniprop_str or unipropcode yet, so we work
20:22 dalek rakudo/nom: around that.
20:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6ca14ada06
20:23 psch uhm
20:23 psch no one build HEAD on jvm right now... :P
20:24 lichtkind joined #perl6
20:25 dalek nqp: efd48d6 | peschwa++ | src/vm/jvm/ (2 files):
20:25 dalek nqp: Implement stubs for getuniprop_str and unicodeprop.
20:25 dalek nqp: review: https://github.com/perl6/nqp/commit/efd48d63e6
20:25 dalek rakudo/nom: d4b93ab | peschwa++ | tools/build/NQP_REVISION:
20:25 dalek rakudo/nom: Bump NQP_REVISION for nqp::unipropcode and nqp::getuniprop_str stubs.
20:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d4b93ab50c
20:26 psch there, all better \o/
20:27 TEttinger joined #perl6
20:29 nine ZoffixW: your issue must be solvable. I'm sure of that. I'm also too tired right now to find the solution :/
20:29 ZoffixW Alright. I'll mention it again some time in the future :)
20:29 jnthn arnsholt: Feel free to fudge those and push the patch. :)
20:30 psch ZoffixW: the obvious fix would moving Plugin.pm inline into Client
20:30 psch ZoffixW: that's a bit eh, though, for obvious reasons
20:30 arnsholt jnthn: Already done! =D
20:30 ZoffixW right
20:31 psch ZoffixW: but stubbing the *role* IRC::Client::Plugin outside of IRC::Client works as expected :P
20:32 jnthn arnsholt: Indeed, now I caught up with the backlog :)
20:32 jnthn ZoffixW: If two things are so tightly coupled that they want a typed circular dependency, they probably deserve to be in the same compilation unit (e.g. module)
20:33 kid51 joined #perl6
20:33 psch ZoffixW: as in s/class/role/ in lib/IRC/Client.pm6:2
20:33 ZoffixW psch, oohhh.. Damnit. right :D
20:34 jnthn Oh, or was pre-decl just being done wrong and they were in the same... :)
20:34 ZoffixW jnthn, nah, all I needed is a way to say   has My::Role $bar; in one of my classes and it can be done by stubbing. The reason I was getting errors is because I was stubbing it with class My::Role { ... } instead of role My::Role { ... }
20:34 ZoffixW psch++
20:34 jnthn Aye, I thought you were trying to have them over two files :)
20:35 ZoffixW jnthn, yeah, they *are* in two different files :)
20:35 geraud joined #perl6
20:35 ZoffixW And stubbing lets you avoid `use`ing the other file
20:36 ZoffixW Or at least it works right now :P (it gets `use`d by other stuff).
20:38 Skarsnik do you have a gist of how your irc client work? I nearly want to rewrite one for me x)
20:42 ZoffixW Skarsnik, examples/bot.pl6 in this repo: https://github.com/zoffixznet/perl6-IRC-Client/
20:43 ZoffixW Skarsnik, for some values of "work" though. I merely managed to get it join a channel and spam with an Interval every 5 seconds :)
20:44 Skarsnik "Nicks can only be 9-chars long max." that untrue for most irc server x)
20:44 ZoffixW Skarsnik, yeah, I'll remove that restriction soon.
20:44 hahainternet if you're writing an irc client
20:44 hahainternet do not hardcode line length
20:44 hahainternet while most ircds are limited to 512 or whatever
20:44 hahainternet it's now common to change that
20:45 hahainternet bloody irssi
20:45 ZoffixW noted ;)
20:45 pink_mist hahainternet: is there any way the server can communicate line length to you upon connection though?
20:45 hahainternet pink_mist: it does so as part of its capabilities doesn't it?
20:46 lucasb m: say Mu === Mu
20:46 camelia rakudo-moar : OUTPUT«Cannot call infix:<===>(Mu, Mu); none of these signatures match:␤    ($?)␤    ($a, $b)␤    (Int:D \a, Int:D \b)␤    (int $a, int $b)␤    (Num:D \a, Num:D \b)␤    (Num $ where { ... }, Num $ where { ... })␤    (num $a, num $b --> Bool)␤    (Str:D …»
20:46 pink_mist I've never seen that bit in the caps
20:46 lucasb should '===' be defined to work with Mu too?
20:46 ZoffixW pink_mist, Freenode sends NICKLEN=16
20:46 pink_mist ZoffixW: no, line length, not nick lenght
20:46 ZoffixW err
20:46 pink_mist *length
20:46 jnthn lucasb: Generally operators are not.
20:47 jnthn lucasb: If they were, junction auto-threading wouldn't work.
20:47 geekosaur don't see a line length in freenode's stuff, but freenode uses the rfc default
20:47 hahainternet pink_mist: just hopping on perl irc, no line length there i can see
20:47 lucasb jnthn: ok, thanks
20:47 pink_mist hahainternet: yeah, I've never heard of any ircd that didn't have 512 as limit
20:48 ZoffixW pink_mist, don't see anything: http://fpaste.scsys.co.uk/501930
20:48 lucasb the proto is: proto sub infix:<===>(Mu, Mu)
20:48 hahainternet pink_mist: there are many, i've had people whining at me to modify so they can do improved ascii spam for example
20:48 lucasb but the actual multi doesn't use Mu, so I think it defaults to Any
20:48 hahainternet so, worth making it configurable
20:48 ZoffixW Hm. There's "CHANNELLEN=50 NICKLEN=9 TOPICLEN=490 AWAYLEN=127 KICKLEN=400" I'm sure there's a *LEN for line lengths
20:49 pink_mist hahainternet: well without knowing what the capability is called, it's hard to know how to configure it :P
20:49 hahainternet pink_mist: consider sending test lines
20:49 hahainternet that's probably the best way to tell
20:49 pink_mist that's ... not something I'd want a client doing every time it connects
20:50 hahainternet why not? that's a standard part of any connection
20:50 hahainternet negotiating capabilities
20:50 hahainternet it's literally part of IP
20:50 ZoffixW I get ERROR :Request too long
20:50 pink_mist of IP, sure, but not IRC ... the server may not even allow you enough of a buffer to do it
20:51 hahainternet if the server doesn't give you enough of a buffer to send a 1k long line
20:51 hahainternet then that ircd is broken
20:51 hahainternet i think 512 is a good default
20:51 hahainternet but all i'm saying is, don't make it hardcoded
20:51 hahainternet as i've had to deal with the result of that and it's bloody annoying :D
20:53 ZoffixW Don't see anything: http://www.irc.org/tech_docs/005.html
20:53 ZoffixW And there's like a million *LEN
20:53 ZoffixW Including the maximum *targets* of a PRVMSG -_-
20:54 ZoffixW CRAP!
20:54 ZoffixW Missed my bus -_
20:54 ZoffixW Lol. Now I'm gonna have to sit here for another 15 minutes :)
20:56 Ribbit joined #perl6
20:57 masak ZoffixW: time enought to write at least one Perl 6 script ;)
20:57 masak enough*
20:57 ZoffixW :P
20:58 raiph joined #perl6
21:01 dalek rakudo/resupply: d781934 | jnthn++ | src/core/Supply.pm:
21:01 dalek rakudo/resupply: Tap.close should be something True.
21:01 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/d781934d01
21:01 dalek rakudo/resupply: fd732ce | jnthn++ | src/core/Supply.pm:
21:01 dalek rakudo/resupply: Rename Publisher to Supplier.
21:01 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/fd732ce0bc
21:02 Skarsnik ZoffixW, how I will write a irc bot stuff https://gist.github.com/Ska​rsnik/734f88458584af90ba54 if you want some idea xD
21:03 ZoffixW Skarsnik, how un-Perl-6-ish to use on_disabled instead of on-disabled :P
21:04 ZoffixW OMG XML!
21:04 ZoffixW Skarsnik, I'd definitely choose JSON :P
21:04 Skarsnik I don't know xml/yml syntax
21:04 Skarsnik xml is dumb to write x)
21:04 Skarsnik *Json
21:05 ZoffixW What?
21:05 ZoffixW What does "*Json" mean? You don't know JSON syntax? JSON is dumb to write?
21:05 Skarsnik let's do it again. I am not familiar with JSON syntax
21:06 Skarsnik and XML is dumb/easy to write
21:06 ZoffixW Skarsnik, I'll teach you:   [ "a", "list", "of", "things" ], { key: "value", "or anther key": "value", "even": { "nested": ["stuff", "is", "fine"] } }
21:07 ZoffixW Skarsnik, end of lesson :)
21:07 hahainternet not quite, json has some slight weirdnesses
21:07 ZoffixW Skarsnik, and you have to learn it anyway. P6 distros META files are in JSON :)
21:07 Skarsnik I copy paste everytime!
21:08 kjs_ joined #perl6
21:08 ZoffixW Skarsnik, JSON also has true/false/null that are written literally, without quotes
21:08 hahainternet also has no date format
21:08 hahainternet also has no way to order hash keys
21:08 * ZoffixW leaves to catch the bus this time
21:08 hahainternet also has a licensing restriction that you must do nothing 'bad' or 'evil'
21:08 hahainternet can't remember which
21:08 Skarsnik I have nothing against json lol, it was just easier to write xml quicly here xD
21:08 hahainternet i still use json regardless as it's the best of a bad bunch imho
21:08 hahainternet yaml is probably better structured
21:09 hahainternet but json is missing a bunch of things that should have been better thought out
21:09 hahainternet but javascript lol
21:09 timotimo our json parser is already slow, better not make the format more complicated :(
21:11 Skarsnik I had a weird perl5 IRC 'sdk' it's like 50 lines, all it does is connecting to irc, load/unload pm file, you can write the whole thing without stopping your bot once x)
21:12 Skarsnik related: I should port my Acme::IRC::Art on perl6
21:13 Skarsnik but irc color is a nightmare to debug with all irc client not acting the same
21:14 diakopter___ joined #perl6
21:24 _28_ria joined #perl6
21:33 dalek rakudo/resupply: 0a8ab76 | jnthn++ | src/core/Supply.pm:
21:33 dalek rakudo/resupply: API cleanup; avoid some is-* and other not.
21:33 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/0a8ab76d70
21:33 dalek rakudo/resupply: 0c4e50f | jnthn++ | src/core/ (5 files):
21:33 dalek rakudo/resupply: Update code to use new Supplier model.
21:33 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/0c4e50f18e
21:35 gfldex S32 says about .getc "Returns a Str type object if no more lines to be read."
21:35 gfldex rakudo does: nqp::chars($c) ?? $c !! Nil
21:35 gfldex who is right?
21:35 Juerd jnthn: Is there a chance that the new Supply stuff makes my mqtt module less slow?
21:36 jnthn Juerd: Maybe, depends where the bottleneck is.
21:37 timotimo the bottleneck is somewhere different
21:37 psch gfldex: getc return value on EOF isn't tested in roast, from what i can see
21:37 timotimo the mqtt thing only uses 5% cpu
21:37 timotimo somewhere it's sleeping
21:37 Juerd jnthn: I wish I knew what its bottleneck was. Given a burst of TCP packets, they trickle slowly in the supply... :|
21:37 jnthn Ah, then likely not
21:38 jnthn But supply throughput has got better, so far as I can tell
21:38 jnthn Something that ran for nearly 7s before now runs in 0.7s now.
21:38 timotimo whoa!
21:38 timotimo how the hell?!
21:38 jnthn Design. :P
21:38 Juerd (For perspective: the packets are tiny, and it's only a few dozen in a second)
21:39 Juerd jnthn: Impressive! What causes this speedup?
21:39 timotimo design!
21:39 timotimo say it with me, y'all!
21:40 jnthn Juerd: Probably avoiding a load of locking
21:41 jnthn By adopting a partially-lock-free thing on the common path
21:41 Juerd That'll be great for almost everything. Great job :)
21:42 jnthn Throughput of supply pipelines in general should get a bunch better when you start chaining operations on.
21:42 jnthn (Compared to how it was before)
21:42 Juerd I notice in the mqtt thing that sometimes, but only sometimes, it'll output 10 to 20 lines at once, whereas normally it does about two per second.
21:43 Juerd So it can be done :)
21:43 Juerd Is there a way to see what it's blocking on, in all the threads?
21:44 jnthn Not easily; our debugging tooling for threaded stuff is nearly non-existent so far. :(
21:44 timotimo jnthn: where do i look to figure out how to make my Int @foo[2;2] = (1, 2; 3, 4); work?
21:44 jnthn Array.pm
21:44 timotimo just looked through Rakudo::Internals
21:44 jnthn It'll likely be a fail in there somewhere
21:45 jnthn I can't quite guess what.
21:45 Juerd jnthn: That's okay, I'll just try this project again in a year or so :)
21:45 Juerd Built what I needed in Perl 5. It's good to have that as a fallback :D
21:45 timotimo 'k
21:46 jnthn Damn, I'm a factor of two off being able to say that if you turn off the safety valve you can shove a million messages per second through a supply.
21:46 TimToady get a faster computer
21:47 TimToady or better yet, just do some more design!
21:47 jnthn :)
21:48 Juerd jnthn: use less <safety>? :)
21:48 Juerd use more <design>;
21:48 timotimo jnthn: it hits the STORE(Array:D: Iterable:D \iterable) candidate in Array rather than the STORE(::?CLASS:D: Iterable:D \in) candidate in ShapedArray
21:48 Juerd Together, it'll beat quantum computers.
21:48 jnthn If we really want to nail supply performance somebody should perhaps design us a trace JIT...
21:48 jnthn timotimo: oops. :)
21:49 timotimo this couldn't possibly have something to do with what someone else found today about the constructor being called twice with different things?
21:49 jnthn timotimo: That's the problem then. Can you stick a proto in to "force" it to disregard the other one?
21:49 jnthn No
21:49 timotimo the proto is right in front of that candidate :)
21:49 jnthn ohhh
21:50 jnthn Does the method new inside of TypedArray have a clue about shapes?
21:50 jnthn If not, then I suspect *that* is the fail
21:50 timotimo let's see. possibly not :)
21:50 timotimo yeah, doesn't accept a shape parameter
21:50 timotimo i'll cargocult from Array.new, probably
21:51 jnthn yeah
21:52 timotimo should i also port the "\values or **@values via new-internal" thing from Array to TypedArray as well?
21:54 jnthn timotimo: Yeah, sounds reasonable
21:55 dalek roast/resupply: 46231a7 | jnthn++ | / (22 files):
21:55 dalek roast/resupply: First round of updates for supply changes.
21:55 dalek roast/resupply: review: https://github.com/perl6/roast/commit/46231a7597
21:55 jnthn 10 tests still need attention, but I think the number of root causes is smaller
21:56 bjz joined #perl6
21:56 dalek rakudo/resupply: 8f9a7a9 | jnthn++ | src/core/Supply.pm:
21:56 dalek rakudo/resupply: Supplies treat values through them as items.
21:56 dalek rakudo/resupply:
21:56 dalek rakudo/resupply: So use .push, not .append.
21:56 dalek rakudo/resupply: review: https://github.com/rakudo/rakudo/commit/8f9a7a9396
21:56 Zoffix joined #perl6
22:04 leont Does that mean Supply gets split in an emitting and a receiving end?
22:04 timotimo a little bit, yeah
22:05 jnthn leont: Somewhat, yes. Supply.new now becomes Supplier.new, and the object you get back has a .Supply method. You emit/done/quit on the Supplier, and (as before) tap the Supply.
22:06 leont I think I could like that, yes
22:06 jnthn leont: This will only make a notable difference to code that used supplies in this way. Supply.interval, Supply.from-list, etc. are all just the same.
22:06 jnthn As is working with async sockets, processes, etc.
22:07 leont C++ has a similar split on its promise implementation (emitting end being called promise, receiving is future)
22:07 jnthn There's also stronger enforcement of the supply protocol (emit* [done|quit])
22:07 timotimo uh-oh ... bad news
22:08 timotimo Stage optimize   : Cannot call ACCEPTS; no signatures match  /  at gen/moar/m-BOOTSTRAP.nqp:2353  (blib/Perl6/BOOTSTRAP.moarvm::741)  /  from gen/moar/m-CORE.setting:883  (<ephemeral file>:ACCEPTS:36)  /  ...  /  from gen/moar/m-BOOTSTRAP.nqp:472  (blib/Perl6/BOOTSTRAP.moarvm:bind_one_param:811)
22:08 timotimo ever seen something like this?
22:08 jnthn o.O
22:08 jnthn No
22:09 timotimo inside INITIALIZE_DYNAMIC, oddly
22:09 diakopter___ timotimo: maybe you're still using my moar patch ;)
22:09 timotimo hah, i don't think so
22:09 timotimo ah, this is all under "blib/Perl6/Optimizer.moarvm:repor​t_inevitable_dispatch_failure:161"
22:10 timotimo oh my
22:10 timotimo seems like that's what you get when you have two multi methods with the exact same signature
22:10 timotimo inside a role inside a class
22:10 timotimo OSLT
22:11 * jnthn yawns and figures it's time to rest
22:11 Juerd Good night!
22:11 timotimo good night jnthn!
22:11 d^_^b Zoffix: I saw a MR on learnxinyminutes. You know if anyone is planning to add concurrency examples to the markdown?
22:12 jnthn See y'all tomorrow
22:12 jnthn o/
22:12 timotimo timo@schmetterling ~/p/rakudo (nom)> perl6 -e 'my Int @foo[2;2] = (1, 2; 3, 4); say @foo'
22:12 timotimo [[1 2] [3 4]]
22:12 Zoffix d^_^b, none that I know of. Ven++ was planning to do some work on my PR, but I doubt they'd mind if you contribute :P
22:13 d^_^b Zoffix: ok, there are a few bits I don't get how to use/or what they are for.
22:13 d^_^b Zoffix: this one? https://github.com/adambard/lea​rnxinyminutes-docs/issues/1390 or 1434
22:14 Zoffix The open one, 1390
22:14 d^_^b ok cool
22:15 Zoffix timotimo, neat
22:15 timotimo running spec tests on the change now
22:15 timotimo hopefully it doesn't break anything else
22:17 psch ...i'd really like camelia to build a new r-j :/
22:17 psch as in, nom/HEAD definitely compiles atm
22:20 timotimo ooooh
22:22 timotimo t/spec/S02-types/array-shapes.rakudo.moar  -  TODO passed:   15
22:22 Zoffix \o/
22:24 timotimo um
22:24 timotimo but the test code then tries to pop from and push to a shaped array
22:24 timotimo it's just a one-dimensional array, but shaped arrays immediately die when you try to pop or push
22:24 timotimo so maybe my patch is wrong?
22:25 psch m: my @a[2]; @a.push: 0;
22:25 camelia rakudo-moar : OUTPUT«Cannot push a fixed-dimension array␤  in block <unit> at /tmp/gNKfLdNtf6:1␤␤»
22:29 timotimo maybe after popping from a shaped array it's supposed to be possible to push again?
22:29 timotimo the code so far has the pop TODO'd (it's supposed to throw an exception, but used to not do that), then the pop after it used to work
22:29 timotimo but that's only because typed arrays with shapes didn't actually get the shape set on them at all
22:35 sno joined #perl6
22:41 ab5tract timotimo: that seems like a reasonable point, but at the same time the properties of arrays in perl 5 that allowed the queue/stack semantics
22:41 ab5tract was the variable length
22:42 ab5tract (plural / singular mismatch.. variable (dynamic! egads!) length of arrays was the property that enabled push/pop)
22:43 bbkr joined #perl6
22:48 bbkr_ joined #perl6
22:48 timotimo mhm
22:48 timotimo so ... what are you saying? %)
22:49 pdcawley joined #perl6
22:51 Hotkeys apparently vulgar fractions are called that because it's the old use of vulgar meaning common
22:51 Hotkeys it's just fractions that aren't bigger on the top than the bottom
22:58 FROGGS joined #perl6
23:03 * Mouq doesn't think it really makes sense to push/pop from a shaped array…
23:05 TimToady Mouq!  Happy T-weekend!  :)
23:07 ab5tract timotimo: I haven't read enough of the backlog to know about your commit
23:08 Mouq Hey! And to you as well ^^
23:08 ab5tract but it almost sounds to me like the test is wrong
23:09 timotimo the commit isn't up yet
23:10 ab5tract locally push/pop are not enabled for shaped arrays
23:10 Mouq I'm on break right now… I'm interested in looking at what I can do to speed up the peg engine, but the code is, heh, a little dense
23:10 ab5tract is your commit about adding it?
23:11 ab5tract i mean, i am totally down with variable length shaped arrays :D
23:11 ab5tract we can make a trait for when you want to keep them 100% static length
23:12 FROGGS joined #perl6
23:13 timotimo no, my commit is about adding shapes to non-natively typed arrays
23:14 ab5tract ahh. cool :)
23:18 timotimo m: my Int @foo[2;2] = (1, 2; 3, 4); # this doesn't work because nothing actually sets the shape on that
23:18 camelia rakudo-moar : OUTPUT«Type check failed in assignment to ; expected Int but got List␤  in block <unit> at /tmp/SMwkbEYSfI:1␤␤»
23:18 timotimo m: my Int @foo[2;2]; say @foo.shape
23:18 camelia rakudo-moar : OUTPUT«(*)␤»
23:18 timotimo m: my int @foo[2;2]; say @foo.shape
23:18 camelia rakudo-moar : OUTPUT«(2 2)␤»
23:18 timotimo m: my @foo[2;2]; say @foo.shape
23:18 camelia rakudo-moar : OUTPUT«(2 2)␤»
23:19 Mouq m: my int @foo[2;2] = (1, 2; 3, 4);
23:19 camelia rakudo-moar : ( no output )
23:21 psch ...what's a T-weekend?
23:22 TimToady the weekend that starts with T-day
23:22 psch ohh
23:22 RabidGravy they all go out and do vast amounts of crystal meth?
23:26 dalek rakudo/nom: 2e8830b | TimToady++ | src/ (3 files):
23:26 dalek rakudo/nom: implement postfix:<ⁿ>
23:26 dalek rakudo/nom:
23:26 dalek rakudo/nom: Works for both positive and negative integer powers.
23:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/2e8830b4f4
23:27 TimToady but only for literals, no variables, despite the name :)
23:27 uruwi[A] What the hell?
23:27 uruwi[A] So, for example, 3² = 9?
23:27 TimToady yeah
23:27 uruwi[A] > no variables: I wish
23:28 TimToady any variable would have to be named i or n, unless we cheated somehow
23:28 uruwi m: my int @foo[2;2] = (1, 2; 3, 4); say @foo.shape;
23:28 camelia rakudo-moar : OUTPUT«(2 2)␤»
23:28 uruwi Modifier characters, or are they counted as part of the grapheme before?
23:29 uruwi m: my int @foo[2;3;4]; say @foo.shape;
23:29 camelia rakudo-moar : OUTPUT«(2 3 4)␤»
23:29 uruwi m: my int @foo[2;3;4]; say @foo;
23:29 camelia rakudo-moar : OUTPUT«[[[0 0 0 0] [0 0 0 0] [0 0 0 0]] [[0 0 0 0] [0 0 0 0] [0 0 0 0]]]␤»
23:30 uruwi What's the difference between int and Int?
23:30 TimToady native int vs bigint
23:31 TimToady m: say 2³
23:31 camelia rakudo-moar : OUTPUT«8␤»
23:31 TimToady m: say 2³²
23:31 camelia rakudo-moar : OUTPUT«4294967296␤»
23:31 TimToady m: say 2¯¹
23:31 camelia rakudo-moar : OUTPUT«0.5␤»
23:32 TimToady this one shouldn't break JVM
23:32 FROGGS joined #perl6
23:36 AlexDaniel TimToady: wow! Another awesome thing today!
23:37 AlexDaniel m: my $var = 5; say $var²; # just checking the error message…
23:37 camelia rakudo-moar : OUTPUT«25␤»
23:37 TimToady m: my $baʳ = 42; say $baʳ
23:37 camelia rakudo-moar : OUTPUT«42␤»
23:38 AlexDaniel ah
23:38 TimToady uruwi: yes, that's the problem with the modifier letters
23:38 TimToady but I figure ** is good enough for when there are variables
23:38 TimToady so we'll restrict this to convenient literals
23:39 uruwi Do you see anyone using this?
23:39 AlexDaniel I think that what we have now already satisfies most of the use cases
23:39 TimToady sure, I'll probably use it :)
23:39 TimToady or are you asking about variables?
23:40 uruwi No
23:40 uruwi Not about variables
23:40 TimToady m: say [+] (3 1 4 1 5 9 7)»²
23:40 camelia rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/NJmjErxwp9␤Two terms in a row␤at /tmp/NJmjErxwp9:1␤------> 3say [+] (37⏏5 1 4 1 5 9 7)»²␤    expecting any of:␤        infix␤        infix stopper␤        statement end␤        statement modif…»
23:41 TimToady oops
23:41 TimToady m: say [+] <3 1 4 1 5 9 7>»²
23:41 camelia rakudo-moar : OUTPUT«182␤»
23:41 TimToady sum of squares
23:44 uruwi I would personally write it as [+] ((3, 1, 4, 1, 5, 9, 7) »**» 2), but hey, TMTOWTDI
23:44 uruwi ,: [+] ((3, 1, 4, 1, 5, 9, 7) »**» 2)
23:44 uruwi m: [+] ((3, 1, 4, 1, 5, 9, 7) »**» 2)
23:44 camelia rakudo-moar : ( no output )
23:44 uruwi m: say [+] ((3, 1, 4, 1, 5, 9, 7) »**» 2)
23:44 camelia rakudo-moar : OUTPUT«182␤»
23:44 TimToady outer parens not necessary, btw
23:44 AlexDaniel m: say ½ # :)
23:44 camelia rakudo-moar : OUTPUT«0.5␤»
23:45 TimToady now if we only had vulgar superscript fractions :)
23:45 rigsby joined #perl6
23:45 AlexDaniel m: say ½²
23:45 camelia rakudo-moar : OUTPUT«0.25␤»
23:45 uruwi m: say ⅑*⅛*⅐*⅙*⅕*¼*⅓*½
23:45 camelia rakudo-moar : OUTPUT«0.0000028␤»
23:46 AlexDaniel I love it
23:46 TimToady m: say (⅑*⅛*⅐*⅙*⅕*¼*⅓*½).perl
23:46 camelia rakudo-moar : OUTPUT«<1/362880>␤»
23:46 skids joined #perl6
23:47 TimToady now we just need to teach .perl to use vulgar fractions where appropriate ;)
23:47 uruwi Not all terminals might display them well
23:48 TimToady hence the winky
23:48 uruwi For instance, if they display them only as wide as Latin letters, they could be harder to read
23:48 Oatmeal joined #perl6
23:49 * TimToady needs a nap; anyone should feel free to write tests for the superscript exponents
23:49 TimToady zzz &
23:49 uruwi Happy napping
23:50 TimToady or rather, 💤
23:50 AlexDaniel uruwi: well, indeed: https://files.progarm.org/2015​-11-26-015023_201x21_scrot.png
23:54 Hotkeys I wonder if Task::Star plays well with windows
23:54 Hotkeys before Ifinished typing it got angry
23:55 RabidGravy if I can't work out how to type it with a maximum of three key strokes it's unlikely I'll remember the codepoint as a number
23:56 uruwi compose, numerator, denominator
23:57 Hotkeys it only works for a limited number of fractions I think
23:57 Hotkeys like all of the irreducable fractions up to 7/8
23:57 uruwi 6/7 doesn't have its own
23:57 RabidGravy oh yes, xchat just being shit
23:58 uruwi Only ⅐ for a denominator of 7
23:58 Hotkeys do any /7
23:58 Hotkeys I can't even see that on hexchat
23:58 Hotkeys hexchat is terrible at unicode for me on windows
23:58 uruwi Time to get another client.
23:59 AlexDaniel ⅞ ⅒
23:59 Hotkeys might be the font
23:59 Hotkeys what's a good unicode-happy mono font
23:59 uruwi VL Gothic
23:59 AlexDaniel m: say ↉
23:59 camelia rakudo-moar : OUTPUT«0␤»
23:59 uruwi shows up for me fine
23:59 AlexDaniel wow

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo