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/RHlu1bY5hmpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: 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[123] | ||
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[371115] | ||
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
|