»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by moderator on 4 August 2010.
00:05 [particle] joined 00:08 vieq joined 00:20 vieq left 00:23 wooden joined 00:27 petdance joined 00:36 LaVolta joined 00:40 huf joined 00:50 Guest30823 joined
plol is there an equivalent of the perl5 ``-syntax? 01:01
qqx[] seems to work, never mind :) 01:02
01:10 plobsing joined 01:20 ruoso joined 01:22 tylercurtis joined 01:35 dduncan joined
avuserow std: `foo` 01:38
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Bogus statement at /tmp/LIc0rjlbA1 line 1:␤------> [32m<BOL>[33m⏏[31m`foo`[0m␤Parse failed␤FAILED 00:01 113m␤»
avuserow std: qx/foo/;
p6eval std 31912: OUTPUT«ok 00:01 112m␤»
avuserow std: qqx/foo/;
p6eval std 31912: OUTPUT«ok 00:01 112m␤»
01:43 dduncan left 01:51 lucas_ joined
pragma_ needs less color and less extraneous symbols 02:05
02:18 synth joined 02:30 leprevost joined 02:37 justatheory joined 02:40 jaldhar joined 02:51 drbean joined 02:57 ash_ joined 03:13 molaf joined
[Coke] I imagine it's prettier on the command line. 03:31
03:34 sekimura1 joined
sorear yes. 03:36
pmichaud ohnononononono 03:37
pmichaud is very sad
avuserow pmichaud: por que?
pmichaud gist.github.com/510793 # the source of Pm's current sadness
and there doesn't appear to be an &infix:<cmp> for Numeric/Int/Rat/..... 03:38
rakudo: say 3.5.Str
p6eval rakudo 19931f: OUTPUT«3.5␤»
pmichaud rakudo: say 13 cmp 9 03:39
p6eval rakudo 19931f: OUTPUT«1␤»
pmichaud rakudo: say 9 cmp 13
p6eval rakudo 19931f: OUTPUT«-1␤»
pmichaud ...but there must be somewhere.
avuserow doesn't that sub apply to all types? 03:40
pmichaud it ends up being the default fallback
(it's a multi)
avuserow right
oh, cmp is not p5's cmp.
duh.
pmichaud the fallback for cmp is supposed to be string comparison, yes.
sorear pmichaud: why does that make you sad
pmichaud but I'm trying to figure out where the numeric cmps are taken care of
avuserow rakudo: say 5 gt 15 03:41
p6eval rakudo 19931f: OUTPUT«1␤»
sorear rakudo: say ((13 cmp 9), (13 <=> 9), (13 leg 9)).perl
p6eval rakudo 19931f: OUTPUT«(1, 1, -1)␤»
pmichaud I can't seem to find another definition for &infix:<cmp> that doesn't use string compares 03:42
I must be missing something somewhere. 03:43
avuserow rakudo: say ((13 lt 9), (13 < 9)).perl
p6eval rakudo 19931f: OUTPUT«(Bool::True, Bool::False)␤»
avuserow oh, I see the problem... 03:44
I don't see the solution though
03:47 tylercurtis joined
pmichaud okay, I'm totally confused. *why* does that even work? 03:49
sorear niecza: 03:52
p6eval niecza : OUTPUT«Can't locate Niecza/Grammar.pm in @INC (@INC contains: STD_checkout /opt/perl-5.12.1/lib/site_perl/5.12.1/x86_64-linux /opt/perl-5.12.1/lib/site_perl/5.12.1 /opt/perl-5.12.1/lib/5.12.1/x86_64-linux /opt/perl-5.12.1/lib/5.12.1 .) at CompilerDriver.pm line 27.␤BEGIN failed--compilati…
sorear phenny: tell moritz_ Since the new build system works for you and fixes several bugs in incremental builds, I've pushed it live 03:53
phenny sorear: I'll pass that on when moritz_ is around.
sorear phenny: ask pmurias How do I test STD-CPAN builds after altering STD? Would it be possible for me to get a CPAN comaint bit? 03:54
phenny sorear: I'll pass that on when pmurias is around.
pmichaud ohhhh, I found it 03:55
it used « instead of <
sorear I thought we expunged all french quotes from the setting 03:56
pmichaud well, not all
still want them for <=> and the like, I think.
avuserow is there an infix:<«> ?
sorear could do :<< <=> >> for that, no?
avuserow: no
avuserow oh
I see what pmichaud means
how about infix:'<' ? 03:57
pmichaud okay, I now see where <cmp> is being defined.... and I'm still sad.
sorear Why does this make you /sad/?
pmichaud some code just hurts to read :-)
gist.github.com/510813 the definition of &infix:<cmp>
sorear rakudo: say List.^methods(:local).Str 03:58
p6eval rakudo 19931f: OUTPUT«munch shift map hash fmt flat new rotate pop Capture elems Str list push exists unshift batch ACCEPTS eager at_pos sort iterator Bool Num perl of␤»
pmichaud having to create and manipulate two arrays to perform numeric comparisons of Ints .... hurts
(much less going through a reduce operator to check the boolean result) 03:59
sorear Isn't that infinite regress?
pmichaud oh, <=> might be defined for Int
that would make me feel slightly better
it's defined for Num 04:00
and for Real 04:01
okay, things look a little better now
oh, no they don't. 04:02
(sigh)
sorear Why not
04:03 mikehh joined
sorear Why can't you just use a tracer to find out exactly what 3 > 2 calls 04:03
pmichaud do we have a tracer?
sorear I'm pretty sure I've filled up my hard drive with parrot call records at some point 04:04
perl6 --trace=1 might be related
pmichaud that's an opcode trace...
generally way too long to be helpful
--trace=4 is the normal "follow the sub entry/exit" trace
anyway, <=> ends up calling Int.Bridge which ends up calling Int.Num 04:06
which is a horrible amount of overhead for comparisons of a fundamental type
and which also explains why our basic range and series operators are so slow 04:07
anyway, time to fix
melte :D 04:08
pmichaud ouch ouch ouch /me looks at &infix:«<=>»(Num, Num) 04:09
sorear pmichaud: how are Rat/Num comparisons going to work? 04:16
or Int/Rat?
or Int/FatRat?
pmichaud they fall back to Real
sorear does not like the O(N^2) factor 04:17
pmichaud and Real does coercions via the .Bridge method
but (Int,Int) should definitely be optimized for speed
sorear What does self!fill(0) do? 04:19
pmichaud makes sure that @items is initialized, mainly
er @!items 04:20
sorear ah
what's the point of .Seq.eager.iterator?
pmichaud where are you looking?
sorear List.pm+85
pmichaud .Seq creates a Seq; .eager makes it eager
.iterator returns a new iterator for the Seq
ah 04:21
you're looking at push
so, that just adds an iterator to @!rest
Exodist Behold, I have launched a futile attempt at creating another perl6 implementation (more for fun than anything else) github.com/exodist/Oyster 04:25
Just to see what I can do, not an attempt to compete with rakudo (currently) more a learning exersize. 04:26
Exodist loves a challenge.
sorear You can try competing with yapsi
That's what I'm doing
TiMBuS i personally encourage you to aim to beat rakudo. :3
Exodist yapsi? 04:27
sorear Although it's a bit of a joke at the moment
pmichaud Exodist++
sorear The competition
Exodist mine is 3 structs in a single C file and a plan in a readme.
whats yapsi?
TiMBuS yet another perl six implementation
pmichaud github.com/masak/yapsi 04:28
Exodist hmm, good name. I thought Oyster was pretty good for a perl implementation :-)
pmichaud oyster is indeed good
it also has layers, like an onion :)
Exodist lol, I wonder if anyone will follow the project (hint hint) lol 04:29
pmichaud Exodist (and others): Note that you'll never hear me give the "project XYZ is stealing resources from Rakudo" argument.
04:29 LaVolta joined
pmichaud I'm a firm believer in multiple implementations. 04:29
sorear Rakudo would not be where it is today without cross-pollination from STD and Pugs
Exodist heh, its more heading off any rais community members who see me and perl 6 and yell re-invented wheel at the top of their lungs.
pmichaud (and vice-versa, fwiw :)
Exodist *rails (yes its a stereotype, sorry, in my experience its fairly accurate) 04:30
pmichaud STD borrowed a lot of ideas (and lessons) from very early versions of Rakudo.
rcfox Exodist: You'd think Perl hackers would be the most tolerant of reinventing the wheel.
sorear Most of what I know about Rails people is _why 04:31
Exodist rcfox, you would think.
pmichaud night before last I had someone come up and ask about my comment about "multiple implementations are good" (more)
sorear Exodist: I suppose you're already aware of and following niecza?
pmichaud he gave the typical "wouldn't things go quicker if everyone worked on a single implementation?" (more) 04:32
Exodist generally it is my friends/co-workers who are big rails guys who bash any new project I start if something even remotely related exists
sorear, nope
pmichaud both me and moritz++ quickly responded with a sharp "No." (In retrospect, I think I should've made the answer a little less sharp :)
Exodist lol
sorear IMO rakudo is at close to a local maximum of developer time efficiency 04:33
Exodist more implementations means more lessons learned and more ideas tried, then survival of the fittest + cross polination will lead to an ultimate couple that are awesowe
sorear If we rounded up every Perl 5 and 6 person and made them work on Rakudo, there'd be a lot more lock contention and not much more code
rcfox sorear: Also, you probably wouldn't want 99% of their commits anyway. 04:34
Exodist lol
rcfox "It is not written in a pure subset of Perl6 making it hard for a Perl6 hacker to dive in. 04:35
"
What does that mean?
Exodist I am also gonna use this to try and Get the Fennec testing framework working to tost perl6 and non-perl code, should be trivial
sorear Fennec? 04:36
Exodist rcfox, someone told me rakudo is written in "not quite perl 6"
sorear Exodist: In addition to Niecza, you should take a look at Perlito, it seems to have a few similar goals
pmichaud we use NQP as a bootstrap
sorear not to join, of course. to steal from.
rcfox NQP?
pmichaud "Not Quite Perl 6"
Exodist sorear, behavior driven development for perl5, forking in tests just works, lots of other good: search.cpan.org/~exodist/Fennec/lib/Fennec.pm 04:37
petdance my $sum = [+] @list; is an example of... autocurrying?
pmichaud it lets us write grammars and translators using Perl 6 syntax without the full P6 overhead
petdance: reduction
petdance Wanna get the term right
ok
rcfox pmichaud: Is NQP more or less than Perl 6?
Exodist github.com/exodist/Fennec
pmichaud rcfox: "less"
Exodist its highly pluggable, custom file types, assertion libs, etc are all triviral 04:38
*trivial
rcfox pmichaud: I guess I meant: Is it a subset of Perl 6?
pmichaud rcfox: yes, a very restricted one.
rcfox Ah.
Exodist porting the assertion libs and file-based collector in perl6 is also simple.
pmichaud github.com/perl6/nqp-rx # nqp 04:39
sorear pmichaud: I'm afraid I still don't grok Seq's reason for existing
pmichaud sorear: it's a sequence of _values_
as opposed to List which can have containers
i.e., Seq de-containerizes the elements of a List 04:40
sorear What's the difference between a List and and Array?
pmichaud An array is a List of scalar containers
04:40 agentzh joined
pmichaud all of the elements of an Array are items 04:41
whereas the things in a List don't have to be
Exodist arrays are stored as a data type, a list is a bunch of independant elements in a context
04:42 felliott__ joined
pmichaud more to the point, if I do something like: for (@a, @b) { $_++ } 04:42
petdance Proofing please: gist.github.com/510846
Exodist but arrays and lists can be assigned to eachother (perl5 code: @stuff = ( $a, $b ); ($b, $a) = @stuff;)
pmichaud the list that is constructed from @a and @b has the individual scalar containers of @a and @b as its elements (when it flattens) 04:43
but if I create an Array from a List, the Array gets its own set of scalar containers
petdance: looking now 04:44
sorear a Parcel can contain any kind of container, List is just scalars, right?
Exodist is undef a scalar? 04:45
my @stuff = ( undef, $a );
or ( my $a, undef, $b ) = @stuff;
^ thats valid perl5 at least 04:46
pmichaud sorear: List is lazy; afaik it doesn't require that its elements be items
sorear undef is gone.
Exodist excusing lexical of globals $a and $b...
sorear, what is used now?
how do you function w/o undef?
pmichaud Exodist: each type object stands for an undefined value of that type
the most global/unrestrcited undefined value is Mu 04:47
*unrestricted
Exodist pmichaud, can you link to the correct syn and section? or point me at it? I must read this.
pmichaud petdance: the main rebuttal I'd see to your article is that Perl 5 at least kept some semblence of backwards compatibility with Perl 4, whereas Perl 6 does no such thing 04:48
petdance Sure, but I'm not optimizing for rebuttlas.
pmichaud Exodist: S02, "The C<Mu> type"
rcfox petdance: I'm not at all familiar with Perl 4, but I think a better way of saying "my variables" would be "lexical scopes". 04:49
petdance ok
Exodist pmichaud, awesome thanks, I must have been spacing out last time I read it, or did not understand the significance. 04:51
rcfox pmichaud: I guess the rebuttal for your rebuttal is that Perl 6 takes the lessons learned from modern Perl 5, and discards the cruft that should no longer be used anyway. 04:52
petdance any other comments anyone? 04:53
I've updated a bunch recently
I'm about to run it
pmichaud rcfox: sure, that's the reason for it existing, but not necessarily the reason it needs to be called "Perl 6" (which is what this article is about)
Exodist perl6 is more than it should be if you want it fast
pmichaud (note that I'm playing "devil's advocate" here, not spouting my own opinions)
Exodist but is also everything a language should be (as far as features)
petdance I was starting out with a two sentence article. 04:54
"It's still Perl because Larry says it's still Perl. End of discussion."
melte Perl 6 is also tied to the concept of Perl by its community, and not just its similarities with Perl 5
petdance but then I expanded
Exodist I don't agree with the name being a problem. Larry created perl, he wants to make a new language, he can use the name again.
petdance But it doesn't matter if you agree or not. 04:55
Exodist why would perl 5 need to evolve into perl6 anyway?
pmichaud petdance: are you responding to a recent thread that I've missed while at yapc::eu, ooc?
Exodist *let me rephrase
petdance No, just general whining
pmichaud petdance: okay.
petdance saw some comment on reddit, I think.
Exodist why would perl 5 need to incriment the 5?
rcfox I'm not sure "Larry says so." is a great reason, really... 04:57
petdance It doesn't matter if you think it's a great reason. 04:58
LaVolta close up the bug-hole...may be? :)
then 5 turns into 6
petdance That's the entire point.
TiMBuS i think what he is saying is if perl5 is never going to change why would it need to reserve the 6?? or am i wrong
rcfox Perl 6 feels like Perl, it behaves like Perl, and it has the philosophy of Perl. 04:59
sorear petdance: What do you have to say to the "Larry is some old kook who nobody has seriously listened to since the early 90s" crowd?
Exodist perl5 is unlikely to ever change enough to warrant 5++, it would be a back-incompatible change to do that.
petdance "So?"
TiMBuS Exodist, i think the only reason for previous version jumps was rewriting the entire internals 05:00
Exodist exactly
TiMBuS not the changing language spec
petdance sorear: Or if not "So?", I say "OK, that's fine. Isn't it cool we can use list reductions?"
TiMBuS so it can stay 5
Exodist perl5 can,t really do that again easily
petdance Not every dicussion needs to hapepn.
Just because some crank on reddit says "Larry should have done X" doesn't mean that it needs a response. 05:01
Exodist perl5 is huge, and near impossible to re-implement, only perl5 can parse perl5, re-writing it is an exercise in pain.
TiMBuS i wish i was forever 5! a new bmx every birthday
petdance See also: "OMG SOMEONE IS WRONG ON THE INTERNET"
Exodist lol
they can always call it perl5++, Schwern already gobbled perl5i (which is fun (disclaimer: I am a committer)) 05:02
TiMBuS perl#
petdance ok, no other notes on my article?
pmichaud anyway, I guess I've already moved into the "Isn't it cool that we can use list reductions?" phase of thinking about the issue. :-)
petdance I'm gonna publish it.
pmichaud so I don't have much to respond to this article :) 05:03
Exodist or they can call it perl7 and piss a lot of people off.. or perl{me,xp,ce,95,98,200,etc....}
pmichaud other than "yes, it's very cool"
Exodist where is the article?
TiMBuS ISO Perl
ANSI perl*
petdance Exodist: I posted a link ot a gist asking for commentary. 05:04
Exodist found it, reading
sorear TiMBuS: sorry, perl# is taken 05:05
rcfox P#
Microsoft's bastardized version of Perl. 05:06
pmichaud I'm so glad I can say "Rakudo" instead of "Perl 6" :-)
Exodist petdance, I like it
rcfox pmichaud: What do you mean?
Exodist rcfox, is P# real?
rcfox Exodist: I sure hope not!
pmichaud rcfox: sometimes it's nice to be able to talk about Perl 6 without having to use the phrase "Perl 6" :-) 05:07
Exodist lol, this is all google finds: github.com/mbarbon/language-p
rcfox pmichaud: But doesn't that only work in a context where everyone knows about Perl 6? 05:08
Exodist is it a perl5 compiler written in perl5 that compiles perl5 into perl5?
pmichaud rcfox: I'm hoping that someday it will work outside of that context, yes.
sorear pmichaud: if List is lazy and holds containers, why does List.push eagerly evaluate and remove containers? 05:11
pmichaud TimToady++ decided that push should act eagerly.
(and I agree)
to be more consistent with the p5 expectation. 05:12
I think someone would be very surprised if
sorear How often does a P5 expectation programmer even see a List?
pmichaud $b = 6; $list.push($b); $b = 5;
caused $list to suddenly have a 5 value in it
Exodist wait, what? $b = 6; $list.push($b); $b = 5; <-- how does this make sense? 05:13
oh
$b = 6; $list.push($b); $b = 5; wait
duh
ignore me 05:14
wtf? I somehow accidently pasted?
05:15 NiiHiiL joined
pmichaud time for breakfast here -- bbiaw 05:15
rcfox rakudo: my $a = {1}; $a = {$a()}; $a();
p6eval rakudo 19931f: OUTPUT«maximum recursion depth exceeded␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in <anon> at line 22:/tmp/weYpKIwekl␤ in
..<anon> at …
rcfox ^ Is that expected?
tylercurtis rcfox: why not?
pmichaud seems reasonable to me
tylercurtis rakudo: sub a { a(); }; a(); 05:16
p6eval rakudo 19931f: OUTPUT«maximum recursion depth exceeded␤ in 'a' at line 1:/tmp/C3LS9zXPwG␤ in 'a' at line 22:/tmp/C3LS9zXPwG␤ in 'a' at line 22:/tmp/C3LS9zXPwG␤ in 'a' at line 22:/tmp/C3LS9zXPwG␤ in 'a' at line 22:/tmp/C3LS9zXPwG␤ in 'a' at line 22:/tmp/C3LS9zXPwG␤ in 'a' at line
..22:/tmp/C3LS9zXPw…
pmichaud it's not really much different than having &foo = { &foo() }
sorear rcfox: rakudo doesn't handle tailcall optimization yet 05:17
Exodist rcfox, closure, $a is the same $a regardless of whats in it
rcfox Okay, I guess so.
pmichaud doesn't see how tailcall optimization applies... but oh well.
Exodist rakudo: my $a = {1}; $a = {my $b = $a; $b()}; $a();
p6eval rakudo 19931f: OUTPUT«maximum recursion depth exceeded␤ in 'Mu::item' at line 1186:CORE.setting␤ in 'Mu::item' at line 1188:CORE.setting␤ in '&infix:<=>' at line 1␤ in <anon> at line 22:/tmp/ZmSVbLcePW␤ in <anon> at line 22:/tmp/ZmSVbLcePW␤ in <anon> at line 22:/tmp/ZmSVbLcePW␤ in <anon> at
..line …
Exodist oh, duh :-P 05:18
I did the same thing
tylercurtis rakudo: my $a = 5; sub b { $a }; say b; ++$a; say b; #rcfox, consider this related case.
p6eval rakudo 19931f: OUTPUT«5␤6␤»
05:18 petdance joined
pmichaud I guess someone could expect an infinite loop instead of 'maximum recursion' 05:19
rcfox rakudo: my $a = {1}; my $b = $a; $a = {$b()}; $a();
p6eval rakudo 19931f: ( no output )
Exodist can you override the maximum if needed?
pmichaud Exodist: that's a very good question.
LaVolta rakudo: my List $l .= new; my $b = 6; $l.push($b); $b = 5; $l.perl.say; # test
p6eval rakudo 19931f: OUTPUT«(6)␤» 05:20
TiMBuS i remember overriding it in my language
Exodist pmichaud, I could see it being necssary for some algorithms
pmichaud Exodist: I agree.
currently Parrot enforces the max recursion depth, so we'd have to tune it there.
TiMBuS since it was functional and executed backwards i needed a large call depth
pmichaud (i.e., provide a way to access that tuning)
Exodist perl5 lets you I think, but then again deep recursion is a warning not fatal in p5
rcfox I guess I was expecting it to do something sort of like my last thing. 05:21
TiMBuS $P0 = getinterp
$P0.'recursion_limit'(100000)
sorear rakudo: sub moo($x) { $x ?? 20 !! moo($x-1) }; moo(10000)
p6eval rakudo 19931f: ( no output )
sorear rakudo: sub moo($x) { $x ?? 20 !! moo($x-1) }; say moo(50000)
p6eval rakudo 19931f: OUTPUT«20␤»
sorear rakudo: sub moo($x) { $x ?? 20 !! moo($x-1) }; say moo(500000)
05:21 ktne joined
p6eval rakudo 19931f: OUTPUT«20␤» 05:21
sorear rakudo: sub moo($x) { $x ?? 20 !! moo($x-1) }; say moo(5000000)
p6eval rakudo 19931f: OUTPUT«20␤»
sorear rakudo: sub moo($x) { $x ?? 20 !! moo($x-1) }; say moo(100000000) 05:22
p6eval rakudo 19931f: OUTPUT«20␤»
Exodist wow.
sorear rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; say moo(50000)
p6eval rakudo 19931f: OUTPUT«maximum recursion depth exceeded␤ in 'upgrade_to_num_if_needed' at line 3444:CORE.setting␤ in 'upgrade_to_num_if_needed' at line 3454:CORE.setting␤ in 'infix:<->' at line 3510:CORE.setting␤ in 'moo' at line 22:/tmp/4I2GAKPbKh␤ in 'moo' at line 22:/tmp/4I2GAKPbKh␤ in
..'moo' at …
Exodist thats pretty deep (thats what she said)
melte lol
05:22 snearch joined
sorear rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; pir::getinterp().recursion_limit(1000000); say moo(50000) 05:23
p6eval rakudo 19931f: OUTPUT«===SORRY!===␤The opcode 'getinterp' (getinterp<0>) was not found. Check the type and number of the arguments␤»
sorear rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; pir::getinterp__P().recursion_limit(1000000); say moo(50000)
p6eval rakudo 19931f: ( no output )
05:23 justatheory joined
tylercurtis rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; say moo(1000); 05:23
p6eval rakudo 19931f: OUTPUT«maximum recursion depth exceeded␤ in 'upgrade_to_num_if_needed' at line 3444:CORE.setting␤ in 'upgrade_to_num_if_needed' at line 3454:CORE.setting␤ in 'infix:<->' at line 3510:CORE.setting␤ in 'moo' at line 22:/tmp/yAgyW2H00I␤ in 'moo' at line 22:/tmp/yAgyW2H00I␤ in
..'moo' at …
sorear rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; pir::getinterp__P().recursion_limit(1000000); say moo(1000) 05:24
p6eval rakudo 19931f: OUTPUT«20␤»
TiMBuS yeah sorear was doing it backwards there
rcfox sub moo($x) { $x ?? moo($x-1) !! 20 }; say moo(1);
petdance ok done perlbuzz.com/2010/08/what-to-say-to...-more.html
rcfox rakudo: sub moo($x) { $x ?? moo($x-1) !! 20 }; say moo(1);
p6eval rakudo 19931f: OUTPUT«20␤»
rcfox Okay... Nap, then study. 05:26
I hate exams.
melte I hear ya 05:27
TiMBuS hahaha ok, recursing 100,000 times with the limit set to 1,000,000 = segfault 05:29
must have crashed because it was looping so fast! 05:30
sorear TiMBuS: -Minf
tylercurtis in the first example at perlcabal.org/syn/S12.html#Autovivi...g_objects, wouldn't { :name<Fido> } be a hash literal rather than a closure?
sorear er
-g inf
snarkyboojum is betting a GC barf :P
sorear you need to turn off the garbage collector if you want to loop more than 20,000 deep or so
tylercurtis TiMBuS: that happens even with tailcalls, too.
TiMBuS ah 05:31
did parrots gc ever get reworked after the gsoc attempt? 05:32
pmichaud it's being reworked now
TiMBuS whiteknight again?
pmichaud bacek
(and chromatic)
TiMBuS awesome 05:33
pmichaud afk # nom
Exodist -> bed, night all
TiMBuS pmichaud <<== pretzels() <== beer() 05:34
tylercurtis Hmm... where in the spec is the way of determining where "{ foo }" is a block or a hash? 05:35
Nevermind, found it. 05:38
snarkyboojum alester++ # interesting Perl 6 blogging :)
dalek kudo: 9dd4081 | pmichaud++ | (2 files):
Add somewhat cheating version of src/core/Order.pm .
kudo: 6d32585 | pmichaud++ | src/core/Int.pm:
Add more Int numeric comparision operators.
petdance snarkyboojum: thanks.
snarkyboojum moritz_++ beat me to the mkdir bug.. I had a patch for it :) 05:41
moritz_ good morning
phenny moritz_: 03:53Z <sorear> tell moritz_ Since the new build system works for you and fixes several bugs in incremental builds, I've pushed it live
tylercurtis appears to have been right. 05:42
Curlies enclosing a pair make a hash, not a block.
snarkyboojum moritz_: o/
moritz_ \\o 05:43
tylercurtis Does Rakudo implement autovivifying objects? 05:44
moritz_ rakudo: my %h; push %h<a>, 1, 2; say %h.perl 05:45
p6eval rakudo 19931f: OUTPUT«Method '!fill' not found for invocant of class ''␤ in 'List::push' at line 2610:CORE.setting␤ in main program body at line 22:/tmp/IxHzXM4aK0␤»
TiMBuS haha oh dear 05:46
moritz_ rakudo: my %h; %h<a><b> = 3; say %h.perl
p6eval rakudo 19931f: OUTPUT«{"a" => {"b" => 3}}␤»
moritz_ submits rakudobug
tylercurtis moritz_: I mean things like "Dog but WHENCE({ :name<Fido> })"
moritz_ tylercurtis: not sure 05:47
TiMBuS i recall pmichaud saying it can be used now 05:48
snarkyboojum sorear: if I run xbuild 3 times, I get a working niecza build via ./niecza_eval, but if I run few xbuilds I get errors
sorear: related to the ContineOnError attr stuff I was going on about yesterday
tylercurtis rakudo: class Dog { has $.name; method wag { say "$.name wags his tail." } }; my $dog = Dog{ :name<Fido> }; defined $dog or say "doesn't exist"; $dog.wag();
p6eval rakudo 19931f: OUTPUT«doesn't exist␤Method 'wag' not found for invocant of class ''␤ in main program body at line 22:/tmp/s61g0jxJh8␤» 05:49
moritz_ niecza: say "alive"
snarkyboojum sorear: I think
p6eval niecza d274387: OUTPUT«alive␤»
sorear snarkyboojum: huh.
snarkyboojum sorear: bizarro eh
sorear snarkyboojum: what is the output
snarkyboojum sorear: I mentioned yesterday that the additional ContinueOnError attrs for the Exec tasks running mono --aot were still failing on OS X 05:50
sorear well, it's supposed to output FAILED, but it also continues
or at least that's how it worked for me & touch commands
snarkyboojum sorear: and after a single xbuild, and even a second I get a failing evalutator, but a third build makes it work.. a coincidence that there are 3 exec tasks doing mono --aot? not sure
sorear: will pastebin some errors
tylercurtis Doesn't look like it's yet implemented. Anyway, the reason I'm asking is because the WHENCE closure is supposed to return an argument list for .bless. 05:51
moritz_ after a git clean -xdf the xbuild worked fine for me on first attempt
sorear tylercurtis: that is quite completely unlike how WHENCE works these days
tylercurtis sorear: that's what S12 says about it. 05:52
sorear tylercurtis: check out src/core/List.pm and src/core/Any-list.pm
implementation is leading specification
tylercurtis Good. Because I was about to complain about how the spec currently doesn't even work for its own examples.
sorear moritz_: snarkyboojum is using a version of mono which fails on --aot attempts
moritz_ oh. 05:53
sorear I guess because it's the official OSX build, it's probably a fat binary and doesn't know what kind of code to AOT? 05:54
or something like that
05:54 Mowah joined
sorear in any case it errors out with --aot not supported 05:54
sorear is now overhauling niecza's list type hierarchy 05:55
snarkyboojum sorear: during the first xbuild I get a failure due to mono --aot etc at the Kernel.dll target, the second I get a failure at SAFE.dll, and the third I get a similar failure at CORE.dll, so it seems to be "getting one target further" for each xbuild invocation, until the fourth invocation, at which point the build "succeeds" :D, but the evaluator runs properly after the third, until then I get these types of errors 05:57
gist.github.com/510905
tylercurtis sorear: I guess Rakudo's current interpretation of WHENCE eliminates my issue that with S12's definition, almost every use of it(probably every use) would require Dog{; :name<Fido> } instead of Dog{ :name<Fido> }, to use the spec's example.
pmichaud back from nom 05:59
sorear snarkyboojum: What version of Mono are you usign? 06:05
moritz_ alester: is it intentional that you don't like to perl6.org in the sidebar of the perlbuzz blog? 06:07
if not, please consider doing it :-)
snarkyboojum sorear: 'Mono JIT compiler version 2.6.4 (tarball Thu Apr 22 13:24:33 MDT 2010)'
sorear snarkyboojum: I just pushed a change making UseAOT a configurable variable 06:09
szabgab cam I talk to the repl via a soket instead of on the command line? 06:14
06:14 pnate joined
szabgab or maybe via a socket... 06:14
dalek ecza: b1b9752 | sorear++ | test2.pl:
start prototyping Array accessors
06:15
ecza: fb128e3 | sorear++ | SAFE.setting:
!fill should be a private method
ecza: c392842 | sorear++ | Niecza.proj:
Add a central switch to turn off AOT, rather than relying on ContinueOnError
pmichaud hmmm, I seem to be unable to svn commit to pugs.
sorear moritz was talking aout that earlier 06:17
apparently pisa doesn't like svn much
pmichaud apparently.
snarkyboojum sorear: thanks - works for me if I set UseAOT to 'N' - cheers :)
06:17 Su-Shee joined
sorear I've asked #mono what could be going wrong 06:17
moritz_ pmichaud: related to some network filtering - I rsync'ed to another box, and committed from tehre
snarkyboojum sorear: did some reading about ContinueOnError doing strange things, and still failing builds last night, but didn't make much sense of it to be honest 06:18
sorear so, in the US, ISPs like to kill BitTorrent, but in Italy they go after subversion. WTF?
pmichaud moritz_: my commits aren't urgent, I'll wait until I get to a real wifi connection :)
petdance moritz_: perlbuzz.com/ is updated 06:19
moritz_ petdance++
pmichaud petdance++ 06:21
petdance I'm reasonably responsive. :-)
sorear petdance: would it make any sense at all to have git-grep functionality in ack 2? 06:23
petdance What is "git-grep functionality"
sorear accesses the packfile instead of the filesystem
06:24 masak joined
masak morning, #perl6! 06:24
sorear *much* faster than grep -r for largish projects (mono, linux)
although that could just be ext3 sucking
hello masak!
masak: check out github.com/exodist/Oyster 06:25
petdance sorear: You can do anything you want with plugins in ack 2.0
sorear masak: someone else has started an -Ofun perl6 implementation
petdance However, no, ack will not do anything with git specifically. 06:26
masak sorear: wow! looks impressive!
I'm happy to report that Yapsi is currently ahead of that project :) 06:27
but if there's any way I can compile things down into his interpreter, I definitely will.
masak emails exodist 06:28
snarkyboojum masak o/
masak snarkyboojum! \\o/
tylercurtis github.com/ekiru/Bennu/blob/rewrite...amodel.pm6 is a very early draft of vaguely what I expect the bootstrappy stuff for Bennu I rambled incoherently about a couple nights ago ago to look like. 06:30
tylercurtis isn't going to stay around to discuss it tonight, though.
tylercurtis told himself that he had to go to bed an hour ago and disobeyed himself. 06:31
snarkyboojum told himself "last beers" an hour ago and disobeyed himself :P
06:35 huf joined
masak Exodist: oh, you're here on the channel :) 06:35
Exodist: I'm writing you an email :)
sent. 06:39
masak goes back to panicking
my talk is at 12:00! o.O
tylercurtis I plan to, after obsessively reading S12, S14, and probably S06 and S13 several times, write up a theoretical implementation of Perl 6's object system on top of that. And eventually (by which I mean, after GSoC) figure out how to make that stuff all parse properly with STD. Someday I might even write something to compile some of it!
snarkyboojum masak: next talk in 3 hours or so? :O 06:40
masak 3:20, yes. 06:41
masak writes more slides
snarkyboojum go-go masak-san ;)
tylercurtis Anyway, another night's worth of semi-coherent (I hope) rambling about Bennu is done. Good night, #perl6! 06:42
snarkyboojum alberto has been mentioning Perl 6 YAPC::EU 2010 talks on his blog blogs.perl.org/users/alberto_simoes/ - he seems to yearn for real world applications
masak who doesn't? :) 06:43
snarkyboojum indeed :)
masak for what it's worth, I liked moritz_' talk.
moritz_ mine was as real-world application as can be :-) 06:44
snarkyboojum I wish I would have been there to hear it, alberto's reviews seem to be quite... terse 06:45
does he hang out on #perl6?
masak "Just a bunch of theory without a real application." -- My mind boggles at this assertion.
moritz_ snarkyboojum: not afaik 06:46
masak someone on Twitter wonders when Rakudo Star will hit MacPorts. 06:47
snarkyboojum moritz_: that's a shame - we need to get him contributing modules/tests/patches ;)
TiMBuS Am I allowed to make a rakudo star PPA?
moritz_ yes (although I don#t know what a PPA is :-)
TiMBuS i know someone here has rakudo on launchpad but its nothing but a link really
it's ubuntus package site 06:48
snarkyboojum why is a macport required?
moritz_ because people expect it? 06:49
snarkyboojum I thought macports were useful for *nix software that had to be *ported* to OS X
I guess I misunderstood the point 06:50
moritz_ wonders if Alberto read conferences.yapceurope.org/ye2010/talk/2949 before attending the talk
"Along the way I will briefly explain some Perl 6 features used (but I'll keep it minimal)."
petdance I think this is my new strategy 06:51
perlbuzz.com/2010/08/what-to-say-to...-more.html
when the "But Perl 6..." folks talk about the negatives, I'll just reply with a positive.
and ignore the gripe.
pmichaud I have the impression that Alberto doesn't like Perl 6 very much. (That's okay, it's his right to have an opinion.)
snarkyboojum pmichaud: I kind of arrived at the same conclusion 06:52
I'm also reminded of au|irc's "turn trolls into commiters" :)
moritz_ wonders whether to reply with a tasty blog post... and decides against it 06:53
snarkyboojum not saying alberto is a troll though!
pmichaud iirc, he's been a committer in the past. :)
snarkyboojum shuts up :)
+1 for moritz_'s tasty blog post!
petdance: piers cawley I think said something different but vaguely in the same spirit perhaps, about only replying to constructive posts or some such.. I liked that 06:56
petdance I don't mind responding to the negative posts, but that doesn't mean you have to repsond to the negativity. 06:57
"Perl 6 is ugly!" "OK."
dalek ecza: 39d5124 | sorear++ | (4 files):
Implement $?ORIG and $?FILE
masak chromatic is good at ignoring the low blows and focusing on the facts in comments.
sorear chromatic++ 06:58
snarkyboojum aye, chromatic++ # for resilience, and general FUD-fighting :) 06:59
petdance well, I wish he didn't fight 07:00
he likes the rolling in the mud
OK, it's bedtime for me
masak I think he likes to respond factually to over-emotional FUDding. more often than not, I like reading it. 07:03
pmichaud yes, I think he just likes exposing FUD and logically unsound reasoning 07:04
sorear yes, that's chromatic. meticulous to a fault.
so it appears that the main operational difference between Array and List is that Arrays can have new elements added by subscripting 07:05
my @a; @a[0] = 'x';
# equivalently: my @a; @a = ( 'x' )
dalek kudo: 2c0ea31 | pmichaud++ | src/c (2 files):
Refactor Order::* constants--- as cheats we want them available before

back into the setting itself.
kudo: 035efb0 | pmichaud++ | src/core/ (2 files):
Refactor some comparison operators to avoid unnecessary blocks and
sorear neither would work with an empty List
?
07:06 wamba joined
sorear should do something with enums in niecza soon (before rakudo) 07:07
masak sorear: grrr :) 07:08
I have the patches ready, they just cause problems when I apply them.
pmichaud if rakudo once had enums (i.e., in alpha), does that count? ;-) 07:09
masak Rakudo *has* enums in master too.
they're just less than awesome.
sorear What's LTA about them? 07:16
masak the enumeration object is an EnumMap instead of wrapping one. 07:17
hence, it has the wrong set of methods.
the individual enum things also have the wrong set of methods.
sorear What's the deal with EnumMap anyway 07:18
Why can't it just use Hash
masak immutability.
sorear masak: What I'm currently proudest of in niecza is the implementation of Test::Builder::blame
sorear wonders how many changes woule need to be made to niecza's Test::Builder for it to work on rakudo, (and how many fudges could be removed) 07:19
s/::Builder/.pm6/
masak hides from IRC until after his talk 07:22
o/
sorear aww, I didn't manage to rope masak into reading the best example of niecza input code.
07:24 plol joined
pmichaud sorear: need to pick a day when he's not putting together a talk :) 07:24
sorear Can a Seq contain flattening objects? 07:26
pmichaud A Seq is already flattened, like an Array. 07:28
sorear Is Seq entirely defined in PIR? 07:30
TiMBuS looks like it is 07:35
07:40 Lasse_ joined
dalek kudo: 0e5edb5 | pmichaud++ | src/core/Int.pm:
Clean up &infix:<cmp>(Int, Int).
07:52
07:55 eternaleye joined
pmichaud TiMBuS: you may need to descalarref the values 07:58
TiMBuS can i use isa 07:59
pmichaud better is ACCEPTS
TiMBuS Any.ACCEPTS or p6scalar.ACCEPTS? 08:00
08:00 jhuni joined
pmichaud ...where are you thinking you'd need isa...? 08:00
TiMBuS i'm thinking for times when people pass unboxed types, but now I think about it thats never going to happen is it 08:02
its just the current one i wrote works by using "new ['Perl6Scalar'], other_scalar" without derefing 08:04
08:05 mberends joined
TiMBuS i do it that way because generated pir does that 08:05
pmichaud hmmmm 08:08
08:08 vcrini joined
dalek ecza: ea7e7a7 | sorear++ | (2 files):
Add MONKEY_TYPING module
08:11
ecza: 2ceeaa4 | sorear++ | SAFE.setting:
add List!item, fix List.iterator to not leak memory, other list tweaks
08:19 itz joined
cono rakudo: class E {has $.n is rw; has $.v is rw; method Str{~self.v}}; my E $x .= new(:v(1)); $x.n = E.new(:v(2)); (gather { my $i = $x; while $i.defined { take $i; $i = $i.n } }).join("|").say 08:22
p6eval rakudo 6d3258: OUTPUT«Any()|Any()␤»
cono is it a bug/
rakudo: class E {has $.n is rw; has $.v is rw; method Str{~self.v}}; my E $x .= new(:v(1)); $x.n = E.new(:v(2)); (gather { my $i = $x; while $i.defined { take $i; $i = $i.n } }).map({~$_}).join("|").say
p6eval rakudo 6d3258: OUTPUT«1|2␤»
pmichaud cono: yes, it's likely a bug. 08:23
actually, I might be able to fix it easily now.
cono should I submit?
pmichaud sure... it's likely the take() bug.
sorear std: anon $x = 5; 08:27
p6eval std 31912: OUTPUT«ok 00:01 115m␤»
sorear std: my $x = 5;
p6eval std 31912: OUTPUT«ok 00:01 115m␤»
LaVolta is http post available in Perl 6 using modules?
sorear std: { my $x = 5; }
p6eval std 31912: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/mBUlN7RCQa line 1:␤------> [32m{ my $x[33m⏏[31m = 5; }[0m␤ok 00:01 115m␤»
sorear std: { anon $x = 5; }
p6eval std 31912: OUTPUT«ok 00:01 115m␤»
rcfox So, wait. 08:29
You guys are in Italy, but you're still on IRC? :P
08:30 foodoo joined
sorear rcfox: dude, the US isn't the only place with internet 08:31
cono :D
sorear US is actually one of the worst places for internet access, even in cities
rcfox sorear: I'm Canadian. :P 08:32
What I mean is, why aren't you out eating lots of Italian food, harassing the natives? 08:33
rcfox forgot an "and" there... 08:34
mberends many of us did that to exhaustion last night ;)
rcfox Guh, my sleep schedule is not condusive
sorear Personally, I recommend not harrassing anybody in a non-native jurisdiction
rcfox conducive to coherence.
rcfox has been doing 4 hours sleeping -> ~20 hours awake -> 3 hours sleeping -> 12 hours awake for the past few days. 08:36
Not even on purpose. :\\
sorear right now, I think my sleep schedule could be used as a high-quality random bit source
pity I don't actually need to generate new keypairs now. 08:37
mberends :)
rcfox Just talk into a pipe. 08:38
08:51 tadzik joined 08:52 jferrero joined
tadzik morning #perl6 08:52
cono tadzik: o/ 08:53
rakudo: sub qwe {Nil}; qwe.defined.perl.say 08:54
p6eval rakudo 0e5edb: OUTPUT«Bool::True␤»
cono rakudo: sub qwe {my $x = 5; $x = Nil; $x}; qwe.defined.perl.say
p6eval rakudo 0e5edb: OUTPUT«Bool::False␤»
cono is it a bug?
sorear Nil changes when assigned to a scalar variable 08:55
it's not a /bug/
but it is very weird behavior which I don't understand the rationale for
cono changes to what? 08:56
rcfox rakudo: sub foo {0}; foo.defined.perl.say; 08:57
p6eval rakudo 0e5edb: OUTPUT«Bool::True␤»
rcfox Why should it matter if Nil changes?
The sub should still be defined.
rakudo: sub qwe {my $x = 5; $x = Nil; $x}; qwe();
cono result of sub
sorear the sub is defined
p6eval rakudo 0e5edb: ( no output )
sorear you're not testing if the sub is defined 08:58
rakudo: sub qwe {my $x = 5; $x = Nil; $x}; say qwe.WHAT
p6eval rakudo 0e5edb: OUTPUT«Any()␤»
sorear rakudo: sub qwe {my $x = 5; $x = Nil; $x}; say qwe.WHAT; say &qwe.WHAT;
p6eval rakudo 0e5edb: OUTPUT«Any()␤Sub()␤»
cono rakudo sub qwe { Nil }; qwe.WHAT.say
rcfox rakudo: sub foo {0}; say foo.WHAT;
p6eval rakudo 0e5edb: OUTPUT«Int()␤»
cono rakudo: sub qwe { Nil }; qwe.WHAT.say
p6eval rakudo 0e5edb: OUTPUT«Parcel()␤» 08:59
cono oO
rcfox p6eval: Needs to add the user's name in the reply. :P
cono rakudo: "ok".say
:)
p6eval rakudo 0e5edb: OUTPUT«ok␤»
rcfox rakudo: sub foo {0}; say foo.WHAT; 09:00
p6eval rakudo 0e5edb: OUTPUT«Int()␤»
09:00 Meg_ joined
rcfox rakudo: sub foo {0}; say &foo.WHAT; 09:00
p6eval rakudo 0e5edb: OUTPUT«Sub()␤»
rcfox rakudo: sub foo {0}; say foo; 09:01
p6eval rakudo 0e5edb: OUTPUT«0␤»
rcfox Ah.
rakudo: say Nil.WHAT; 09:02
p6eval rakudo 0e5edb: OUTPUT«Parcel()␤»
09:02 briang joined
rcfox rakudo: say Nil; 09:02
p6eval rakudo 0e5edb: OUTPUT«␤»
rcfox rakudo: my $a = Nil; say $a.WHAT; 09:03
cono I guess Nil == ()
p6eval rakudo 0e5edb: OUTPUT«Any()␤»
rcfox rakudo: my $a = Nil; say $a;
p6eval rakudo 0e5edb: OUTPUT«Any()␤»
rcfox :\\
rakudo: say undef; 09:04
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ Mu (the "most undefined" type object),␤ an undefined type object such as Int,␤ Nil as an empty list,␤ *.notdef as a matcher or method,␤ Any:U as a type constraint␤
.. or fail() as a failur…
09:04 jhuni joined
rcfox rakudo: say Mu; 09:05
p6eval rakudo 0e5edb: OUTPUT«Mu()␤»
rcfox rakudo: use MONKEY_TYPING; augment class Mu { method Str { "mew" }}; say Mu;
cono rakudo: Mu.new.defined.perl.say
p6eval rakudo 0e5edb: OUTPUT«Mu()␤» 09:06
rakudo 0e5edb: OUTPUT«Bool::True␤»
rcfox Oh, I didn't make an instance.
cono wyup
rcfox rakudo: use MONKEY_TYPING; augment class Mu { method Str { "mew" }}; say Mu.new;
p6eval rakudo 0e5edb: OUTPUT«mew␤»
rcfox :D
rakudo: use MONKEY_TYPING; augment class Block { method Num { self.() }}; my $a = {1+{1+{1+{1+{1}}}}}; say $a(); 09:08
p6eval rakudo 0e5edb: OUTPUT«5␤»
sorear rcfox: It *should* have happened even for Mu 09:09
but ... you're playing very deep in the bowels of rakudo now
rcfox sorear: Heh, okay then.
sorear and not everything works as it should
rcfox Wait, really? 09:10
It's a method.
Doesn't that require an instance?
tadzik stackoverflow.com/questions/3420700...talling-it
Is answering your own questions an usual habit on SO?
rcfox tadzik: I think there might even be a badge for it?
tadzik rcfox: maybe 09:11
sorear my @x = 1, 2 works in Niecza now
\\o/
tadzik yes there is
\\o/
rcfox Haha
sorear: Nice. That's an important one. ;)
dalek ecza: 2ba29b2 | sorear++ | test2.pl:
add List.push, Seq to array prototyping
09:12
ecza: 241de60 | sorear++ | (2 files):
Add pop to arrays prototype
ecza: ddf23a6 | sorear++ | (3 files):
Implement list assignment and fold arrays back into the standard setting
rcfox Man, Rakudo Star came out at the worst time possible.
Right before my exams started!
sorear The important thing now is @x[0] 09:13
And, worse, @x[2][0]
autovivification and postcircumfix operators 09:14
niecza: say$?ORIG; # Perl6 quine
p6eval niecza d274387: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/aZ_PPMv6tK line 1:␤------> [32msay[33m⏏[31m$?ORIG; # Perl6 quine[0m␤ expecting any of:␤ POST␤ argument list␤ bracketed infix␤ infix or meta-infix␤ postfix␤ postfix_prefix_meta_operator␤
.. statement modifier loop␤Other p…
sorear niecza: say $?ORIG; # Perl6 quine
p6eval niecza d274387: OUTPUT«say $?ORIG; # Perl6 quine␤␤» 09:15
rcfox Should it have said the comment?
sorear yes 09:16
09:19 clintongormley joined
sorear rakudo: say 2<3>; 09:20
p6eval rakudo 0e5edb: ( no output )
sorear rakudo: use fatal; say 2<3>;
p6eval rakudo 0e5edb: OUTPUT«postcircumfix:<> not defined for type Int()␤ in 'Any::at_key' at line 1␤ in 'Any::postcircumfix:<{ }>' at line 1696:CORE.setting␤ in main program body at line 1␤»
sorear tiny bug there
fail "postcircumfix:<{ }> not defined for type {self.WHAT}" 09:21
rcfox ?
sorear rcfox: see source line and printed error
rcfox Oh, heh. 09:22
cosimo rakudo: my $x = "lalalal \\$4"; say $x; 09:27
p6eval rakudo 0e5edb: OUTPUT«lalalal $4␤»
09:28 meppl joined
cosimo rakudo: my $ns='8.8.8.8'; my $cmd = "host files.geo.myopera.com $ns | grep ^files | awk '{ print \\$4 }'"; say $cmd; 09:28
p6eval rakudo 0e5edb: OUTPUT«Capture()<0x75141d0>host files.geo.myopera.com 8.8.8.8 | grep ^files | awk '1'␤»
09:28 snearch joined
cosimo aah, now i understand :) 09:28
rakudo: my $ns='8.8.8.8'; my $cmd = "host files.geo.myopera.com $ns | grep ^files | awk '\\{ print \\$4 \\}'"; say $cmd;
p6eval rakudo 0e5edb: OUTPUT«host files.geo.myopera.com 8.8.8.8 | grep ^files | awk '{ print $4 }'␤»
cosimo i have to quote the '{' and '}' chars... 09:29
rcfox Strange...
sorear just use single quotes 09:30
rcfox Oh, right, there's block interpolation now.
sorear it's also specced possible to say q:s'foo' for only scalar interpolation
and generally allowing you to pick and choose what you want interpolated
qq:!c"no { code interp" 09:31
but rakudo doesn't do that yet
09:33 Alias joined 09:47 thebird joined 09:49 envi^home joined 09:57 uniejo joined 10:00 vcrini joined 10:07 pmurias joined
sorear it is beginning to strike me as odd that there is only one type of scalar container in the specs 10:08
pmurias sorear: there is Proxy 10:09
phenny pmurias: 03:54Z <sorear> ask pmurias How do I test STD-CPAN builds after altering STD? Would it be possible for me to get a CPAN comaint bit?
snarkyboojum I thought Proxy was going away
bbkr is there any URI class for P6? i remember that there was nice grammar for it but I cannot find it now on GitHub.
pmurias sorear: i'll give you the STD comaint ASAP 10:10
sorear: dzil build builds the CPAN dist, Dist-Zilla-Plugin-STD found in v6/ needs to be installed for that 10:11
cono Where I can find join method definition for List class?
10:11 muixirt joined
tadzik bbkr: there is 10:12
github.com/ihrd/uri/
not sure it works though
pmurias sorear: STD on CPAN doesn't include any tests right now
tadzik fails tests for me
pmurias sorear: but some sort of testing would be nice to have 10:13
bbkr tadzik: dziekuje
tadzik bbkr: proszę. Forkuję że poprawić te failujące testy
dalek ecza: 14b2b77 | sorear++ | (2 files):
Add a field to lvalues to hold WHENCE data
tadzik s/że/żeby/
sorear pmurias: any particular reason the STD dist has its own independant version numbers instead of just using svn ref? 10:14
pmurias didn't think of using those
sorear ok 10:15
sorear -> sleep
10:23 timbunce joined
tadzik bbkr: I fixed some things, but not all of them 10:26
10:27 Mowah joined, rgrau joined
tadzik bbkr: alright, URI::Escape fails, but rest is fine 10:31
bbkr tadzik: awesome
tadzik github.com/tadzik/uri 10:35
bbkr: ↑
10:38 Italian_Plumber joined
bbkr tadzik: thanks. currently i borrowed only grammars. I'm developing HTTP::Request/Response and i'll switch to URI when interface will be stable. 10:41
10:42 redicaps joined
zby can i check if a class was declared by some package? 10:49
or rather defined 10:50
10:56 ktne joined 11:21 uniejo joined
sorear zby: elaborate? 11:23
11:25 cognominal joined 11:28 shade__ joined
x3nU gist.github.com/3bc99d33749763cdb4a4 11:43
why it don't work?
gives me
===SORRY!===
Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 4
sorry
gives
===SORRY!===
Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 2
cono x3nU: try to delete :i 11:44
x3nU yeah, then it will work 11:45
but
i want case insensitive matching
cono I think not implemented yet
frettled rakudo: my $s = "fOO"; if ($s ~~ m:i/o/) { say "yay"; } 11:47
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
frettled rakudo: my $s = "fOO"; if ($s ~~ m:samecase/o/) { say "yay"; } 11:48
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
TiMBuS rakudo: my $a; push $a, 1, 2 11:51
p6eval rakudo 0e5edb: OUTPUT«Method '!fill' not found for invocant of class ''␤ in 'List::push' at line 2609:CORE.setting␤ in main program body at line 22:/tmp/Etsz_aDRT8␤»
frettled rakudo: my $a; push $a, 1; 11:52
p6eval rakudo 0e5edb: OUTPUT«Method '!fill' not found for invocant of class ''␤ in 'List::push' at line 2609:CORE.setting␤ in main program body at line 22:/tmp/1ql3G6yiep␤»
zby sorear - I would like to check if SomeClass is available - so that I could call it, for example by doing SomeClass.new
11:53 mberends joined
tadzik zby: how about try {}? 11:53
zby I guess that could work - but this would not be direct - I mean SomeClass.new can fail in many ways 11:54
and also I would need to redo SomeClass.new after loading it 11:56
tadzik well, you can always check $! to see what failed 11:58
12:01 masak joined
masak lol talks done 12:01
tadzik I hope you didn't forgot to panic?
masak during the talk, I felt strangely serene.
I should panic a bit later today and work a bit on GSoC. but right now I'm having a break from the panic. 12:02
tadzik mind showing slides or something?
masak sure thing. 12:03
just a moment.
zby Hmm - then maybe I'll ask it this way - is there an analogue for %INC from Perl 5? 12:08
frettled rakudo: say @*INC 12:09
p6eval rakudo 0e5edb: OUTPUT«lib/home/p6eval/.perl6/lib/home/p6eval//p2/lib/parrot/2.6.0-devel/languages/perl6/lib.␤»
frettled rakudo: say @*INC.perl
p6eval rakudo 0e5edb: OUTPUT«["lib", "/home/p6eval/.perl6/lib", "/home/p6eval//p2/lib/parrot/2.6.0-devel/languages/perl6/lib", "."]␤»
zby as I understand this one is an array - %INC is a hash 12:10
12:10 azert0x joined
zby rakudo say %INC.perl 12:11
rakudo: say %INC.perl
cono undef
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Symbol '%INC' not predeclared in <anonymous> (/tmp/n_xksr9B7F:22)␤»
frettled zby: I may be a bit lost, but I didn't know there was a hash in Perl 5 for that, only the list @INC.
masak tadzik: bottom of feather.perl6.nl/~masak/
frettled doesn't usually fiddle with INC.
zby well - I would just expect that there is a way to check if something is loaded without trying to call it 12:12
masak from S28: 218: %INC %*INC (maybe, if needed)
cono not implemented
zby in Perl 5 you can inspect %INC
tadzik masak: thanks, will see
zby which is not very convenient - but there are modules that make it easier 12:13
frettled zby: aha, now I see, it has something in it when a module is loaded.
masak++
takadonet morning all 12:14
masak takadonet: \\o 12:15
12:20 pmurias joined
frettled masak: I think I got the gist of it. 12:20
masak \\o/
cono Where can I find join implementation for List? 12:21
masak brian_d_foy++ # blogs.perl.org/users/brian_d_foy/20...erl-6.html
cono read already
masak cono: src/core/Any-list.pm
cono thanks 12:22
masak brian's post reminds me of jnthn++'s talk. it was great in the respects he mentions.
pmurias masak: i figured out how to implement {use v5;...} 12:24
TiMBuS should 'push' turn its first argument into a list if it's uninitialized Any? 12:25
masak pmurias: \\o/
pmurias: how?
TiMBuS: yes. 12:26
rakudo: my $a; $a.push(1, 2, 3); say $a.perl
p6eval rakudo 0e5edb: OUTPUT«Method 'push' not found for invocant of class ''␤ in main program body at line 22:/tmp/vXfWeeB8Z7␤»
masak rakudo: my %h; %h<foo>.push(1, 2, 3); say %h.perl 12:27
p6eval rakudo 0e5edb: OUTPUT«Method 'push' not found for invocant of class ''␤ in main program body at line 22:/tmp/pgxLr6lZNp␤» 12:28
pmurias B::Hooks::EndOfScope + inserting __END__ with some XS
masak rakudo: say Nil.defined 12:30
p6eval rakudo 0e5edb: OUTPUT«1␤»
12:30 timbunce joined
cono masak: look 12:31
rakudo: sub q { Nil }; q.defined.perl.say
zby Hmm - OK so there is no %*INC yet - but still I would think there should be some way to check if a module (or class) is loaded without calling it?
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Confused at line 22, near "q.defined."␤»
masak cono: anything but 'q' :)
cono rakudo: sub qwe { my $x = 5; $x = Nil; $x }; qwe.defined.perl.say
p6eval rakudo 0e5edb: OUTPUT«Bool::False␤»
cono rakudo: sub qwe { Nil }; qwe.defined.perl.say
p6eval rakudo 0e5edb: OUTPUT«Bool::True␤»
cono :)
frettled masak: Regarding the 8-queen problem; have you tried solving the problem generally, that is the N-queen problem?
masak cono: there you're doing assignment. 12:32
cono masak: yup
masak cono: as soon as you assign Nil to something, it turns into the Appropriate undefined value.
cono masak: how to proper undefined the value?
rakudo: $x = undef;
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ Mu (the "most undefined" type object),␤ an undefined type object such as Int,␤ Nil as an empty list,␤ *.notdef as a matcher or method,␤ Any:U as a type constraint␤ 12:33
.. or fail() as a failur…
masak cono: well, that's how you do it. $x = Nil (or $x = ()) 12:34
cono rakudo: my $x = 5; undef $x; $x.defined.perl.say 12:35
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unsupported use of undef as a verb; in Perl 6 please use undefine function or assignment of Nil at line 22, near " $x; $x.de"␤»
cono rakudo: my $x = 5; undefine $x; $x.defined.perl.say
p6eval rakudo 0e5edb: OUTPUT«Bool::False␤»
12:44 Holy_Cow joined
squeeky pmichaud++ # Thanks, this'll keep me busy 12:45
12:53 drbean joined
[Coke] phenny, tell pmichaud you can adjust the max recursion depth from PIR. want the code? 12:56
phenny [Coke]: I'll pass that on when pmichaud is around.
12:57 Lasse_ joined 13:05 widders joined 13:12 snarkyboojum left, snarkyboojum joined, snarkyboojum left 13:13 snarkyboojum joined
[Coke] assumes people here have seen: blogs.perl.org/users/brian_d_foy/20...erl-6.html 13:14
takadonet nods 13:15
PerlJam [Coke]: not I. Thanks :)
bdf++ 13:20
frettled Me neither, but looking at it now, thanks [Coke]! 13:21
gfldex std: role foo { has Rule $.matcher; };
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤In has declaration, typename 'Rule' must be predeclared (or marked as declarative with :: prefix) at /tmp/6heHW_hGPj line 1:␤------> [32mrole foo { has Rule[33m⏏[31m $.matcher; };[0m␤Malformed has at /tmp/6heHW_hGPj line 1:␤------> [32mrole foo
..{…
gfldex std: role foo { has rule $.matcher; }; 13:22
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/Pm98LErGtC line 1:␤------> [32mrole foo { has rule [33m⏏[31m$.matcher; };[0m␤ expecting any of:␤ name␤ regex_def␤ trait␤Parse failed␤FAILED 00:01 112m␤»
gfldex rakudo: my rule foo { \\{ }; foo.WHAT.say;
p6eval rakudo 0e5edb: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in 'foo' at line 2:/tmp/Ks4S0XB0iN␤ in main program body at line 22:/tmp/Ks4S0XB0iN␤»
gfldex rakudo: my rule foo { \\{ }; say foo.WHAT; 13:23
p6eval rakudo 0e5edb: OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in 'foo' at line 2:/tmp/cVg7iTdtYb␤ in main program body at line 22:/tmp/cVg7iTdtYb␤»
gfldex rakudo: my rule foo { \\{ }; say /<foo>/.WHAT;
p6eval rakudo 0e5edb: OUTPUT«Regex()␤»
frettled PerlJam: I concur, bdf++ 13:25
13:26 uniejo joined 13:31 jaldhar joined 13:32 rindolf joined, molaf joined 13:36 macroron joined, ruoso joined 13:41 lmistura joined 13:45 clintongormley joined 13:47 patspam joined 13:57 perimosocordiae joined
bbkr rakudo: (+"1").WHAT.say # is that a bug? IMO should be Int 14:02
p6eval rakudo 0e5edb: OUTPUT«Num()␤»
uniejo rakudo: BEGIN {push @*INC, "..";} 14:04
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Could not find sub &push␤»
uniejo rakudo: BEGIN {@*INC.push("..");} 14:06
p6eval rakudo 0e5edb: ( no output )
PerlJam bbkr: How is perl to know? 14:08
bbkr PerlJam: probably same as "say 0.0" prints "0" - Num can be narrowed to Int 14:11
PerlJam bbkr: but, it does look like a bug. From the spec regarding prefix:<+> ... "For values that do not already do the C<Numeric> role, the narrowest appropriate type of C<Int>, C<Rat>, C<Num>, or C<Complex> will be returned" 14:13
rakudo: (+"5i").WHAT.say
p6eval rakudo 0e5edb: OUTPUT«Num()␤» 14:14
PerlJam rakudo: (+5i).WHAT.say
p6eval rakudo 0e5edb: OUTPUT«Complex()␤»
PerlJam (just checking :)
14:15 LaVolta joined, mberends joined
bbkr PerlJam: lack of narrowing can bite. I found it while I was parsing URI and passing to Socket::INET port as +$/<port>. and it took me a while to find that :) I'll report this lack of narrowing. thanks for spec quote. 14:16
PerlJam rakudo: (+"2/5").WHAT.say # broken t oo 14:18
p6eval rakudo 0e5edb: OUTPUT«Num()␤»
bbkr PerlJam: also added to ticket: rt.perl.org/rt3/Ticket/Display.html?id=77044 14:24
14:24 wamba joined
bbkr rt.perl.org/rt3/Ticket/Display.html?id=62622 - I just fount that something similiar was reported a year ago :) 14:28
found*
14:32 pmurias joined
pmurias ruoso: hi 14:32
14:35 jerome_ joined 14:39 patrickas joined
ruoso hi pmurias 14:45
today is soft pencils-down
cosimo rakudo: say 0.0, 0.1, 0.2, ..., 1.0;
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Comma found before apparent series operator; please remove comma (or put parens␤ around the ... listop, or use 'fail' instead of ...) at line 22, near " ..., 1.0;"␤»
cosimo rakudo: say 0.0, 0.1, 0.2 ... 1.0;
p6eval rakudo 0e5edb: OUTPUT«00.10.20.30.40.50.60.70.80.91␤»
cosimo rakudo: say (0.0, 0.1, 0.2 ... 1.0).perl; 14:46
p6eval rakudo 0e5edb: OUTPUT«(0/1, 1/10, 1/5, 3/10, 2/5, 1/2, 3/5, 7/10, 4/5, 9/10, 1/1)␤»
foodoo cool :)
cosimo whatthe... this is highly magical stuff! :-) 14:47
rakudo: say (0.0, 0.1, 0.2 ... 1.0);
p6eval rakudo 0e5edb: OUTPUT«00.10.20.30.40.50.60.70.80.91␤»
cosimo rakudo: say (0.0, 0.1, 0.2 ... 1.0).join(' '); 14:48
p6eval rakudo 0e5edb: OUTPUT«0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1␤»
perimosocordiae rakudo: say ~(0.0, 0.1, 0.2 ... 1.0);
p6eval rakudo 0e5edb: OUTPUT«0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1␤»
foodoo rakudo: say (0.0, 0.1, 0.2 ... 1.0).perl.join( ' ' );
p6eval rakudo 0e5edb: OUTPUT«(0/1, 1/10, 1/5, 3/10, 2/5, 1/2, 3/5, 7/10, 4/5, 9/10, 1/1)␤» 14:49
frettled rakudo: say (0.1, 0.3 ... 2.7).join(', ');
p6eval rakudo 0e5edb: OUTPUT«0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.3, 2.5, 2.7␤»
frettled rakudo: say (0.1, 0.3, 0.9 ... 2.7).join(', '); 14:50
p6eval rakudo 0e5edb: OUTPUT«0.1, 0.3, 0.9, 2.7␤»
14:50 kiithroen joined
frettled rakudo: say (0.1, 0.3, 0.9 ... 24.3).join(', '); 14:50
p6eval rakudo 0e5edb: OUTPUT«0.1, 0.3, 0.9, 2.7, 8.1, 24.3␤»
frettled cosimo: isn't that cute magic?
cosimo frettled: it's amazing, seriously 14:51
PerlJam Perl 6 is designed to be amazing :) 14:52
[Coke] pmichaud++
foodoo I really need to do more hands on work with perl6. If only my timetable allowed me to :-/ 14:53
rakudo: say ~("a".."z"); 14:55
p6eval rakudo 0e5edb: OUTPUT«a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
foodoo rakudo: say ~("a".."Z");
p6eval rakudo 0e5edb: OUTPUT«␤» 14:56
foodoo rakudo: say ~("A".."z");
p6eval rakudo 0e5edb: ( no output )
foodoo rakudo: say ~("A".."Z", "a", "z");
p6eval rakudo 0e5edb: OUTPUT«A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a z␤»
foodoo rakudo: say ~("A".."Z", "a".. "z"); 14:57
p6eval rakudo 0e5edb: OUTPUT«A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z␤»
PerlJam rakudo: say "Z".succ;
foodoo is there any difference between .. and ... ?
p6eval rakudo 0e5edb: OUTPUT«AA␤»
PerlJam foodoo: yes
cosimo foodoo: I started coding those little scripts that come up everyday in perl6 instead of perl5
right now, I'm running a small simulation to find out how to balance our data centers bandwidth usage while trying to minimize latency across the planet 14:58
i'm so having fun 14:59
rokoteko rakudo: ~(1/2).WHICH.WHAT
p6eval rakudo 0e5edb: ( no output )
rokoteko rakudo: say ~(1/2).WHICH.WHAT
p6eval rakudo 0e5edb: OUTPUT«Int()␤»
foodoo cosimo: Thanks for the advice. Perl is certainly a good replacement for shell scripting 15:00
rokoteko .. how to get this to return ObjAt() ?
� obviously misunderstood something again. :)
[Coke] needs to fix the REPL dying on a SORRY.
rokoteko: ObjAT? 15:01
cosimo foodoo: i didn't want to say that, but... your choice
rokoteko [Coke]: S02: 'So WHICH still returns a value rather than another object, but that value must be of a special ObjAt type that prevents accidental confusion with normal value types, and at least discourages trivial pointer arithmetic.'
foodoo it's okay
PerlJam rokoteko: NYI 15:02
rokoteko Not Yet Implemented?
[Coke] hai.
LaVolta need to ask a dumb question 15:03
rokoteko ok. So it's not *me* that is lost in perl6. :) Thanks again.
PerlJam rakudo: my $a = 5; say $a.WHERE; say $a.WHICH;
p6eval rakudo 0e5edb: OUTPUT«144828384␤5␤»
LaVolta "sub b { ... return \\@a; }" what will b's caller get? a reference? 15:04
[Coke] LaVolta: better to just ask it. =-)
PerlJam rakudo: class C {}; my $a = C.new; say $a.WHERE; say $a.WHICH;
LaVolta I guess \\ in p6 doesn't mean that
p6eval rakudo 0e5edb: OUTPUT«113019216␤113019216␤»
PerlJam (I had forgotten briefly that value types return their value as their identity) 15:05
LaVolta context: I'm reading through LWP::Simple.pm6
method parse_response() 15:06
frettled rakudo: sub b { my @a = 1,2,3; @a; }; my $x = b; $x.WHAT.say;
p6eval rakudo 0e5edb: OUTPUT«Array()␤»
frettled LaVolta: does that example do something similar to what you want? 15:07
LaVolta frettled: add a '\\' in front of @a... 15:08
frettled LaVolta: why?
PerlJam LaVolta: \\@a turns @a into a Capture.
LaVolta interesting...i forget about .WHAT
frettled rakudo: sub b { my @a = 1,2,3; @a; }; my $x = b; $x[1].say;
p6eval rakudo 0e5edb: OUTPUT«2␤»
frettled rakudo: sub b { my @a = 1,2,3; @a; }; my $x = b; my @y = $x,4,5; @y.perl.say; 15:09
p6eval rakudo 0e5edb: OUTPUT«[[1, 2, 3], 4, 5]␤»
frettled rakudo: sub b { my @a = 1,2,3; @a; }; my $x = b; my @z = b; my @y = $x,4,5,@z; @y.perl.say;
p6eval rakudo 0e5edb: OUTPUT«[[1, 2, 3], 4, 5, 1, 2, 3]␤» 15:10
LaVolta i am reading through the module, then came across this line: ' return $status_line, \\%header, \\@content;'
just wondering what the '\\'s are used for 15:11
TiMBuS i think refs? like perl 5
PerlJam Perl 6 doesn't have references.
TiMBuS if it uses % or @ it will copy tho 15:12
wait no it wont
i am confused now. ive seen it used in rakudo internals and i just never really thought about it 15:13
rokoteko PerlJam: no references? what for are the dereference ops for then? 15:16
rakudo: my @arr = <a b c>; my $x := @arr; say list $x ~ "/" ~ @($x)
p6eval rakudo 0e5edb: OUTPUT«a b c/a b c␤»
PerlJam rokoteko: that's not a dereference op
rakudo: my @arr = <a b c>; my $x := @arr; say list $x ~ "/" ~ $x.list 15:17
p6eval rakudo 0e5edb: OUTPUT«a b c/a b c␤»
rokoteko S03: "Perl 5's ${...}, @{...}, %{...}, etc. dereferencing forms are now $(...), @(...), %(...), etc. instead." .. can you please elaborate? Im not understanding something. 15:18
15:19 ashleydev joined
PerlJam rokoteko: @($x) is more like "give me the list view of $x" If $x is a capture (it doesn't have to be), you get just the listy bits of the capture and the hashy bits are ignored. (for instance) 15:20
rakudo: say @(1,2,3);
p6eval rakudo 0e5edb: OUTPUT«123␤»
PerlJam rakudo: my $blah = 7; say @($blah);
p6eval rakudo 0e5edb: OUTPUT«7␤» 15:21
PerlJam and also ...
rokoteko PerlJam: what does dereference mean in perl6 then if there are no references? .. confused.
PerlJam rakudo: my %h = "a" => 6, "z" => 5; say @(%h);
p6eval rakudo 0e5edb: OUTPUT«z 5a 6␤»
[Coke] rakudo: my %h = "a" => 6, "z" => 5; say @%h; 15:22
PerlJam rokoteko: nothing. I think that text is slightly fossilized.
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "@%h;"␤»
TiMBuS to explain further, %($a) is exactly equal to $a.hash. @($a) is $a.list, etc
LaVolta oh....I remember that, me myself or someone else asked once, and TimToady said @$x is a shorthand for @($x)
rokoteko PerlJam: ahh. ok. Im reading this from perlcabal.org, anything more current available?
15:22 M_o_C joined
[Coke] rokoteko: if you're reading the SYN, that's the up-to-date-est. 15:22
... but that doesn't mean it doesn't contain fossils. 15:23
15:23 ashleydev_ joined
LaVolta is trying to grok S02 again and again... 15:24
15:26 Axius joined
PerlJam A quick ack of the synopses shows it talking about dereferencing using prefix |, postfix .(), and circumfix $() 15:26
I think the language just needs a little cleaning perhaps
(or reference/dereference needs some good definition) 15:27
frettled PerlJam: Slightly bugrep-like material, more of a ToDo, really, since it probably needs a bit of discussion, maybe on p6l? 15:30
rokoteko ahh. think I found it in S02. 15:37
'Parcel and Capture objects fill the ecological niche of references in Perl 6. You can think of them as "fat" references, that is, references that can capture not only the current identity of a single object, but also the relative identities of several related objects. Conversely, you can think of Perl 5 references as a degenerate form of Capture when you want to refer only to a single item.'
rakudo: my @arr = <a 1 b 2 c 3>; my %hash = "a" => 1, "b" => 2; my $x := @arr; say @($x).perl ~ "/" ~ %($x).perl 15:38
p6eval rakudo 0e5edb: OUTPUT«["a", "1", "b", "2", "c", "3"]/{"a" => "1", "b" => "2", "c" => "3"}␤»
rokoteko .. this would fail in perl5 as perl5 refs can only contain a reference to a hash or to an arr. not to both.
TiMBuS but that $x only refers an array. you converted it to a hash 15:42
frettled rokoteko: well, uhm
rokoteko rakudo: my %hash = "a" => 1, "b" => 2; my $x := %hash; say @($x).perl ~ "/" ~ %($x).perl
p6eval rakudo 0e5edb: OUTPUT«Method 'hash' not found for invocant of class ''␤ in main program body at line 22:/tmp/4sWfLithMd␤»
frettled rokoteko: in Perl 5, you'd do: my %h = @{$x}; # viola, a hash 15:43
TiMBuS rakudo: my $x = [1,2,3,4,5,6]; %($x).perl.say
p6eval rakudo 0e5edb: OUTPUT«{"5" => 6, "1" => 2, "3" => 4}␤»
rokoteko Hmm. Ok. I trust you all. It's probably just "wrong" terms used in the SYNs then. thanks all. Ill try to digest this. 15:44
TiMBuS is it better to say everything is a reference? 15:45
rakudo: my $x = [1,2,3,4,5,6]; my $z = $x; $x[2] = 'blah'; $z.perl.say 15:46
p6eval rakudo 0e5edb: OUTPUT«[1, 2, "blah", 4, 5, 6]␤»
rokoteko TiMBuS: obviously not, since this far Ive been told there are no references in perl6. I was just wondering the usage of the word "derefence" in S02 and S03 .. (havent gotten very far in the syns yet) :)
*dereference
15:47 Mowah joined
LaVolta may I understand Capture this way: it 'captures' a value, and later might be cast into other types 15:48
frettled rokoteko: P5 example, BTW: nopaste.snit.ch/22591
Perhaps a better word would be «decapture», but that sounds just weird. Discapture? Uncapture?
15:49 LaVolta joined, tom_tsuruhara joined
rokoteko frettled: thank you. fortunately I already understands bits of perl5 works. :) 15:49
LaVolta thank you for your uncountable help 15:50
15:50 desertm4x joined, timbunce joined
rokoteko p6eval rakudo: my $arr = [<a 1 b 2>]; my %hash = %($arr); say %hash.perl 15:52
p6eval rokoteko: rakudo 0e5edb: OUTPUT«{"a" => "1", "b" => "2"}␤»
rokoteko seems to work in a smiliar fashion.
actually just an hour earlier I thought you had to say: 15:53
p6eval rakudo: my $arr = [<a 1 b 2>]; my %hash := $arr; say %hash.perl
p6eval rokoteko: rakudo 0e5edb: OUTPUT«["a", "1", "b", "2"]␤»
rokoteko ahh. but that is different. 15:54
15:54 uniejo_ joined
rokoteko rakudo: my $arr = [<a 1 b 2>]; my %hash := %($arr); say %hash.perl 15:55
p6eval rakudo 0e5edb: OUTPUT«{"a" => "1", "b" => "2"}␤»
15:55 uniejo_ joined 15:57 uniejo_ joined
rokoteko also my %hash := $arr.hash; ... but I kinda prefer the %($arr) to $arr.hash as the former obviously reduces my cognitive load as a programmer. 15:57
15:57 uniejo joined
LaVolta says bye-bye to #perl6, see you tomorrow :) 15:58
15:58 briang left 16:00 robert3t joined
perimosocordiae rokoteko: the sigil-y version only reduces the load if you're a perl5'er. Rubyists would much prefer $arr.hash 16:00
pmurias ruoso: isn't the soft pencil down date one the 9th?
s/one/on/
rokoteko hugme: hug perimosocordiae 16:05
hugme hugs perimosocordiae
rokoteko perimosocordiae: very nice to hear that rubyists might also be interested of perl6. :) 16:07
perimosocordiae rokoteko: of course! I think of perl6 as the lovechild of perl5, ruby, and haskell 16:09
pmurias ruoso: see github.com/pmurias/Devel-EvalFragment
rokoteko perimosocordiae: :)
perimosocordiae (don't ask me how all three got in there;-))
diakopter pmurias: yes; the 9th
pmurias diakopter: hi 16:10
pmurias just wrote the module that can make determin where a {use v5;...} ends 16:11
Exodist does perl6 still require a file to end with a true value? 16:13
16:13 pyrimidine joined
Exodist (ala perl5) 16:13
pmurias Exodist: no
Exodist :-D
takadonet Exodist: best reason to switch 16:15
Exodist heh
pyrimidine that, and signatures 16:20
and grammars
and etc etc etc etc
16:23 tadzik joined, risou joined, justatheory joined
tadzik is there a better way to check if a module is installed than try {'use Module'} ? 16:25
I wonder if that's how CPAN does this
(cpan, the client)
zby is 'use' execution time in Perl6? 16:28
tadzik what do you mean? 16:29
zby in Perl5 use is compile time
so try { use Module }
tadzik hmm, right
zby would not work because it would be executed before the interpreter gets to try
Exodist zby, try{ require Module } 16:30
tadzik how about require?
oh, ok :)
Exodist: it's me who has to try :)
zby yeah - I've seen that require is on the list of functions
Exodist use also has other consequences you don,t want (in p5 at least, not sure on perl6)
tadzik import
zby I am also waiting for documentation for require
like for example the failure modes 16:31
i.e. file not found
and does not compile
Exodist p6 still has use = BEGIN { require + import() } ?
tadzik no idea
16:31 jaldhar joined
Exodist as opposed to some other magic 16:31
zby tadzik - if you find out about that - please pass the knowledge 16:32
tadzik I'm tempted to write some proper dependency management for neutro. Like when you install a module with loads of deps and then remove it, it can remove all the unneeded dependencies
Exodist hmm, I wonder if use/require errors are a standard, or implementation dependant? 16:33
tadzik but that isn't easy in terms of many module installers, and I wonder if anyone cares anyway
zby: sure
zby: are Synopsis still "to be continued"?
16:34 jaldhar joined
tadzik * Synopses 16:35
[particle] Exodist: it's a little different in perl 6 16:36
Exodist [particle], ? 16:37
[particle] see synopsis 11: perlcabal.org/syn/S11.html
tadzik zby: perlcabal.org/syn/S11.html#Compile-...mportation
found :)
Exodist [particle], I mean whats different, the erroring, or requre vs use? 16:38
[particle] tadzik: for the most part, the higher the # on the synopsis, the less complete it is
tadzik [particle]: yeah, that's how it looks like on perlcabal.org/syn/
16:39 Mowah joined
[particle] tadzik: that's mainly because they're written so that the later chapters refer back to the previous chapters 16:39
tadzik reasonable 16:40
16:41 rir joined
rir ? 16:41
Exodist hmm, the page clarified almost everything, but it does not say weather error messages are standardized, or implementation dependant. 16:42
A lot of code in perl5 parses the expected error messages (bad idea) I could see a problem with compatibility.
or tests that test for an error... 16:43
tadzik I think Exception class is planned to be something more than a string-keeper
16:43 _macdaddy joined
Exodist ah, yah, forgot exceptions are meaningful in p6. 16:44
tadzik not yet :)
zby Hmm - it does not seem to answer the question of how do you import a module that you don't know the name at compile time
like 'require $module' 16:45
tadzik require "/home/non/Sense.pm" <common @horse>; says Syn
there can be any string I think
rir good localtime, all. I have gotten R* and would like to use git to pull the various released products. What do I need to do? 16:46
tadzik star: my $foo = "File::Find"; require $foo; say 'alive'
p6eval star 2010.07: OUTPUT«Could not find sub &require␤ in main program body at line 22:/tmp/P5OuNB0RMe␤»
tadzik now that's funny
Exodist yeah...
tadzik rir: define: various released products
Exodist star: require File::Find;
p6eval star 2010.07: OUTPUT«Can not find sub File::Find␤ in main program body at line 1␤»
Exodist star: my $foo = "File::Find"; eval "require $foo"; say 'alive' 16:47
p6eval star 2010.07: OUTPUT«alive␤»
tadzik oh, funny
rir "various released products" ~~ the non-core modules in the tarball: miniDBI, etc.
tadzik star: my $foo = "File::Find"; eval "require $foo"; find.WHAT
p6eval star 2010.07: OUTPUT«Could not find sub &find␤ in main program body at line 22:/tmp/HXw9ZmYxsN␤»
tadzik crap 16:48
Exodist tadzik...
star: require File::Find;
p6eval star 2010.07: OUTPUT«Can not find sub File::Find␤ in main program body at line 1␤»
Exodist is require even implemented? 16:49
[Coke] not sfaik.
zby as I understand you need to put filename there not the module
Exodist std: my $foo = "File::Find"; require $foo; say 'alive'
p6eval std 31912: OUTPUT«ok 00:01 116m␤»
Exodist pugs: my $foo = "File::Find"; require $foo; say 'alive'
p6eval pugs: OUTPUT«*** Unsafe function 'require' called under safe mode␤ at /tmp/8r82fMRyXt line 1, column 25-37␤»
Exodist lol
rakudo: my $foo = "File::Find"; require $foo; say 'alive'
p6eval rakudo 0e5edb: OUTPUT«Could not find sub &require␤ in main program body at line 22:/tmp/jP4xLRwhne␤» 16:50
Exodist star: my $foo = "File::Find"; eval "use $foo ()" || die( $@ ); say 'alive' 16:51
p6eval star 2010.07: OUTPUT«===SORRY!===␤Unsupported use of $@ variable as eval error; in Perl 6 please use $! at line 22, near " ); say 'a"␤»
Exodist star: my $foo = "File::Find"; eval "use $foo ()" || die( $! ); say 'alive'
p6eval star 2010.07: OUTPUT«alive␤»
Exodist star: my $foo = "File::Find"; eval "use $foo ()" || die( $! ); say find.WHAT
p6eval star 2010.07: OUTPUT«Could not find sub &find␤ in main program body at line 22:/tmp/gys9X4w9aW␤»
Exodist star: my $foo = "File::Find"; eval "use $foo" || die( $! ); say find.WHAT 16:52
p6eval star 2010.07: OUTPUT«Could not find sub &find␤ in main program body at line 22:/tmp/cddUurodnK␤»
Exodist is done
oh yeah! use imports to scope, which is the eval 16:53
star: my $foo = "File::Find"; eval "use $foo; say find.WHAT" || die( $! );
p6eval star 2010.07: ( no output )
tadzik this is hopeless :)
Exodist thats scary..
tadzik but
star: my $foo = "File::Find"; eval "require $foo"; say 'alive' 16:54
p6eval star 2010.07: OUTPUT«alive␤»
16:54 jferrero joined
Exodist star: my $foo = "File::Find"; eval "require $foo" || die( $! ); say 'alive' 16:54
p6eval star 2010.07: OUTPUT«alive␤»
tadzik star: my $foo = "Nothing"; eval "require $foo"; find.WHAT
p6eval star 2010.07: OUTPUT«Could not find sub &find␤ in main program body at line 22:/tmp/ooQaXWpsOt␤»
tadzik star: my $foo = "Nothing"; eval "require $foo"; say 'alive'
p6eval star 2010.07: OUTPUT«alive␤»
mberends Exodist, tadzik : here's one I did earlier: eval 'use MiniDBD::mysql; $driver = MiniDBD::mysql.new()' (from github.com/mberends/MiniDBI/blob/ma...I.pm6#L29)
tadzik damn
Exodist tadzik, the use is lexical to the eval, find() wont be defined outside it. 16:55
tadzik Exodist: that's ok, now I want to check if it actally loads the module
star: my $foo = "Nothing"; eval "use $foo"; say 'alive'
p6eval star 2010.07: OUTPUT«alive␤»
tadzik oh, sure
Exodist mberends, ah, that is crafty. 16:56
16:56 dual joined, jaldhar joined
Exodist so, is it more correct to use file.pm or file.pm6 when writing a perl6 module? 16:58
tadzik pm I think
I see the Big Guys using .pm :) 16:59
mberends .pm6 was added recently to clarify file contents in multi language projects, such as STD.pm6 17:00
tadzik star: my $foo = 'File::Find'; my $works = 0; eval "use $foo; $works = 1"; say 'works' if $works; 17:04
p6eval star 2010.07: ( no output )
tadzik pff
star: my $foo = 'File::Find'; my $works = 0; eval '$works = 1'; say 'works' if $works; 17:05
p6eval star 2010.07: OUTPUT«works␤»
tadzik star: my $foo = 'File::Find'; my $works = 0; eval "use $foo; \\$works = 1"; say 'works' if $works;
p6eval star 2010.07: OUTPUT«works␤»
tadzik star: my $foo = 'Works::Not'; my $works = 0; eval "use $foo; \\$works = 1"; say 'works' if $works; 17:06
p6eval star 2010.07: ( no output )
tadzik a'right
17:10 jfried joined
rokoteko what are you trying to do? just out of curiosity? 17:13
tadzik I'm trying to figure whether a module is installed and working, or not 17:14
rokoteko tadzik: I think particle already guided you to perlcabal.org/syn/S11.html .. which Im browsing through right now. 17:16
tadzik: search for "Runtime Importation" 17:17
tadzik rokoteko: tried this alredy 17:18
[Coke] said require isn't even implemented 17:19
rokoteko ok. :) Im only in S03 myself, so can't yet provide further advice.
Ahh.
[Coke] rakudo: use "something"; 17:24
p6eval rakudo 0e5edb: OUTPUT«Could not find sub &use␤ in main program body at line 22:/tmp/2uNT3jh6dj␤»
[Coke] hurm.
avuserow star: use something; 17:25
p6eval star 2010.07: OUTPUT«===SORRY!===␤Unable to find module 'something' in the @*INC directories.␤(@*INC contains:␤ /home/p6eval/.perl6/lib␤ /home/p6eval/rakudo-star-2010.07/install/lib/parrot/2.6.0/languages/perl6/lib␤ .)␤»
avuserow rakudo: use something;
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unable to find module 'something' in the @*INC directories.␤(@*INC contains:␤ lib␤ /home/p6eval/.perl6/lib␤ /home/p6eval//p2/lib/parrot/2.6.0-devel/languages/perl6/lib␤ .)␤»
17:29 timbunce joined 17:45 _jaldhar joined
[Coke] 17:47
pugssvn r31915 | moritz++ | [t/spec] tests for rx:i etc. quoting (no semantic checks yet) 17:51
r31916 | moritz++ | [helpnow] delete drafts, they are out of date anyway 17:52
r31917 | moritz++ | [helpnow] rewrite README; bring it up-to-date
r31918 | moritz++ | [S05] be explicit about which attributes/modifiers are allowed where
r31918 |
r31918 | Also removes rx:g// from existing examples.
r31918 | Added myself boldly to AUTHORS list
r31919 | moritz++ | [S03] smart-match entry for Match on RHS
r31919 |
r31919 | After some discussion with @Larry on YAPC::EU, we figured that's the best way
r31919 | to solve the dilemma that C<'string' ~~ m/regex/> immediately matches on the
r31919 | right-hand side, thus ends up calling $/.ACCEPTS('string').
17:55 [Coke] joined
[Coke] 17:55
[Coke] thinks he's registered this nick now. 17:56
(what a pita. =)
18:00 M_o_C joined
tadzik cosimo: 18:01
cosimo: perl6-lwp-simple has a broken deps.proto: should be Perl6-MIME-Base64, not perl6-...
moritz_ blog.fox.geek.nz/2010/08/why-am-i-n...6-yet.html 18:13
oh I see that pmichaud++ and szabgab++ already commented
18:14 oha joined
moritz_ also blagged, twice 18:14
18:17 mberends joined 18:20 Trashlord joined 18:22 drrho joined 18:24 Holy_Cow joined
drrho Hi! A quick question Re: grammars in Perl6: 18:24
I picked up on a blog .... 18:25
grammar PERL6 is Perl6 { .... }
moritz_ that likely won't run yet
drrho The idea being that the Perl6 syntax can be extended via "subclassing" the parser.
moritz_ right
drrho :-)
I think this was _your_ blog, moritz.
Ah, ok. 18:26
[particle] that grammar practically shouts PERL!
moritz_ probably perlgeek.de/en/article/mutable-gram...for-perl-6
[particle]: that's the point
drrho Yup!
This is _really_ a cool feature, I have to say. 18:27
Will be patient :-)
hercynium hey there... I don't see it in the scrollback so: has anybody mentioned a usability/cosmetic issue on try.rakudo.org/ ?
moritz_ hercynium: it's not yet production ready - we know full well it sucks as it is know 18:28
[Coke] hercynium: there are some issues. it kind of snuck out before we were quite happy with it.
hercynium Camelia sits in front of the first two lines of output and there's no way to move her
[Coke] but you can always open a RT for issues you find.\\
hercynium heh
sure... where's the url?
(btw, the site looks great, and seems to be much faster since yesterday) 18:29
[Coke] rakudobug@perl.org works.
(even though it's not rakudo.)
hercynium OK will do 18:30
18:32 xinming_ joined
hercynium thar we go. A "bug" report ;-) 18:36
18:40 tadzik joined
sorear phenny: tell pmurias SOREAR 18:41
phenny sorear: I'll pass that on when pmurias is around.
18:48 ashleydev joined 18:51 skyheights joined
tadzik yay, neutro handles deps now 18:52
hmm, doesn't git handle empty directories? 18:55
avuserow tadzik: nope, only directories with content 18:56
tadzik avuserow: this is a feature? 18:57
18:57 molecules joined
avuserow I guess? 18:57
I usually just make a TODO or README file
or an EXISTS file or something
I usually don't need to have empty directories anyway
tadzik well, I wanted an empty dir for tests 18:58
moritz_ or a .gitignore
tadzik: mkdir
tadzik hmm, can be
molecules rakudo: class Range6 { has Int $.chr; };
p6eval rakudo 0e5edb: ( no output )
molecules rakudo: class Range6 { has Int $.chr; }; my $range = Range6.new(); $range.perl.say; 18:59
p6eval rakudo 0e5edb: OUTPUT«Range6.new(chr => Any)␤»
perimosocordiae tadzik: anything in neutro to avoid infinite-looping on circular dependencies? (not that those should happen, but...) 19:04
tadzik perimosocordiae: will lead to infinite recursion I think. Not that this should happen, but yeah, should be fixed
mind opening a GH issue? 19:05
perimosocordiae not at all
tadzik I think about cleaning modules.list a bit, not to include everything on modules.perl6.org but rather to include things that work and actually can be installed
19:06 cono joined
perimosocordiae yeah, even if it's just commenting out the ones that fail 19:06
tadzik my $match = "^A," ~~ m/ <ABC::pitch> /; -- is this working in current Rakudo? 19:07
I mean using a token from foreign grammar?
moritz_ no
ABC.parse($string, :rule<pitch>) 19:08
tadzik is there a workaround, or this just waits to be fixed?
moritz_ is the best you can do
oh wait
in your own grammar
tadzik causes a failing tests in URI and ABC
moritz_: I mean this: github.com/LastOfTheCarelessMen/ABC...gexes.t#L8
19:09 plol joined
moritz_ takes a look 19:09
tadzik: my $match = ABC.parse($string, :rule<pitch>)
would "fix" it 19:10
tadzik mhm
moritz_: but is the original behaviour planned to be fixed?
is arnsholt sometimes around?
moritz_ tadzik: yes, but probably on if it's an 'our rule pitch { ... }' in the ABC grammar 19:11
tadzik installing all proto modules to see how many of them work 19:13
phenny: tell masak could You fix CSV in some spare time? The tests fail 19:15
phenny tadzik: I'll pass that on when masak is around.
tadzik phenny: thanks buddy
cosimo: ping 19:18
cosimo: could you take a look at Digest::MD5 too? It fails some tests with Null PMC access
19:18 xinming joined
tadzik phenny: tell masak also, could you take a look at web's dependencies too? gttp::daemon is not in proto 19:21
phenny tadzik: I'll pass that on when masak is around.
tadzik moritz_: JSON is failing 04-roundtrip.t for me, could You take a look? 19:29
19:36 ashleydev joined 19:39 justatheory joined
moritz_ tadzik: it's a known failure 19:45
nothing severe, just array/list thing distinction, iirc
perimosocordiae tadzik: I tried running the new neutro code, but the mkdirp call somehow created ~/.neutro with perms 000 19:47
tadzik perimosocordiae: update your rakudo
perimosocordiae: it was fixed few days ago
perimosocordiae tadzik: ah, thanks 19:48
alester is going to give chromatic a big kiss.
moritz_ Date: Wed Aug 4 12:19:55 2010 +0200
(that was the fix from the umask + chmod problem) 19:49
tadzik whew. I just installed (all tried) every module in proto db
moritz_ how many of them are b0rked? 19:50
tadzik failing tests are like in 50%
few of them don't work for various reasons
I think it'd be nice to put the module binaries in bin/ rather than lying around 19:51
it would be easier to install them when shamelessly ingoring Makefile :)
moritz_ rakudo: say [<an array>].perl 19:53
tadzik moritz_: seen my mail on @perl6-users?
p6eval rakudo 0e5edb: OUTPUT«["an", "array"]␤»
moritz_ tadzik: yes, but didn't get around to writing a decent reply yet
rakudo: for <a b>.kv -> $k, $_ { .perl.say }
p6eval rakudo 0e5edb: OUTPUT«0␤1␤»
moritz_ huh.
shouldn't that be "a", "b" ? 19:54
19:54 _jaldhar joined
moritz_ rakudo: for <a b>.kv -> $k, $v { $v.perl.say } 19:54
p6eval rakudo 0e5edb: OUTPUT«"a"␤"b"␤»
tadzik rakudo: <a b>.kv.perl
rakudo: <a b>.kv.perl.say
p6eval rakudo 0e5edb: ( no output )
rakudo 0e5edb: OUTPUT«(0, "a", 1, "b")␤»
moritz_ submits rakudobug 19:55
tadzik: I just todo'ed the tests in json 19:57
should be clean now
tadzik moritz_: yep, looks fine 20:03
moritz_++
20:03 jaldhar_ joined
[Coke] phenny: .u ace 20:03
20:10 zostay joined 20:13 ash_ joined, skyheights joined 20:21 tylercurtis joined, xinming_ joined 20:24 Eddward joined 20:25 _macdaddy joined
Eddward Is the MAIN sub supposed to be working correctly in Rakudo *? 20:26
...from perlgeek.de/en/article/5-to-6#post_14
tadzik Eddward: yup 20:27
Eddward: got any issues?
Eddward A couple things seem wrong. 20:28
moritz_ rakudo: sub MAIN($x = 5) { say $x }
Eddward: do tell
p6eval rakudo 0e5edb: OUTPUT«5␤»
20:28 lue joined
Eddward Using the example from that page I get the following message ... 20:28
oops... leading slash 20:29
... /tmp/main-test.p6 [--home=value-of-home] [--recursive=value-of-recursive] [--force=value-of-force] path
sub MAIN($path, :$force, :$recursive, :$home = glob("~/"))
moritz_ that's curious
Eddward Looks like force & recursive should not require a value. 20:30
tadzik it would be kind of them
Eddward Also, home is not optional for me.
moritz_ Eddward: the problem is that glob() is not yet implemented in Rakudo
Eddward oh.
moritz_ Eddward: if you replace the glob("~") by just '~', you get the proper behaviour
Eddward: but it is a bug that the USAGE sub is triggered on that error 20:31
rakudo: sub MAIN($x = unknown_function()) { };
p6eval rakudo 0e5edb: OUTPUT«Usage:␤/tmp/xxCYRgfKfJ [x]␤»
cognominal www.theregister.co.uk/2010/08/06/ip...nightmare/ 20:32
20:32 simcop2387 joined
Eddward That fixes that. 20:32
ok. That made the other oddities I saw go away too. Thanks.
cognominal oops wrong window
moritz_ bug submitted 20:33
takadonet Eddward: anything else?
Eddward I was just walking through the 5-to-6 page. The MAIN looks pretty slick.
Not at the moment. It had looked like force and recursive where required but that went away with glob.
Thanks. 20:34
20:34 jaldhar_ joined
moritz_ Eddward: keep in mind that 5-to-6 tries to describe ideal Perl 6, not necessarily runnable code 20:35
... and that much of it was written before the features were actually implemented. If they work nonetheless, be even more impressed :-) 20:36
Eddward ok. I've been lurking since before the apocalypses. I'm just trying to come up to speed on the current shape of perl6. 20:37
It's cool to get to dabble with it. 20:38
moritz_ now updated it to use plain '~', so it's actually runnable
avuserow I must say that the magic argument passing for MAIN() is probably one of my favorite features of Perl 6
moritz_ avuserow: I must say that I was mostly unimpressed by it, until it was implemented, and I started using it - I love it now :-) 20:39
and I mostly show-cased it because it was easy to understand (both for the reader and for me :-)
moritz_ -> sleep 20:40
Eddward In perl5 it was something that took too much thought for how often it was needed and how unrelated it is to the problems I'm try to solve..
20:40 lue joined
avuserow it's also something I have not seen elsewhere 20:42
most languages rely on manual processing or getopt or similar
and multiple dispatch for MAIN will be amazing
Eddward With all the deep magic in perl6, it's not the sort of thing I was expecting to be impressed by. 20:43
What?
That make my head hurt.
Can it multi-dispatch on $0? 20:44
aka, the name it's run as?
avuserow rakudo: multi sub MAIN() {say "no args";}; multi sub MAIN($foo) {say "one arg";}
p6eval rakudo 0e5edb: OUTPUT«no args␤»
20:44 orafu joined
avuserow so you can dispatch on your args 20:45
takadonet Anyone else have the issue where short argument format only work with two dash in front?
tadzik moritz_: so what is the right way to make params to MAIN with no arguments?
takadonet i.e '--f filename' or '--file filename' but not '-f filename' ? 20:46
Eddward That's cool, but it would be nifty to be able to dispace on name too.
I could try, but I don't know the format for declaring a short option. 20:48
takadonet sub MAIN(:f($file)) { say $file}
Eddward oh. I thought you meant something like 'f|file=s' in Getopt::Long. 20:50
takadonet that what I mean 20:51
however when you use either formats, the value get put into $file
Eddward oh.
avuserow I'm not having any luck with argument processing on the version of rakudo that I have...
takadonet moritz_: any ideas? 20:52
avuserow takadonet: moritz_++ went for sleep
takadonet nuts 20:53
avuserow I'm going to hazard a guess that the :f($file) format is not handled yet 20:54
but I can't get --f foo or --file foo to work
takadonet the code works on the latest rakudo build
avuserow oh 20:55
takadonet just with --f
instead of -f
avuserow I am using an older version, looks like :|
takadonet i'm assuming it's a bug
21:15 elmex joined 21:25 pnate joined 21:26 plol joined, ghyspran joined 21:28 masak joined
masak \\o/ 21:28
phenny masak: 19:15Z <tadzik> tell masak could You fix CSV in some spare time? The tests fail
masak: 19:21Z <tadzik> tell masak also, could you take a look at web's dependencies too? gttp::daemon is not in proto
masak tadzik: (1) I'd love to. (2) will do.
tadzik masak++ # thanks 21:29
masak CSV probably fails because it's old and has bitrotted.
all the tests passed at one point.
tadzik masak: also, neutro is now working fine, handling dependencies and stuff
masak neutro? :)
tadzik oh. The working proto, it is :)
masak inevitable pun, but I'm not sure I've heard about it.
it's a fork of the repo? 21:30
tadzik nah, separate thing
masak oh, ok
tadzik++
tadzik my thursday project :)
masak: github.com/tadzik/neutro
Patches, ideas and criticism welcome
masak tadzik: I'll have a look at it at some point. I suspect I'll still be rooting for pls in the long run, but it's always nice to be looking at alternatives.
and working stuff always trumps ideal stuff. 21:31
tadzik well, neutro is for proto what MiniDBI is for DBI I think
perimosocordiae tadzik: speaking of, I found a simple circular-dep fix
tadzik perimosocordiae: speak on please 21:32
masak tadzik: oh, it's sort of a cpanminus? :)
tadzik masak: not really, it does not to be minimal, or doing installing-only
masak ok
tadzik as in README: 21:33
It's a temporary working solution, while experts build
the Real Deal (proto, pls).
masak thanks for the vote of confidence. :P 21:34
perimosocordiae tadzik: just add a @install_stack in the module scope, unshift module names onto/off it when you enter/exit the 'install' sub, and then checking for circulars is as simple as:
die "Detected circular dependency!" if @installs.grep: { $_ eq $realdep }
masak tadzik: if you had introspection access to my brain, I bet you'd take back the "experts" part. :)
wolverian tadzik: I see that you're calling subs as foo; instead of foo(); in neutro, where foo is declared later in the file. is that guaranteed to work in Perl 6? 21:35
perimosocordiae @installs == @install_stack, :-\\
tadzik wolverian: it does work :)
afk for a while
masak wolverian: it's guaranteed to work.
wolverian: because of the different passes. 21:36
wolverian I thought Perl 6 was strictly one-pass :)
[Coke] rakudo: spaf
masak wolverian: it is.
p6eval rakudo 0e5edb: OUTPUT«Could not find sub &spaf␤ in main program body at line 22:/tmp/brGcp3uvOs␤»
masak std: foo(); sub foo() { }
p6eval std 31912: OUTPUT«ok 00:01 113m␤»
masak std: foo();
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'foo' used at line 1␤Check failed␤FAILED 00:01 111m␤»
masak wolverian: I meant 'passes' more in the sense of 'compile-time', 'run-time' 21:37
wolverian masak: ah, thanks. phases, perhaps.
masak right.
wolverian (I think that's used in the literature)
that's great news, btw.
masak the 'undeclared sub' errors are thrown at CHECK time, after the parsing's done.
it is great news.
would've been hard(er) to do mutual recursion otherwise. 21:38
perimosocordiae it's just a good idea in general, I think
wolverian I think it's great just because I prefer to write lower level subs after the higher level subs that use them. 21:40
(and I prefer my syntax without unnecessary parens.)
perimosocordiae (he said, parenthetically) :-) 21:42
masak perimosocordiae: "Who discovered radium?" asked Marie, curiously. :) 21:45
21:45 xinming joined
perimosocordiae masak: :-D 21:45
masak that's my favourite Tom Swiftie.
sjohnson hi dudes 21:48
masak phenny: tell pmichaud gist.github.com/500732 gist.github.com/512060
phenny masak: I'll pass that on when pmichaud is around.
masak sjohnson! \\o/
sjohnson hi masak
whats new in perl6 land today?
masak YAPC::EU finished today. 21:49
YAPC::EU orgas++
tadzik perimosocordiae: mind posting it to issues, or even with a patch? I doubt I'll remember it tommorow
sjohnson cool 21:50
masak sjohnson: they even had a "Camelia" up at the venue :) twitpic.com/2c6alh 21:51
tadzik masak: who is that? 21:52
masak tadzik: I can't see who's in the picture. it's one of the orgas.
phenny: tell pmichaud I misremembered who wrote the "How to write about Perl 6" article; it was brian d foy: blogs.perl.org/users/brian_d_foy/20...erl-6.html
phenny masak: I'll pass that on when pmichaud is around.
21:53 am0c joined
sjohnson haha 21:53
everytime i hear Camelia now, i think of the cipher
masak: en.wikipedia.org/wiki/Camellia_%28cipher%29
perimosocordiae tadzik: will do
masak looks
tadzik perimosocordiae++
tylercurtis masak: random Pod6 question: does Pod6 have a way to include ">" in a formatting (B, C, I, etc.) code? 21:54
sjohnson "perl 6... a reality" -- new slogan
masak tylercurtis: C<< > >>
tylercurtis: or C«>»
tadzik I was thinking about: Perl 6 -- ready enough for me
I even thought about a blag post
tylercurtis masak: related question: does that also work in Perl 5's POD? If not, yay for Pod6! 21:55
tadzik tylercurtis: yes
:(
:)
masak yes, it does.
well, not th C«>» one, I don't think.
tylercurtis Thanks, tadzik and masak. :) Yay for Pod6, regardless! 21:58
perimosocordiae tadzik: patch is on the issue comment: github.com/tadzik/neutro/issues/#is...ent/344579 22:01
tadzik perimosocordiae: checked? 22:02
perimosocordiae tadzik: well... not fully, but it at least doesn't break anything
tadzik: couldn't find anything that actually has circular deps 22:03
masak huh -- this appeared completely unrelated, but a quick Google Translate reveals that it's actually about Rakudo Star. 22:04
atnd.org/events/6687
tadzik perimosocordiae: I'll build something to check
lue ohello o/ 22:07
masak lue! \\o 22:08
22:08 fatface joined, arnsholt joined 22:09 leprevost joined 22:10 leprevost joined
pmichaud masak: thanks for the brian_d_foy link -- just left a comment/reply there 22:10
phenny pmichaud: 12:56Z <[Coke]> tell pmichaud you can adjust the max recursion depth from PIR. want the code?
pmichaud: 21:48Z <masak> tell pmichaud gist.github.com/500732 gist.github.com/512060
pmichaud: 21:52Z <masak> tell pmichaud I misremembered who wrote the "How to write about Perl 6" article; it was brian d foy: blogs.perl.org/users/brian_d_foy/20...erl-6.html
pmichaud itsalue++ 22:11
lue
.oO(curse you inferior computer and your slow-down-to-a-crawl capabilities)
and what's more, this old PPC processor has dwindling support, soon I either have to install *another* distro or get another computer 22:13
[as a reference, I still have Firefox 3.5, and not by choice]
22:14 perimosocordiae left 22:16 hanekomu joined
masak rakudo: my @a = "hip" xx 2; say ~(@a, @a.WHAT), "!" 22:17
p6eval rakudo 0e5edb: OUTPUT«hip hip Array()!␤»
masak rakudo: my @a = "hip" xx 2; say ~(@a, @a.WHAT.perl), "!"
p6eval rakudo 0e5edb: OUTPUT«hip hip Array!␤»
masak :)
masak sleeps for a bit 22:18
22:18 patrickas joined
patrickas avuserow what kind of problems are you having with MAIN args processing ? 22:20
rokoteko Two hips an no hurray.
avuserow patrickas: nothing really relevant. I forgot that I'm still on the 2010.06 release (just using the packages from Fedora and not building my own yet)
22:20 pyrimidine left
rokoteko </quote frasier> 22:21
patrickas oh ok
avuserow it's been a while since I followed trunk :)
patrickas in all cases I still haven't gotten around to implementing the short form for arguments autoprocessing
I still have no idea how to differenciate the short form and long one in the args and how to link the same short argument to a long one ... 22:24
22:24 Eddward joined 22:25 jaldhar_ joined
sorear pugs: my $a = 1; my $b = \\($a); $a := 2; say $b[0] 22:48
p6eval pugs: OUTPUT«CaptSub {c_feeds = [:MkFeed {f_positionals = [:IFinite 1:], f_nameds = []}:]}␤»
sorear heh, show output.
22:52 am0c joined 22:53 _jaldhar_ joined 22:56 pnate2 joined, zostay_ joined
tadzik wow, that's awesome 22:56
rakudo: my @a = "hip" xx 2; say ~(@a, @a.WHAT.perl), "!"
p6eval rakudo 0e5edb: OUTPUT«hip hip Array!␤»
23:02 ruoso joined, azert0x joined
sorear pugs: my $a = 1; my $b = \\($a); $a := 2; say(|$b) 23:04
p6eval pugs: OUTPUT«1␤»
23:05 tom_tsuruhara joined 23:09 lue joined
sjohnson rakudo: "%s knows %s like the back of his %s".printf(<sjohnson perl6 hand>); 23:10
p6eval rakudo 0e5edb: OUTPUT«Method 'printf' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/eFsNz4K0i8␤»
sjohnson ... doh!
( ° ー°) 23:12
tadzik star: "%s knows %s like the back of his %s".fmt(<sjohnson perl6 hand>); 23:14
p6eval star 2010.07: OUTPUT«No applicable candidates found to dispatch to for 'fmt'. Available candidates are:␤:(Mu : Str $format = { ... };; *%_)␤␤ in main program body at line 22:/tmp/twFNzrlPGR␤»
tadzik pff
tylercurtis star: say "%s knows %s like the back of his %s".sprintf(<sjohnson perl6 hand>);
p6eval star 2010.07: OUTPUT«sjohnson knows perl6 like the back of his hand␤»
sjohnson oops, i did it again!
tylercurtis: is printf gone in p6?
star: "happy %s".sprintf<house>.say 23:15
tylercurtis star: printf "%s don't %s", "I", "know."
p6eval star 2010.07: OUTPUT«Any()␤»
star 2010.07: OUTPUT«I don't know.»
sjohnson haha
star: "happy %s".sprintf<(house)>.say
p6eval star 2010.07: OUTPUT«Any()␤»
sjohnson scratches head
oh
oops
star: "happy %s".sprintf(<house>).say
p6eval star 2010.07: OUTPUT«happy house␤»
tylercurtis sjohnson: there just doesn't appear to be a printf method.
sjohnson nice
blasphemy!
23:18 hercynium joined 23:19 hercynium joined
sorear try fmt. 23:19
avuserow rakudo: "foo %s %s".fmt(<bar baz>) 23:22
p6eval rakudo 0e5edb: OUTPUT«No applicable candidates found to dispatch to for 'fmt'. Available candidates are:␤:(Mu : Str $format = { ... };; *%_)␤␤ in main program body at line 22:/tmp/mpaeKTFrWf␤»
tylercurtis rakudo: say <bar baz>.fmt("foo %s %s" 23:23
p6eval rakudo 0e5edb: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
tylercurtis rakudo: say <bar baz>.fmt("foo %s %s")
p6eval rakudo 0e5edb: OUTPUT«Insufficient arguments supplied to sprintf␤ in 'Any::join' at line 1␤ in 'Any::join' at line 1386:CORE.setting␤ in 'List::fmt' at line 2551:CORE.setting␤ in 'Iterable::fmt' at line 3559:CORE.setting␤ in main program body at line 22:/tmp/Ggbr30kFZY␤»
23:26 gena joined 23:41 kid51 joined 23:54 am0c joined 23:59 Psyche^ joined