»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | tinyurl.com/p6contest
Set by moritz_ on 28 December 2010.
flussence merry arbitrary timezone&Interval(), * 00:00
lue happy new year to UTC ! 00:01
colomon \o/ 00:06
00:18 pmurias left
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:18
itz its all about "amy's crack" 00:23
00:28 yarrak is now known as yarrack_logging 00:29 masonkramer left, masonkramer joined
lue afk 00:30
00:39 molaf left
moritz_ wishes everybody attached to the Gregorian calendar a happy new year 00:50
itz recommends listening to "Can - Monster Movie - Yoo Doo Right" 00:51
01:00 patspam joined
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:02
moritz_: IO::Prompter (the colomon version) almost sort of works now. ;) 01:03
sorear a new year starts at every instant. 01:04
01:07 felliott joined 01:08 patspam left 01:29 envi joined 01:39 qw3rty left 01:41 Eevee left 01:42 Eevee joined 01:43 redicaps joined 01:47 M_o_C joined 02:01 qiuhw joined
dalek tpfwiki: (Herbert Breunung)++ | www.perlfoundation.org/perl6/index....ook_tablet 02:21
02:21 qiuhw left 02:23 qiuhw joined 02:27 justatheory left
dalek ecza: 9f058da | sorear++ | / (3 files):
[v6] Add a few unit tests for CgOp
02:36
ecza: 7336565 | sorear++ | v6n/cgop.t:
[v6] Actually add cgop.t
02:37
02:38 molaf joined 02:41 M_o_C left
dalek ecza: 3349c98 | sorear++ | v6n/ (2 files):
[v6] Translate Body and Unit
02:47
02:48 dukeleto left, dukeleto joined 02:57 molaf_ joined 02:58 soroush left 03:00 molaf left 03:17 Trashlord left 03:18 kfo_ joined 03:19 mandragoran joined 03:22 kfo left
jasonmay yay, just wrote a working MUD with my baby perl6 :D 03:22
03:22 pmurias joined
flussence nice! 03:22
pmurias sorear: what's an xid? 03:23
lichtkind good night
03:23 mandragoran left
lichtkind colomon: thanks, to me new year is in spring, i think iranian zoroasterian got it right :) 03:24
jasonmay gist.github.com/761532 03:27
pmurias lichtkind: you have a new year's eve party in spring?
lichtkind pmurias: some sort of :) even if im the only one celebrating :) 03:31
pmurias dislikes all holiday celebration 03:32
lichtkind understand, its mor a joyous recognition what is going on :)
pmurias and time passing away is not something i'm very happy about 03:36
lichtkind pmurias: maybe if you render yourself mortal, in any other case life is just a free seek of joy 03:37
pmurias you believe you are immortal? 03:38
lichtkind pmurias: depends you definition of "believe" :)
i would call it recognize 03:39
pmurias you recognize you are immortal?
lichtkind yes
which doesnt protect from being bored or sad :) 03:41
pmurias relises #perl6 is not a good place to discuss ocult stuff 03:42
* occult 03:43
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:44
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:46
araujo lichtkind, you are not immortal , life is 03:47
flussence according to a few trolls, we're already a cult :)
lichtkind cult of the living camel :)
03:52 redicaps left 03:53 redicaps joined
gfldex to believe that a camel can turn into a butterfly you need a cult proper 03:56
lichtkind good night 04:07
pmurias good night
lichtkind :)
04:07 lichtkind left
lue hello #perl6 and happy new year to UTC-4 \o/ [if I'm not mistaken] 04:14
flussence
.oO( does anyone live in UTC(-3..-1), besides Iceland? )
04:16
lue Parts of Santa's workshop and a few platoons of Tux's army, I suppose. 04:20
04:28 vastak left 04:32 am0c left
araujo happy new year UTC-4:30 ! 04:35
04:54 felliott left 04:59 pmurias left
slavik1 Happy New Year! 05:00
TimToady HNY, EST. 05:01
lue Happy new year UTC-5
05:02 orafu left, orafu joined 05:24 gbacon left 05:30 x19290 joined
x19290 Hello. 05:31
I implemented and tested a class called FD. The code is
19290.net/2011-01-01/fd-class-a.t
FD is implemented with `has-a' relationship, so to get real file descriptor,
I must call FD.descriptor() method.
Can I rewrite the code with `is-a' relationship? 05:32
I mean Can I say `class FD is Int ...?'.
05:33 felliott joined
x19290 Happy New Year UTC+9 05:38
05:41 felliott left 06:01 redicaps left
lue Happy new Year UTC-6! afk 06:03
06:10 [Coke] left 06:17 x19290 left 06:18 x19290 joined 06:57 redicaps joined 07:03 flatwhatson_ joined
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:04
coldhead hans is dead? 07:09
07:37 yarrack_logging left
sorear good * #perl6 07:37
x19290: I do not beleive so 07:39
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, qiuhw joined 07:51 kanishka joined
TimToady happy new year from pst 08:01
VXZ Ditto 08:02
08:04 agentzh joined 08:25 agentzh left
sjohnson :3 09:08
09:28 Trashlord joined 09:51 nymacro joined 09:52 pothos joined 09:55 y3llow joined 10:08 qiuhw left 10:24 kanishka left 10:37 apeiron joined
sorear out 10:49
10:56 rindolf joined 11:01 simon joined 11:04 wagnerf joined
moritz_ good morning zebras 11:08
rindolf Hi moritz_ 11:09
moritz_: I packaged rakudo-2010.12 for Mandriva Cooker.
wagnerf hi everyone, i'm trying to have a custom constructor for a class with some arguments
moritz_ rindolf: great 11:10
wagnerf but perl complains about "not enough positional parameters"
moritz_ wagnerf: please show some code
wagnerf scsys.co.uk:8002/77322
i'm a bit new to perl6 so maybe i'm doing something wrong
11:10 knewt2 left
moritz_ method new($capacity) { self.bless(*, :$capacity, whites => 0, blacks => 0) ; } 11:11
wagnerf: see perlgeek.de/blog-en/perl-6/object-c...ation.html 11:12
wagnerf ok, I effectively saw something like that
is there no way to achieve it with BUILD ? 11:13
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
wagnerf ok 11:15
11:16 knewt2 joined 11:45 coldhead left
moritz_ anybody knows where the github bug tracker is? 11:48
11:50 kaare_ joined
wagnerf is there an easy way to do a deep copy of an object in perl 6 ? 11:56
moritz_ not really
the problem is that deep cloning is user specific
for example if you had a singleton object 11:57
and there was a low-level cloning primitive
that would break the assumptions of the singleton class
wagnerf well, for sure you need to be carefull with deep copy 11:58
but for many cases dclone was quite nice for me
ok, anyway, let's go with a copy constructor then 11:59
moritz_ copy constructor sounds so C++ :-) 12:01
12:08 nymacro left 12:20 noganex joined 12:23 noganex_ left 12:25 timbunce joined 12:27 VXZ left 12:29 masonkramer left 12:30 timbunce left 12:31 matthias_ joined 12:35 kanishka joined 12:37 jhuni left 12:43 kanishka left 12:45 redicaps left 12:46 timbunce joined 12:59 kanishka joined 13:07 pmurias joined
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 13:18 nymacro joined 13:19 kanishka left 13:21 nymacro left 13:36 [Coke] joined 13:37 Axius joined 13:42 am0c^ left 13:44 snearch joined
apeiron hey all. I was wondering if someone could look over github.com/apeiron/perlfaq/commit/...1b47fd8b3f before I send a pull request. I'd like to clarify the perlfaq entries covering perl6 to more accurately reflect current reality. 13:48
13:57 felliott joined, MayDaniel joined
moritz_ takes a look 13:57
apeiron: the first answer seems to confuse the compiler ("Rakudo") and the distribution ("Rakudo Star") a bit 13:59
apeiron hmm, fair. 14:00
Axius rakudo: say my $fv = "Hello", say $fv
p6eval rakudo f99d08: OUTPUT«Hello␤HelloBool::True␤»
simon does anyone have an example parser written with perl6 rules? one that buildan AST.
moritz_ simon: for example the JSON modules 14:01
simon: see github.com/moritz/json/ Grammar.pm and Actions.pm
apeiron moritz_, I'll update it later today, and will post an updated commit URL. 14:02
moritz_ apeiron: "most developers writing Perl 5 have no intentions of switching to Perl 6 14:03
is that true?
apeiron IME
moritz_ do you have data for that?
simon moritz_, thanks!
apeiron hm, wonder if the perl survey covers it?
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
"That said, Perl 6 has proven to be a fascinating research project for those doing Perl 5 development,
"
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.
... what moritz_++ said.
apeiron hmm
moritz_ "As Perl 6 is a reinvention of Perl 5"
I'd just say "Perl" here, not "Perl 5" 14:06
14:06 Axius left
apeiron hmm 14:06
all right.
moritz_ apeiron++ # thanks for asking and caring
apeiron of course.
I do not want to start more drama. 14:07
moritz_++ colomon++ # helping in that effort
14:07 timbunce left
pmurias apeiron: re switching to Perl 6 doesn't that depend on how good Perl 6 turns out to be? 14:07
apeiron personally has too much invested in p5 14:08
14:09 timbunce joined
pmurias apeiron: you have a lot of existing p5 code? 14:14
apeiron yes
14:21 soroush joined 14:32 am0c joined 14:35 redicaps joined 14:39 matthias_ left 14:55 timbunce left 15:05 roen joined 15:25 soroush left 15:31 wagnerf left
redicaps perl6: say $_ for ^2; 15:38
p6eval rakudo f99d08: ( no output )
..pugs: OUTPUT«0␤1␤»
..niecza v1-35-gc9d17a7: OUTPUT«===SORRY!===␤Unhandled statement modifier for at /tmp/ZA_9XnQMAd line 1:␤------> say $_ for ^2⏏;␤Check failed␤»
redicaps Hi perl6, where can I find the description about this ^? 15:39
moritz_ which part of "this"
?
pmurias ^2> 15:40
s/>/?/
moritz_ rakudo works locally here
dunno why it fails on the server
jasonmay I do perl5 for a living, I think it would be impossible for me to completely forsake it
redicaps ^
jasonmay but as perl6 improved I'm going to continue to write more and more cool things in it
redicaps ^ in "for ^2 "
jasonmay improves*
moritz_ redicaps: it's in S03 15:41
redicaps moritz_: Thanks
moritz_ ^$n is just a range from 0 up to (but exluding) $n
rakudo: say (^6).perl
p6eval rakudo f99d08: ( no output )
moritz_ there's something horribly wrong on p6eval
jasonmay y2k11 bug! 15:42
15:42 MayDaniel left
redicaps right, ^ works locally on my computer 15:42
15:43 JimmyZ joined 15:45 M_o_C joined
dalek kudo: b570a2c | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION for testing
15:46
15:49 _twitch joined
dalek ecza: 9697d6c | pmurias++ | cl-backend/ (2 files):
[cl-backend] nam is turned into lisp and we use macros to handle the

changed the test file to say "Hello World"
15:51
pmurias sorear: what does the const opcode do? 15:55
moritz_ rakudo: say $_ for ^2 16:03
p6eval rakudo : OUTPUT«0␤1␤»
16:04 Patterner left 16:07 colomon left, Psyche^ joined, Psyche^ is now known as Patterner, JimmyZ left 16:15 [Coke] left
dalek ecza: d5ec680 | pmurias++ | cl-backend/backend.lisp:
[cl-backend] say "Hello World" works
16:21
16:21 colomon joined
pmurias has achived his first common lisp niecza milestone ;) 16:22
TimToady how hard can the rest be? :) 16:23
colomon Er, "common lisp niecza milestone"? What are you trying to do? 16:25
colomon is watching GameDay and struggling with IO::Prompter
TimToady he's adding a clisp emitter
colomon \o/ 16:28
that sounds very cool.
TimToady: Damian has an idiom here.... {?/<yes>/}
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
It seems to fair very poorly in current Rakudo.
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.
$extractor = {?/<yes>/}; $retval = $extractor($input)
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
moritz_ just a boolified Match
TimToady (in rakudo)
colomon I understand that's what it wants to be, but is it supposed to work?
rakudo: $extractor = {?/<yes>/}; say $extractor("no way") 16:32
p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Symbol '$extractor' not predeclared in <anonymous> (/tmp/SfqlnNSB4p:22)␤»
colomon rakudo: my $extractor = {?/<yes>/}; say $extractor("no way")
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␤»
moritz_ rakudo: my $e = { ?/<yes>/ }; say $e('asyesfll'); say $e('no')
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␤»
moritz_ rakudo: my $e = -> $_ { ?/<yes>/ }; say $e('asyesfll'); say $e('no')
colomon yeah, that's the error I'm getting
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␤»
moritz_ seems that $_ is not set 16:33
16:33 masak joined
masak ahoy, zebras! 16:33
moritz_ rakudo: my $e = -> $_ { ?m/<yes>/ }; say $e('asyesfll'); say $e('no')
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␤»
moritz_ rakudo: my $e = -> $_ { ?m/yes/ }; say $e('asyesfll'); say $e('no')
p6eval rakudo b570a2: OUTPUT«Bool::True␤Bool::False␤»
colomon rakudo: my $e = { ?m/yes/ }; say $e('asyesfll'); say $e('no') 16:34
p6eval rakudo b570a2: OUTPUT«Bool::True␤Bool::False␤»
colomon well, that's an easy enough fix
moritz_ well, you'll probably need <&yes> or some such 16:35
colomon oooo, think that will work?
I wasn't able to figure out how to use the regexes he defined, so I've just been working around that.
\o/ 16:36
moritz_ if you have a 'my regex yes { ... }', then <&yes> works
colomon moritz_++ # this is why I wanted his help. ;)
\o/
that will clean things up a bunch. 16:37
moritz_ note that it doesn't capture by default
uhm
no tests :(
colomon for IO::Prompter? nope.
moritz_ rakudo: say 3.not 16:38
p6eval rakudo b570a2: OUTPUT«Bool::False␤»
masak rakudo: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say "alive"
p6eval rakudo b570a2: OUTPUT«flattened parameters must be a hash or array␤ in main program body at line 22:/tmp/DYw5OTlNCI␤»
masak this should work, no?
I think it even used to...
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␤»
moritz_ note that method true { ! $!failed } should likely be method Bool { ... }
masak alpha: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say $b.val
p6eval alpha : OUTPUT«Use of uninitialized value␤␤»
masak alpha: class A { has $.val }; class B is A { has $.val }; my $b = B.new(A{ :val("A") }); say $b.A::val
p6eval alpha : OUTPUT«Use of uninitialized value␤␤»
masak submits rakudobug
16:39 soroush joined 16:46 envi left
colomon has just pushed an update to IO::Prompter which has a lot of the functionality working in current Rakudo. 16:47
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
colomon I'm planning on adding it to the ecosystem later today.
16:48 snearch left
masak moritz_: yes, I said as much in the ticket. 16:48
moritz_ great 16:49
I haven't actually read it :-)
masak I don't blame you, it's very new :)
16:49 icwiener joined
masak is also happy to see apeiron++ stop by 16:50
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.
apeiron masak++ # thanks
jasonmay masak: see this? 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.
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
16:53 lukas___ joined, mak__ joined
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
phenny mak__: 08 Aug 19:20Z <moritz_> tell mak__ www.presentingperl.org/yn2010/not-quite-perl/ # a wee bit older, but should still apply
apeiron hmm
masak apeiron: I agree that describing Perl 6 as "the future" is not something neither of us wants.
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.
apeiron right.
masak but perhaps the sentence needs one more push away from its original phrasing.
mak__ github.com/sorear/niecza/blob/mast...racing.pod
16:54 _jaldhar joined
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
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
masak jasonmay: ooh, the MUD!?
moritz_ like is export <test>
masak jasonmay++
colomon is export <test>? Does that work now?
moritz_ I think so
masak jasonmay: you need to throw this up on github like, right now! :)
mak__ Can trace calls be done in rakudo?
jasonmay yep! I kind of cheated using github.com/jasonmay/io-multiplex-intermediary for all the socket logic
masak jasonmay: if you don't, I will.
moritz_ anotehr idea. write a fakeIO class that suports .print and .get, 16:56
16:56 roen left
jasonmay masak: I'm going to factor it out a bit first 16:56
masak jasonmay: sure, just don't forget to push it.
moritz_ and pass instances as :in and :out to the prompt function
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.
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.
apeiron: I dislike the term "research project" almost to the point of wanting you to change it. almost. :) 16:58
apeiron: it sounds a bit like we don't use Perl 6 for stuff.
apeiron masak, others have pointed out it's a bit onesided and it'll be fixed.
masak good.
moritz_ backlogging considered harmful :-)
masak :P
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
moritz_ colomon: once there are tests I'd like to replace the methods in the Result class with delegation 16:59
simon g/la 5 17:00
whoops.
colomon moritz_++
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.
apeiron 348k results on google. 17:01
masak I retract my objection, then.
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.
TimToady I'd say "The two are not mutually exclusive"
flussence simon: vim-perl on github has one
and vim 7.3, for that matter
simon flussence, thanks.
mak__ Is there syntax highlighting for emacs?
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.
moritz_ github.com/petdance/vim-perl
masak apeiron: then again, that might be phrasing it too aggressively. 17:03
moritz_ too slow
apeiron masak, hmm. How about "The two are complimentary, not mutually exclusive." ?
(or complementary, whichever one is right :)
masak apeiron: "complEmentary"
TimToady comple
apeiron thanks. 17:04
masak apeiron: yes, then I see better what you want to say.
apeiron :D
masak apeiron: maybe even add that the two communities benefit from each other through collaboration and friendly competition.
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?
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. :)
masak indeed. they are related and affect each other. 17:07
EOReview.
colomon doh! yes | no prompt now accepts input, but is always Bool::True.
masak add more tests! :)
pmurias masak: aren't the Perl 5 and Perl 6 communities largely overlapping 17:08
?
masak pmurias: I don't know.
apeiron pmurias, the perl5 devs I associate with most are dedicated to perl5.
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
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.
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
17:10 VXZ joined
TimToady I mean the latter 17:10
could be a point of confusion
apeiron indeed, thus the clarification. :)
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
TimToady *do
p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Malformed package declaration at line 22, near "[$of] { me"␤»
masak rakudo: role Point[$of] { method Str { "Point of $of } }; say Point["confusion"].new
p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
masak rakudo: role Point[$of] { method Str { "Point of $of" } }; say Point["confusion"].new
moritz_ try std
p6eval rakudo b570a2: OUTPUT«Point of confusion␤»
masak \o/
sorry about the confusion :) 17:12
apeiron "porters"
:)
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?
apeiron Tough question.
masak it's very hypothetical, I know.
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:18
masak hm... maybe, but I can see a Perl 6 impl being *mature* without having those three things I listed. 17:19
apeiron Sure.
masak but yes, enough compatibility to not miss out form the great things of p5.
17:20 glow joined
apeiron That seems like "if there was something that was the best of both worlds, would you consider it?" 17:20
masak :)
well, we're not a two-pronged fork because we think it's *fun*. 17:21
mak__ problem with building rakudo
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.
mak__ build hangs after reaching src/gen/core.pm > src/gen/core.pir
masak mak__: how much RAM do you have? 17:22
mak__: likely massive swapping, not hanging.
mak__ 256mb
masak o.O
mak__: ^C
mak__ hmmm ok
masak mak__: step two: get more RAM...
mak__ :)
or I think I will work on niecza 17:23
masak that's an option as well. :)
17:23 wamba joined
mak__ or patch rakudo 17:23
the only thing is i don't how to solve that problem
masak it's probably not a one-patch problem...
mak__ oh
masak it's more of a design issue. 17:24
mak__ its basically putting that into one file
masak aye.
and there are clever people here aware of that problem.
don't want to discourage you, but...
mak__ can't that be broken up? I sure that would have thought about... or may im just you know ... saying
masak mak__: thing is, there are important reasons for keeping it in one file. 17:25
mak__ ok
masak mak__: specifically, that's how to get the scoping right.
but yes, it's an issue, especially as the setting grows.
mak__ not being able to install on system with lesser RAM's isnt good news 17:26
masak agreed.
17:28 molaf_ left
mak__ hmm will breaking that up require tinkering on all the .pm files that get appended to core.pm a step above? 17:30
masak I don't know what breaking that up would require. pmichaud made it sound like it was a non-trivial problem. 17:31
it's definitly less trivial than getting more RAM. 17:32
sECuRE you could build on another system and then just install, right? 17:33
masak sure.
mak__ actually for a one time install, its not that painfull 17:35
but the regular change->build->test cycle is what becomes time taking
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, soroush_ left
mak__ Well I had asked earlier, does rakudo have call tracing? 17:39
17:40 soroush left
masak mak__: parrot has a -t flag for tracing. 17:40
mak__ ok
masak but I haven't used it, so you're on your own making it work.
17:42 _twitch left
apeiron Some fixes from many helpful folks here: github.com/apeiron/perlfaq/commit/...353718a9c6 If I omitted any suggestions given, it is unintentional, and I welcome corrections. 17:48
masak apeiron: very well-balanced and satisfactory. apeiron++ 17:50
apeiron If there are no corrections or additions, I'll send a pull request.
ah, one minor nit 17:54
whoops. Forgot one little change, the "Perl 6 is a reinvention of Perl" 17:55
That's now pushed.
17:55 dukeleto left
mak__ Is that development started in 2002 correct? 17:56
17:56 dukeleto joined
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:57
masak checks the Parrot logs 17:58
2002 seems right. 18:01
apeiron okay.
18:03 redicaps left
masak rediscaps, who just left, has blogged about Perl 6 laziness in Mandarin: redicaps.posterous.com/perl6-fibonacci-laziness 18:04
rediscaps++
apeiron I'm not sure if people who don't own the repo can see this, but: github.com/briandfoy/perlfaq/pull/1 18:06
masak apeiron: the Perl 6 development branch commenced in probably-2002 was abandoned in 2004: svn.parrot.org/parrot/tags/RELEASE...rl6/README 18:07
apeiron: I'm mentioning this mostly for historical interest. I don't think it should be added to the FAQ. :)
apeiron okie, thank you.
18:08 mak__ left
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.
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␤»
masak aww.
masak submits rakudobug
would have been really cool if that worked...
moritz_ what should 'handles Array' do?
I don't think .push should ever call method Array 18:29
masak er.
moritz_ if you mean that it should handle every method from class Array, then you should be using inheritance instead
masak er.
I don't even know where to start replying to that. 18:30
I'll just continue submitting my bug report for now.
moritz_ what's the bug?
18:30 MayDaniel joined, gbacon joined
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.
masak by extension, I expected to get the methods available via Array.
moritz_ I didn't know about that part of the spec 18:32
masak even so, delegation != inheritance.
people usually suggest the opposite: favour composition over inheritance :) 18:33
moritz_ rakudo: role A { }; say A ~~ Abstraction 18:34
p6eval rakudo b570a2: OUTPUT«0␤»
masak rakudo: say Abstraction 18:36
p6eval rakudo b570a2: OUTPUT«Abstraction()␤»
masak it's a bit funny/odd: we don't have Class, but we have Abstraction. 18:37
moritz_ where in rakudo is trait_mod:<handles> defined? 18:38
it's not in src/core/traits.pm
masak src/glue/handles.pm? 18:39
moritz_ that seems to contain a helper class
but Action.pm +1924 says 18:40
make PAST::Op.new(
:pasttype('call'),
:name('&trait_mod:<handles>'),
$<term>.ast
);
so there must be a sub trait_mod:<handles>
and I can't find it :(
rakudo: say Mu.notdef 18:41
p6eval rakudo b570a2: OUTPUT«Bool::True␤»
masak me neither. 18:42
.notdef is no longer spec.
moritz_ rakudo: say 5.^methods[0].WHAT 18:44
p6eval rakudo b570a2: OUTPUT«Code()␤»
moritz_ tries to modify handles.pm even though he doesn't know if it gets called 18:46
flussence argh, the pir::null__P trick with zavolaj stopped working 18:53
18:55 justatheory joined 18:56 Vlavv_ left
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...
masak ok.
moritz_ masak: because the second type has a .new method
inherited from Mu
masak I don't think I understand.
moritz_ so it overrides the default .new
masak oh!
now I do. 19:00
but isn't the default .new the one in Mu?
moritz_ class A { has $.b handles B }; A.new # boom, because $.b isn't initialized yet
masak that sounds like a fairly general problem.
TimToady: ^^
moritz_ so the MOP tries to retrieve $!b before the instance of A is created 19:01
masak right.
obviously not what was intended.
moritz_ which results in "Type objects are abstract and have no attributes, but you tried to access $!b"
masak since .new isn't supposed to be special, what is it we're missing in this picture?
19:03 ponbiki left, MayDaniel left
moritz_ maybe handles Type should stop at looking at methods when it hits Cool|Any 19:04
sorear good * #perl6 19:05
19:06 kanishka left
masak hi, sorear \o 19:06
rindolf Hi sorear
masak moritz_: wasn't there a similar judgment about the default range of .^methods recently?
19:06 kanishka joined
sorear phenny: tell pmurias a tuple like ["Test",15,"ok"] 19:07
phenny sorear: I'll pass that on when pmurias is around.
moritz_ masak: right, that's what made me think that way
masak moritz_: I don't like to build special cases into the type hierarchy.
moritz_ neither do I
better suggestions welcome :-)
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, Vlavv_ joined
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
phenny sorear: I'll pass that on when pmurias is around.
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.
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.
moritz_ runs a full spectest run
masak but, as I said, I think it's meant to work for classes as well.
moritz_ {
class TypePseudoHash { has %!data handles Associative }
my $h = TypePseudoHash.new;
$h<a> = 'c';
$h<b> = 'd';
say $h<a b>.join('|'), 'c|d', 'can do handles + type name';
}
lue hello and happy first o' the year #perl6 o/
moritz_ that's the test that passes now 19:12
uhm
say() shouldn't be in the test :-)
masak no :)
lue: hello to you, lue. I believe 2011 will be wonderful for Perl 6.
moritz_ hopes 2011 will be wonderful for all of us 19:13
rindolf Hi lue
19:15 kanishka left
moritz_ huh, writing more tests... they seem to fail 19:15
19:16 kanishka joined, Buccia`27C3 is now known as Bucciarati 19:17 ponbiki joined
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
lue [er, once you factor out my computer's amazing ability to not do things in a sane amount of time] 19:23
masak nom & 19:28
19:28 masak left 19:33 pmurias left 19:36 pmurias joined 19:39 Kodi joined
Kodi The bug of RT #74610 is apparently a feature implemented for RT #62316. 19:41
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:42
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.
colomon ah, here's an interesting one: 19:51
rakudo: my @a; @a.push; @a.push; say @a:perl
p6eval rakudo b570a2: OUTPUT«===SORRY!===␤Symbol '@a:perl' not predeclared in <anonymous> (/tmp/BhLbRBkU1a:22)␤»
colomon rakudo: my @a; @a.push; @a.push; say :@a.perl
p6eval rakudo b570a2: OUTPUT«"a" => []␤»
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:52
(found with a typo in my code, obviously.) 19:53
moritz_ just like you can do a priint() without anything
colomon can you?
you can't do a say without anything.
rakudo: print
p6eval rakudo b570a2: ( no output )
colomon guess you can 19:54
moritz_ rakudo: say()
p6eval rakudo b570a2: OUTPUT«␤»
colomon discovered this writing my stub for the first IO::Prompter test. :)
tadzik hello polarbears 19:56
colomon hello coke can
19:58 gbacon left
colomon arrrgh 19:58
19:59 gbacon joined
colomon \o/ 19:59
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.
dalek ast: a0d5cf6 | moritz++ | S12-attributes/delegation.t:
[delegation.t] handles TypeObject
20:06
moritz_ colomon: I'll take a look
colomon thanks. 20:07
moritz_ colomon: do you especially enjoy writing helper methods? :-)
colomon no
but it is a bad habit from C++ days 20:08
moritz_ then I might be able to shorten StubIO quite a bit :-)
colomon I think I thought they would do more when I started writing them.
dalek kudo: f8ecdbf | moritz++ | src/glue/handles.pm:
implement 'handles TypeObject'

Works fine for roles, but classes have a .new method, which overrides the original .new method. But since the delegation is done before the instantiation, the attempt to access the attribute fails.
20:09
moritz_ colomon: simplifications pushed :-) 20:11
colomon dear heavens!
moritz_++ 20:12
That was way better than my simplifications.
moritz_ 1 files changed, 8 insertions(+), 25 deletions(-)
that's the kind of patch I like :-)
colomon also Perl 6++
whoops, lost my second test in there, though. 20:13
(not pushed, colomon--)
moritz_ btw you can write
my $stub = StubIO.new(input => ['3']); 20:14
and get rid of the .queue-input call
colomon Not sure if I'm ready for that or not. :) 20:15
ack, you're right, that approach would be better 20:19
dalek kudo: c9bc28f | moritz++ | docs/ChangeLog:
[docs] update ChangeLog
20:20
lue blag toast! rdstar.wordpress.com/2011/01/01/20...compiling/ 20:21
20:24 amkrankruleuen left
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
flussence (but why GCC and not LLVM?) 20:27
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:31
Auv5 Low-level virtual machine I think 20:32
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:39
colomon rakudo: my $list = List.new; say $list.WHAT; say +$list 20:51
p6eval rakudo f8ecdb: OUTPUT«List()␤0␤»
colomon is completely stumped by the current IO::Prompter bug 20:56
simon curious: why does my perl6 take very long to load? 20:57
moritz_ simon: because it builds the completely object hierarchy at run time 21:01
because parrot can't yet serialize and deserialize such complex structures 21:02
21:08 lambda-nil joined
moritz_ masak++ # that extension to the 'handles' implementation was fun 21:08
colomon rakudo: say {'be greater than 0'=> *>0 }.WHAT
p6eval rakudo f8ecdb: OUTPUT«Block()␤»
colomon doh!
moritz_ colomon: probably 'be greater than 0' => * > 0
colomon rakudo: say {'be greater than 0' => * > 0 }.WHAT 21:09
p6eval rakudo f8ecdb: OUTPUT«Block()␤»
moritz_ or hash(...)
rakudo: say hash('be greater than 0' => * > 0).WHAT
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
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␤»
colomon ooooo
closure bug?
moritz_ rakudo: say hash('be greater than 0', (* > 0)).WHAT
p6eval rakudo f8ecdb: OUTPUT«Hash()␤»
colomon whatever closure bug
moritz_ blocks vs. hash distinction
colomon rakudo: say {'be greater than 0' => -> $a { $a > 0 } }.WHAT
p6eval rakudo f8ecdb: OUTPUT«Hash()␤»
moritz_ oh
I guess not bug 21:11
colomon I guess bug
but different bug
moritz_ => is specced to autocurry, no?
colomon dunno
moritz_ rakudo: say (a => *).WHAT
p6eval rakudo f8ecdb: OUTPUT«Pair()␤»
moritz_ huh.
21:11 ponbiki joined
colomon and the question is, does it level 2 curry 21:11
huh 21:14
I don't see an exception for => to not curry in the source code.
Where is jnthn when you need him?
moritz_ => is syntactic, iirc 21:15
at least partially
colomon anyway, changing the :must block to avoid this issue makes prompt work again
moritz_ because it quotes the LHS
colomon ah
this is not being a good day for Michigan football 21:16
21:16 Auv5 left 21:20 jest joined 21:22 ponpon joined, jest left, ponpon left, ponbiki left 21:23 ponbiki joined
lue afk, to think about what I've just said I'd do. :) 21:23
21:24 wamba left
colomon rakudo: my $x = {?m/:i ^ \h* [ y | yes ]/}; say $x("yes") 21:44
p6eval rakudo f8ecdb: OUTPUT«Bool::True␤»
colomon rakudo: my $x = {?m/:i ^ \h* [ y | yes ]/}; say $x("no")
sorear niecza: say (foo => *).typename
p6eval rakudo f8ecdb: OUTPUT«Bool::False␤»
niecza v1-35-gc9d17a7: OUTPUT«Pair␤»
colomon sorear: do you reckon that's what it's supposed to do? I was unable to find spec on the question. 21:45
21:45 masak joined
masak \o/ 21:45
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. :(
masak moritz_++ # 'handles' patch
gfldex masak: how does 2nd order karma feels like? 21:47
masak gfldex: indirect. 21:48
gfldex :)
i somehow think 2011 will be a good year for karma in general
masak 2011 will be an excellent year for karma. 21:49
sorear colomon: I can see arguments either way 21:50
moritz_ karma++
colomon sorear: I almost commented after my question saying the same thing. 21:51
And I don't have strong feeling either way.
masak meta++
masak makes a ROADMAP for Yapsi 21:52
colomon moritz_: you there? 21:57
oooo, IO::Prompter::Result issue, maybe?
Current issue is that :yesno input works fine up until the last couple of lines of prompt 21:59
pmurias sorear: pong
phenny pmurias: 19:07Z <sorear> tell pmurias a tuple like ["Test",15,"ok"]
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
colomon I'm having a hard time understanding how this code ever worked in Rakudo. 22:00
masak might've been alpha. 22:01
colomon right, it was alpha. It's never worked under ng
but it doesn't make any sense, either.
pmurias sorear: what does the name xref mean? 22:02
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:06
masak I too would seek an alternate explanation than Damian being on crack. 22:07
colomon gist.github.com/762045 is the code in question. This is how results are returned from prompt.
The thing is, $!input is either a string, an Int, a Real (was Num), or a Bool. 22:08
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?
colomon well, maybe 22:10
22:11 M_o_C left
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.
sorear pmurias: cross-reference 22:13
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
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 kudo: a98c690 | KodiB++ | src/core/Cool-str.pm:
[core/Cool-str] Made &printf and &sprintf fail noisily when given too few arguments.

This fixes RT #74610.
ast: 207e6b4 | (Kodi Arfer)++ | S32-str/sprintf.t:
[sprintf.t] Changes for RT #74610.
ast: b25da6e | (Kodi Arfer)++ | S32-str/sprintf.t:
[sprintf.t] Untodoed a passing test.
22:16 jest joined
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
masak .true has been renamed to .so, but I usually overload .Bool 22:18
I think .so calls .Bool
colomon but it's the .Str thing -- as combined with the Bool test -- that's got me scratching my head. 22:19
I think maybe whatever but True|False is what is really desired here.
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 22:22 ^jamie^ joined
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)␤»
colomon rakudo: my $a = "Blue" but Bool::False; say $a.Str; say $a.Bool
p6eval rakudo a98c69: OUTPUT«Blue␤Bool::False␤»
masak \o/
colomon That's totally what is wanted here, IMO.
22:24 ^jamie^ left
colomon And it makes all my tests pass. :) 22:26
simon moritz_, thanks for the parser example, although there's a bunch of perl 6 that I just don't understand yet. :) 22:28
what's a multi statement? it looks like an overloaded subroutine 22:29
colomon simon: that's right
pmurias sorear: filename,subname,linenumber is not a unique identifier
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:30
pmurias sorear: wouldn't it be sensible to replace the blob with a datastructure 22:32
sorear: if we want concise storage we could have nam in a binary format
simon masak, I've done a little Erlang, so it's not an unfamiliar idea.
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. :)
masak simon: sounds like fun. :)
pmurias exactly this = ?
simon pmurias, several definitions for the same function depending on input. overloaded functions a la prolog. 22:34
22:34 jest left, envi joined
sorear pmurias: it's not line number 22:38
pmurias: it's an index into the unit's object table
pmurias: the name is strictly as a debugging aid
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:39
colomon rakudo: my $a = Any but Bool::False; say $a.Str; say $a.Bool 22:42
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
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␤»
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... ;)
afk # moving to in-laws' for the remainder of today's bowl game experience 22:48
22:48 colomon left 22:51 masonkramer joined
masak goes into Yapsi release mode 22:56
I just pushed doc/ROADMAP to the Yapsi repo: github.com/masak/yapsi/blob/master/doc/ROADMAP 22:57
comments of all kinds and denominations welcome.
pmurias sorear: i'm seperating CompilerDriver into bunch of classes like in mildew 22:58
sorear how do you separate CompilerDriver...? 22:59
pmurias so that things don't get very hairy when adding another backend
dalek psi: 6f6d074 | masak++ | / (3 files):
[doc/ROADMAP] added
sorear masak: hi!
pmurias into Niecza::Backend::* classes with ->run and ->compile
and Niecza::Pass::* with ->run
masak sorear: hi. Yapsi release tonight :)
sorear Niecza::Backend::* will only handle the nam parts, right?
pmurias yes 23:00
sorear nods
pmurias it'll looks similiar to mildew plus optimalisation passes
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
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:04
sorear: is the STD compiled to .NET usable? 23:05
23:05 qw3rty joined 23:07 qw3rty left 23:08 kaare_ left
sorear pmurias: yes 23:17
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
masak I've just pushed github.com/masak/yapsi/blob/master...ce/2011.01
you're all very welcome to review and comment.
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
lue hello again #perl6 o/
pmurias how long will recompiling the compiler take after the bootstrap? 23:20
and how fast is niecza's output compared to perl5?
dalek psi: 0e2548e | masak++ | doc/announce/2011.01:
[doc/announce/2011.01] added
23:21
psi: 67e91fc | masak++ | doc/announce/2011.01:
[doc/announce/2011.01] 2010++, oops
sorear pmurias: unknown. there's a large speedup term and a large slowdown term and they catestrophically cancel
pmurias what's the slowdown term? 23:22
sorear the normal-ish Perl code in the middle end
pmurias and the speedup term?
sorear STD's grammar 23:23
pmurias why is the nromal-ish code slower?
* normalish
sorear because Perl 5 is highly optimized to run that sort of code 23:24
lue reviewing Yapsi release announcement
masak is curious what "normal-ish" means here, more in detail
sorear masak: $a = $b + $c; $foo{$bar} = 1; etc 23:25
pmurias sorear: how slower is the normalish stuff 2x,10x,100x,1000x?
masak sorear: so, addition and hash lookup? :)
sorear pmurias: I estimate around 10x
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
masak: addition, hash lookup, conditional statements, list concatenation
niecza does sub calls *much* faster than Perl5 though
masak seems to me almost all list operations are important to optimize.
sorear yes 23:27
pmurias what makes niecza slower than C#?
dynamism? what else?
sorear pmurias: continuation passing style 23:28
pmurias dreaded that
sorear and containerization
masak CPS also causes the bad error messages to be *really* bad... :/
23:28 jhuni joined
sorear masak: CPS-aware backtrace generators help. 23:29
pmurias containerization we can optimize out in the long term
do we need continuations or just coroutines?
masak lue: release announcement look good?
sorear pmurias: just coroutines 23:30
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 :)
masak :)
masak neither 23:32
sorear pmurias: there's also stack frame introspection, and threads
lue did you catch my blag toast?
masak lue: yes. intriguing. best of luck.
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
as I recall, he was using it in production, too.
pmurias sorear: tirania.org/blog/archive/2009/Apr-09.html
sleep& 23:41
sorear pmurias: too unportable, too heavyweight, and they don't help anyway because I need a cactus stack for threading
sleep well
23:41 rindolf left
masak release announcement sent to p6c. 23:41
lue++ for giving it a review beforehand. 23:42
masak makes a blog post, too
23:43 pmurias left
lue wonders if he can get away with -Ofun in his planned frontend 23:44
23:45 patrickas joined 23:47 colomon joined
colomon o/ 23:47
patrickas colomon \o 23:48
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:52
colomon Ah, turns out Damian had it ported too. 23:53
I'm looking at his port right now.
Mostly I want to make sure we all have easy access to a version that works.
masak patrickas: congratulations! you've just discovered "release early, release often" :)
perigrin I'm not 100% happy with his Perl5 version
(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. ;)
patrickas masak: I did release as early, my version is on github since july
masak oh.
patrickas maybe "publicised" was a better word than public
masak patrickas: you need a PR department. :) 23:55
colomon oh
masak blog post is published: strangelyconsistent.org/blog/yapsi-...1-released 23:57
masak stands down release mode
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 (github.com/patrickas/io-prompter/c...be25e5c87) 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.
patrickas :-) 23:59