Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-07-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:08 rafl joined #perl6
00:15 japhb joined #perl6
00:33 whooosh joined #perl6
00:49 lambdabot joined #perl6
01:16 yahooooo joined #perl6
01:59 PZt joined #perl6
02:12 lambdabot joined #perl6
02:27 PZt joined #perl6
02:50 cognominal_ joined #perl6
03:01 elmex_ joined #perl6
03:30 jesusabdullah joined #perl6
03:31 jesusabdullah left #perl6
04:11 kanru joined #perl6
04:32 Southen joined #perl6
04:44 alester joined #perl6
04:56 justatheory joined #perl6
05:29 Psyche^ joined #perl6
05:32 [particle]1 joined #perl6
06:06 Auzon1 pugs: say [+] 1 .. 5
06:06 p6eval pugs: OUTPUT[15␤]
06:06 Auzon1 pugs: say [+] 1 .. 6
06:06 p6eval pugs: OUTPUT[21␤]
06:07 Auzon1 oh wait, I knew that one
06:09 alester joined #perl6
06:26 ashizawa joined #perl6
06:51 c1sung joined #perl6
06:51 apeiron joined #perl6
07:31 jferrero joined #perl6
07:53 barney joined #perl6
08:08 iblechbot joined #perl6
09:03 redicaps joined #perl6
09:07 elmex joined #perl6
09:46 pbuetow joined #perl6
09:47 chris2 joined #perl6
10:35 xinming joined #perl6
10:49 pbuetow joined #perl6
10:50 xinming_ joined #perl6
11:02 meppl joined #perl6
11:08 jan_ joined #perl6
11:29 icwiener joined #perl6
11:34 rho joined #perl6
12:07 icwiener joined #perl6
12:34 a-jing1 joined #perl6
12:35 wknight8111 joined #perl6
12:35 a-jing1 left #perl6
12:58 redicaps joined #perl6
13:14 [particle] joined #perl6
13:20 pmurias joined #perl6
13:21 pmurias joined #perl6
13:27 Jedai joined #perl6
13:38 clintongormley joined #perl6
13:39 iblechbot joined #perl6
13:39 cmarcelo joined #perl6
13:43 integral joined #perl6
13:44 jhorwitz joined #perl6
14:00 clintongormley left #perl6
14:03 apeiron joined #perl6
14:06 rdice joined #perl6
14:25 cggoebel joined #perl6
14:34 Jedai joined #perl6
14:37 Jedai joined #perl6
14:38 alanhaggai joined #perl6
14:48 icwiener_ joined #perl6
15:21 Schwern joined #perl6
15:35 kanru joined #perl6
15:45 pmurias_ joined #perl6
15:46 pmurias joined #perl6
16:39 justatheory joined #perl6
16:54 gbacon joined #perl6
17:08 cognominal_ joined #perl6
17:27 pugs_svn r21284 | moritz++ | [t] moved parts of syntax/signature.t to spec/
17:31 moritz_ rakudo: my $x := 34; say $x
17:31 p6eval rakudo 29207: OUTPUT[34␤]
17:37 apple-gunkies joined #perl6
17:38 pugs_svn r21285 | moritz++ | [spec] (mostly futile) attempt at fudging signature.t
17:41 r0bby joined #perl6
17:59 charsbar_ joined #perl6
18:08 justatheory joined #perl6
18:10 alester joined #perl6
18:15 moritz_ #perl6-soc in 75 minutes
18:16 Alias_ joined #perl6
18:25 smg joined #perl6
18:26 smg hello.
18:27 smg how about:  > reverse . show . foldl1 (*) $ [1..4]
18:29 Auzon1 hi
18:31 moritz_ > reverse . show . foldl1 (*) $ [1..4]
18:31 lambdabot "42"
18:31 moritz_ smg: that's the haskell way of saying "42" ;-)
18:31 Auzon pugs: say [*] 1 .. 4
18:31 p6eval pugs: OUTPUT[24␤]
18:31 Auzon it just reverses that
18:31 smg moritz_: i know i just thought wy you don't say > reverse . show . foldl1 (*) $ [1..4] instead of the line @ topic
18:32 smg why
18:37 * moritz_ doesn't really understand the question, but /me doesn't understand haskell either
18:37 smg hehe
18:38 smg i just searching for good material on perl6, someone pointed me to a book in the perl channel.
18:38 smg isn't there a good tutorial on the web either?
18:38 moritz_ not really :(
18:38 moritz_ I wrote one in German
18:38 moritz_ (three actually)
18:39 moritz_ and there's http://diveintoperl6.blogspot.com/, but it's not being updated anymore
18:39 lambdabot Title: Dive into Perl 6
18:39 moritz_ then there's stuff below http://svn.pugscode.org/pugs
18:39 lambdabot Title: Revision 21285: /
18:39 smg no matter i am german. :)
18:40 moritz_ smg: http://perl-6.de/tutorials/ ;-)
18:40 lambdabot Title: Perl 6 - Tutorials
18:40 smg so you could tell me it :)
18:40 smg ahh you is this!
18:40 smg i read perl-6.de haha :)
18:40 moritz_ ;)
18:40 moritz_ the beginners tutorial sucks
18:40 smg i never read it
18:40 smg :)
18:41 moritz_ but the two others (for perl 5 programmers and for programmers of oother languages) aren't too bad I hope
18:41 smg i read it i will give you feedback
18:41 smg moritz_: i hope perl6 will be good
18:41 smg i loved perl5 and i'm afraif of perl6 especially regex
18:42 moritz_ oh, and there's http://perl-6.de/tutorials/regex ;-)
18:42 lambdabot Title: Perl 6 - Regular Expressions und Rules
18:42 moritz_ smg: we're working hard on it ;)
18:42 smg hehe
18:46 smg what do i need to install?
18:46 smg pugs?
18:46 moritz_ depends ;)
18:47 moritz_ pugs is the most mature, but not being actively developed anymore
18:47 moritz_ rakudo (perl 6 on parrot) is moving quite fast
18:47 moritz_ (and much easier to build than pugs)
18:48 smg in my package manager there is only pugs :\
18:49 moritz_ svn co https://svn.perl.org/parrot/trunk parrot && cd parrot; perl Configure.pl; make; cd languages/perl6/; make
18:49 lambdabot Title: Revision 29207: /trunk
18:50 smg k
18:51 moritz_ then ../../parrot perl.pbc -e 'say "hi"'
18:51 Auzon moritz_: I haven't been using 'todo' when fudging. Should I use it when it's not a parsefail?
18:52 [particle] yes
18:52 Auzon ok
18:52 moritz_ what [particle] said ;)
18:53 [particle] todo is better than skip, always todo where possible
18:53 moritz_ rakudo: eval '$x'; say 1
18:53 p6eval rakudo 29207: OUTPUT[1␤]
18:53 moritz_ ok, no more exceptions from eval
18:53 moritz_ rakudo: eval '---'; say 1
18:53 p6eval rakudo 29207: OUTPUT[1␤]
18:54 Auzon rakudo: say eval 'my int1 $foo; 1'
18:54 p6eval rakudo 29207: OUTPUT[Null PMC access in get_string()␤current instr.: 'print' pc 11099 (src/gen_builtins.pir:7286)␤]
18:54 pmurias joined #perl6
18:54 Auzon rakudo: eval 'my int1 $foo; 1'
18:54 p6eval rakudo 29207: RESULT[Null PMC access in find_method()␤current instr.: '_block11' pc 25 (EVAL_13:12)␤]
18:54 Auzon oops.
18:54 Auzon rakudo: eval 'my int1 $foo; 1'; say 'survived'
18:54 p6eval rakudo 29207: OUTPUT[survived␤]
18:54 pmurias smg: you have seen the synopsis right?
18:55 smg pmurias: no.
18:55 moritz_ http://perlcabal.org/syn/
18:55 lambdabot Title: Official Perl 6 Documentation
18:55 Auzon rakudo: say eval 'my int1 $foo' ?? 'implemented' !! 'not impl'
18:55 p6eval rakudo 29207: OUTPUT[Null PMC access in get_string()␤current instr.: 'print' pc 11099 (src/gen_builtins.pir:7286)␤]
18:55 Auzon rakudo: eval 'my int1 $foo' ?? say 'implemented' !! say 'not impl'
18:55 p6eval rakudo 29207: OUTPUT[implemented␤]
18:55 moritz_ Auzon: it seems that it can't do anything with the return value from eval
18:56 pmichaud eval needs to properly emit fail exceptions
18:56 smg pmichaud: ty
18:56 pmichaud sorry
18:56 smg moritz_: ty :)
18:56 moritz_ rakudo: say eval('$x').perl
18:56 p6eval rakudo 29207: OUTPUT[Null PMC access in find_method()␤current instr.: '_block11' pc 32 (EVAL_13:14)␤]
18:56 pmichaud eval eval needs to properly set $!
18:56 pmichaud and, of course, eval still doesn't understand outer lexicals.
18:56 Auzon If it fails, does it return a Failure?
18:56 pmichaud Auzon: it should, yes.
18:56 moritz_ not yet
18:56 pmichaud it doesn't do that yet.  I need to refactor failure handling for the builtins.
18:57 Auzon Fair enough :)
18:57 moritz_ basically we need fail(), right?
18:57 moritz_ and 'use Fatal;'
18:58 smg hehe
18:59 smg perl6.pbc -e 'map { .say } @{[1,2,3,4,5]}' <-- gives syntax error? :|
18:59 Auzon @{} isn't valid for one
18:59 lambdabot Maybe you meant: . ? @ bf ft id pl rc v wn
19:00 Auzon rakudo: map {.say} 1 .. 5
19:00 pmurias perl6: map {.say} [1,2,3,4,5]
19:00 p6eval rakudo 29207: OUTPUT[Statement not terminated properly at line 1, near "1 .. 5"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤]
19:00 moritz_ smg: @{...} is perl 5 syntax
19:00 p6eval elf 21285: OUTPUT[Parse error in: /tmp/RHlu1bY5hm␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: map {.say} [1,2,3,4,5]␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
19:00 p6eval ..STD_red/std.r...
19:00 p6eval ..kp6 21285: OUTPUT[error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.␤*** Syntax Error in Block: missing closing curly bracket  ␤]
19:00 p6eval ..pugs: OUTPUT[*** ␤    Unexpected "["␤    expecting ",", ":" or operator␤    at /tmp/aEon1m9OVO line 1, column 12␤]
19:00 p6eval ..rakudo 29207: OUTPUT[Statement not terminated properly at line 1, near "[1,2,3,4,5"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤]
19:01 smg moritz_: arg okay
19:01 moritz_ rakudo: map { .say}, 1, 2, 3
19:01 smg hehe 'a' .. 'z' won't work then?
19:01 p6eval rakudo 29207: OUTPUT[1␤2␤3␤]
19:01 Auzon oops, forgot the comma too
19:01 moritz_ smg: why not?
19:01 pmurias perl6: map {.say},[1,2,3,4,5]
19:01 Auzon I've been in P5-land recently
19:01 p6eval elf 21285: OUTPUT[Use of uninitialized value in concatenation (.) or string at ./elf_f line 3408.␤syntax error at (eval 117) line 3, near "{->say"␤ at ./elf_f line 3861␤]
19:01 p6eval ..kp6 21285: OUTPUT[error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.␤*** Syntax Error in Block: missing closing curly bracket  ␤]
19:01 p6eval ..pugs: OUTPUT[12345␤]
19:01 p6eval ..rakudo 29207: OUTPUT[./parrot: error while loading shared libraries: /home/evalenv/parrot/blib/lib/libparrot.so.0.6.3: invalid ELF header␤]
19:02 moritz_ seems like we just hit the cron job that rebuilds parrot + rakudo
19:02 smg ah it does
19:02 moritz_ Auzon: it's one of the things that I generally confuse between p5 an dp6
19:02 moritz_ s/dp6/p6/
19:02 moritz_ just like $@ vs. $!
19:03 Auzon Yeah..
19:03 Auzon Would anyone object to removing KP6 from the evalbot's Perl6 target until it becomes active again?
19:03 * moritz_ would welcome that
19:04 pmichaud no objection
19:04 moritz_ 3 : 0, decided!
19:05 smg i'm confused of the dot in front of .print in say for example .print for 'a' .. 'z';
19:05 smg :)
19:05 pugs_svn r21286 | moritz++ | [evalbot] remove kp6: from perl6: target
19:05 Auzon Oops.
19:05 Auzon "Your file or directory 'evalbot.pl' is probably out-of-date"
19:05 moritz_ smg: it means $_.print
19:05 moritz_ evalbot control restart
19:06 rindolf joined #perl6
19:06 p6eval joined #perl6
19:06 smg ah okay makes sense
19:06 smg so perl is now fully OOP?
19:06 TimToady depends on how you define it
19:06 [particle] rakudo: 1.say
19:06 p6eval rakudo 29207: OUTPUT[1␤]
19:06 Auzon It's OOP if you want it.
19:06 moritz_ if you want to view everything as an object, Perl 6 supports your view
19:07 moritz_ but you can ignore that fact that it's OO most of the time
19:07 smg no i'm bothered by OOP already by java :)
19:07 smg :)
19:07 TimToady it's not OOP in the sense of forcing you into that worldview
19:07 smg i'm forced at university to be a hardcore java programmer and to do everything with OOP also hello world tools -.-
19:07 smg oaky that's great
19:07 moritz_ smg: you can still use the sub form of most of the stuff
19:07 moritz_ rakudo: say 1
19:07 p6eval rakudo 29207: OUTPUT[1␤]
19:07 smg ah cool
19:07 moritz_ just the same
19:08 TimToady we take this attitude with al lthe programming paradigms, not just OO
19:08 smg and what should be prefered? 1.say?
19:08 moritz_ what *you* prefer
19:08 TimToady what is this word, "preferred"?
19:08 Auzon It's up to your style. If you're working in an OO app, then I'd use OO. Otherwise, up to you.
19:08 TimToady true languages do not enforce style
19:09 smg hehe
19:09 TimToady pugs: say Perl.true
19:09 smg ah scalar @array isn't anymore cool i see
19:09 p6eval pugs: OUTPUT[*** No such subroutine: "&Perl"␤    at /tmp/ehKOEGohHt line 1, column 5 - line 2, column 1␤]
19:09 TimToady heh
19:09 pmurias perl is more OOP than java in many ways
19:09 [particle] smg: there's *still* more than one way to do it
19:09 moritz_ rakudo: my @x = <a b c d>; say +@x
19:09 p6eval rakudo 29207: OUTPUT[4␤]
19:09 Auzon smg: +@array or @array.elems or elems(@array)
19:09 pmurias * Perl 6
19:10 smg hehe.
19:10 smg +@array wow this looks cool.
19:10 Auzon + as a prefix forces it into numeric context
19:10 smg interesting.
19:10 moritz_ and ~ into string context
19:10 smg wow!
19:10 moritz_ ? into boolean
19:10 smg this makes me excited!
19:10 TimToady some people are easily amused.  :)
19:10 Auzon $ item, @ array, @@ slice (multidim array), % hash
19:10 smg is there maybe function composition too?
19:11 moritz_ smg: like currying? yes
19:11 TimToady though not as transparent as in, say Haskell
19:11 [particle] rakudo: my @x = <a b c>; say ~@x ~ ' has ' ~ +@x ~ ' elements' if +@x;
19:11 p6eval rakudo 29207: OUTPUT[a b c has 3 elements␤]
19:11 smg < > is the new array constructor?
19:12 moritz_ smg: it's like qw() in perl 5
19:12 smg ah i guessed
19:12 moritz_ quote words
19:12 smg is qw qq etc also allowed in perl6?
19:12 TimToady pugs: my &recip := &infix:</>.assuming(1); say recip(42)
19:12 p6eval pugs: OUTPUT[*** Undeclared variable: ("&infix: ",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb7a10301>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb7a10229>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xb7a10...
19:12 Auzon yes, they are allowed
19:12 smg ok
19:12 TimToady pugs: my $recip = &infix:</>.assuming(1); say $recip(42)
19:12 p6eval pugs: OUTPUT[*** Undeclared variable: ("&infix: ",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb7a0a2f1>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb7a0a229>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xb7a0a...
19:12 Auzon qw has a new short form: <a b c d> means qw/a b c d/
19:12 TimToady hmm
19:13 moritz_ TimToady: I tried it locally, but couldn't get .assuming to work
19:13 TimToady probably not impl, or bitrotted, or requires named params like the spec used to say
19:13 Auzon smg: This means that indexing hashes usually looks like: $hash<foo> instead of $hash{'foo'}
19:14 Auzon oops
19:14 pmurias does vim have special support for resolving subversion conflicts/doing merges ?
19:14 Auzon looks like %hash<foo> instead of $hash{'foo'}
19:14 smg Auzon: twigle got you :)
19:14 TimToady or like $hash<foo> instead of $hash->{'foo'}
19:14 Auzon Yep. -> is dead.
19:14 moritz_ pugs: sub f($x, $y) { say "x: $x; y: $y" }; my &g := &f.assuming(2); g(3)
19:14 p6eval pugs: OUTPUT[x: 2; y: 3␤]
19:14 smg -> looked cool anyway :)
19:15 TimToady it now looks cooler as a lambda
19:15 moritz_ hehe
19:15 spinclad pugs: my $over := &infix:</>; my $recip := $over.assuming(1); say $recip(42)
19:15 p6eval pugs: OUTPUT[*** Undeclared variable: ("&infix: ",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb794733d>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb7947229>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xb7947...
19:15 smg lambda is in perl?
19:15 moritz_ rakudo: for 1..4 -> $x { print "$x " }
19:15 p6eval rakudo 29207: OUTPUT[1 2 3 4 ]
19:15 smg ah pointy sub
19:15 spinclad pugs: my $over := &infix:</>; say $over(1, 42)
19:15 p6eval pugs: OUTPUT[*** Undeclared variable: ("&infix: ",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb7c632f1>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb7c63229>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xb7c63...
19:15 moritz_ it's the same, yes
19:15 TimToady pugs: my $x = -> $x { 1 / $x }; say $x(42)
19:15 p6eval pugs: OUTPUT[0.0238095238095238095238095238095238095238␤]
19:15 Auzon rakudo: for 1 .. 4 -> $x, $y {print "{$x+$y}"}
19:15 p6eval rakudo 29207: OUTPUT[37]
19:16 Auzon rakudo: for 1 .. 8 -> $x, $y {say "{$x+$y}"} # using say to put a \n in between the elems
19:16 p6eval rakudo 29207: OUTPUT[3␤7␤11␤15␤]
19:16 smg TimToady: what's that?
19:16 TimToady what's what?
19:17 smg pugs: my $x = -> $x { 1 / $x }; say $x(42)
19:17 p6eval pugs: OUTPUT[0.0238095238095238095238095238095238095238␤]
19:17 smg = -> ?
19:17 moritz_ still a pointy block, aka lambda
19:17 TimToady just using -> as a lambda
19:17 smg ah
19:17 Auzon Perhaps more clearly written with different variables inside/outside
19:17 spinclad pugs: my $over := -> $x, $y { $x / $y }; say $over(1, 42)
19:17 p6eval pugs: OUTPUT[0.0238095238095238095238095238095238095238␤]
19:17 MartinParr joined #perl6
19:17 smg := ? :)
19:18 spinclad pugs: my $over := -> $x, $y { $x / $y }; my $recip := $over.assuming(1); say $recip(42)
19:18 p6eval pugs: OUTPUT[0.0238095238095238095238095238095238095238␤]
19:18 moritz_ smg: := is binding
19:18 smg not the same as = ?
19:18 moritz_ rakudo: my $x = 3; my $y := $x; $y = 5; say $x
19:18 p6eval rakudo 29207: OUTPUT[5␤]
19:18 moritz_ smg: in this example $x and $y becmoe aliases
19:18 smg i see.
19:18 moritz_ smg: whereas = (assignment) would have produces 3
19:19 TimToady := is the same operation that is done by signature binding
19:19 MartinParr left #perl6
19:19 TimToady (except parameters default to readonly)
19:20 smg ah okay nice
19:22 Auzon smg: Have you seen junctions?
19:22 smg no.
19:22 Auzon rakudo: say 1 == 1|2|3
19:22 smg my $sum = [+] @a; <--
19:22 p6eval rakudo 29207: OUTPUT[1␤]
19:23 smg meta operators are interesting. are there more?
19:23 moritz_ rakudo: my @countries = <Italy France Belgium>; if 'France' eq any(@countries) { say "yes" }
19:23 p6eval rakudo 29207: OUTPUT[yes␤]
19:23 moritz_ smg: yes, @list1 >>+<< @list2 is element-wise addition
19:23 Jamtech joined #perl6
19:23 Auzon | is any, & is all
19:23 Auzon and ^ is one
19:23 smg moritz_: i read your tutorials now, where can i go now to learn more about metaops junctions and so on?
19:24 moritz_ smg: either in the specs at http://perlcabal.org/syn/ ...
19:24 lambdabot Title: Official Perl 6 Documentation
19:24 Auzon rakudo: my $j = 1^2^3; say 1^2 ~~ $j
19:24 p6eval rakudo 29207: OUTPUT[get_number() not implemented in class 'Junction'␤current instr.: 'parrot;Int;ACCEPTS' pc 1703 (src/gen_builtins.pir:1198)␤]
19:24 Auzon rakudo: my $j = 1^2^3; say 1 ~~ $j
19:24 p6eval rakudo 29207: OUTPUT[0␤]
19:24 moritz_ smg: or there is a series of articles in the "$foo magazin", a German perl magazin
19:24 Auzon hm
19:25 moritz_ rakudo: my $j = 1^2^3; say 1 eq  $j
19:25 pugs_svn r21287 | pmurias++ | [elfX] revived the $*compiler,$*parser,$*emitter -> $*compiler refactoring
19:25 p6eval rakudo 29207: OUTPUT[1␤]
19:25 smg moritz_: ty i will go for the specs ;)
19:27 moritz_ smg: the test suite in the pugs repo also has some examples
19:27 smg ok
19:33 rdice joined #perl6
19:34 ruoso joined #perl6
19:36 pmurias ruoso: hi
19:36 ruoso pmurias, hi
19:38 gbacon joined #perl6
19:40 pmurias ruoso: what smop features do you have planned for today? ;)
19:42 pugs_svn r21288 | pmurias++ | [elfX] undef stringifies to an empty string
19:43 ruoso pmurias, I need to go throuhg with p6opaque... but you could start implemneting the other things that need to be done
19:43 ruoso like SMOP__S1P__Attribute
19:44 ruoso SMOP__S1P__Signature is also a good one
19:44 ruoso and that one I don't have many clues....
19:44 pmurias i'm cleaning elf up a bit for s1p, but i could do those if you want be to
19:44 pmurias s/be/me
19:44 ruoso pmurias, s1p will soon be a blocker...
19:45 ruoso so every move in that direction is a right move...
19:46 ruoso In fact, as soon as I finish .^!methods, .^!isa and .^!does we'll probably need a real metaclass compiled from s1p to C
19:47 ben joined #perl6
19:49 justatheory joined #perl6
19:49 pmurias ruoso: what's the difference between s1p and perl6?
19:56 cjfields joined #perl6
19:59 pmurias is s1p as much Perl 6 as we can do right now or are the some fundamental diffrences i'm not aware of (and likely should be ;)
20:00 moritz_ Auzon: commitbit works again, could you try to go to http://commitbit.pugscode.org/admin/project/Pugs/people again please?
20:00 lambdabot Title: Login
20:00 moritz_ Auzon: (you'll need your svn password)
20:01 Auzon Looks like it works.
20:01 Auzon I didn't try to add anyone, but...
20:01 moritz_ if it shows you the form, I think you can
20:01 Auzon looks like I can even delete pending ones
20:02 moritz_ and I'm only listed as an "author", and I can invite other people
20:02 moritz_ Auzon: which means that you can also invite people ;-)
20:02 Auzon Great :)
20:02 moritz_ Auzon: the "Delete" links seems to be a no-op
20:02 Auzon I'll keep that in mind
20:02 moritz_ gvanrossum: <guido@python.org> (author, pending)
20:02 moritz_ wtf?
20:03 moritz_ a joke? or did he seriously wanted to contribute? ;-)
20:03 [particle] he was offered a bit
20:03 * Auzon .oO(but I thought Parrot was the combination of Perl and Python :O)
20:04 moritz_ oh right. That one ;-)
20:08 sri_work joined #perl6
20:08 Auzon commitbit++ # cool when it works
20:08 ruoso pmurias, s1p is the perl6 that is compiled to C
20:08 ruoso which means
20:08 ruoso that is compileable to C
20:08 ruoso but the main difference is the absence of namespaces
20:09 ruoso s1p is self-contained...
20:09 ruoso and s1p will almost all the time depend on low-level implementations
20:09 ruoso perl6 will be fully bootstrapped
20:10 ruoso s1p = stage 1 smop
20:12 pmurias ruoso: compiled to C mean compiled to C+sm0p
20:12 pmurias ?
20:12 ruoso mostly yes...
20:13 ruoso the grammar engine will probably be written in s1p
20:17 pmurias ruoso: do i have to compile s1p to C+sm0p instead of pure sm0p, or should it just be used if convenient?
20:17 Schwern joined #perl6
20:18 ruoso as far as I can see right now the extensive use of s1p will be to declare some types
20:18 ruoso and the entire declaration will be made in s1p
20:19 ruoso that will be compiled to a c file in the end (possibly going through sm0p, but not necessarly)
20:19 ruoso so it needs a _init() function and a _destr() function
20:20 ruoso as well as a .h file that will declare a C symbol for that type...
20:20 ruoso remeber that we still don't have namespace
20:20 pmurias can i implement them when i need them?
20:21 * ruoso with terrible headache...
20:21 ruoso pmurias, "them" who?
20:22 pmurias sorry
20:22 pmurias implement namespaces
20:23 ruoso pmurias, actually... namespace is like one of the last steps for full bootstrap
20:24 ruoso after that we can have a full interpreter
20:24 pmurias why?
20:25 ruoso because we can load the prelude into the namespace
20:25 pmurias isn't a namespace just a glorified Hash
20:25 ruoso but it contains the prelude
20:26 ruoso and after that everything can be translated to
20:26 ruoso Namespace lookp
20:26 ruoso method dispatch
20:26 ruoso and that's all
20:26 ruoso and when I say everything... I mean *really* everything...
20:26 ruoso every Perl 6 operation will be defined in terms of namespace lookups
20:26 ruoso and method dispatches
20:27 ruoso we can turn the AST into an optree
20:27 ruoso and follow the optree
20:27 pmurias we can have namespaces before a prelude
20:28 ruoso but they only make a real difference after we have one
20:28 ruoso before that it's just "a glorified hash"
20:29 pmurias we can put other things inside them too, like the CPAN ;)
20:29 pmurias shower&
20:30 ruoso pmurias, in fact... I wasn't thinking about using modules at this stage... but it certainly is a good reason to implement namespaces early
20:31 ruoso pmurias, and if we take this path, then we can call it the smop implementation of Perl 6 already...
20:31 ruoso we just need a low-level namespace implementation...
20:31 ruoso in fact...
20:31 ruoso that is probably a good idea...
20:32 ruoso because it would mean that we would stop using C symbols sooner...
20:32 ruoso and so we woulnd't even have s1p
20:32 pugs_svn r21289 | Auzon++ | [gsoc_spectest] testing arrays of a certain type and fixed length and both. (added 27 tests)
20:33 ben Hi! I have almost no experience with perl in any form, but it looks pretty interesting to me as a clueless enthusiast. Should I try to get familiar with perl 6, or should I wait until a "1.0" release happens and learn perl 5 in the meantime? Sorry if this is too trivial or offtopic for this channel.
20:33 Auzon Hi ben.
20:33 wknight8111 I say you learn perl 5 for now
20:33 wknight8111 it's a good language too, very powerful, lots of libraries
20:34 Auzon You should probably learn Perl 5. Perl 6 will be easier to learn once you're done, and you can play with some Perl 6 features if you use Perl 5.10's new features.
20:34 ben But I am very scared by all the, uh, oddities it has, compared to something simple like javascript or even C.
20:34 ben I was kind of hoping they would disappear come perl 6
20:34 wknight8111 you can use Perl 5 and not have to worry about any "oddities" if you dont want
20:35 wknight8111 it's a big language, you can cut out stuff you don't like
20:35 Auzon You can write Perl that looks very much like C. I wouldn't recommend it, since you lose some of the cooler idioms, but it's possible.
20:36 moritz_ looks like C - yes, except for the sigils ;-)
20:36 ben Auzon: That is not really what I was getting at, the idioms are what I find intriguing
20:36 ben moritz_: Are the sigils still in perl 6?
20:36 moritz_ ben: yes. Good stuff ;-)
20:38 Auzon ben: What do you consider an oddity, out of curiosity?
20:39 ben Auzon: When I was last having a look at perl, I tripped over the distinction between, say, arrays and array references, and which operator seemed to work with which of them. It has been a while, I am not really sure about the specifics anymore.
20:39 ben Also why I needed to worry about the distinction
20:39 Exodist joined #perl6
20:40 Auzon References are a bit odd, yeah. I didn't encounter them until about a year after I started learning Perl, and didn't learn them for a while after that
20:41 ben Also I think I am confused about what & does, and the various(?) ways to define or invoke subs
20:41 ruoso Auzon, odd... as pointers are odd in C...
20:41 Exodist Hello everyone :-)  My company is giving me 4 hours a week to spend on perl6 development, so here I am, read up on the docs, but a little stuck at getting started.. I am guessing Rakudo on parrot, but I could use some direction.
20:41 ben Some code seems to have & all over the place and some none at all;)
20:41 ruoso Exodist, that's very exciting news..
20:42 Exodist I am pretty good w/ perl5, and want to write perl6 code, I do not know C well enough to help there.
20:42 ruoso Exodist, have you seen moritz_ post on perlmonks?
20:42 moritz_ this one: http://www.perlmonks.org/?node_id=690945
20:42 lambdabot Title: Getting Involved with Perl 6 - an Update
20:42 Auzon ben: That's a holdover from Perl 4 in a lot of cases. Generally people prefer to avoid them, and they aren't needed except in a few corner cases
20:43 Exodist I might have viewed it a week or 2 ago, I will review it again here.
20:43 moritz_ Exodist: a first place to start would be the test suite
20:43 moritz_ Exodist: that's all Perl 6 code, and needs some work
20:44 Exodist moritx_ Thats what I would like to do, but I am wondering if there is a tracker or ticket system I can get an account on to review and assign myself a ticket on it.
20:44 Exodist *moritz_ ^
20:44 PerlJam Exodist: rt.perl.org
20:44 moritz_ Exodist: if you /msg me your email address and desired nick name I can send you a commit bit
20:44 PerlJam (Exodist's $work)++
20:44 moritz_ Exodist: taks for the test suite are documented it t/TASKS in the pugs repository
20:44 Exodist Perljam, are you referring to opensourcery?
20:45 Auzon Exodist: Most of the test suite coordination is done here.
20:45 rakudo_svn r29209 | pmichaud++ | [rakudo]: spectest-progress update: 94 files, 1677 passing tests
20:45 PerlJam Exodist: rt.perl.org has a list of tickets of stuff that need's doing.
20:45 PerlJam s/'//
20:46 Auzon I thought that rt mostly had to do with Rakudo.
20:46 [particle] hey chad, it's jerry. glad to see you here.
20:47 Exodist [particle] you must be one of the contacts alison randall gave me?  I am horrible with names.
20:47 [particle] Exodist: did you get my email reply a week ago, i didn't get a response?
20:47 [particle] yep, jerry gay
20:47 Exodist let me check
20:48 [particle] Thu, Jul 3, 2008 at 7:28 AM
20:49 Exodist [particle] yes, I got it, and started to do as it said, I spent time reviewing the tests.
20:49 [particle] great
20:49 [particle] have you successfully built parrot and rakudo?
20:50 Exodist yes
20:50 [particle] oh, of course, we need to get you a pugs commit bit
20:50 moritz_ [particle]: too late ;)
20:50 moritz_ [particle]: I did that a few minutes ago ;)
20:50 [particle] ah, great
20:50 cjfields_ joined #perl6
20:52 Exodist anyone want to suggest a task for me to bootstrap on?
20:53 pmurias Exodist: you want to work on rakudo?
20:53 [particle] exodist: take a look through t/TASKS
20:56 cjfields_ #parrot is a good place to be for rakudo
20:56 [particle] this is a good place, too
20:56 [particle] especially when it comes to tests
20:56 cjfields_ yes, very true
20:56 Exodist ...#parrot has 1 othe rperson, is that correct?
20:57 [particle] #parrot on irc.perl.org
20:57 Exodist ah.
21:01 pugs_svn r21290 | pmurias++ | a sm0p emitter skeleton
21:02 Exodist ok, where can I go to see the commit messages the svn bot is posting?
21:02 moritz_ Exodist: irc.pugscode.org turn the r\d+ things into links
21:03 pmurias or you can just use svn log
21:04 Exodist ah, that works too.
21:04 moritz_ pmurias: hey, let me boast with my shiny little toys ;-)
21:07 pmurias do namespaces do the Hash role?
21:08 pmurias what's the difference between a Package and a Module?
21:09 apeiron joined #perl6
21:09 moritz_ I think some of the exportation stuff is Module specfic
21:09 pmurias moritz_: any clues on the first question?
21:10 moritz_ pmurias: no. Only that the role is called Associative, not Hash ;-)
21:12 pmurias i'm trying to decide if i can use a Hash as the root namespace and hope to get away with it
21:12 moritz_ do namespaces need to know about their OUTER? or only scopes?
21:13 moritz_ is a namespace just a named scope?
21:14 justatheory joined #perl6
21:14 pmurias moritz_: i thin/hope the root namespace has no OUTER ;)
21:15 pmurias normal ones shouldn't have them too
21:15 moritz_ aren't all subs closures by default?
21:16 pmurias yes
21:16 moritz_ do you need OUTER for creating a closure?
21:17 * moritz_ tries to wrap his mind around a million concepts he doesn't really understand, and tries to bring them together in a useful way
21:19 dmq joined #perl6
21:19 * pmurias tries to implement a hash
21:19 pmurias ;)
21:20 wknight8111 joined #perl6
21:22 pmurias moritz_: you need OUTER for accessing lexical variables
21:23 pmurias if you can't find a lexical in the current lexical pads, you search for in the OUTER pad
21:24 pmurias sleep&
21:24 moritz_ good night
21:24 moritz_ too late ,)
21:28 JamA joined #perl6
21:29 JamA left #perl6
21:33 gbacon joined #perl6
21:35 pbuetow joined #perl6
21:47 Limbic_Region joined #perl6
22:04 kattana_ joined #perl6
22:05 meppl joined #perl6
22:22 pugs_svn r21291 | Auzon++ | [gsoc_spectest] TASKS for S09. I plan on getting to them before end of week.
22:23 b_jonas joined #perl6
22:40 Auzon1 joined #perl6
22:40 jferrero joined #perl6
22:44 justatheory joined #perl6
22:56 yahooooo joined #perl6
23:09 yahooooo joined #perl6
23:15 Kattana joined #perl6
23:16 ruoso joined #perl6
23:32 * Exodist is scared he might write tests for things he does not understand, and have them make it all the way to perl6.0.0 w/o a fix, resulting in exodist, the man who broke perl 6...
23:37 bacek joined #perl6
23:37 bacek joined #perl6
23:38 kattana_ joined #perl6
23:40 Exodist ooh, not sure if I need to mention it to anyone, but here it goes, Next week when I have 4 more hours, I will write tests for this: http://dev.perl.org/perl6/doc/design/syn/S06.html#Wrapping
23:40 lambdabot Title: Synopsis 6: Subroutines - perl6
23:40 Exodist I had to solve a perl5 problem the other day that meant doing something similar in a much harder way.
23:43 pmichaud pugs:  inner();  { my $x = 3;  sub inner() { say $x; } }
23:43 p6eval pugs: OUTPUT[␤]
23:43 pmichaud pugs:  { my $x = 3;  sub inner() { say $x; } }; inner()
23:43 p6eval pugs: OUTPUT[3␤]
23:43 Auzon Exodist: Feel free to ask for clarifications any time you want. I do it all the time, and there's usually someone here that can take a stab at something
23:45 Exodist Auzon, sweet, thank you
23:45 Auzon Exodist: Regarding wrapping, there are some existing tests in t/blocks/wrap.t. You can verify, add, and clean those tests, and then move them to somewhere under t/spec/ (probably S06-something)
23:46 Auzon doh

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

Perl 6 | Reference Documentation | Rakudo