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