Camelia, the Perl 6 bug

IRC log for #perl6, 2011-01-01

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 flussence merry arbitrary timezone&Interval(), *
00:01 lue happy new year to UTC !
00:06 colomon \o/
00:18 pmurias left #perl6
00:18 lue What doesn't help my heightened fascination with Time today is the all-day (more like 2-day actually) marathon of Doctor Who on BBC America
00:23 itz its all about "amy's crack"
00:28 yarrak is now known as yarrack_logging
00:29 masonkramer left #perl6
00:29 masonkramer joined #perl6
00:30 lue afk
00:39 molaf left #perl6
00:50 * moritz_ wishes everybody attached to the Gregorian calendar a happy new year
00:51 * itz recommends listening to "Can - Monster Movie - Yoo Doo Right"
01:00 patspam joined #perl6
01:02 * colomon is even willing to wish people not attached to the Gregorian calendar a happy new year, no matter when it starts in their opinion...
01:03 colomon moritz_: IO::Prompter (the colomon version) almost sort of works now.  ;)
01:04 sorear a new year starts at every instant.
01:07 felliott joined #perl6
01:08 patspam left #perl6
01:29 envi joined #perl6
01:39 qw3rty left #perl6
01:41 Eevee left #perl6
01:42 Eevee joined #perl6
01:43 redicaps joined #perl6
01:47 M_o_C joined #perl6
02:01 qiuhw joined #perl6
02:21 dalek tpfwiki: (Herbert Breunung)++ | http://www.perlfoundation.org/perl​6/index.cgi?perl_6_cookbook_tablet
02:21 qiuhw left #perl6
02:23 qiuhw joined #perl6
02:27 justatheory left #perl6
02:36 dalek niecza: 9f058da | sorear++ | / (3 files):
02:36 dalek niecza: [v6] Add a few unit tests for CgOp
02:36 dalek niecza: review: https://github.com/sorear/niecza/commit/9f058da7d0
02:37 dalek niecza: 7336565 | sorear++ | v6n/cgop.t:
02:37 dalek niecza: [v6] Actually add cgop.t
02:37 dalek niecza: review: https://github.com/sorear/niecza/commit/7336565ca4
02:38 molaf joined #perl6
02:41 M_o_C left #perl6
02:47 dalek niecza: 3349c98 | sorear++ | v6n/ (2 files):
02:47 dalek niecza: [v6] Translate Body and Unit
02:47 dalek niecza: review: https://github.com/sorear/niecza/commit/3349c98e4e
02:48 dukeleto left #perl6
02:48 dukeleto joined #perl6
02:57 molaf_ joined #perl6
02:58 soroush left #perl6
03:00 molaf left #perl6
03:17 Trashlord left #perl6
03:18 kfo_ joined #perl6
03:19 mandragoran joined #perl6
03:22 kfo left #perl6
03:22 jasonmay yay, just wrote a working MUD with my baby perl6 :D
03:22 pmurias joined #perl6
03:22 flussence nice!
03:23 pmurias sorear: what's an xid?
03:23 lichtkind good night
03:23 mandragoran left #perl6
03:24 lichtkind colomon: thanks, to me new year is in spring, i think iranian zoroasterian got it right :)
03:27 jasonmay https://gist.github.com/761532
03:27 pmurias lichtkind: you have a new year's eve party in spring?
03:31 lichtkind pmurias: some sort of :) even if im the only one celebrating :)
03:32 * pmurias dislikes all holiday celebration
03:32 * lichtkind understand, its mor a joyous recognition what is going on :)
03:36 pmurias and time passing away is not something i'm very happy about
03:37 lichtkind pmurias: maybe if you render yourself mortal, in any other case life is just a free seek of joy
03:38 pmurias you believe you are immortal?
03:38 lichtkind pmurias: depends you definition of "believe" :)
03:39 lichtkind i would call it recognize
03:39 pmurias you recognize you are immortal?
03:39 lichtkind yes
03:41 lichtkind which doesnt protect from being bored or sad :)
03:42 * pmurias relises #perl6 is not a good place to discuss ocult stuff
03:43 pmurias * occult
03:44 lichtkind pmurias: you mean realize? occult is as far as i know a certain knoweldge and practices, which is very loosly related to things discussed
03:46 lichtkind my point was just enjoy life and don't worr its as acult as the well know song: don't worry be happy <whistle>
03:47 araujo lichtkind, you are not immortal , life is
03:47 flussence according to a few trolls, we're already a cult :)
03:47 lichtkind cult of the living camel :)
03:52 redicaps left #perl6
03:53 redicaps joined #perl6
03:56 gfldex to believe that a camel can turn into a butterfly you need a cult proper
04:07 lichtkind good night
04:07 pmurias good night
04:07 lichtkind :)
04:07 lichtkind left #perl6
04:14 lue hello #perl6 and happy new year to UTC-4 \o/ [if I'm not mistaken]
04:16 flussence .oO( does anyone live in UTC(-3..-1), besides Iceland? )
04:20 lue Parts of Santa's workshop and a few platoons of Tux's army, I suppose.
04:28 vastak left #perl6
04:32 am0c left #perl6
04:35 araujo happy new year UTC-4:30 !
04:54 felliott left #perl6
04:59 pmurias left #perl6
05:00 slavik1 Happy New Year!
05:01 TimToady HNY, EST.
05:01 lue Happy new year UTC-5
05:02 orafu left #perl6
05:02 orafu joined #perl6
05:24 gbacon left #perl6
05:30 x19290 joined #perl6
05:31 x19290 Hello.
05:31 x19290 I implemented and tested a class called FD. The code is
05:31 x19290 http://19290.net/2011-01-01/fd-class-a.t
05:31 x19290 FD is implemented with `has-a' relationship, so to get real file descriptor,
05:31 x19290 I must call FD.descriptor() method.
05:32 x19290 Can I rewrite the code with `is-a' relationship?
05:32 x19290 I mean Can I say `class FD is Int ...?'.
05:33 felliott joined #perl6
05:39 x19290 Happy New Year UTC+9
05:41 felliott left #perl6
06:01 redicaps left #perl6
06:03 lue Happy new Year UTC-6! afk
06:10 [Coke] left #perl6
06:17 x19290 left #perl6
06:18 x19290 joined #perl6
06:57 redicaps joined #perl6
07:03 flatwhatson_ joined #perl6
07:04 yarrack_logging #In Memory of Hans Reiser# We will always remember and cherish you.  Your acts of selflessness will be passed down from generation to generation.  The lies that dishonor your name will be vanquished.  You were a true patriot and a lover of all men, all races, all religions.
07:09 coldhead hans is dead?
07:37 yarrack_logging left #perl6
07:37 sorear good * #perl6
07:39 sorear x19290: I do not beleive so
07:40 sorear phenny: tell pmurias an xid is the second element of an Xref object
07:40 phenny sorear: I'll pass that on when pmurias is around.
07:44 qiuhw left #perl6
07:44 qiuhw joined #perl6
07:51 kanishka joined #perl6
08:01 TimToady happy new year from pst
08:02 VXZ Ditto
08:04 agentzh joined #perl6
08:25 agentzh left #perl6
09:08 sjohnson :3
09:28 Trashlord joined #perl6
09:51 nymacro joined #perl6
09:52 pothos joined #perl6
09:55 y3llow joined #perl6
10:08 qiuhw left #perl6
10:24 kanishka left #perl6
10:37 apeiron joined #perl6
10:44 lopnor is now known as lopaway
10:49 * sorear out
10:56 rindolf joined #perl6
11:01 simon joined #perl6
11:04 wagnerf joined #perl6
11:08 moritz_ good morning zebras
11:09 rindolf Hi moritz_
11:09 rindolf moritz_: I packaged rakudo-2010.12 for Mandriva Cooker.
11:09 wagnerf hi everyone, i'm trying to have a custom constructor for a class with some arguments
11:10 moritz_ rindolf: great
11:10 wagnerf but perl complains about "not enough positional parameters"
11:10 moritz_ wagnerf: please show some code
11:10 wagnerf http://scsys.co.uk:8002/77322
11:10 wagnerf i'm a bit new to perl6 so maybe i'm doing something wrong
11:10 knewt2 left #perl6
11:11 moritz_ method new($capacity) { self.bless(*, :$capacity, whites => 0, blacks => 0) ; }
11:12 moritz_ wagnerf: see http://perlgeek.de/blog-en/perl-6/objec​t-construction-and-initialization.html
11:12 wagnerf ok, I effectively saw something like that
11:13 wagnerf is there no way to achieve it with BUILD ?
11:14 wagnerf in any case, thanks for the hint
11:14 moritz_ no. BUILD Is called (indirectly) by new, and new's signature is causing that error
11:15 wagnerf ok
11:16 knewt2 joined #perl6
11:45 coldhead left #perl6
11:48 moritz_ anybody knows where the github bug tracker is?
11:50 kaare_ joined #perl6
11:56 wagnerf is there an easy way to do a deep copy of an object in perl 6 ?
11:56 moritz_ not really
11:56 moritz_ the problem is that deep cloning is user specific
11:57 moritz_ for example if you had a singleton object
11:57 moritz_ and there was a low-level cloning primitive
11:57 moritz_ that would break the assumptions of the singleton class
11:58 wagnerf well, for sure you need to be carefull with deep copy
11:58 wagnerf but for many cases dclone was quite nice for me
11:59 wagnerf ok, anyway, let's go with a copy constructor then
12:01 moritz_ copy constructor sounds so C++ :-)
12:08 nymacro left #perl6
12:20 noganex joined #perl6
12:23 noganex_ left #perl6
12:25 timbunce joined #perl6
12:27 VXZ left #perl6
12:29 masonkramer left #perl6
12:30 timbunce left #perl6
12:31 matthias_ joined #perl6
12:35 kanishka joined #perl6
12:37 jhuni left #perl6
12:43 kanishka left #perl6
12:45 redicaps left #perl6
12:46 timbunce joined #perl6
12:59 kanishka joined #perl6
13:07 pmurias joined #perl6
13:07 pmurias sorear: what's an Xref object?
13:07 phenny pmurias: 07:40Z <sorear> tell pmurias an xid is the second element of an Xref object
13:10 am0c^ joined #perl6
13:18 nymacro joined #perl6
13:19 kanishka left #perl6
13:21 nymacro left #perl6
13:36 [Coke] joined #perl6
13:37 Axius joined #perl6
13:42 am0c^ left #perl6
13:44 snearch joined #perl6
13:48 apeiron hey all. I was wondering if someone could look over https://github.com/apeiron/perlfaq/commit​/2bdb72e150d961831ad400a9b2f2e21b47fd8b3f before I send a pull request. I'd like to clarify the perlfaq entries covering perl6 to more accurately reflect current reality.
13:57 felliott joined #perl6
13:57 MayDaniel joined #perl6
13:57 * moritz_ takes a look
13:59 moritz_ apeiron: the first answer seems to confuse the compiler ("Rakudo") and the distribution ("Rakudo Star") a bit
14:00 apeiron hmm, fair.
14:00 Axius rakudo: say my $fv = "Hello", say $fv
14:00 p6eval rakudo f99d08: OUTPUT«Hello␤HelloBool::True␤»
14:00 simon does anyone have an example parser written with perl6 rules? one that buildan AST.
14:01 moritz_ simon: for example the JSON modules
14:01 moritz_ simon: see  http://github.com/moritz/json/ Grammar.pm and Actions.pm
14:01 f00li5h left #perl6
14:02 apeiron moritz_, I'll update it later today, and will post an updated commit URL.
14:03 moritz_ apeiron: "most developers writing Perl 5 have no intentions of switching to Perl 6
14:03 moritz_ is that true?
14:03 apeiron IME
14:03 moritz_ do you have data for that?
14:03 simon moritz_, thanks!
14:03 apeiron hm, wonder if the perl survey covers it?
14:04 moritz_ I'd like a more neutral formulation, like being a perl 5 developer doesn't imply you want to change to Perl 6 at some point
14:04 moritz_ "That said, Perl 6 has proven to be a fascinating research project for those doing Perl 5 development,
14:04 moritz_ "
14:05 moritz_ that's true, but I'd like to point out that for the PErl 6 folks it's not only a fascinating research project
14:05 colomon It makes it sound a bit like Perl 6 is strictly a research project designed to improve Perl 5.
14:05 colomon ... what moritz_++ said.
14:05 apeiron hmm
14:05 moritz_ "As Perl 6 is a reinvention of Perl 5"
14:06 moritz_ I'd just say "Perl" here, not "Perl 5"
14:06 Axius left #perl6
14:06 apeiron hmm
14:06 apeiron all right.
14:06 moritz_ apeiron++ # thanks for asking and caring
14:06 apeiron of course.
14:07 apeiron I do not want to start more drama.
14:07 apeiron moritz_++ colomon++ # helping in that effort
14:07 timbunce left #perl6
14:07 pmurias apeiron: re switching to Perl 6 doesn't that depend on how good Perl 6 turns out to be?
14:08 * apeiron personally has too much invested in p5
14:09 timbunce joined #perl6
14:14 pmurias apeiron: you have a lot of existing p5 code?
14:14 apeiron yes
14:21 soroush joined #perl6
14:32 am0c joined #perl6
14:35 redicaps joined #perl6
14:39 matthias_ left #perl6
14:55 timbunce left #perl6
15:05 roen joined #perl6
15:25 soroush left #perl6
15:31 wagnerf left #perl6
15:38 redicaps perl6: say $_ for ^2;
15:38 p6eval rakudo f99d08:  ( no output )
15:38 p6eval ..pugs: OUTPUT«0␤1␤»
15:38 p6eval ..niecza v1-35-gc9d17a7: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unhandled statement modifier for at /tmp/ZA_9XnQMAd line 1:␤------> [32msay $_ for ^2[33m⏏[31m;[0m␤Check failed␤»
15:39 redicaps Hi perl6, where can I find the description about this ^?
15:39 moritz_ which part of "this"
15:39 moritz_ ?
15:40 pmurias ^2>
15:40 pmurias s/>/?/
15:40 moritz_ rakudo works locally here
15:40 moritz_ dunno why it fails on the server
15:40 jasonmay I do perl5 for a living, I think it would be impossible for me to completely forsake it
15:40 redicaps ^
15:40 jasonmay but as perl6 improved I'm going to continue to write more and more cool things in it
15:40 redicaps ^ in "for ^2 "
15:40 jasonmay improves*
15:41 moritz_ redicaps: it's in S03
15:41 redicaps moritz_:  Thanks
15:41 moritz_ ^$n is just a range from 0 up to (but exluding) $n
15:41 moritz_ rakudo: say (^6).perl
15:41 p6eval rakudo f99d08:  ( no output )
15:41 moritz_ there's something horribly wrong on p6eval
15:42 jasonmay y2k11 bug!
15:42 MayDaniel left #perl6
15:42 redicaps right, ^ works locally on my computer
15:43 JimmyZ joined #perl6
15:45 M_o_C joined #perl6
15:46 dalek rakudo: b570a2c | moritz++ | build/PARROT_REVISION:
15:46 dalek rakudo: bump PARROT_REVISION for testing
15:46 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/b570a2c9da
15:49 _twitch joined #perl6
15:51 dalek niecza: 9697d6c | pmurias++ | cl-backend/ (2 files):
15:51 dalek niecza: [cl-backend] nam is turned into lisp and we use macros to handle the
15:51 dalek niecza: opcodes
15:51 dalek niecza: changed the test file to say "Hello World"
15:51 dalek niecza: review: https://github.com/sorear/niecza/commit/9697d6c6a3
15:55 pmurias sorear: what does the const opcode do?
16:03 moritz_ rakudo: say $_ for ^2
16:03 p6eval rakudo : OUTPUT«0␤1␤»
16:04 Patterner left #perl6
16:07 colomon left #perl6
16:07 Psyche^ joined #perl6
16:07 Psyche^ is now known as Patterner
16:07 JimmyZ left #perl6
16:15 [Coke] left #perl6
16:21 dalek niecza: d5ec680 | pmurias++ | cl-backend/backend.lisp:
16:21 dalek niecza: [cl-backend] say "Hello World" works
16:21 dalek niecza: review: https://github.com/sorear/niecza/commit/d5ec680c17
16:21 colomon joined #perl6
16:22 * pmurias has achived his first common lisp niecza milestone ;)
16:23 TimToady how hard can the rest be?  :)
16:25 colomon Er, "common lisp niecza milestone"?  What are you trying to do?
16:25 * colomon is watching GameDay and struggling with IO::Prompter
16:25 TimToady he's adding a clisp emitter
16:28 colomon \o/
16:28 colomon that sounds very cool.
16:28 colomon TimToady: Damian has an idiom here.... {?/<yes>/}
16:29 colomon He seems to think this defines a sub which matches one argument to <yes> and then converts the match/no-match to a Bool.
16:29 colomon It seems to fair very poorly in current Rakudo.
16:30 TimToady how is the block used?
16:30 colomon I like the looks of it, but I don't understand any reason it should actually work in p6.
16:30 colomon $extractor =   {?/<yes>/}; $retval =  $extractor($input)
16:31 moritz_ it's just a closure that returns True if its argument contains the string 'yes', and False otherwise
16:31 TimToady it oughta work, but I'm not sure // is strong enough to create a $_ parameter in a bare closure
16:31 moritz_ just a boolified Match
16:31 TimToady (in rakudo)
16:31 colomon I understand that's what it wants to be, but is it supposed to work?
16:32 colomon rakudo: $extractor =  {?/<yes>/}; say  $extractor("no way")
16:32 p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Symbol '$extractor' not predeclared in <anonymous> (/tmp/SfqlnNSB4p:22)␤»
16:32 colomon rakudo: my $extractor =  {?/<yes>/}; say  $extractor("no way")
16:32 p6eval rakudo b570a2: OUTPUT«Method 'match' not found for invocant of class ''␤  in 'Regex::Bool' at line 6118:CORE.setting␤  in 'prefix:<?>' at line 468:CORE.setting␤  in <anon> at line 22:/tmp/Bz0RWoe_mD␤  in main program body at line 22:/tmp/Bz0RWoe_mD␤»
16:32 moritz_ rakudo: my $e = { ?/<yes>/ }; say $e('asyesfll'); say $e('no')
16:32 p6eval rakudo b570a2: OUTPUT«Method 'match' not found for invocant of class ''␤  in 'Regex::Bool' at line 6118:CORE.setting␤  in 'prefix:<?>' at line 468:CORE.setting␤  in <anon> at line 22:/tmp/j1xoPSOUsk␤  in main program body at line 22:/tmp/j1xoPSOUsk␤»
16:32 moritz_ rakudo: my $e = -> $_ { ?/<yes>/ }; say $e('asyesfll'); say $e('no')
16:32 colomon yeah, that's the error I'm getting
16:32 p6eval rakudo b570a2: OUTPUT«Method 'match' not found for invocant of class ''␤  in 'Regex::Bool' at line 6118:CORE.setting␤  in 'prefix:<?>' at line 468:CORE.setting␤  in <anon> at line 22:/tmp/jvsLQr4vsk␤  in main program body at line 22:/tmp/jvsLQr4vsk␤»
16:33 moritz_ seems that $_ is not set
16:33 masak joined #perl6
16:33 masak ahoy, zebras!
16:33 moritz_ rakudo: my $e = -> $_ { ?m/<yes>/ }; say $e('asyesfll'); say $e('no')
16:33 p6eval rakudo b570a2: OUTPUT«Method 'yes' not found for invocant of class 'Cursor'␤  in <anon> at line 22:/tmp/RPugJq_Lka␤  in 'Cool::match' at line 2588:CORE.setting␤  in <anon> at line 22:/tmp/RPugJq_Lka␤  in main program body at line 22:/tmp/RPugJq_Lka␤»
16:33 moritz_ rakudo: my $e = -> $_ { ?m/yes/ }; say $e('asyesfll'); say $e('no')
16:33 p6eval rakudo b570a2: OUTPUT«Bool::True␤Bool::False␤»
16:34 colomon rakudo: my $e = { ?m/yes/ }; say $e('asyesfll'); say $e('no')
16:34 p6eval rakudo b570a2: OUTPUT«Bool::True␤Bool::False␤»
16:34 colomon well, that's an easy enough fix
16:35 moritz_ well, you'll probably need <&yes> or some such
16:35 colomon oooo, think that will work?
16:35 colomon I wasn't able to figure out how to use the regexes he defined, so I've just been working around that.
16:36 colomon \o/
16:36 moritz_ if you have a 'my regex yes { ... }', then <&yes> works
16:36 colomon moritz_++ # this is why I wanted his help.  ;)
16:36 colomon \o/
16:37 colomon that will clean things up a bunch.
16:37 moritz_ note that it doesn't capture by default
16:37 moritz_ uhm
16:37 moritz_ no tests :(
16:37 colomon for IO::Prompter?  nope.
16:38 moritz_ rakudo: say 3.not
16:38 p6eval rakudo b570a2: OUTPUT«Bool::False␤»
16:38 masak rakudo: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say "alive"
16:38 p6eval rakudo b570a2: OUTPUT«flattened parameters must be a hash or array␤  in main program body at line 22:/tmp/DYw5OTlNCI␤»
16:38 masak this should work, no?
16:38 masak I think it even used to...
16:39 masak alpha: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say "alive"
16:39 p6eval alpha : OUTPUT«alive␤»
16:39 moritz_ note that method true { ! $!failed }   should likely be  method Bool { ... }
16:39 masak alpha: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say $b.val
16:39 p6eval alpha : OUTPUT«Use of uninitialized value␤␤»
16:39 masak alpha: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say $b.A::val
16:39 p6eval alpha : OUTPUT«Use of uninitialized value␤␤»
16:39 * masak submits rakudobug
16:39 soroush joined #perl6
16:46 envi left #perl6
16:47 * colomon has just pushed an update to IO::Prompter which has a lot of the functionality working in current Rakudo.
16:48 * masak is happy to see colomon working on TheDamian's published module
16:48 moritz_ masak: fwiw S12-construction/new.t contain tests for the Class{...} syntax in arguments to .new
16:48 colomon I'm planning on adding it to the ecosystem later today.
16:48 snearch left #perl6
16:48 masak moritz_: yes, I said as much in the ticket.
16:49 moritz_ great
16:49 moritz_ I haven't actually read it :-)
16:49 masak I don't blame you, it's very new :)
16:49 icwiener joined #perl6
16:50 * masak is also happy to see apeiron++ stop by
16:51 apeiron masak, hey :) If you have any additional input to the github URL above, I'd be glad to incporate it.
16:51 masak I'll give it a read.
16:51 apeiron masak++ # thanks
16:52 jasonmay masak: see this? https://gist.github.com/761532
16:52 colomon moritz_, masak: If you guys have any ideas about how to set up tests for IO::Prompter, I'm all ears.
16:53 masak apeiron: "In short, Perl 4 is the past, Perl 5 is the present, and Perl 6 is [the future]->[a sibling of Perl 5, incompatible but related and relevant]."
16:53 lukas___ joined #perl6
16:53 mak__ joined #perl6
16:53 masak apeiron: just want to make you aware that that edit destroys a nice triplet of three-things-of-the-same-category.
16:53 mak__ Hi
16:53 phenny mak__: 08 Aug 19:20Z <moritz_> tell mak__ http://www.presentingperl.​org/yn2010/not-quite-perl/ # a wee bit older, but should still apply
16:53 apeiron hmm
16:53 masak apeiron: I agree that describing Perl 6 as "the future" is not something neither of us wants.
16:54 apeiron nod
16:54 masak apeiron: fivers because they like Perl 5 and don't want to switch, sixers because they believe Perl 6 is here already.
16:54 apeiron right.
16:54 masak but perhaps the sentence needs one more push away from its original phrasing.
16:54 mak__ https://github.com/sorear/niecz​a/blob/master/docs/tracing.pod
16:54 _jaldhar joined #perl6
16:54 apeiron Something more along the lines of language families?
16:54 mak__ is there any way this can be done in rakudo?
16:54 jaldhar left #perl6
16:55 masak jasonmay: I see it, yes. what am I looking at?
16:55 moritz_ colomon: the verification stuff can easily be tested by exporting the routines to a special tag
16:55 masak jasonmay: ooh, the MUD!?
16:55 moritz_ like   is export <test>
16:55 masak jasonmay++
16:55 colomon is export <test>?  Does that work now?
16:55 moritz_ I think so
16:55 masak jasonmay: you need to throw this up on github like, right now! :)
16:55 mak__ Can trace calls be done in rakudo?
16:55 jasonmay yep! I kind of cheated using http://github.com/jasonmay​/io-multiplex-intermediary for all the socket logic
16:55 masak jasonmay: if you don't, I will.
16:56 moritz_ anotehr idea. write a fakeIO class that suports .print and .get,
16:56 roen left #perl6
16:56 jasonmay masak: I'm going to factor it out a bit first
16:56 masak jasonmay: sure, just don't forget to push it.
16:56 moritz_ and pass instances as :in and :out to the prompt function
16:57 moritz_ that's the most black-boxy thing you can do without crazy IO stuff
16:57 colomon That's one heck of a good start, IMO.
16:57 masak apeiron: I know TimToady not-so-secretly believes that Perl 6 will eventually outdate Perl 5. but it may not be worth mentioning in the FAQ.
16:58 masak apeiron: I dislike the term "research project" almost to the point of wanting you to change it. almost. :)
16:58 masak apeiron: it sounds a bit like we don't use Perl 6 for stuff.
16:58 apeiron masak, others have pointed out it's a bit onesided and it'll be fixed.
16:58 masak good.
16:58 moritz_ backlogging considered harmful :-)
16:58 masak :P
16:59 TimToady only if it's based on goto
16:59 masak as moritz_ pointed out, Rakudo Star is a distribution, not the implementation.
16:59 kanishka joined #perl6
16:59 moritz_ colomon: once there are tests I'd like to replace the methods in the Result class with delegation
17:00 simon g/la 5
17:00 simon whoops.
17:00 colomon moritz_++
17:00 masak apeiron: "Neither one is mutually exclusive with the other" -- I'm not a native speaker, but... this is the first time I've seen "mutually exclusive with" as a construction.
17:01 apeiron 348k results on google.
17:01 masak I retract my objection, then.
17:02 simon I noticed that my vim doesn't have perl6 highlighting. is there a syntax file that's not distributed yet?
17:02 masak apeiron: but I'm unsure what that final sentence is trying to say.
17:02 TimToady I'd say "The two are not mutually exclusive"
17:02 flussence simon: vim-perl on github has one
17:02 flussence and vim 7.3, for that matter
17:02 simon flussence, thanks.
17:02 mak__ Is there syntax highlighting for emacs?
17:02 masak apeiron: *of course* in a sense, Perl 6 is meant to be a "replacement" for Perl 5, in the sense that it's not built to be less powerful or worse.
17:02 moritz_ https://github.com/petdance/vim-perl
17:03 masak apeiron: then again, that might be phrasing it too aggressively.
17:03 * moritz_ too slow
17:03 apeiron masak, hmm. How about "The two are complimentary, not mutually exclusive." ?
17:03 apeiron (or complementary, whichever one is right :)
17:03 masak apeiron: "complEmentary"
17:03 TimToady comple
17:04 apeiron thanks.
17:04 masak apeiron: yes, then I see better what you want to say.
17:04 apeiron :D
17:04 masak apeiron: maybe even add that the two communities benefit from each other through collaboration and friendly competition.
17:05 masak apeiron: by the way, since September my blog is a p5-p6 hybrid :)
17:05 apeiron masak, I mentioned that in one place with Moose; do you think it bears mentioning further?
17:06 masak apeiron: well, I'm talking about community relations more than module ideas. I don't know if it bears re-mentioning.
17:06 apeiron masak, hmm. Personally I see the two as results of one another, but I'll be explicit. :)
17:07 masak indeed. they are related and affect each other.
17:07 masak EOReview.
17:07 colomon doh!  yes | no prompt now accepts input, but is always Bool::True.
17:07 masak add more tests! :)
17:08 pmurias masak: aren't the Perl 5 and Perl 6 communities largely overlapping
17:08 pmurias ?
17:08 masak pmurias: I don't know.
17:08 apeiron pmurias, the perl5 devs I associate with most are dedicated to perl5.
17:09 masak pmurias: I get the feeling that people are mostly in one community, but have visited both.
17:09 TimToady many Perl 6 devs are Perl 5 users, but not Perl 5 devs
17:09 masak pmurias: I know the more I get involved with Perl 6, the more I learn about Perl 5 and get to respect the implementation, the CPAN modules, and the people of Perl 5.
17:10 apeiron hmm, perhaps I should clarify. When I say "perl5 devs" I mean "people writing perl5 code", not "people working on perl5 as in what you check out from perl.git"
17:10 VXZ joined #perl6
17:10 TimToady I mean the latter
17:10 TimToady could be a point of confusion
17:10 apeiron indeed, thus the clarification. :)
17:11 TimToady then what to you call the developers of Perl 5?
17:11 masak rakudo: class Point[$of] { method Str { "Point of $of } }; say Point["confusion"].new
17:11 TimToady *do
17:11 p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near "[$of] { me"␤»
17:11 masak rakudo: role Point[$of] { method Str { "Point of $of } }; say Point["confusion"].new
17:11 p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
17:11 masak rakudo: role Point[$of] { method Str { "Point of $of" } }; say Point["confusion"].new
17:11 moritz_ try std
17:11 p6eval rakudo b570a2: OUTPUT«Point of confusion␤»
17:11 masak \o/
17:12 masak sorry about the confusion :)
17:12 apeiron "porters"
17:12 apeiron :)
17:16 mak__ is there any way to do call tracing in rakudo?
17:16 masak apeiron: if there was a Perl 6 implementation with a decent p5-backcompat mode, p5-comparable speed, and access to CPAN, would you consider switching to Perl 6?
17:16 apeiron Tough question.
17:16 masak it's very hypothetical, I know.
17:18 apeiron I'm not sure if I should consider what you're saying as "if there was a Perl6 with the maturity of p5 and compatibility with it, would you consider switching?"
17:19 masak hm... maybe, but I can see a Perl 6 impl being *mature* without having those three things I listed.
17:19 apeiron Sure.
17:19 masak but yes, enough compatibility to not miss out form the great things of p5.
17:20 glow joined #perl6
17:20 apeiron That seems like "if there was something that was the best of both worlds, would you consider it?"
17:20 masak :)
17:21 masak well, we're not a two-pronged fork because we think it's *fun*.
17:21 mak__ problem with building rakudo
17:21 masak we're a two-pronged fork because we can't have the things we want in Perl 6 and the maturity of Perl 5 at this point in time. but we're building towards it.
17:21 mak__ build hangs after reaching src/gen/core.pm > src/gen/core.pir
17:22 masak mak__: how much RAM do you have?
17:22 masak mak__: likely massive swapping, not hanging.
17:22 mak__ 256mb
17:22 masak o.O
17:22 masak mak__: ^C
17:22 mak__ hmmm ok
17:22 masak mak__: step two: get more RAM...
17:22 mak__ :)
17:23 mak__ or I think I will work on niecza
17:23 masak that's an option as well. :)
17:23 wamba joined #perl6
17:23 mak__ or patch rakudo
17:23 mak__ the only thing is i don't how to solve that problem
17:23 masak it's probably not a one-patch problem...
17:23 mak__ oh
17:24 masak it's more of a design issue.
17:24 mak__ its basically putting that into one file
17:24 masak aye.
17:24 masak and there are clever people here aware of that problem.
17:24 masak don't want to discourage you, but...
17:24 mak__ can't that be broken up? I sure that would have thought about... or may im just you know ... saying
17:25 masak mak__: thing is, there are important reasons for keeping it in one file.
17:25 mak__ ok
17:25 masak mak__: specifically, that's how to get the scoping right.
17:25 masak but yes, it's an issue, especially as the setting grows.
17:26 mak__ not being able to install on system with lesser RAM's isnt good news
17:26 masak agreed.
17:28 molaf_ left #perl6
17:30 mak__ hmm will breaking that up require tinkering on all the .pm files that get appended to core.pm a step above?
17:31 masak I don't know what breaking that up would require. pmichaud made it sound like it was a non-trivial problem.
17:32 masak it's definitly less trivial than getting more RAM.
17:33 sECuRE you could build on another system and then just install, right?
17:33 masak sure.
17:35 mak__ actually for a one time install, its not that painfull
17:35 mak__ but the regular change->build->test cycle is what becomes time taking
17:36 flussence the only machine-dependent part is parrot, the rest of the build should be identical on any system
17:36 masak mak__: indeed. when I'm making a change to the setting, I usually build and test it outside of Rakudo for this very reason.
17:38 soroush_ joined #perl6
17:38 soroush_ left #perl6
17:39 mak__ Well I had asked earlier, does rakudo have call tracing?
17:40 soroush left #perl6
17:40 masak mak__: parrot has a -t flag for tracing.
17:40 mak__ ok
17:40 masak but I haven't used it, so you're on your own making it work.
17:42 _twitch left #perl6
17:48 apeiron Some fixes from many helpful folks here: https://github.com/apeiron/perlfaq/commit​/15d63d6e1175cf9b276ccd38fcc430353718a9c6 If I omitted any suggestions given, it is unintentional, and I welcome corrections.
17:50 masak apeiron: very well-balanced and satisfactory. apeiron++
17:50 apeiron If there are no corrections or additions, I'll send a pull request.
17:54 apeiron ah, one minor nit
17:55 apeiron whoops. Forgot one little change, the "Perl 6 is a reinvention of Perl"
17:55 apeiron That's now pushed.
17:55 dukeleto left #perl6
17:56 mak__ Is that development started in 2002 correct?
17:56 dukeleto joined #perl6
17:57 apeiron That date is in the original perlfaq; if it's wrong in my version it's wrong there. I'm happy to correct it if someone can point me to something official.
17:58 * masak checks the Parrot logs
18:01 masak 2002 seems right.
18:01 apeiron okay.
18:03 redicaps left #perl6
18:04 masak rediscaps, who just left, has blogged about Perl 6 laziness in Mandarin: http://redicaps.posterous.c​om/perl6-fibonacci-laziness
18:04 masak rediscaps++
18:06 apeiron I'm not sure if people who don't own the repo can see this, but: https://github.com/briandfoy/perlfaq/pull/1
18:07 masak apeiron: the Perl 6 development branch commenced in probably-2002 was abandoned in 2004: https://svn.parrot.org/parrot/tags/R​ELEASE_0_3_1/languages/perl6/README
18:07 masak apeiron: I'm mentioning this mostly for historical interest. I don't think it should be added to the FAQ. :)
18:07 apeiron okie, thank you.
18:08 mak__ left #perl6
18:09 masak but part of the actual answer to "it's been 10 years! why!?" is "turns out this is hard, and we've been starting over a few times on different stages of development".
18:09 apeiron right.
18:28 masak rakudo: class A { has @.b handles Array }; my $a = A.new; say $a.b.perl; $a.push(1, 2, 3); say $a.b.perl
18:28 p6eval rakudo b570a2: OUTPUT«[]␤Method 'push' not found for invocant of class 'A'␤  in main program body at line 22:/tmp/KrHSBT37lh␤»
18:28 masak aww.
18:28 * masak submits rakudobug
18:28 masak would have been really cool if that worked...
18:29 moritz_ what should 'handles Array' do?
18:29 moritz_ I don't think .push should ever call method Array
18:29 masak er.
18:29 moritz_ if you mean that it should handle every method from class Array, then you should be using inheritance instead
18:29 masak er.
18:30 masak I don't even know where to start replying to that.
18:30 masak I'll just continue submitting my bug report for now.
18:30 moritz_ what's the bug?
18:30 MayDaniel joined #perl6
18:30 gbacon joined #perl6
18:31 masak S12:1366: "If you say C<has $.fur is rw handles Groomable;> then you get only those methods available via the C<Groomable> role or class."
18:31 moritz_ ah.
18:31 masak by extension, I expected to get the methods available via Array.
18:32 moritz_ I didn't know about that part of the spec
18:32 masak even so, delegation != inheritance.
18:33 masak people usually suggest the opposite: favour composition over inheritance :)
18:34 moritz_ rakudo: role A { }; say A ~~ Abstraction
18:34 p6eval rakudo b570a2: OUTPUT«0␤»
18:36 masak rakudo: say Abstraction
18:36 p6eval rakudo b570a2: OUTPUT«Abstraction()␤»
18:37 masak it's a bit funny/odd: we don't have Class, but we have Abstraction.
18:38 moritz_ where in rakudo is trait_mod:<handles> defined?
18:38 moritz_ it's not in src/core/traits.pm
18:39 masak src/glue/handles.pm?
18:39 moritz_ that seems to contain a helper class
18:40 moritz_ but Action.pm +1924 says
18:40 moritz_ make PAST::Op.new(
18:40 moritz_ :pasttype('call'),
18:40 moritz_ :name('&trait_mod:<handles>'),
18:40 moritz_ $<term>.ast
18:40 moritz_ );
18:40 moritz_ so there must be a sub trait_mod:<handles>
18:40 moritz_ and I can't find it :(
18:41 moritz_ rakudo: say Mu.notdef
18:41 p6eval rakudo b570a2: OUTPUT«Bool::True␤»
18:42 masak me neither.
18:42 masak .notdef is no longer spec.
18:44 moritz_ rakudo: say 5.^methods[0].WHAT
18:44 p6eval rakudo b570a2: OUTPUT«Code()␤»
18:46 * moritz_ tries to modify handles.pm even though he doesn't know if it gets called
18:53 flussence argh, the pir::null__P trick with zavolaj stopped working
18:55 justatheory joined #perl6
18:56 Vlavv_ left #perl6
18:59 masak moritz_: don't know how much you're working on your planned exceptions grant right now, but -- it strikes me that one of the most important changes to be implemented is the ability to call &die with a real exception object, not just a Str.
18:59 moritz_ masak: I think I've got handles $type to work, but a corresponding test fails...
18:59 masak ok.
18:59 moritz_ masak: because the second type has a .new method
18:59 moritz_ inherited from Mu
18:59 masak I don't think I understand.
18:59 moritz_ so it overrides the default .new
18:59 masak oh!
19:00 masak now I do.
19:00 masak but isn't the default .new the one in Mu?
19:00 moritz_ class A { has $.b handles B }; A.new # boom, because $.b isn't initialized yet
19:00 masak that sounds like a fairly general problem.
19:00 masak TimToady: ^^
19:01 moritz_ so the MOP tries to retrieve $!b before the instance of A is created
19:01 masak right.
19:01 masak obviously not what was intended.
19:01 moritz_ which results in "Type objects are abstract and have no attributes, but you tried to access $!b"
19:01 masak since .new isn't supposed to be special, what is it we're missing in this picture?
19:03 ponbiki left #perl6
19:03 MayDaniel left #perl6
19:04 moritz_ maybe handles Type should stop at looking at methods when it hits Cool|Any
19:05 sorear good * #perl6
19:06 kanishka left #perl6
19:06 masak hi, sorear \o
19:06 rindolf Hi sorear
19:06 masak moritz_: wasn't there a similar judgment about the default range of .^methods recently?
19:06 kanishka joined #perl6
19:07 sorear phenny: tell pmurias a tuple like ["Test",15,"ok"]
19:07 phenny sorear: I'll pass that on when pmurias is around.
19:07 moritz_ masak: right, that's what made me think that way
19:07 masak moritz_: I don't like to build special cases into the type hierarchy.
19:07 moritz_ neither do I
19:07 moritz_ better suggestions welcome :-)
19:08 masak at least not when things started out as being first-class citizens and in principle overridable from within the language.
19:08 moritz_ when I generate the new instance with .bless intead of .new, all is fine
19:09 amkrankruleuen joined #perl6
19:09 Vlavv_ joined #perl6
19:10 masak \o/
19:10 sorear phenny: tell pmurias The const op causes its argument to be evaluated once and stored in the constant table; it's semantically the same as the identity so you can ignore it for now
19:10 phenny sorear: I'll pass that on when pmurias is around.
19:10 masak moritz_: I don't believe the test is wrong, I believe something like what you're proposing should be in place for C<handles> on types.
19:11 moritz_ masak: ah, using a role as backend type fixes things too, because a role doesn't come with .new by default (unless puned)
19:11 masak nice.
19:11 * moritz_ runs a full spectest run
19:11 masak but, as I said, I think it's meant to work for classes as well.
19:11 moritz_ {
19:11 moritz_ class TypePseudoHash { has %!data handles Associative }
19:11 moritz_ my $h = TypePseudoHash.new;
19:11 moritz_ $h<a> = 'c';
19:11 moritz_ $h<b> = 'd';
19:11 moritz_ say $h<a b>.join('|'), 'c|d', 'can do handles + type name';
19:11 moritz_ }
19:11 lue hello and happy first o' the year #perl6 o/
19:12 moritz_ that's the test that passes now
19:12 moritz_ uhm
19:12 moritz_ say() shouldn't be in the test :-)
19:12 masak no :)
19:12 masak lue: hello to you, lue. I believe 2011 will be wonderful for Perl 6.
19:13 * moritz_ hopes 2011 will be wonderful for all of us
19:13 rindolf Hi lue
19:15 kanishka left #perl6
19:15 moritz_ huh, writing more tests... they seem to fail
19:16 kanishka joined #perl6
19:16 Buccia`27C3 is now known as Bucciarati
19:17 ponbiki joined #perl6
19:18 moritz_ need to do more debugging... which is quite slow, because each recompile takes minutes :(
19:18 lue I have an idea for a completely ambitious project this year. Give me a dilation-proof minute or two to make a New Year's post :)
19:21 kjeldahl joined #perl6
19:23 lue [er, once you factor out my computer's amazing ability to not do things in a sane amount of time]
19:28 masak nom &
19:28 masak left #perl6
19:33 pmurias left #perl6
19:36 pmurias joined #perl6
19:39 Kodi joined #perl6
19:41 Kodi The bug of RT #74610 is apparently a feature implemented for RT #62316.
19:42 Kodi Now, I'm thinking we had it better the other way, with too few arguments causing a fatal error rather than an undefined value, although, of course, we could use an error message more informative than "Null PMC access".
19:45 colomon Kodi: "Null PMC access" is a Parrot segfault, having it occur always counts as a bug, whether the code in question should work or not.
19:45 Kodi Indeed.
19:51 colomon ah, here's an interesting one:
19:51 colomon rakudo: my @a; @a.push; @a.push; say @a:perl
19:51 p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Symbol '@a:perl' not predeclared in <anonymous> (/tmp/BhLbRBkU1a:22)␤»
19:51 colomon rakudo: my @a; @a.push; @a.push; say :@a.perl
19:51 p6eval rakudo b570a2: OUTPUT«"a" => []␤»
19:52 colomon I think I understand what's going on, but the idea that you can do a push statement without actually pushing anything seems odd.
19:53 colomon (found with a typo in my code, obviously.)
19:53 moritz_ just like you can do a priint() without anything
19:53 colomon can you?
19:53 colomon you can't do a say without anything.
19:53 colomon rakudo: print
19:53 p6eval rakudo b570a2:  ( no output )
19:54 colomon guess you can
19:54 moritz_ rakudo: say()
19:54 p6eval rakudo b570a2: OUTPUT«␤»
19:54 colomon discovered this writing my stub for the first IO::Prompter test.  :)
19:56 tadzik hello polarbears
19:56 colomon hello coke can
19:58 gbacon left #perl6
19:58 colomon arrrgh
19:59 gbacon joined #perl6
19:59 colomon \o/
20:05 sorear pmurias: ping
20:05 colomon moritz_: I've pushed the first IO::Prompter tests, if you get a chance I'd appreciate it if you could take a look and provide suggestions.
20:06 dalek roast: a0d5cf6 | moritz++ | S12-attributes/delegation.t:
20:06 moritz_ colomon: I'll take a look
20:06 dalek roast: [delegation.t] handles TypeObject
20:06 dalek roast: review: https://github.com/perl6/roast/commit/a0d5cf6b0b
20:07 colomon thanks.
20:07 moritz_ colomon: do you especially enjoy writing helper methods? :-)
20:07 colomon no
20:08 colomon but it is a bad habit from C++ days
20:08 moritz_ then I might be able to shorten StubIO quite a bit :-)
20:08 colomon I think I thought they would do more when I started writing them.
20:09 dalek rakudo: f8ecdbf | moritz++ | src/glue/handles.pm:
20:09 dalek rakudo: implement 'handles TypeObject'
20:09 dalek rakudo:
20:09 dalek rakudo: Works fine for roles, but classes have a .new method, which overrides the
20:09 dalek rakudo: original .new method. But since the delegation is done before the
20:09 dalek rakudo: instantiation, the attempt to access the attribute fails.
20:09 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/f8ecdbff5b
20:11 moritz_ colomon: simplifications pushed :-)
20:11 colomon dear heavens!
20:12 colomon moritz_++
20:12 colomon That was way better than my simplifications.
20:12 moritz_ 1 files changed, 8 insertions(+), 25 deletions(-)
20:12 moritz_ that's the kind of patch I like :-)
20:12 colomon also Perl 6++
20:13 colomon whoops, lost my second test in there, though.
20:13 colomon (not pushed, colomon--)
20:13 moritz_ btw you can write
20:14 moritz_ my $stub = StubIO.new(input => ['3']);
20:14 moritz_ and get rid of the .queue-input  call
20:15 colomon Not sure if I'm ready for that or not.  :)
20:19 colomon ack, you're right, that approach would be better
20:20 dalek rakudo: c9bc28f | moritz++ | docs/ChangeLog:
20:20 dalek rakudo: [docs] update ChangeLog
20:20 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/c9bc28f710
20:21 lue blag toast!    https://rdstar.wordpress.com/20​11/01/01/2011-is-now-compiling/
20:24 amkrankruleuen left #perl6
20:25 moritz_ lue: you're completely insane. Welcome to #perl6 :-)
20:25 flussence that... was almost exactly what I was going to say :)
20:25 amkrankruleuen joined #perl6
20:27 flussence (but why GCC and not LLVM?)
20:31 lue I just happen to be more familiar with GCC, in the sense of knowing about it. I currently only know of LLVM as an acronym [I looked up the meaning once, but I forgot].
20:32 Auv5 Low-level virtual machine I think
20:39 lue I've actually mentioned the idea before, but I felt the new year would be a particularly nice time to announce my idea in earnest.
20:51 colomon rakudo: my $list = List.new; say $list.WHAT; say +$list
20:51 p6eval rakudo f8ecdb: OUTPUT«List()␤0␤»
20:56 * colomon is completely stumped by the current IO::Prompter bug
20:57 simon curious: why does my perl6 take very long to load?
21:01 moritz_ simon: because it builds the completely object hierarchy at run time
21:02 moritz_ because parrot can't yet serialize and deserialize such complex structures
21:08 lambda-nil joined #perl6
21:08 moritz_ masak++ # that extension to the 'handles' implementation was fun
21:08 colomon rakudo: say {'be greater than 0'=> *>0 }.WHAT
21:08 p6eval rakudo f8ecdb: OUTPUT«Block()␤»
21:08 colomon doh!
21:08 moritz_ colomon: probably 'be greater than 0' => * > 0
21:09 colomon rakudo: say {'be greater than 0' => * > 0 }.WHAT
21:09 p6eval rakudo f8ecdb: OUTPUT«Block()␤»
21:09 moritz_ or hash(...)
21:09 moritz_ rakudo: say hash('be greater than 0' => * > 0).WHAT
21:09 p6eval rakudo f8ecdb: OUTPUT«Odd number of elements found where hash expected␤  in '!STORE' at line 5206:CORE.setting␤  in 'hash' at line 660:CORE.setting␤  in main program body at line 22:/tmp/x0St1_zWeu␤»
21:10 ponbiki left #perl6
21:10 moritz_ rakudo: say hash('be greater than 0' => (* > 0)).WHAT
21:10 p6eval rakudo f8ecdb: OUTPUT«Odd number of elements found where hash expected␤  in '!STORE' at line 5206:CORE.setting␤  in 'hash' at line 660:CORE.setting␤  in main program body at line 22:/tmp/3J0x692UKa␤»
21:10 colomon ooooo
21:10 colomon closure bug?
21:10 moritz_ rakudo: say hash('be greater than 0', (* > 0)).WHAT
21:10 p6eval rakudo f8ecdb: OUTPUT«Hash()␤»
21:10 colomon whatever closure bug
21:10 moritz_ blocks vs. hash distinction
21:10 colomon rakudo: say {'be greater than 0' => -> $a { $a > 0 } }.WHAT
21:10 p6eval rakudo f8ecdb: OUTPUT«Hash()␤»
21:10 moritz_ oh
21:11 moritz_ I guess not bug
21:11 colomon I guess bug
21:11 colomon but different bug
21:11 moritz_ => is specced to autocurry, no?
21:11 colomon dunno
21:11 moritz_ rakudo: say (a => *).WHAT
21:11 p6eval rakudo f8ecdb: OUTPUT«Pair()␤»
21:11 moritz_ huh.
21:11 ponbiki joined #perl6
21:11 colomon and the question is, does it level 2 curry
21:14 colomon huh
21:14 colomon I don't see an exception for => to not curry in the source code.
21:14 colomon Where is jnthn when you need him?
21:15 moritz_ => is syntactic, iirc
21:15 moritz_ at least partially
21:15 colomon anyway, changing the :must block to avoid this issue makes prompt work again
21:15 moritz_ because it quotes the LHS
21:15 colomon ah
21:16 colomon this is not being a good day for Michigan football
21:16 Auv5 left #perl6
21:20 jest joined #perl6
21:22 ponpon joined #perl6
21:22 jest left #perl6
21:22 ponpon left #perl6
21:22 ponbiki left #perl6
21:23 ponbiki joined #perl6
21:23 lue afk, to think about what I've just said I'd do. :)
21:24 wamba left #perl6
21:44 colomon rakudo: my $x = {?m/:i ^ \h* [ y | yes ]/}; say $x("yes")
21:44 p6eval rakudo f8ecdb: OUTPUT«Bool::True␤»
21:44 colomon rakudo: my $x = {?m/:i ^ \h* [ y | yes ]/}; say $x("no")
21:44 sorear niecza: say (foo => *).typename
21:44 p6eval rakudo f8ecdb: OUTPUT«Bool::False␤»
21:44 p6eval niecza v1-35-gc9d17a7: OUTPUT«Pair␤»
21:45 colomon sorear: do you reckon that's what it's supposed to do?  I was unable to find spec on the question.
21:45 masak joined #perl6
21:45 masak \o/
21:46 masak wow, now I'm getting karma for submitting bug tickets that inspire people to hack on Rakudo? ;)
21:46 * colomon wants to o/, but is unable to work up the enthusiasm after those miserable football games.  :(
21:46 masak moritz_++ # 'handles' patch
21:47 gfldex masak: how does 2nd order karma feels like?
21:48 masak gfldex: indirect.
21:48 gfldex :)
21:48 gfldex i somehow think 2011 will be a good year for karma in general
21:49 masak 2011 will be an excellent year for karma.
21:50 sorear colomon: I can see arguments either way
21:50 moritz_ karma++
21:51 colomon sorear: I almost commented after my question saying the same thing.
21:51 colomon And I don't have strong feeling either way.
21:51 masak meta++
21:52 * masak makes a ROADMAP for Yapsi
21:57 colomon moritz_: you there?
21:57 colomon oooo, IO::Prompter::Result issue, maybe?
21:59 colomon Current issue is that :yesno input works fine up until the last couple of lines of prompt
21:59 pmurias sorear: pong
21:59 phenny pmurias: 19:07Z <sorear> tell pmurias a tuple like ["Test",15,"ok"]
21:59 phenny pmurias: 19:10Z <sorear> tell pmurias The const op causes its argument to be evaluated once and stored in the constant table; it's semantically the same as the identity so you can ignore it for now
22:00 colomon I'm having a hard time understanding how this code ever worked in Rakudo.
22:01 masak might've been alpha.
22:01 colomon right, it was alpha.  It's never worked under ng
22:01 colomon but it doesn't make any sense, either.
22:02 pmurias sorear: what does the name xref mean?
22:06 colomon masak: I think I see why it's not working.  But it kind of makes it seem like Damian was on crack, which can't be right.
22:07 masak I too would seek an alternate explanation than Damian being on crack.
22:07 colomon https://gist.github.com/762045 is the code in question.  This is how results are returned from prompt.
22:08 colomon The thing is, $!input is either a string, an Int, a Real (was Num), or a Bool.
22:09 Tene colomon: You're not anchoring to $, so that example would return true on inputs of 'yellow', 'yes sir!', 'yggdrasil', etc.
22:09 masak colomon: ah, you'd have wanted an explicit prefix:<~> in .Str?
22:10 colomon well, maybe
22:11 M_o_C left #perl6
22:12 colomon For sure, the .Str function should not be returning an Int.  That's just crazy talk.
22:12 masak I agree. that feels wrong.
22:13 sorear pmurias: cross-reference
22:14 colomon but I don't understand what the heck IO::Prompter::Result is actually for here.
22:14 sorear pmurias: xref nodes avoid direct references from one unit to another, because that caused serialization problems
22:15 colomon It feels like it's trying to carry extra information in that "method true", but I'm not sure what that extra information is.
22:15 dalek rakudo: a98c690 | KodiB++ | src/core/Cool-str.pm:
22:15 dalek rakudo: [core/Cool-str] Made &printf and &sprintf fail noisily when given too few arguments.
22:15 dalek rakudo:
22:15 dalek rakudo: This fixes RT #74610.
22:15 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/a98c690fe1
22:15 dalek roast: 207e6b4 | (Kodi Arfer)++ | S32-str/sprintf.t:
22:16 dalek roast: [sprintf.t] Changes for RT #74610.
22:16 dalek roast: review: https://github.com/perl6/roast/commit/207e6b48db
22:16 dalek roast: b25da6e | (Kodi Arfer)++ | S32-str/sprintf.t:
22:16 dalek roast: [sprintf.t] Untodoed a passing test.
22:16 dalek roast: review: https://github.com/perl6/roast/commit/b25da6ea1e
22:16 jest joined #perl6
22:17 masak colomon: should probably be 'method Bool' today, I think.
22:17 colomon masak: yes, I think that's the bug I'm seeing.
22:18 coldhead joined #perl6
22:18 masak .true has been renamed to .so, but I usually overload .Bool
22:18 masak I think .so calls .Bool
22:19 colomon but it's the .Str thing -- as combined with the Bool test -- that's got me scratching my head.
22:19 colomon I think maybe whatever but True|False is what is really desired here.
22:20 sorear pmurias: the first argument to subcall is a blob which contains argument passing data; it will be all 0s for positional-only calls
22:20 colomon Is it possible to say something like has $.input handles (*);   ?
22:21 Kodi left #perl6
22:22 ^jamie^ joined #perl6
22:23 colomon rakudo: say $a = "Blue" but Bool::False; say $a.Str; say $a.Bool
22:23 p6eval rakudo a98c69: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/qPzdSeFQLD:22)␤»
22:23 colomon rakudo: my $a = "Blue" but Bool::False; say $a.Str; say $a.Bool
22:23 p6eval rakudo a98c69: OUTPUT«Blue␤Bool::False␤»
22:23 masak \o/
22:23 colomon That's totally what is wanted here, IMO.
22:24 ^jamie^ left #perl6
22:26 colomon And it makes all my tests pass.  :)
22:28 simon moritz_, thanks for the parser example, although there's a bunch of perl 6 that I just don't understand yet. :)
22:29 simon what's a multi statement? it looks like an overloaded subroutine
22:29 colomon simon: that's right
22:29 pmurias sorear: filename,subname,linenumber is not a unique identifier
22:30 masak simon: think of a 'multi' sub or method as a way to put parameter-handling logic in the signature rather than as code in the routine itself.
22:32 pmurias sorear: wouldn't it be sensible to replace the blob with a datastructure
22:32 pmurias sorear: if we want concise storage we could have nam in a binary format
22:32 simon masak, I've done a little Erlang, so it's not an unfamiliar idea.
22:33 masak good. :)
22:33 simon masak, in fact, I'm looking into Perl 6 grammars so that I can implement my own toy language for Parrot that does exactly this. :)
22:33 masak simon: sounds like fun. :)
22:33 pmurias exactly this = ?
22:34 simon pmurias, several definitions for the same function depending on input. overloaded functions a la prolog.
22:34 jest left #perl6
22:34 envi joined #perl6
22:38 sorear pmurias: it's not line number
22:38 sorear pmurias: it's an index into the unit's object table
22:38 sorear pmurias: the name is strictly as a debugging aid
22:39 masak simon: well, Perl 6 doesn't have just that when dispatching. there's also the ordering of tuples of types of different narrowness. so 'multi foo(Int)' wins over 'multi foo(Numeric)' even though 42 is both Numeric and Int.
22:42 colomon rakudo: my $a = Any but Bool::False; say $a.Str; say $a.Bool
22:43 p6eval rakudo a98c69: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤  in 'infix:<does>' at line 7375:CORE.setting␤  in 'infix:<does>' at line 605:CORE.setting␤  in 'infix:<but>' at line 609:CORE.setting␤  in main program body at line 22:/tmp/j5rZOWVT83␤»
22:43 colomon rakudo: my $b; my $a = $b but Bool::False; say $a.Str; say $a.Bool
22:43 p6eval rakudo a98c69: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤  in 'infix:<does>' at line 7375:CORE.setting␤  in 'infix:<does>' at line 605:CORE.setting␤  in 'infix:<but>' at line 609:CORE.setting␤  in main program body at line 22:/tmp/vjFoICW8nj␤»
22:46 masak colomon: that should work, if you ask me.
22:46 colomon oooo, Damian just e-mailed me an updated version of IO::Prompter.  Time to scrap everything I've done... ;)
22:48 colomon afk # moving to in-laws' for the remainder of today's bowl game experience
22:48 colomon left #perl6
22:51 masonkramer joined #perl6
22:56 * masak goes into Yapsi release mode
22:57 masak I just pushed doc/ROADMAP to the Yapsi repo: https://github.com/masak/ya​psi/blob/master/doc/ROADMAP
22:57 masak comments of all kinds and denominations welcome.
22:58 pmurias sorear: i'm seperating CompilerDriver into bunch of classes like in mildew
22:59 sorear how do you separate CompilerDriver...?
22:59 pmurias so that things don't get very hairy when adding another backend
22:59 dalek yapsi: 6f6d074 | masak++ | / (3 files):
22:59 dalek yapsi: [doc/ROADMAP] added
22:59 dalek yapsi: review: https://github.com/masak/yapsi/commit/6f6d0740eb
22:59 sorear masak: hi!
22:59 pmurias into Niecza::Backend::* classes with ->run and ->compile
22:59 pmurias and Niecza::Pass::* with ->run
22:59 masak sorear: hi. Yapsi release tonight :)
22:59 sorear Niecza::Backend::* will only handle the nam parts, right?
23:00 pmurias yes
23:00 * sorear nods
23:00 pmurias it'll looks similiar to mildew plus optimalisation passes
23:02 masak sorear: sometimes I fear/fantasize that Niecza development will subsume Yapsi development... :)
23:02 sorear pmurias: I'm thinking that Niecza::Pass::Beta and Optimizer::Beta &c have no business being separate
23:04 pmurias i'm trying to split it up into object that delegate the work to existing parts at first, but it would make sense to move the code into the pass classes
23:05 pmurias sorear: is the STD compiled to .NET usable?
23:05 qw3rty joined #perl6
23:07 qw3rty left #perl6
23:08 kaare_ left #perl6
23:17 sorear pmurias: yes
23:18 pmurias so a bootstrap is a matter of porting the code from Perl 6 to Perl 5?
23:18 sorear actually I'm doing it the other way around
23:18 masak I've just pushed https://github.com/masak/yapsi/b​lob/master/doc/announce/2011.01
23:18 masak you're all very welcome to review and comment.
23:19 pmurias sorear: i've noticed you're starting from the backend
23:19 sorear pmurias: i'm starting from the leaves of the dependency graph
23:19 lue hello again #perl6 o/
23:20 pmurias how long will recompiling the compiler take after the bootstrap?
23:20 pmurias and how fast is niecza's output compared to perl5?
23:21 dalek yapsi: 0e2548e | masak++ | doc/announce/2011.01:
23:21 dalek yapsi: [doc/announce/2011.01] added
23:21 dalek yapsi: review: https://github.com/masak/yapsi/commit/0e2548e1b2
23:21 dalek yapsi: 67e91fc | masak++ | doc/announce/2011.01:
23:21 dalek yapsi: [doc/announce/2011.01] 2010++, oops
23:21 dalek yapsi: review: https://github.com/masak/yapsi/commit/67e91fcc85
23:21 sorear pmurias: unknown.  there's a large speedup term and a large slowdown term and they catestrophically cancel
23:22 pmurias what's the slowdown term?
23:22 sorear the normal-ish Perl code in the middle end
23:22 pmurias and the speedup term?
23:23 sorear STD's grammar
23:23 pmurias why is the nromal-ish code slower?
23:23 pmurias * normalish
23:24 sorear because Perl 5 is highly optimized to run that sort of code
23:24 * lue reviewing Yapsi release announcement
23:24 * masak is curious what "normal-ish" means here, more in detail
23:25 sorear masak: $a = $b + $c; $foo{$bar} = 1; etc
23:25 pmurias sorear: how slower is the normalish stuff 2x,10x,100x,1000x?
23:25 masak sorear: so, addition and hash lookup? :)
23:25 sorear pmurias: I estimate around 10x
23:26 pmurias that's not that bad
23:26 sorear pmurias: pure grammars (JSON::Tiny benchmark) are 40x faster; STD as a whole is 4x faster
23:26 sorear masak: addition, hash lookup, conditional statements, list concatenation
23:26 sorear niecza does sub calls *much* faster than Perl5 though
23:26 masak seems to me almost all list operations are important to optimize.
23:27 sorear yes
23:27 pmurias what makes niecza slower than C#?
23:27 pmurias dynamism? what else?
23:28 sorear pmurias: continuation passing style
23:28 * pmurias dreaded that
23:28 sorear and containerization
23:28 masak CPS also causes the bad error messages to be *really* bad... :/
23:28 jhuni joined #perl6
23:29 sorear masak: CPS-aware backtrace generators help.
23:29 pmurias containerization we can optimize out in the long term
23:29 pmurias do we need continuations or just coroutines?
23:29 masak lue: release announcement look good?
23:30 sorear pmurias: just coroutines
23:31 sorear pmurias: but Perl6 coroutine semantics require a cactus stack; ({ my $*X = 1; ($*X++ for 1..*) }).()
23:31 lue Looks good, but I still can't have the *appropriate* amount of fun :)
23:31 masak :)
23:32 * masak neither
23:32 sorear pmurias: there's also stack frame introspection, and threads
23:32 lue did you catch my blag toast?
23:32 masak lue: yes. intriguing. best of luck.
23:38 masak lue: maybe I never told you; part of the inspiration for Yapsi was Andrew Shitov's implementation of a Perl 6 parser using a C++ Boost grammar, with C++ as a backend. he could make some simple scripts run orders of magnitude faster than Rakudo.
23:38 masak as I recall, he was using it in production, too.
23:38 pmurias sorear: http://tirania.org/blog/archive/2009/Apr-09.html
23:41 pmurias sleep&
23:41 sorear pmurias: too unportable, too heavyweight, and they don't help anyway because I need a cactus stack for threading
23:41 sorear sleep well
23:41 rindolf left #perl6
23:41 masak release announcement sent to p6c.
23:42 masak lue++ for giving it a review beforehand.
23:42 * masak makes a blog post, too
23:43 pmurias left #perl6
23:44 * lue wonders if he can get away with -Ofun in his planned frontend
23:45 patrickas joined #perl6
23:47 colomon joined #perl6
23:47 colomon o/
23:48 patrickas colomon \o
23:52 patrickas colomon: great progress with io-prompter, I did hit most of those bugs when I was porting it to master when it was released! I kind of feel bad i could have avoided duplication if my effort were more "public"
23:53 colomon Ah, turns out Damian had it ported too.
23:53 colomon I'm looking at his port right now.
23:53 colomon Mostly I want to make sure we all have easy access to a version that works.
23:53 masak patrickas: congratulations! you've just discovered "release early, release often" :)
23:53 perigrin I'm not 100% happy with his Perl5 version
23:54 perigrin (and fixed one bug in it already)
23:54 colomon you'll notice that I had my version up on github before I'd made a single change to it.  ;)
23:54 patrickas masak: I did release as early, my version is on github since july
23:54 masak oh.
23:54 patrickas maybe "publicised" was a better word than public
23:55 masak patrickas: you need a PR department. :)
23:55 colomon oh
23:57 masak blog post is published: http://strangelyconsistent.or​g/blog/yapsi-201101-released
23:57 * masak stands down release mode
23:58 patrickas colomon: I hadn't done much anyway, its just that one of your patches from today is the same one as the first part of this one (https://github.com/patrickas/io-prompter/comm​it/2c08a0300237ce6ab85cef538f0dcd6be25e5c87) and I remember it took me quite a while to figure out what was goind wrong! So i felt I kinda could have spared you the waste of time
23:58 colomon Eh, I learned as I was doing it, so it's not a waste.
23:59 patrickas :-)

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs