Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2012-08-09

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:02 sirrobert r: class A {has $.a = 1}; my %cfg = {a => 2}; my $a = A.new(%cfg); say $a.a;
00:02 p6eval rakudo 038a3c: OUTPUT«Default constructor only takes named arguments␤  in method new at src/gen/CORE.setting:609␤  in block  at /tmp/aObT_XotEW:1␤␤»
00:02 sirrobert how do you expand a hash to use this way?
00:02 diakopter r: class A {has $.a = 1}; my %cfg = {a => 2}; my $a = A.new(|%cfg); say $a.a;
00:03 p6eval rakudo 038a3c: OUTPUT«2␤»
00:03 sirrobert ahhh
00:03 sirrobert I think I saw that before somewhere
00:03 sirrobert what is the | ... operator?
00:03 diakopter "flattening"
00:03 sirrobert makes sense =)
00:03 sirrobert thanks
00:09 supernovus Well, I'm out for now, sirrobert, if you like WWW::App, take a look at WWW::App::Easy -- https://github.com/supernovus/perl6-www-app-easy  --- it's still a work in progress, but it'll be ready soon.
00:19 sirrobert will do
00:19 sirrobert thanks =)
00:19 sirrobert I'm out too, all.
00:39 benabik_ joined #perl6
00:40 dalek std: ff6eac2 | larry++ | Actions.pm:
00:40 dalek std: better(?) warning suppression
00:40 dalek std: review: https://github.com/perl6/std/commit/ff6eac2279
00:40 dalek std: df68299 | larry++ | STD.pm6:
00:40 dalek std: 2nd whack at speccish sigspace parsing
00:40 dalek std: review: https://github.com/perl6/std/commit/df682992bd
00:40 dalek std: 820200c | larry++ | STD.pm6:
00:40 dalek std: repeat requires while or until
00:40 dalek std: review: https://github.com/perl6/std/commit/820200c05f
00:40 dalek std: 840c157 | larry++ | CORE.setting:
00:40 dalek std: fix casemap fossils
00:40 dalek std: review: https://github.com/perl6/std/commit/840c157aa4
00:40 clkao joined #perl6
00:40 TimToady evalbot rebuild std
00:40 p6eval OK (started asynchronously)
00:55 diakopter ... as if it could report it started synchronously
00:56 dalek std: adada5f | larry++ | STD.pm6:
00:56 dalek std: modernize ** to +%
00:56 dalek std: review: https://github.com/perl6/std/commit/adada5f23f
01:00 TimToady I've taken to just writing it "foo +% bar" everywhere instead of "foo+ % bar", since the space is harmless under token, and what you usually want under rule anyway
01:00 TimToady seems to be healthier psychologically to keep the +% together most of the time
01:00 TimToady std: repeat { ... };
01:00 p6eval std f43a358: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'repeat' used at line 1�Check failed�FAILED 00:00 41m�»
01:02 * TimToady suspects std isn't really rebuilding
01:02 benabik f43a358 is from jul 30
01:18 sorear I also doubt that rebuild works
01:18 sorear for various painful reasons p6eval's rebuilder no longer runs on the same machine as p6eval and dalek
01:45 diakopter std: repeat { } while do do { };
01:45 p6eval std f43a358: OUTPUT«ok 00:00 41m␤»
01:45 * TimToady needs to manage a 'make reboot' for the ** to +% transtion
01:48 TimToady and a 'make reboot' isn't actually successful currently...
01:56 supernovus joined #perl6
01:58 dalek ecosystem: b080b79 | (Timothy Totten)++ | META.list:
01:58 dalek ecosystem: Added WWW::App::Easy, an MVC framework for Perl 6 Web Applications.
01:58 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/b080b79608
02:04 diakopter n: say -0
02:05 p6eval niecza v19-15-g051783d: OUTPUT«0␤»
02:06 Timbus oh wow. supernovus, this module is pretty great
02:06 Chillance joined #perl6
02:08 dalek ecosystem: f689bf9 | (Timothy Totten)++ | META.list:
02:08 dalek ecosystem: Removed Esquel, it is currently very broken, rewrite planned for later.
02:08 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/f689bf9d64
02:08 Timbus im assuming content-type is text/html by default and you dont hactually have to set it per handler
02:11 diakopter n: say *&1&&**&1**1&**&&1&*
02:11 supernovus Timbus: Glad you like it. Actually, the current WWW::App (the library WWW::App::Easy is based upon) doesn't set a default Content-Type header if none was found. I'll add that to the TODO list.
02:11 p6eval niecza v19-15-g051783d: OUTPUT«{ ... }␤»
02:12 diakopter TimToady: what would &&**& mean above
02:12 Timbus oh, well yeah it definitely should
02:13 TimToady ** is HyperWhatever
02:14 sorear n: **
02:14 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤  at /tmp/pfKJUi9mXx line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3930 (module-CORE @ 564…
02:14 sorear n: {**}
02:14 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤  at /tmp/hV_tZIkAIG line 1 (mainline @ 6) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3930 (module-CORE @ 564…
02:14 sorear n: -> { ** }
02:14 p6eval niecza v19-15-g051783d:  ( no output )
02:14 sorear whatever it is, it only dies at runtime
02:17 diakopter n: say (*&1&&**&1*****1&**&&1&*)({},{})
02:17 p6eval niecza v19-15-g051783d: OUTPUT«all({}, 1)␤»
02:18 diakopter n: say (*&1&&**&1*****1&**&&1&*)({2},{3})
02:18 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤  at /tmp/g4UDJ3GsSD line 1 (ANON @ 3) ␤  at /tmp/g4UDJ3GsSD line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/C…
02:18 diakopter n: say (*&1&&**&1*****1&**&&1&*)({2},{})
02:18 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method postcircumfix:<( )> in type Any␤  at /tmp/1S5DK0H61P line 1 (ANON @ 3) ␤  at /tmp/1S5DK0H61P line 1 (mainline @ 8) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/C…
02:19 diakopter n: say (*&1&&**&1*****1&**&&1&*)({},{3})
02:19 benabik Has someone been using GA to generate P6?
02:19 p6eval niecza v19-15-g051783d: OUTPUT«all({}, 1)␤»
02:19 diakopter n: say (*&1&&**&1*****1&**&&1&*)({})
02:19 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: No value for parameter 'anon_2' in 'ANON'␤  at /tmp/axPOJjuD1F line 0 (ANON @ 1) ␤  at /tmp/axPOJjuD1F line 1 (mainline @ 8) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting lin…
02:19 diakopter n: say (*&1&&**&1*****1&**&&1&*)()
02:19 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: No value for parameter 'anon_0' in 'ANON'␤  at /tmp/90ic21pylj line 0 (ANON @ 1) ␤  at /tmp/90ic21pylj line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting lin…
02:19 diakopter sorear: it counts from anon_0 to anon_2 ?
02:20 sorear those are gensyms
02:20 sorear they increment in the order structures are parsedr
02:21 sorear n (* + *); (* + *)()
02:21 sorear n: (* + *); (* + *)()
02:21 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: No value for parameter 'anon_3' in 'ANON'␤  at /tmp/4iSfBtSTyU line 0 (ANON @ 1) ␤  at /tmp/4iSfBtSTyU line 1 (mainline @ 4) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting lin…
02:21 sorear and they don't reset except with new files
02:21 diakopter oh
02:21 diakopter why would it take {} but not {3}
02:21 diakopter for the first argument
02:22 sorear in that last sample I think anon_2 is the * + * closure; niecza does not support truly anonymous closures
02:22 sorear {} is a Hash, {3} is a Block
02:22 diakopter why would it take a Hash but not a Block
02:26 supernovus Timbus: Okay, if no Content-Type or Location header is found prior to sending the PSGI response, it adds a Content-Type of text/html.
02:27 Timbus rad
02:28 diakopter n: do { } & while 1 { } # <blink>
02:28 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method from in type P6+{term:sym<∅>},{infix:sym<∈>},{infix:sym<(elem)>​},{infix:sym<∉>},{infix:sym<∋>},{infix:sym<(cont)>​},{infix:sym<∌>},{infix:sym<∪>},{infix:sym<(|)>},{​infix:sym<∩>},{infix:sym<(&)>},{infix:sym<(-)>}…
02:28 Timbus now make it automatically pick if the url has .txt or .json at the end and you have yourself a feature
02:29 supernovus Well, that's a bit much for WWW::App itself, but for WWW::App::Easy, I'll make some magic dispatch rules that can easily be included in a web app to do just that.
02:31 supernovus Anyway, enough for tonight. Hope someone finds the library useful. I need to expand the documentation, as currently you need to read the WWW::App documentation in addition to the WWW::App::Easy to figure out all of the different features.
02:32 diakopter n: do { } , while 1
02:32 diakopter std: do { } , while 1
02:32 p6eval niecza v19-15-g051783d: OUTPUT«(timeout)»
02:32 p6eval std f43a358: OUTPUT«ok 00:00 43m␤»
02:33 diakopter TimToady: what does the above comma do?
02:34 diakopter (or anyone, of course)
02:34 TimToady treats do{} as a list of 1 element
02:38 Psyche^ joined #perl6
02:43 diakopter n: say <-> { } >0
02:43 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Cannot use value like Block as a number␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /home/p6eval/niecza/lib/CORE.setting line 295 (Any.Numeric @ 6) ␤  at <unknown> line 0 (ExitRunloop @ 0) ␤  at /tmp/bGx7tNqS1k line 1 (mainline @ 3) …
02:43 diakopter n: say <-> { }>0
02:43 p6eval niecza v19-15-g051783d: OUTPUT«{ ... }␤»
02:43 diakopter @.@
02:43 diakopter what would that mean?
02:45 diakopter (why would it not like the space in the first example but accept the 2nd example?)
02:49 orafu joined #perl6
02:52 TimToady it has something to do with the endargs memo, so it determines whether say's args end there
02:54 diakopter :S
02:55 diakopter well, it parsed the first one, just interpreted the > as greater than I think.
02:56 * diakopter tries less hard to understand
02:59 diakopter n: say { }<->{ }<->{ }
02:59 p6eval niecza v19-15-g051783d: OUTPUT«Any()␤»
03:00 diakopter o_O
03:00 diakopter why wouldn't it be a boolean
03:00 diakopter (how else could it parse?)
03:02 diakopter oh :)
03:02 fgomez joined #perl6
03:03 sivoais joined #perl6
03:09 benabik What is <->?
03:10 diakopter rn: say { '-' => 4 }<->
03:10 p6eval rakudo 038a3c, niecza v19-15-g051783d: OUTPUT«4␤»
03:10 benabik Ah.  either a list or a subscript.  right.
03:15 benabik joined #perl6
03:16 localhost joined #perl6
03:50 benabik joined #perl6
03:52 gongyiliao joined #perl6
04:03 dalek std: e20e129 | larry++ | STD.pm6:
04:03 dalek std: fix endargs wrt whitespace, diakopter++
04:03 dalek std: review: https://github.com/perl6/std/commit/e20e12932d
04:12 crab2313 joined #perl6
04:18 fgomez joined #perl6
04:37 huf joined #perl6
04:40 alvis joined #perl6
04:49 Entonian joined #perl6
05:09 Telgalizer joined #perl6
05:37 birdwindupbird joined #perl6
05:44 adu joined #perl6
05:50 kaleem joined #perl6
06:07 moritz \o
06:08 adu o/
06:08 sorear o/
06:14 wtw joined #perl6
06:24 tadzik '/
06:26 DarthGandalf joined #perl6
06:28 zhutingting joined #perl6
06:36 diakopter moritz: I was considering replying to the "kill the spokesbug with fire" thread with something like this:
06:38 * TimToady thinks replying with silence is one of the good options :)
06:39 sorear replying with silence only works if we can enforce it
06:41 moritz "Camelia is fire-proof. Killing it is fire is just as effective a killing a fish with water"
06:42 moritz TimToady: well, if somebody offers to contribute a different design, it's not nice to let him do all the work, and not merge it in the end. Which is why I broke my silence after a mockup was made
06:45 diakopter "...makes language with 10 years of development look less mature than..." - Perl 6 does not want to contrive an image of maturity.  Instead, it intends to be cutesy and whimsical for the foreseeable future, and let a reputation of maturity grow organically in the long term.    <Please correct me if/where my understanding is wrong>
06:45 cosimo all this discussion makes me want to create a new design for perl6.org
06:46 cosimo :-)
06:46 diakopter I too am not a fan of the current design, and I'm not afraid to admit it because I don't believe that only those willing/able to help out should offer critiques.
06:47 diakopter that said, I am not able to design a better one because I suck at design.
06:47 cosimo me too, but would be nice to try anyway
06:50 diakopter the multicolored spokesbug would make for a nice splash of color on a page with far less color contrasts/busyness than the current one
06:51 diakopter making the color palette of the site the same as the logo makes the logo not stand out, and is way overkill
06:54 diakopter (especially because the logo has so many colors)
06:57 diakopter I recommend a palette for the rest of the page with some grays and perhaps one of the logo's colors, less neon and even more pastel than the current divs on the site
07:01 diakopter dark pastel.
07:03 GlitchMr joined #perl6
07:07 brrt joined #perl6
07:15 Saravanan joined #perl6
07:15 Saravanan Hi Everybody
07:16 Saravanan i want to be a perl6 contributor
07:16 Saravanan can anyone guide me how to start
07:16 diakopter Saravanan: welcome! do you know how you would like to contribute?
07:17 TimToady what are your interests?
07:17 diakopter (implementation, tests, documentation, evangelism, or others I'm sure I'm forgetting)
07:17 Saravanan i dono
07:17 Saravanan i am blank
07:18 Saravanan @diakopter .. can u please guide
07:18 Saravanan where to start
07:18 moritz Saravanan: do you know any programming languages already? if yes, which?
07:18 Saravanan perl
07:18 moritz Saravanan: then maybe pick your favorite Perl 5 module, and implement it in Perl 6
07:19 SamuraiJack joined #perl6
07:19 TimToady don't start with DBI :)
07:19 moritz right :-)
07:19 moritz there's a (very loose) port of that already, called DBIish
07:19 sorear Saravanan: how long have you been using p5?  programming in general?
07:20 moritz http://modules.perl6.org/ has the existing Perl 6 modules
07:23 diakopter Saravanan: let's start by helping you obtain a working Perl 6 install
07:23 Saravanan 4 years
07:24 Saravanan ok..
07:24 diakopter Saravanan: do you use Linux? Windows? Mac?
07:25 Saravanan fedora and mac
07:25 Saravanan but i prefer fedora
07:26 diakopter well, there are several implementations. Let's start with rakudo. Do you have experience building softare from source?
07:26 Saravanan no..
07:27 diakopter okay; we can help you with that
07:27 Saravanan this is my first time
07:28 diakopter you might need a few things installed in your fedora.  in a terminal type  sudo yum groupinstall "Development Tools"
07:29 brrt for the record, and not to be annoying, i do believe fedora comes with rakudo star
07:29 GlitchMr Fedora?
07:30 GlitchMr I think they have Rakudo Star 2011.07
07:30 GlitchMr yum install rakudo-star
07:30 Saravanan ok..
07:30 GlitchMr If you want newer release, I guess you would have to compile
07:30 TimToady that's pretty old though
07:30 tadzik yeah
07:35 imarcusthis joined #perl6
07:37 diakopter Saravanan: did you decide whether you want the year-old version of rakudo or the most recent?  Install git, gcc, and make to build the latest
07:37 Saravanan ok..
07:37 Saravanan which will be better
07:37 Saravanan old
07:37 Saravanan or new
07:38 diakopter let's try building the new one
07:38 diakopter there have been many changes
07:38 Saravanan ok..
07:38 Saravanan i will back after lunch
07:45 jnthn mornin'
07:45 tadzik hello jnthn
07:45 diakopter ahoy
07:46 fhelmberger joined #perl6
07:46 sorear yo jnthn
07:59 zhutingting joined #perl6
07:59 arnsholt o/
08:01 fhelmberger joined #perl6
08:04 adu Saravanan: or you can do what I do
08:07 GlitchMr std: do { } for 1;
08:08 p6eval std f43a358: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of do...for; in Perl 6 please use repeat...for at /tmp/ocDd4DEbqD line 1:�------> [32mdo { } for 1[33m�[31m;[0m�Parse failed�FAILED 00:01 41m�»
08:08 GlitchMr std: repeat { } for 1;
08:08 p6eval std f43a358: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:� 'repeat' used at line 1�Check failed�FAILED 00:00 41m�»
08:19 TimToady the first message is bogus, and the second one is fixed (but not recompiled for the evalbot)
08:20 * jnthn will pull that second one into Rakudo later today, if he's not beaten to it
08:21 moritz . ..--.ö..ö-8,, ,m.,m ,mlm mm
08:22 sorear guten Morgen Ronja
08:23 moritz danke :-)
08:29 awoodland joined #perl6
08:44 * jnthn -> meeting
08:46 * moritz -> 6h commute to $vacation
09:00 * sorear -> sleep
09:00 masak guten ugt morning, #perl6
09:00 hoelzro morgen
09:00 tadzik masak! \o/
09:13 Saravanan @diakopter as of now i will use mac
09:13 Saravanan my fedora box is troubling
09:14 Saravanan how to install rakudo in mac
09:15 hoelzro Saravanan: I used to do with homebrew, but the latest formula doesn't work for me
09:16 Saravanan oh..
09:26 brrt parrot works on a mac, that i know for sure
09:26 mucker joined #perl6
09:26 brrt Saravanan: whats troubling?
09:27 Saravanan that's hardware problem
09:27 brrt oh, then irc can't help you much :-)
09:27 Saravanan :-)
09:27 brrt you can certainly install parrot and rakudo on a mac, although i would not now know how
09:27 Saravanan ok..
09:28 Saravanan i will try to add vmware in mac
09:28 Saravanan or virtualbox
09:28 bbkr joined #perl6
09:29 brrt thats not necessary
09:32 bonsaikitten prefix portage would be my lazy guess
09:33 daxim joined #perl6
09:48 masak Saravanan: welcome.
09:48 masak sorry to hear you're having trouble building Rakudo.
09:48 masak we'll try to help.
09:49 Saravanan ok.
09:54 masak also, let us know if you need any more Perl 6 resources: documentation, tutorials, tips...
09:54 masak there's plenty at perl6.org, but sometimes it's still easier to ask here ;)
09:59 Saravanan :-)
10:14 daxim can someone correct the spelling on <http://rakudo.org/how-to-get-rakudo/>?   s/OpenSuSE/openSUSE/
10:16 Saravanan Successfully installed rakudo :-)
10:17 Saravanan diakopter: i had installed rakudo
10:17 Saravanan next step?
10:21 masak next step: awesomeness.
10:21 masak r: say "OH HAI $_" for 1..5
10:21 p6eval rakudo 038a3c: OUTPUT«OH HAI 1␤OH HAI 2␤OH HAI 3␤OH HAI 4␤OH HAI 5␤»
10:28 Saravanan its working
10:28 Saravanan :-)
10:28 Saravanan great
10:30 masak \o/
10:31 masak Saravanan: pro tip: the fastest way to Perl 6 mastery is to be curious and ask a lot of questions about things you're learning. we won't bite, and we're very helpful and responsive.
10:31 Saravanan ok..
10:31 Saravanan how to install modules in perl6
10:31 Saravanan is that same as perl5?
10:31 daxim similar
10:31 Saravanan ok..
10:32 Saravanan in perl6 OO is inbuild?
10:32 daxim yes!
10:32 Saravanan i mean pure OO
10:32 daxim it's unpure OO, perl6 is like perl5 a multi-paradigm language
10:33 Saravanan ok..
10:33 huf what's a pure oo?
10:33 Saravanan as in java or c++
10:33 daxim when you cannot do procedural programming
10:34 Saravanan hmm
10:34 tadzik so not like C++
10:34 huf hm. both java and c++ let you do procedural programming :)
10:34 huf yeah
10:35 Saravanan so diff btw perl5 and perl6
10:35 huf perl6's builtin OO is like perl5+Moose except so much more
10:35 huf i guess...
10:35 daxim too many to name here, there's a list in the online documentation somewhere
10:35 tadzik Saravanan: you may like the "Perl 5 to 6" series of articles
10:35 tadzik it's linked on perl6.org/documentation I believe
10:36 Saravanan s
10:38 daxim I just updated the page <http://en.opensuse.org/Rakudo> (uuurgh, mediawiki), do you see the newest version with a table at the bottom or the previous one with section headings?
10:39 flussence looks out of date here
10:39 tadzik no table here
10:39 daxim then I really have to wait for someone to release
10:40 Saravanan ok
10:42 masak Saravanan: Perl 6's OO is "pure" in the sense that even if you don't care about objects, things tend to be objects.
10:42 masak it's also "pure" in the sense that the OO system is implemented using the OO system itself.
10:43 masak but really, maybe there isn't really any "pure" OO out there. even Smalltalk, the most obvious candidate, is opinionated in various ways.
10:44 masak everything I've ever read purporting to explain what OO "really" is has turned out to be yet another opinion ;)
10:44 Saravanan :-
10:44 Saravanan :-)
10:44 huf :)
10:45 masak let me show you a few cool things about Perl 6's OO, though:
10:45 daxim one can certainly form a majority report on the opinions
10:45 GlitchMr OOP is just syntactic sugar. Tell me difference between $something.do_something() and do_something($something)
10:45 masak daxim: yeah, and one would end up with... Java.
10:46 masak GlitchMr: those used to be the same in Perl 6, but they're not any more.
10:46 masak GlitchMr: you do have a point, though. even if you're not 100% right.
10:46 huf whoa, foo($bar) used to do method lookup? that'd be surprising....
10:46 masak r: class A { has $.x; has $.y; }; say A.^attrs>>.name
10:46 p6eval rakudo 038a3c: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW'␤  in block  at /tmp/eJjESD4QOV:1␤␤»
10:46 masak r: class A { has $.x; has $.y; }; say A.^attributes>>.name
10:46 p6eval rakudo 038a3c: OUTPUT«$!x $!y␤»
10:46 masak \o/
10:46 GlitchMr Commonly in object oriented languages object is first.
10:46 GlitchMr In procedural, method is first.
10:47 masak huf: no, more like methods marked with 'our' (or a star, I don't remember) got auto-exported as subroutines.
10:47 GlitchMr It's just different order (and somewhat different syntax)
10:47 masak GlitchMr: no, there's a real distinction between non-method procedures and methods, IMO.
10:47 masak GlitchMr: but you can simulate a method call by pretending that the first argument is an invocant.
10:48 lumi_ GlitchMr: $something.do_something() is like invoke(get_method(get_type($somet​hing),"do_something"),$something)
10:48 masak and it's correct that many languages/VMs actually implement it that way.
10:48 masak lumi_++ # nice
10:48 masak yes, that captures the mro thing, too.
10:49 GlitchMr print $_%2 for (0 ... *)[^100]
10:49 GlitchMr ...
10:49 GlitchMr oops
10:49 GlitchMr wrong paste
10:49 GlitchMr String.prototype.toUpperCase.call('hello, world')
10:49 * masak was just going to mention JavaScript :)
10:51 masak yes, JavaScript is another language that emulates method invocation by folding the invocant as a first argument of some underlying invocation form (.call in this case)
10:51 Saran joined #perl6
10:51 masak which means that you can take a method of object A and call it on an unrelated object B.
10:52 masak just like you can in Perl 5.
10:52 masak in Perl 6, that's not possible unless B is a kind of A.
10:52 masak r: class A { our method foo { say "OH HAI" } }; class B {}; &A::foo(B.new)
10:52 p6eval rakudo 038a3c: OUTPUT«Nominal type check failed for parameter ''; expected A but got B instead␤  in method foo at /tmp/i7nzxuZqya:1␤  in block  at /tmp/i7nzxuZqya:1␤␤»
10:52 masak r: class A { our method foo { say "OH HAI" } }; class B is A {}; &A::foo(B.new)
10:52 p6eval rakudo 038a3c: OUTPUT«OH HAI␤»
10:52 masak :)
10:52 GlitchMr I know. I use this trick to emulate super in JavaScript
10:53 masak if you emulate super in JavaScript, let me suggest that you're not going by the grain of the language ;)
10:53 masak it's a *prototypal* language, not a super language.
10:53 masak the inheritance is differential, not classical.
10:54 GlitchMr B = new A(); B.prototype.method = function () { A.prototype.method.apply(this, arguments); alert('But this is B!'); }
10:55 masak yeah, I've seen that pattern.
10:55 Saran masak.. r u talking abt the difference between perl 5 and perl 6
10:55 masak Saran: yes.
10:57 masak and we also brought JavaScript into the discussion.
10:57 masak JavaScript has the same looseness in pairing methods with objects.
10:58 masak Perl 6 is a little more strict, as you can see in the above p6eval conversation.
10:58 whiteknight joined #perl6
10:59 GlitchMr r: module Object { sub new { bless {}, 'Object' }; sub test($self) { $self.perl.print } }; Object.new.test
10:59 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&bless' called (line 1)␤»
10:59 GlitchMr I guess I shouldn't attempt Perl 5 code in Perl 6
11:00 Saran saravanan This link will guide with the differences and how to learn perl6 with the help of perl5 http://perlcabal.org/syn/Differences.html
11:00 hoelzro GlitchMr: I believe in Perl 6 it's self.bless(*)
11:00 GlitchMr r: module Object { sub new { self.bless(*) }; sub test($self) { $self.perl.print } }; Object.new.test
11:00 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤'self' used where no object is available␤at /tmp/Y0BG9Zq3gd:1␤»
11:00 Saravanan whether we have bless in perl6
11:01 Saravanan if it has inbuilt OO then why we need bless in perl6?
11:02 tadzik bless is a part of this OO we have
11:02 masak GlitchMr: you can only use 'self' inside methods.
11:02 GlitchMr r: module Object { sub method { self.bless(*) }; method test { self.perl.print } }; Object.new.test
11:02 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤'self' used where no object is available␤at /tmp/BDe8BcnJ5X:1␤»
11:03 GlitchMr r: module Object { method new { self.bless(*) }; method test { self.perl.print } }; Object.new.test
11:03 p6eval rakudo 038a3c: OUTPUT«Useless declaration of a has-scoped method in module␤Useless declaration of a has-scoped method in module␤You cannot create an instance of this type␤  in method bless at src/gen/CORE.setting:618␤  in method new at src/gen/CORE.setting:606␤  in block  at /tmp/m4kNnL…
11:03 masak GlitchMr: and calling a sub 'method' doesn't make it a method :P
11:03 masak r: my $m = method { self.bless(*) }; class A {}; say A."$m"()
11:03 p6eval rakudo 038a3c: OUTPUT«No such method '<anon>' for invocant of type 'A'␤  in block  at /tmp/mizHWATMNb:1␤␤»
11:03 masak hm :)
11:03 masak r: my $m = method { self.bless(*) }; class A {}; say $m(A)
11:03 p6eval rakudo 038a3c: OUTPUT«A.new()␤»
11:03 masak \o/
11:04 masak r: my $m = method { self.bless(*, :x<42>) }; class A { has $.x }; say $m(A)
11:04 p6eval rakudo 038a3c: OUTPUT«A.new(x => "42")␤»
11:04 GlitchMr http://rosettacode.org/wiki/Non​-decimal_radices/Convert#Perl_6
11:04 GlitchMr Is it possible without eval (which he by accident called "val")
11:05 masak no, it's "val".
11:05 masak it's an eval for values.
11:05 GlitchMr I'm confused
11:05 masak and no, it's not possible to parameterize on the base. that's why "val" is used.
11:06 masak n: say val ":2<1110>"
11:06 p6eval niecza v19-15-g051783d: OUTPUT«:2<1110>␤»
11:06 masak hrm.
11:06 GlitchMr But, can I do :16('FF') or something like this?
11:06 masak n: say val "0b1010"
11:06 p6eval niecza v19-15-g051783d: OUTPUT«0b1010␤»
11:06 GlitchMr It's good enough for me then
11:06 masak n: say val "0x55"
11:06 p6eval niecza v19-15-g051783d: OUTPUT«0x55␤»
11:06 Saran saravanan ..it is advised to go with few basics of perl6..then it will be easy to understand
11:06 masak sorear: I think all those should be parsed as ints.
11:09 Saravanan ok..
11:11 MayDaniel joined #perl6
11:16 masak rn: say "ß" ~~ m:i/ß/; say "ß" ~~ m:i/SS/; say "SS" ~~ m:i/ß/;
11:16 p6eval rakudo 038a3c: OUTPUT«q[ß]␤␤#<failed match>␤#<failed match>␤»
11:16 p6eval ..niecza v19-15-g051783d: OUTPUT«#<match from(0) to(1) text(ß) pos([].list) named({}.hash)>␤False␤False␤»
11:17 masak what's the rule for case insensitiveness in regexes?
11:17 masak rn: say "ß".uc
11:17 p6eval rakudo 038a3c, niecza v19-15-g051783d: OUTPUT«ß␤»
11:18 masak hm.
11:19 JimmyZ joined #perl6
11:25 arnsholt Pretty sure that's wrong
11:25 masak aye.
11:33 GlitchMr http://codegolf.stackexchange.com/a/6936/3103
11:33 GlitchMr I'm almost sure I could golf this better :)
11:43 Timbus say [*] [xx] .words for get
11:44 masak say [*] [xx] get>>.words
11:44 Timbus i was trying to do that
11:44 masak one shorter if you use » :)
11:46 Timbus »:)
11:46 Timbus klingon smile
11:49 GlitchMr The problem is that both Timbus and masak solutions end after first line :P
11:49 GlitchMr But he hasn't specified that
11:49 GlitchMr So it could work too
11:49 Timbus nput given as: x y (separated by a space)
11:50 Timbus looks perfect to me
11:50 GlitchMr I'm already confused
11:52 GlitchMr Perl 6 doesn't win with GolfScript, but it has chance in CodeGolf :)
11:52 GlitchMr ...
11:52 GlitchMr Except I did it wrongly
11:55 Timbus you did!
12:02 Timbus say [**] [xx] get>>.words is the obvious one but incurs a penalty
12:06 Timbus say [**] [xx] @*ARGS
12:07 zhutingting left #perl6
12:08 MayDaniel joined #perl6
12:09 Timbus 30 pts including penalty. not bad
12:16 flussence I'm getting nowhere but this looks interesting -
12:16 flussence given '2 4'.words { say [*] [xx] .[0], ^(.[1])»+»1 }
12:16 flussence r: given '2 4'.words { say [*] [xx] .[0], ^(.[1])»+»1 }
12:16 p6eval rakudo 038a3c: OUTPUT«16777216␤»
12:16 flussence only 8 bits off :)
12:19 Timbus lol. what's it meant to be
12:19 Timbus r: say [**] [xx] (2,4)
12:19 p6eval rakudo 038a3c: OUTPUT«65536␤»
12:19 Timbus close!
12:21 xinming joined #perl6
12:30 masak r: say [**] [xx] 2,4
12:30 p6eval rakudo 038a3c: OUTPUT«65536␤»
12:30 masak r: say [**][xx]2,4
12:30 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Confused␤at /tmp/3U4zQfKKYR:1␤»
12:31 masak r: say [**] [xx]2,4
12:31 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Confused␤at /tmp/g0ag4TFkC7:1␤»
12:31 masak :)
12:32 GlitchMr Why reduce operators care so much about spaces?
12:32 JimmyZ array
12:33 JimmyZ r: say $a[xx][*]
12:33 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Variable $a is not declared␤at /tmp/g_I4Uhls57:1␤»
12:34 JimmyZ r: say $a [xx] [*]
12:34 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Variable $a is not declared␤at /tmp/392OiiL3_2:1␤»
12:41 sirrobert joined #perl6
12:41 sirrobert hi p6
12:42 tadzik hi
12:46 sirrobert what is the : in this syntax doing:   $foo.somemethod: $somesub;
12:47 tadzik it's like $foo.method($sub)
12:47 sirrobert ok
12:47 sirrobert does it have a particular name?
12:48 tadzik I don't know
12:50 sirrobert huh, it's only for methods, not subs
12:50 JimmyZ well, for subs is: sub args
12:51 sirrobert yeah
12:51 sirrobert was just understanding the ... domain of the operator
12:52 masak I tend to think of it as the "rest of the statement is method args" colon :)
12:52 sirrobert heh
13:03 jeffreykegler joined #perl6
13:04 SamuraiJack joined #perl6
13:06 SamuraiJack joined #perl6
13:08 Saravanan1 joined #perl6
13:08 PerlJam r: sub foo ($alpha: $beta) { }  # just checkign
13:08 p6eval rakudo 038a3c:  ( no output )
13:08 PerlJam std:  sub foo ($alpha: $beta) { }
13:08 p6eval std f43a358: OUTPUT«Potential difficulties:â�¤  $beta is declared but not used at /tmp/sPeLWXdUQR line 1:â�¤------> [32msub foo ($alpha: [33mâ��[31m$beta) { }[0mâ�¤  $alpha is declared but not used at /tmp/sPeLWXdUQR line 1:â�¤------> [32msub foo ([33mâ��[31m$alpha: $beta) { }[0mâ�¤ok 00:00 4…
13:12 Saravanan1 hi
13:13 tadzik hello Saravanan1
13:14 JimmyZ joined #perl6
13:14 masak Saravanan1: how's everything going?
13:15 atrodo joined #perl6
13:16 masak PerlJam: I believe we have an RT ticket for invocant colons in sub declarations.
13:16 masak hm, seems not.
13:17 * masak submits rakudobug
13:17 PerlJam std:  sub foo ($alpha: $beta) { say "$alpha $beta" }
13:17 p6eval std f43a358: OUTPUT«ok 00:00 43m␤»
13:17 PerlJam It would be a stdbug too then
13:18 Saravanan joined #perl6
13:19 masak rn: sub foo($alpha: $beta) { say "$alpha: $beta" }; foo 42, "OH HAI"
13:19 p6eval niecza v19-15-g051783d: OUTPUT«42: OH HAI␤»
13:19 p6eval ..rakudo 038a3c: OUTPUT«Lexical 'self' not found␤  in sub foo at /tmp/PCatPFMUMH:1␤  in block  at /tmp/PCatPFMUMH:1␤␤»
13:19 masak actually, I'm not so sure supplying an invocant this way to a sub is an error.
13:19 PerlJam yeah, I was thinking that too  :)
13:19 masak but Rakudo's behavior above surely is.
13:19 * masak submits rakudobug
13:19 PerlJam masak++
13:21 bluescreen10 joined #perl6
13:21 sirrobert What should that do?
13:21 sirrobert sub foo ($alpha: $beta)
13:22 masak sirrobert: we don't know.
13:22 PerlJam sirrobert: separate the args that participate in multi-dispatch from those that don't  (maybe)
13:22 sirrobert heh ok
13:22 masak either error or it should be fine.
13:23 sirrobert fair enough =)
13:23 sirrobert hey, btw
13:23 masak PerlJam: no, both the invocant and the rest of the arguments before ;; participate in MMD to exactly the same amount.
13:23 masak s/amount/extent/
13:23 sirrobert as I've been using (learning) p6, I'm trying to be helpful by blogging about it.  What kind of stuff is helpful to write about?
13:24 PerlJam It's too early for me to think clearly and I haven't had my caffiene yet.
13:24 masak sittobert: to a first approximation, anything you feel is interesting.
13:24 sirrobert I'll try to find my "voice" about it =)
13:24 PerlJam sirrobert: Have you looked as "Using Perl 6"?   Anything that fills the gaps from that book would be good to blog about.
13:24 masak r: class A {}; class B is A {}; class C { multi method foo(B) { say "C" } }; class D is C { multi method foo(A) { say "D" } }; D.new.foo(B.new)
13:24 p6eval rakudo 038a3c: OUTPUT«Ambiguous call to 'foo'; these signatures all match:␤:(C , B , Mu *%_)␤:(D , A , Mu *%_)␤␤  in method foo at src/gen/CORE.setting:334␤  in block  at /tmp/i2yosE1L2F:1␤␤»
13:24 sirrobert PerlJam:  good idea =)
13:25 masak PerlJam: the above conflict demonstrates this.
13:27 masak here's a random suggestion for how .sort should sort by default:
13:28 masak (a) if the values compared are equal by ===, sort them as equal
13:29 masak (b) if the values are of the same type, sort them by cmp
13:29 masak (c) if the values are of different types, sort the type name by leg
13:29 masak or maybe this behavior should be folded into cmp itself.
13:30 skids joined #perl6
13:35 [Coke] sort on type name seems odd, if you have a type hierarchy where you can still compare things (like in the numbers)
13:36 masak yes, but (a) will catch that.
13:36 masak rn: say 4 === 4.0
13:36 p6eval rakudo 038a3c, niecza v19-15-g051783d: OUTPUT«False␤»
13:36 masak hm :/
13:36 masak am I thinking of some other equivalence, like eqv, perhaps?
13:37 masak rn: say 4 eqv 4.0
13:37 p6eval rakudo 038a3c: OUTPUT«False␤»
13:37 p6eval ..niecza v19-15-g051783d: OUTPUT«True␤»
13:37 masak heh!
13:37 * masak wants to submit a bug, but doesn't know on what
13:37 * masak reads spec
13:38 masak infix:<eqv>: S03:1303: "Compares two objects for canonical equivalence.  For value types compares the values."
13:38 masak well, it's the *same* value, no?
13:38 * masak submits rakudobug
13:51 tokuhiro_ joined #perl6
13:54 thou joined #perl6
13:55 masak rn: say 4e1 eqv 4; say 4e1 eqv 4.0
13:55 p6eval rakudo 038a3c, niecza v19-15-g051783d: OUTPUT«False␤False␤»
13:55 masak sorear: why does Niecza go True for 4 eqv 4.0 but not for those two?
13:56 masak at least Rakudo is being consistent.
13:58 Chillance joined #perl6
14:06 crab2313 joined #perl6
14:11 atrodo joined #perl6
14:14 SamuraiJack joined #perl6
14:20 TimToady it is a nieczabug, not a rakudobug, since === and eqv can only match if the types are the same
14:21 * masak rejects the rakudobug
14:21 * masak submits nieczue
14:22 masak TimToady: any thoughts on subs with an invocant parameter?
14:22 TimToady not before coffee
14:23 masak ;)
14:23 TimToady esp since I only got 5 hours sleep
14:23 masak :/
14:23 tadzik one does not cast spells without mana potions
14:23 TimToady because I was hacking on STD :)
14:23 masak heh :)
14:23 kaare_ joined #perl6
14:24 masak TimToady: when I saw your "I can't commit this thing before I've committed these things", I wanted to tell you about git-stash
14:24 * TimToady is close (cross fingers) to having the sigspace stuff working again
14:24 hoelzro joined #perl6
14:24 telex joined #perl6
14:25 sirrobert git stash is super nice =)
14:25 sirrobert love that it's a stack
14:26 TimToady yes, that looks nice
14:32 masak 'git stash [save]' and 'git stash apply' are complementary actions, and the two I use the most.
14:33 masak I love how it's using commits to save away my changes.
14:33 masak (without hooking those commits onto any branch)
14:33 PerlJam how long do your stashes stay around?
14:34 PerlJam (I use stash quite a bit too but I find that sometimes I forget about them)
14:34 masak that's a really good quesion.
14:34 sirrobert I think they stay around indefinitely (until you clear them)
14:34 PerlJam whereas if I put my changes in a branch, they are less likely to be forgotten
14:34 masak somewhere between 10 seconds and 10 kiloseconds, most of the time.
14:34 hoelzro PerlJam: that's my issue
14:35 masak yeah, branches are nice, too. they're the "next step" after stashes.
14:35 hoelzro I often forget about them =/
14:35 sirrobert I use stash as something like a clipboard
14:35 sirrobert I only put stuff in there I'm ok to lose, or that I want to copy from one branch to another.
14:35 masak and I keep forgetting and re-remembering that branches are very throwaway, too, and can be created en masse for various experiments.
14:36 masak yeah, stashing is like an anonymous mini-branch of sorts.
14:36 PerlJam sirrobert: If you're copying from one branch to another, then surely you don't need the stash?
14:36 sirrobert well, I don't mean literally copying, more like "sticking them in there to see if there are applicable bits"
14:37 sirrobert I often have a stash that's several layers deep and pop to the one I want
14:37 PerlJam ah
14:37 sirrobert kinda like an undo/redo =)
14:38 lumi_ r: say 4e1
14:38 p6eval rakudo 038a3c: OUTPUT«40␤»
14:38 lumi_ masak: That's why the first one fails
14:39 PerlJam lumi++  (math skills  ;)
14:39 sirrobert heh
14:40 masak I fail math today.
14:40 * masak rises from the ashes and moves on ;)
14:40 masak rn: say 4e0 eqv 4; say 4e0 eqv 4.0
14:40 p6eval niecza v19-15-g051783d: OUTPUT«True␤True␤»
14:40 p6eval ..rakudo 038a3c: OUTPUT«False␤False␤»
14:41 masak yeah, niecza is consistently wrong on those. lumi_++
14:41 TimToady now if only git stash would save and restore all the vim sessions I have up in that directory, it might be useful to me
14:44 timotimo surely you could write a perl one-liner that does this ... :)
14:44 TimToady debugging STD/viv when you have no valid CORE setting and compiling CORE.setting fails in the first whitespace is...not trivial
14:44 timotimo hm. there's python and ruby for vim, but is there also perl for vim? i wonder ...
14:45 hoelzro timotimo: sure there is
14:45 hoelzro if by "perl for vim", you mean that Vim can be built with an embedded Perl
14:45 TimToady I went to bed last night when I managed to get CORE to parse up to line 8, so at least it's parsing some sigspace now
14:55 dalek std: 66387b5 | larry++ | STD.pm6:
14:55 dalek std: restrict do {} obs message to while/until
14:55 dalek std: review: https://github.com/perl6/std/commit/66387b5246
14:57 TimToady GlitchMr++ for that, btw
15:01 * jnthn back
15:02 JimmyZ welcome back
15:03 masak good ugt morning, jnthn!
15:03 jnthn TimToady: Heh, sounds like the fun I had getting CORE.setting parsing again when putting QRegex in place...
15:03 jnthn TimToady: I'd say "have fun", but it was more "argh why" :)
15:03 masak that's because you forgot to have fun
15:05 jnthn masak: It's kind of a yak-shavey task :)
15:05 masak yeah. I was kidding ;)
15:05 Chillance joined #perl6
15:05 jnthn re 114438 I suspect invocants should be forbidden on subs, but I didn't backlog to see if any other discussion happened with regard to it
15:06 masak mad props to both jnthn and TimToady, of course.
15:06 jnthn ah, I didn't sleep well enough to do humor :P
15:06 jnthn Well, I can probably pun still... :)
15:06 masak jnthn: I started out supposing that it should forbid it too. it's certainly the conservative thing to do.
15:06 masak if it works, then it should work like in Niecza.
15:07 jnthn I know STD has some invocant_ok thingy. I think I didn't steal it into Rakudo's grammar.
15:07 jnthn It may be related to taht.
15:07 masak n: sub foo($alpha: $beta) { say "$alpha: $beta" }; foo 42, "OH HAI"
15:07 p6eval niecza v19-15-g051783d: OUTPUT«42: OH HAI␤»
15:07 masak jnthn: well, std allows it too!
15:07 masak std: sub foo($alpha: $beta) { say "$alpha: $beta" }; foo 42, "OH HAI"
15:07 p6eval std f43a358: OUTPUT«ok 00:00 44m␤»
15:08 jnthn bah :)
15:14 tadzik "We have an implementation of Perl 6 that's gonna start to be worth using in the next year or so" -- Damian on http://radar.oreilly.com/201​2/08/damian-conway-perl.html
15:14 tadzik nice interview it is
15:15 obra joined #perl6
15:15 masak tadzik: Damian Conway, is that the guy who said "the next year or so" back in 2001? :P
15:15 clkao joined #perl6
15:15 masak s/said/wrote/
15:17 PerlJam I'm not sure what to make of Damian anymore ...  It's like he's disconnected from the community, but every once in a while pops up to say "I'm still here, look at this awesome thing"
15:17 PerlJam (at least I don't quite see how he's connected like he used to be)
15:18 masak I've had that feeling too. but that seems to be his MO.
15:18 masak at least when he's involved, he is involved.
15:19 masak I would prefer if he would pop up on the channel occasionally, but he doesn't seem to be a pop-up-on-the-channel kind of guy.
15:19 GlitchMr back
15:19 GlitchMr TimToady: I was just testing if https://github.com/perl6/std/issues/1 was fixed
15:20 GlitchMr I will do moritz++ instead
15:23 TimToady s/instead/in addition/  :)
15:23 TimToady this isn't a zero-sum game...
15:24 diakopter o_O TimToady before 9 a.m.?
15:25 * diakopter apparently needs coffee too
15:26 masak diakopter: we're all on UGT now :P
15:26 masak I like http://blog.stackoverflow.com/2012​/08/stack-exchange-is-not-a-forum-​the-role-of-niceness-on-a-qa-site/ not just because of the excellent geek troll picture. it makes good points.
15:26 TimToady * can mean UGT too
15:28 MayDaniel joined #perl6
15:28 MayDaniel joined #perl6
15:30 alester joined #perl6
15:35 thelazydeveloper joined #perl6
15:42 diakopter oh noes. no one show TimToady codegolf.stackexchange.com
15:42 TimToady n: say +val '0x55'
15:42 p6eval niecza v19-15-g051783d: OUTPUT«85␤»
15:42 TimToady masak: when you use the string version of val, you just get the string back
15:42 diakopter it's like rosettacode except crazy
15:44 TimToady n: say <0x55>
15:44 p6eval niecza v19-15-g051783d: OUTPUT«85␤»
15:44 TimToady note that <> is specced to force numeric when there's just that one value
15:44 TimToady but that's part of <>, not val
15:44 masak ah.
15:45 TimToady n: say +'0x55'
15:45 p6eval niecza v19-15-g051783d: OUTPUT«85␤»
15:45 TimToady and you don't need the val if you're forcing numeric anyway
15:47 TimToady so the RC entry is wrongish, I guess
15:47 masak aye.
15:48 masak val
15:48 diakopter I forget - will P6 have unsanitary macros?
15:48 masak val, lightweight as it is, is too heavyweight there.
15:48 masak diakopter: Pugs has them.
15:48 masak pugs: macro foo { 'say $a' }; my $a = 42; foo
15:48 p6eval pugs: OUTPUT«42␤»
15:49 diakopter is that spec'd?
15:49 TimToady and there's no reason to limit the RC entry to integers
15:49 masak diakopter: yes.
15:49 TimToady n: say 3.14159625.base(2)
15:49 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: Unable to resolve method base in type Rat␤  at /tmp/UQAKN6XJRW line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3929 (ANON @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3930 (module-CORE @ 564) ␤  at /home/p…
15:49 TimToady r: say 3.14159625.base(2)
15:49 p6eval rakudo 038a3c: OUTPUT«11.001001000011111110101␤»
15:49 jeffreykegler joined #perl6
15:49 TimToady nieczabug
15:49 * masak submits
15:52 diakopter that oreilly link - "the fastest dynamic language out there"?
15:53 PerlJam diakopter: yeah, I caught that too.  I would have agreed with him a few years ago, but not today.
15:56 masak which language? Dart? :P
15:56 diakopter Gabor Szabo needs an editor for his perl6maven posts; all of them have English errors
15:56 masak well volunteered.
15:56 diakopter :D
15:58 TimToady http://rosettacode.org/wiki/Non​-decimal_radices/Convert#Perl_6 fixed, GlitchMr++ masak++
15:58 diakopter rn: my $a =~ /a/; say $a
15:58 p6eval niecza v19-15-g051783d: OUTPUT«Regex()<instance>␤»
15:58 p6eval ..rakudo 038a3c: OUTPUT«␤»
15:59 diakopter std: my $a =~ /a/; say $a
15:59 p6eval std f43a358: OUTPUT«Can't bless non-reference value at CursorBase.pm line 1163.␤FAILED 00:00 42m␤»
15:59 diakopter I don't know which one's righter
15:59 diakopter niecza I guess, but isn't it supposed to warn on using =~ ?
16:00 masak 'FAILED'?
16:00 diakopter crashed I guess
16:00 TimToady std: $_ =~ /a/
16:00 p6eval std f43a358: OUTPUT«[31m===[0mSORRY![31m===[0m�Unsupported use of =~ to do pattern matching; in Perl 6 please use ~~ at /tmp/xbebQGchbK line 1:�------> [32m$_ =~[33m�[31m /a/[0m�Parse failed�FAILED 00:00 41m�»
16:01 TimToady diakopter: the my is messing you up there
16:01 geekosaur interesting parser fail in std with the my version
16:01 TimToady parsed as an initializer
16:01 TimToady my $a = (~ /a/)
16:01 diakopter std: my $a = ~ /a/; say $a
16:01 p6eval std f43a358: OUTPUT«Can't bless non-reference value at CursorBase.pm line 1163.␤FAILED 00:00 42m␤»
16:01 TimToady but =~ on a my is non-sensical in any case, so I'm not concerned
16:02 diakopter did someone break p6eval's std?
16:02 TimToady it's a month old
16:02 TimToady and the current version certainly won't bootstrap
16:03 TimToady gimme another few hours (cross fingers) to fix that
16:03 diakopter git wishlist: make a commit of only a portion of the diff of a file
16:04 masak diakopter: git-add -i
16:06 diakopter oh!
16:06 diakopter seems TortoiseGit doesn't have that feature
16:07 spider-mario joined #perl6
16:08 diakopter oh wait it does
16:08 TimToady maybe it has git stash save --patch
16:12 jnthn diakopter: Also "git gui" brings up a GUI tool that can do that
16:16 [Coke] masak: I had to walk away earlier, but how would you compare 4 and 4.1 then? as "Integer" vs "Number" ?
16:17 masak yeah, that won't fly.
16:17 masak never mind.
16:20 adu joined #perl6
16:38 [hds] joined #perl6
16:41 TimToady I think subs with invocant parameters are benign, and : just means the same as comma there
16:41 am0c joined #perl6
16:42 TimToady in some sense, exported methods are the same thing
16:43 masak let me play devil's advocate, then.
16:43 masak if we disallow them now but realize they're useful later, we will have an easier time than if we allow them now but realize they're harmful later.
16:44 masak I see how they are "the same thing" as exported methods, but what are they chances they are *not* an indication of programmer confusion?
16:44 masak i.e. what are the chances a programmer would be annoyed rather than helped by us flagging it?
16:45 masak it might as well be a typo for 'method' as a typo for ','
16:45 TimToady what are the chances that someone is attempting to communicate that this might end up as a method somehow as well?
16:45 jnthn Should it have a slef?
16:45 jnthn *self?
16:45 masak definitely not.
16:45 masak well, unless the sub is inside of a method :P
16:46 jnthn :P
16:48 TimToady "sub with invocant better written as 'my method'" maybe
16:52 sftp joined #perl6
16:53 * masak rather likes that
16:53 masak or 'our method'.
16:53 TimToady nr: my method foo ($foo: $bar) { say "$foo $bar" }; foo(1,2)
16:54 p6eval rakudo 038a3c: OUTPUT«1 2␤»
16:54 p6eval ..niecza v19-15-g051783d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Methods must be used in some kind of package at /tmp/yi8quc9FUC line 1:â�¤------> [32mmy method foo [33mâ��[31m($foo: $bar) { say "$foo $bar" }; foo(1,[0mâ�¤â�¤Unhandled exception: Check failedâ�¤â�¤  at /home/p6eval/niecza/boot/lib…
16:54 TimToady nieczanyi I guess
16:54 masak yeah.
16:54 masak someone else is welcome to submit it. :)
16:58 kaleem joined #perl6
16:59 jnthn r: class A { }; say A.new
16:59 p6eval rakudo 038a3c: OUTPUT«A.new()␤»
16:59 jnthn r: class A { }; say ~A.new
16:59 p6eval rakudo 038a3c: OUTPUT«A<853331884>␤»
17:00 TimToady ô.ó
17:01 jnthn Matches spec, afaik
17:01 jnthn I do now have the slight issue of what to do in NQP now that we have .gist and .Str doing different things in a bunch of cases.
17:05 cognominal joined #perl6
17:07 diakopter nr: my method foo ($foo: $bar) { say self~" $bar" }; foo(1,2)
17:07 p6eval niecza v19-15-g051783d: OUTPUT«[31m===[0mSORRY![31m===[0mâ�¤â�¤Methods must be used in some kind of package at /tmp/Iksn61Nzeo line 1:â�¤------> [32mmy method foo [33mâ��[31m($foo: $bar) { say self~" $bar" }; foo(1[0mâ�¤â�¤Potential difficulties:â�¤  $foo is declared but not used at /tmp/Iksn…
17:07 p6eval ..rakudo 038a3c: OUTPUT«1 2␤»
17:08 diakopter r: my method foo ($foo:) { say self === $foo }; foo("b")
17:08 p6eval rakudo 038a3c: OUTPUT«True␤»
17:09 diakopter r: class F { my method foo ($foo:) { say self === $foo }; }; F.foo()
17:09 p6eval rakudo 038a3c: OUTPUT«True␤»
17:10 raiph joined #perl6
17:11 dalek nqp/toqast: 319bb8d | jnthn++ | src/QAST/Compiler.nqp:
17:11 dalek nqp/toqast: Implement default parameter handling, winning the optional and named argument tests back.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/319bb8d173
17:11 dalek nqp/toqast: 4b85a2e | jnthn++ | src/NQPQ/ (2 files):
17:11 dalek nqp/toqast: Get + and ~ prefixes workingish again.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4b85a2e2b5
17:11 dalek nqp/toqast: 67a605c | jnthn++ | src/NQPQ/ (2 files):
17:11 dalek nqp/toqast: Compile =:= again.
17:11 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/67a605ca2a
17:17 sorear good * #perl6
17:19 masak sorear! \o/
17:19 masak sorear: I discovered some bugs in Niecza's eqv in the backlog.
17:19 masak also filed some other things and didn't file some other things.
17:26 * [Coke] files a bug on masak's bug filer.
17:26 [Coke] "seems spotty"
17:27 masak I wouldn't mind if someone took over all the nieczue filing, to be honest.
17:27 masak I still feel like my primary responsibility is to keep RT's perl6 queue up-to-date.
17:31 diakopter I think we can have a bot that takes this command: bugfiler: niecza 8 Title of Bug Report    where 8 means number of prior irc lines to paste into the bug report
17:31 diakopter and it would only accept commands on #perl6 so people couldn't spam it in privmsg
17:32 diakopter seems the nick isn't taken
17:32 masak well, there's usually some editing to filing a bug report.
17:35 benabik joined #perl6
17:36 quietfanatic joined #perl6
17:37 diakopter quietfanatic: howdy
17:40 quietfanatic hey diakopter
17:42 benabik_ joined #perl6
17:45 dalek nqp/toqast: 00c649e | jnthn++ | src/NQP/Actions.pm:
17:45 dalek nqp/toqast: Fix bug in v-table method installation.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/00c649e8d9
17:45 dalek nqp/toqast: 507d55c | jnthn++ | src/NQPQ/Actions.pm:
17:45 dalek nqp/toqast: Port previous fix to NQPQ.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/507d55cc5c
17:45 dalek nqp/toqast: 93a716f | jnthn++ | src/core/NQPMu.pm:
17:45 dalek nqp/toqast: Add some missing methods to NQPMu.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/93a716fd59
17:45 dalek nqp/toqast: ce81241 | jnthn++ | src/QAST/Operations.nqp:
17:45 dalek nqp/toqast: Add a QAST op for throwing control exceptions.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/ce81241a2a
17:45 dalek nqp/toqast: 26b5b5b | jnthn++ | src/NQPQ/Actions.pm:
17:45 dalek nqp/toqast: Get next/last/redo working again.
17:45 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/26b5b5b6d9
17:49 jnthn 50 out of 60 tests in t/nqp now passing in nqp/toqast :)
17:51 Targen joined #perl6
17:58 quietfanatic am I the only one who thinks arbitrary radix notation looks way too much like pair notation?
17:59 PerlJam "too much"?
17:59 quietfanatic :16<abcd> ought to make 16 => 'abcd'
17:59 * Tene also
18:00 masak quietfanatic: it *is* pair notation.
18:00 masak it's just been hijacked for radix conversion.
18:01 bluescreen10 joined #perl6
18:01 quietfanatic right
18:02 jeffreykegler joined #perl6
18:02 PerlJam quietfanatic: so you think it should look different?
18:02 quietfanatic I do think it should look different.
18:03 quietfanatic mind you, I don't have any immediate suggestions s to how it should look :)
18:04 PerlJam If there were a more procedural interface, would that assuage your concerns?
18:04 quietfanatic probably
18:04 TimToady normal colon pairs can only have identifiers on the left, so the numeric was completely unused
18:05 TimToady and there's little use case for 16 => 'abcd'
18:05 quietfanatic Arbitrary bases are not something people use enough that they need a syntactic shortcut for it.
18:05 TimToady sez who? :)
18:05 PerlJam quietfanatic: ah, so you think they are incorrectly huffmanized?
18:05 quietfanatic Especially when that syntactic shortcut means they need to do an eval-like thing to parameterize the base
18:06 quietfanatic sez me :)
18:06 quietfanatic PerlJam: It's more that different things should look different
18:07 TimToady parameterizing the base is something that is used even less, so +":$base\<$str>" is fine
18:10 TimToady there's also something to be said for not inventing additional syntax
18:10 PerlJam All I know is that bases 2, 8, 10, and 16 come up quite a bit in computer programs   :)
18:10 TimToady which is why those have special cases
18:11 GlitchMr Perl 6 is already more popular than certain languages at GitHub :).
18:11 GlitchMr https://github.com/languages/AppleScript
18:11 SamuraiJack_ joined #perl6
18:11 quietfanatic reusing already existing syntax for something entirely unrelated is just as bad in my opinion as inventing new syntax
18:11 TimToady using colon notation also gives you the () and [] variants for "free"
18:12 GlitchMr In PHP there is base_convert() function. The name is long, but you rarely want to do it anyways.
18:12 quietfanatic Something like that but with a better name would be best, I think.
18:12 PerlJam quietfanatic: we do it all the time with contextual clues to help.  Notice how many ways {} can be used.
18:13 PerlJam quietfanatic: :NUMBER seems like a really good contextual clue to me.
18:13 TimToady I have no trouble telling :foo apart from :16
18:13 GlitchMr I wouldn't have problem with something like base-convert function to do it
18:14 quietfanatic At a close look, you have no trouble, of course
18:14 PerlJam GlitchMr: That's kind of where I was going initially.   If there were some subroutine to do base conversion (in addition to the current notation), maybe that would help
18:14 quietfanatic suppose you're skimming over code.  You'll see what looks like a pair, but you'd have to examine the individul characters to see that it is in fact not a pair
18:14 TimToady you always have to look at individual characters
18:15 quietfanatic But : and < > are immediately distinctive.
18:15 GlitchMr I mean, $num.base-convert($base => 10) looks better than +":$base\<$num>"
18:15 quietfanatic whereas 16 and IG are not immediately distinguishable.
18:15 TimToady so are 2 and x
18:15 PerlJam quietfanatic: sounds like you need a better font  :)
18:16 quietfanatic .oO(The tyrrany of selective examples)
18:16 quietfanatic Oh, I can tell them apart if I actually look at them
18:16 * PerlJam boggles
18:17 GlitchMr If I would see +":$base\<$num>" I would think it's... hacky method of converting bases
18:17 quietfanatic My thesis here is that you shouldn't have to read every single character to get a gist of the structure of a piece of code.
18:17 quietfanatic And yes, { } used for both hashes and code bothers me that way too.
18:17 TimToady this seems to come down to almost the same argument as "I want to be able to read it without learning the language"
18:18 GlitchMr What's wrong with { } being used for both functions and hashes?
18:18 TimToady and I'd submit that someone who doesn't know Perl 6 would immediately figure out what :16<deadbeef> means
18:18 quietfanatic That's because deadbeef is a culturally unambiguous hexadecimal number.
18:18 GlitchMr :16<deadbeef> could be written as 0xdeadbeef
18:19 quietfanatic GlitchMr: You have to use contextual cues to figure out which is which, just like the compiler
18:19 TimToady the other thing is that if you're going to be using a weird base, you're likely to use it many times in teh same program, so the learning is amortized
18:19 GlitchMr Well, .map will definitely won't take hash as function :P.
18:19 quietfanatic TimToady: Oh that's a valid point
18:19 PerlJam quietfanatic: "contextual cues" is almost the basis of all things Perl.
18:20 [Coke] "GRAMMAR"
18:20 benabik r: say <1 2 3>.map { a => 12 }
18:20 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Confused␤at /tmp/KGZaxPsRn6:1␤»
18:20 GlitchMr We have binary, octal, hexadecimal, decimal... what other weird base you would want to use?
18:20 TimToady GlitchMr: I certainly would not be opposed to a named function in place of the hack
18:20 benabik Base64?
18:20 PerlJam GlitchMr: base 64 seems to come up a lot
18:20 quietfanatic The thing is, I skim code almost as much as I carefully read it.  Actually, more.
18:21 quietfanatic and so I like easily-skimmable code quite a bit.
18:21 GlitchMr :64<1> doesn't work and shouldn't
18:21 PerlJam GlitchMr: base 36 is occasionally useful too
18:21 TimToady nr: say :64[1,1]
18:21 p6eval niecza v19-15-g051783d: OUTPUT«Unhandled exception: :16[...] syntax NYI␤  at /home/p6eval/niecza/lib/CORE.setting line 1414 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3550 (unbase @ 8) ␤  at /tmp/3VeZbgRWB8 line 1 (mainline @ 3) ␤  at /home/p6eval/niecza/lib/CORE.setting …
18:21 p6eval ..rakudo 038a3c: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/5s5MwphmF6:1␤»
18:21 benabik Although there is a difference between Base64 and base 64. :-/
18:21 GlitchMr I would like to see use for base 36... but I also would like to see use for octal numbers :)
18:21 TimToady octals make sense on a PDP11 :)
18:22 GlitchMr Oh, I think I have one use for octals - chmod
18:22 PerlJam GlitchMr: when talking to other weird systems, it helps if you speak their language :)
18:22 fhelmberger joined #perl6
18:22 quietfanatic_ joined #perl6
18:22 TimToady base 4 makes some sense in biology :)
18:22 GlitchMr But, I can see base 4 being useful
18:22 GlitchMr TimToady said it before me :P
18:23 cosimo so...
18:23 cosimo if I had to propose a redesign of perl6.org, what concepts we want the site/design to convey?
18:23 GlitchMr I like current Perl 6 site :)
18:23 PerlJam base 6 might make lots of sense if you're dealing with molecules that have lots of carbon  :)
18:24 quietfanatic_ Non-conformity.
18:24 quietfanatic_ (cosimo:)
18:24 GlitchMr It reminds me WHATWG website for some reason, but it's nice nevertheless
18:24 TimToady friendly to seven-year-olds
18:24 TimToady fun
18:24 PerlJam cosimo: friendly, fun, capable, serious, powerful, awesome, cool, nice, happy, ...
18:25 benabik Wikipedia says base 15 is useful for telephony routing over IP
18:25 TimToady btw, the .org doesn't have to do everything; there are plenty of other tlds
18:25 GlitchMr Could you modify grammar to add 0p if you need it?
18:25 TimToady so the .org should be fun
18:25 GlitchMr p being for pentadecimal
18:26 quietfanatic_ I bet you could
18:26 benabik postfix:<p> ?
18:26 TimToady GlitchMr: it's possible, but we don't go out of our way to make it easy
18:26 benabik -Ofun
18:26 benabik And there do seem to be a good number of uses for base 36.
18:26 quietfanatic_ TimToady: I thought the Perl 6 grammar was supposed to be extensible at the drop of a hat
18:26 GlitchMr postfix:<p> wouldn't work when your numbers include characters between A and E
18:27 quietfanatic_ TimToady: Or have we decided to go the Apple route? :)
18:27 GlitchMr 0t1201202201
18:27 PerlJam base 60 has lots of uses too
18:28 GlitchMr https://en.wikipedia.org/wiki/Ternary_computer
18:29 Tene ternary would also be useful for malbolge interop
18:29 TimToady r: say :60[12,34,56]
18:29 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/WdOzyP90D3:1␤»
18:29 TimToady nyi I guess
18:29 PerlJam rakudo doesn't grok bases above 36 for some reason
18:29 TimToady I thought it did
18:30 benabik 36 is the highest unambiguous base.  0-9a-z.
18:30 jeffreykegler joined #perl6
18:30 TimToady see S02:3247
18:31 GlitchMr Bases above 36 aren't useful anyways until :X[] notation will be implemented
18:31 benabik r: say :10[1,2,3,4]
18:31 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Malformed radix number␤at /tmp/vSiY9iJBSR:1␤»
18:31 TimToady b: :60[12,34,56]
18:31 p6eval b 922500: OUTPUT«===SORRY!===␤Malformed radix number at line 22, near "[12,34,56]"␤»
18:32 TimToady ng: :60[12,34,56]
18:32 TimToady alpha: :60[12,34,56]
18:32 * TimToady forgets the names
18:32 benabik p6eval: help
18:32 p6eval benabik: Usage: <(star|pugs|nqp|std|niecza|rakudo|​b|toqast|nom|npr|n|r|perl6|prn|rn|​p|rnp|nrp|pnr|rpn|t|p6|nr)(?^::\s) $perl6_program>
18:32 TimToady pugs: say :60[12,34,56]
18:32 p6eval pugs: OUTPUT«45296␤»
18:32 PerlJam pugs++
18:32 TimToady maybe that's what I'm remembering
18:32 benabik perlcabal's spec appears to be out of date.
18:33 GlitchMr It's always out of date ;)
18:34 benabik Well, that's what the irc logs point to, so it would be nice if it wasn't.
18:34 GlitchMr Even when you think it isn't, something is out of date.
18:36 cosimo is it possible to run stuff server side for perl6.org, or it's a completely static site?
18:36 GlitchMr It's static site
18:37 PerlJam std:  say :60[12,34,56]
18:37 p6eval std f43a358: OUTPUT«ok 00:00 42m␤»
18:39 diakopter how does one regex match for graphs that could have negative codepoints?
18:40 diakopter TimToady: ^^ re NFG
18:41 haidarian joined #perl6
18:41 quietfanatic You can't know the codepoints of precomposed graphemes, can you?
18:41 diakopter not under the proposed implementation
18:42 [Coke] r: my $a = "This is a string"; say $a.chars
18:42 p6eval rakudo 038a3c: OUTPUT«16␤»
18:42 diakopter (and not under any implementation I can imagine)
18:42 [Coke] wow. I counted that wrong at least 3 times. ;)
18:42 quietfanatic I'd imagine that in the regex you have to assemble the equivalent grapheme out of its individual codepoints.
18:43 diakopter quietfanatic: yeah, but is there a way to say "this base codepoint, with optionally whatever combining codepoints"
18:44 quietfanatic [ :ii $base ], perhaps?
18:44 diakopter (or optionally particular combining codepoints)
18:44 quietfanatic well,that's probably more difficult
18:45 quietfanatic If you are matching on the grapheme level it's probably difficult to selectively pull the graphemes apart into codepoints when you please.
18:46 diakopter well, I'm just imagining it will be impossible to match against NFG strings that contain negative codepoints (except for . obviously), because the codepoints don't fall into any cclass and can't be matched directly
18:47 benabik negative codepoints?
18:47 quietfanatic The negative codepoints stand for a sequence of positive codepoints though.
18:47 diakopter are you suggesting the regex engine should decompose them while matching?
18:47 quietfanatic If it has to.
18:48 quietfanatic Negative codepoints is just an implementation detail.  An optimization.
18:48 quietfanatic as far as I understand it, at least.
18:48 diakopter eh; I'm fairly certain TimToady says it's an essential element of NFG
18:49 quietfanatic Well, that's how you'd get a semantically variable-width encoding into an actually fixed-width encoding.
18:49 diakopter right, but also how to store NFG strings at runtime
18:49 quietfanatic right.
18:49 diakopter (all strings)
18:50 quietfanatic Somewhere hidden in the program is a table which maps negative indexes to strings representing one grapheme.
18:50 quietfanatic Like the symbol table in Lisp dialects.
18:50 sftp joined #perl6
18:50 diakopter right...
18:51 jnthn I would rather expect that the negative codepoints have a bunch of unicode properties calculated for them.
18:51 quietfanatic jnthn: Oh, that's possible too
18:51 PerlJam joined #perl6
18:52 diakopter but what would determine whether they have those properties?
18:52 quietfanatic whether the positive codepoints they stand for have those properties
18:52 jnthn Giving it the properties of the base character is probably a good start.
18:52 diakopter whether *all* the codepoints in the graph have the property or just one of them?
18:52 diakopter ok
18:53 quietfanatic Or is unicode not set up to assign codepoints to composed graphemes?  I don't know actually
18:53 quietfanatic ah
18:53 jnthn The answer may also vary with property. I suspect there must be a sane way to do this.
18:53 quietfanatic Excuse me
18:53 quietfanatic to assign *properties* to composed grapheme
18:53 quietfanatic s
18:53 * jnthn guessed that's what was meant
18:53 * quietfanatic made a wordo
18:54 diakopter I don't think that's a word
18:54 quietfanatic It's like a typo
18:54 diakopter it was a joke..
18:55 masak I don't think that's a joke :P
18:55 diakopter :D
18:57 TimToady all NFG codepoints (both negative and precomposed NFC) should have easily accessible NFD for any kind of partial grapheme matching or property
18:58 TimToady so looking up property of the base char should generally not be difficult
18:58 diakopter ok, that answers the question of whether regex matches should match against just the base character
18:59 jnthn Well, in the context of properties anyway, I guess.
18:59 diakopter including cclass?
18:59 jnthn yes
18:59 jnthn Those boil down to unicode props
18:59 diakopter ok
19:01 TimToady we will need to invent ways of doing partial matches that involve marks
19:01 TimToady but I think that will become more obvious once we get NFG in place
19:01 diakopter ah, that was the other question, which I had forgotten I asked
19:04 dalek nqp/toqast: 476a500 | jnthn++ | src/guts/multi_dispatch.c:
19:04 dalek nqp/toqast: Don't look into freed memory.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/476a500ac2
19:04 dalek nqp/toqast: 9341160 | jnthn++ | src/NQPQ/ (3 files):
19:04 dalek nqp/toqast: Partially fix multi-method dispatch.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/9341160d03
19:04 dalek nqp/toqast: 4e3159b | jnthn++ | src/QAST/Operations.nqp:
19:04 dalek nqp/toqast: Fix code-gen bug.
19:04 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4e3159b19e
19:05 TimToady or course, one can always call out to a method in a grammar, but it's not clear how that helps normal regexes, unless we do it with <:&mymatch(...)> or some such
19:09 jeffreykegler joined #perl6
19:25 japhb r: say +':60[12,34,56]'
19:25 p6eval rakudo 038a3c: OUTPUT«45296␤»
19:25 dalek nqp/toqast: 9ccb91c | jnthn++ | src/QAST/Operations.nqp:
19:25 dalek nqp/toqast: Fix lexotic compilation bug.
19:25 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/9ccb91c616
19:25 dalek nqp/toqast: 4780b8e | jnthn++ | src/NQPQ/ (2 files):
19:25 dalek nqp/toqast: Fix return; this also brings it inline with the mechanism we use to do it in Rakudo.
19:25 dalek nqp/toqast: review: https://github.com/perl6/nqp/commit/4780b8e99c
19:25 japhb TimToady, Str.Numeric handles :60[,,] format.  The main compiler does not.
19:26 masak feels like that should be a single code path :)
19:26 japhb masak, Str.Numeric would ideally be implemented by just using that piece of the full grammar.  Unfortunately:
19:27 japhb A) When I started working on Str.Numeric, I don't think that was actually workable.  Dunno if it is now.
19:27 japhb B) The general grammar is (was?) way slower than the hand-coded Str.Numeric parser.
19:27 japhb Hence, not one code path yet.  :-)
19:29 japhb Str.Numeric can handle some pretty strange stuff these days.  Unfortunately, not Complex numbers yet.  I should probably just do that when I continue work on val().
19:32 masak ++japhb
19:35 bluescreen10 joined #perl6
19:47 * [Coke] wonders if nieczue rhymes with "miscue"
19:49 brrt joined #perl6
19:55 [particle] joined #perl6
19:59 jeffreykegler joined #perl6
20:01 fhelmberger joined #perl6
20:06 birdwindupbird joined #perl6
20:06 sirrobert proving tests on JSON::Tiny seems to randomly skip/fail tests...
20:07 sirrobert just ran "prove -re perl6 t/01-parse.t" three times in a row
20:08 sirrobert twice they all passed, the third time "No subtests run"
20:08 sirrobert sometimes a portion pass and a portion fail
20:08 sirrobert is that a known phenomenon others have encountered?
20:10 fhelmberger joined #perl6
20:11 masak sirrobert: no, never heard anything like that before.
20:11 sirrobert hm
20:11 masak [Coke]: no, it rhymes with "betcha" :)
20:12 sorear sirrobert: is it still random if you disable address space layout randomization?
20:12 sirrobert tell me how to do that and I'll check =)
20:12 masak [Coke]: or, hm, maybe not... :)
20:13 sorear sirrobert: are you on linux?
20:13 sirrobert yep
20:14 sorear echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
20:16 sirrobert sorear:  running prove several times now, will tell you in a sec
20:17 sirrobert six consecutive runs of prove with no issue.
20:17 sirrobert (previously I got at most 2 in a row)
20:18 sirrobert you want me to report that somewhere?
20:18 sirrobert woops, it happened again on the 11th run
20:19 sirrobert but that's a lot MORE rare, at least =)
20:20 fgomez joined #perl6
20:24 sirrobert my vm is being silly-- rebooting it
20:26 benabik karma silly
20:26 aloha silly has karma of 0.
20:30 masak karma everybody
20:30 aloha everybody has karma of 1.
20:36 jeffreykegler joined #perl6
20:50 francium joined #perl6
20:58 sirrobert joined #perl6
20:58 sirrobert back
21:00 Tene karma karma
21:00 aloha karma has karma of 2.
21:01 sirrobert What does the syntax "Any:U", "Any:D", "Hash:D" etc. mean?
21:02 masak sirrobert: definedness of an object.
21:02 masak r: sub foo(Int:U) { say "type object" }; sub foo(Int:D) { say "instance"
21:02 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 2, near ""␤»
21:02 masak r: sub foo(Int:U) { say "type object" }; sub foo(Int:D) { say "instance" }; foo Int; foo 42
21:02 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Redeclaration of routine foo␤at /tmp/0CD1zHN2vD:1␤»
21:02 sirrobert so if a param is (Hash:D $d) it means "a defined hash"
21:02 sirrobert instead of say, Hash itself
21:02 sirrobert ?
21:02 masak r: multi foo(Int:U) { say "type object" }; multi foo(Int:D) { say "instance" }; foo Int; foo 42
21:02 p6eval rakudo 038a3c: OUTPUT«type object␤instance␤»
21:02 masak sirrobert: right.
21:03 sirrobert oh, or instead of a "my Hash %foo;"
21:03 sirrobert ok, thanks
21:03 masak sirrobert: 'my Hash %foo' is a hash of hash objects.
21:03 sirrobert ohhh right
21:03 masak sirrobert: both the type annotation and the sigil add something there.
21:03 sirrobert righto
21:03 sirrobert are there others besides :U and :D?
21:04 masak I believe so.
21:04 * masak checks
21:04 masak yes.
21:04 masak :_ and :T
21:04 sirrobert where did you look? =)
21:05 masak S12.
21:05 sirrobert ok
21:05 masak "Abstract vs Concrete types"
21:05 sirrobert ah
21:05 masak :_ allows anything, it seems.
21:05 masak :T allows only type objects, not just any undefined thing.
21:05 masak :U allows undefined things.
21:05 Chillance joined #perl6
21:06 sirrobert ok, makes sense
21:06 sirrobert mostly ;)
21:08 masak r: sub foo(Int:U) { say "undefined" }; sub foo(Int:D) { say "defined" }; foo 42; foo 42 but role { method defined { False } }
21:08 p6eval rakudo 038a3c: OUTPUT«===SORRY!===␤Redeclaration of routine foo␤at /tmp/AT1bT0Rj52:1␤»
21:08 masak argh.
21:08 masak r: multi foo(Int:U) { say "undefined" }; multi foo(Int:D) { say "defined" }; foo 42; foo 42 but role { method defined { False } }
21:08 p6eval rakudo 038a3c: OUTPUT«defined␤defined␤»
21:09 masak apparently that wasn't undefined enough :)
21:09 sirrobert heh
21:09 quietfanatic Rakudo might be cheating.
21:09 Tene r: multi foo(Int:U) { say "undefined" }; multi foo(Int:D) { say "defined" }; foo 42; foo Int
21:09 sirrobert the "but role" applied a "mixin" that returned False for the method "defined" ?
21:09 p6eval rakudo 038a3c: OUTPUT«defined␤undefined␤»
21:09 Tene sirrobert: yes
21:09 sirrobert cool
21:10 masak yes :)
21:10 jnthn :U is currently taken to mean "type object"
21:10 masak huh.
21:10 jnthn Just after I implemented that lot, the spec got changed. :/
21:11 * masak submits rakudobug
21:11 sirrobert is there a way to apply a mixin temporarily?  (or to remove it after applying it?)
21:11 jnthn I'm hoping if I ignore the spec change enough it may change back :P
21:11 masak sirrobert: just keep the original object around ;)
21:11 jnthn If you use "but" and keep the original one around... :)
21:11 sirrobert does applying a mixin copy the object?
21:12 jnthn sirrobert: Yes if you use "but". No if you use "does"
21:12 quietfanatic 'does' is a
21:12 quietfanatic ^ that
21:12 sirrobert meowf!  that's great
21:12 sirrobert I'd been trying to figure that out for a while (off and on)
21:12 sirrobert everyone++ =)
21:14 sirrobert and now it's grammatically obvious.  heh
21:19 sirrobert man that makes a couple of things a lot easier =)
21:22 sirrobert ok, gotta go-- thanks all =)
21:22 masak karma go
21:22 aloha go has karma of 0.
21:24 jnthn using hyphens-- a curious way to play with the karma bot.
21:27 masak I took it to mean he was dissatisfied with having to go.
21:42 [Coke] if :_ allows anything, why do we need to specify it?
21:45 sorear because it overrides a 'use parameters :D' pragma in scope
21:47 brrt joined #perl6
21:50 [Coke] hokay
22:19 japhb rn: '<1/2>'.Numeric.perl.say;
22:19 p6eval rakudo 038a3c: OUTPUT«Failure.new(exception => X::Str::Numeric.new(source => "<1/2>", pos => 0, reason => "base-10 number must begin with valid digits or '.'"))␤»
22:19 p6eval ..niecza v19-15-g051783d: OUTPUT«Unhandled exception: Cannot parse number: <1/2>␤  at /home/p6eval/niecza/lib/CORE.setting line 1414 (die @ 5) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3492 (ANON @ 11) ␤  at /home/p6eval/niecza/lib/CORE.setting line 3494 (NumSyntax.str2num @ 5) ␤  a…
22:19 japhb TimToady, was it your intent that the above DWIM?  Or for .Numeric, does the user need to leave off the < >?
22:20 japhb er, Str.Numeric, I mean.
22:25 masak 'night, #perl6
22:26 japhb o/
22:33 PacoAir joined #perl6
22:37 sftp joined #perl6
22:43 PacoAir joined #perl6
22:52 skids joined #perl6
23:06 cognominal_ joined #perl6
23:18 Chat3630 joined #perl6
23:18 Chat3630 Hey:)
23:18 sorear Hello Chat3630.
23:18 sorear Are you here for Perl 6?
23:23 sjn tadzik: http://news.ycombinator.com/item?id=4363887
23:32 am0c joined #perl6
23:33 sjohnson sorear: :)
23:33 sjohnson if not, he may get perl6 fever
23:33 gongyiliao joined #perl6
23:50 jeffreykegler joined #perl6

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

Perl 6 | Reference Documentation | Rakudo