The topic for #perl6 is: pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/ Set by TimToady on 25 November 2008. |
|||
00:12
bacek_ joined
00:15
xinming joined
00:17
vixey left
|
|||
TimToady | @tell masak yes, p6 macros are hygienic, as long as they return AST and not text. quasiquoting provides a convenient way to return AST. | 00:24 | |
lambdabot | Consider it noted. | ||
literal | @tell lambdabot you're useful | 00:26 | |
lambdabot | Nice try ;) | ||
00:31
xinming_ left
00:54
mberends left
01:01
bacek_ left
01:02
Limbic_Region joined
01:03
DemoFreak left
01:17
mbtrimpe left
01:18
mtrimpe joined
01:24
araujo left
01:25
mtrimpe left
01:26
mtrimpe joined,
ChrisDavaz left
01:28
araujo joined
01:33
mtrimpe left
01:34
mtrimpe joined
01:35
kst left,
kst joined
|
|||
pugs_svn | r24110 | hinrik++ | [util/perl6.vim] vim compatability fix | 01:49 | |
02:05
ChrisDavaz joined
|
|||
meppl | good night | 02:05 | |
02:06
mtrimpe left
02:07
mtrimpe joined
02:10
sri_kraih left
02:13
alester joined
02:16
mtrimpe left
02:17
mtrimpe joined
02:19
mberends joined
02:27
mtrimpe left
02:28
mtrimpe joined
02:35
alester left
02:37
mtrimpe left
02:38
mtrimpe joined
02:46
mberends left
02:52
Limbic_Region left
02:53
alester joined
02:54
jhorwitz_ left
03:06
hercynium joined
03:09
kst left,
kst joined
03:29
Psyche^ joined
03:33
Psyche^ is now known as Pattenrer
03:38
Pattenrer is now known as Patternerr
03:40
Patterner left,
Patternerr is now known as Patterner
03:56
meppl left
04:02
elmex_ joined
04:04
ihrd joined
|
|||
ihrd | hi there | 04:05 | |
I tring to implement HTML::Template using {*} | 04:06 | ||
04:17
elmex left,
elmex_ is now known as elmex
04:45
kst left,
kst joined
04:56
alester left
04:58
ihrd left
05:19
apeiron left,
apeiron joined
05:20
apeiron left,
apeiron joined
05:41
alester joined
06:01
mtrimpe left
06:24
kst left,
kst` joined
06:37
adc_penner joined
06:42
goog joined
06:54
iblechbot joined
06:58
justatheory joined
07:04
xuser joined
07:15
iblechbot left
07:17
adc_penner left
07:35
alester left
07:43
goog left
08:19
kst` left
08:20
kst` joined
08:21
iblechbot joined
08:25
schmalbe joined
08:30
moxmet joined,
moxmet left
08:33
IRSeekBot joined
08:39
eternaleye joined
09:20
smg left
|
|||
rakudo_svn | r33329 | bernhard++ | [codingstd] remove trailing space | 09:30 | |
09:36
ejs joined
09:52
kst` left,
kst` joined
09:57
DemoFreak joined
10:18
ejs left
10:43
meppl joined
10:50
smg joined
11:01
ejs joined
11:06
alech_ left
11:22
ejs left
11:30
alech joined
11:31
iblechbot left
11:52
DemoPhreak joined
12:04
DemoFreak left
12:16
kst` left,
kst` joined
12:19
vixey joined
12:34
pjcj left
12:41
smg left
12:55
DemoFreak joined
13:08
pjcj joined
13:12
pmurias joined,
DemoPhreak left
13:13
cognominal left
13:27
cognominal joined
14:00
kst` left,
kst` joined
14:05
dr_df0 joined
14:07
km2 left
|
|||
dr_df0 | hi all | 14:10 | |
14:11
smg joined
14:16
xinming_ joined
|
|||
pmurias | dr_df0: hi | 14:18 | |
dr_df0 | pmurias: hi, is there a problem with rakudo in SVN? | ||
pmurias: *I've* tried to compile the latest build and compiles ok, but fails to run on MacOSX 10.5 | 14:19 | ||
pmurias | dr_df0: i have limited knowledge about rakudo and am totally ignorant about MacOSX | 14:21 | |
14:23
xinming left
14:42
mberends joined
15:13
mtrimpe joined
15:24
kst` left,
kst` joined
15:28
sri_kraih joined,
sri_kraih left
15:34
sri_kraih joined,
jferrero left
15:37
rindolf joined
|
|||
wolverian | hmm, why is S07 not in the draft section of spec.pugscode.org? | 15:52 | |
15:54
smtms joined
16:01
xinming joined
16:15
simcop2387 left
16:16
simcop2387 joined
16:17
iblechbot joined
16:19
xinming_ left
|
|||
rakudo_svn | r33345 | pmichaud++ | [rakudo]: spectest-progress.csv update: 227 files, 4653 passing, 48 failing | 16:30 | |
r33345 | pmichaud++ | * Also a date correction reported by mj41++ | |||
16:30
sri_kraih_ joined
16:32
dr_df0 left
16:46
sri_kraih left
16:53
kst` left,
kst` joined
17:01
araujo left
17:07
schmalbe left
17:51
smg left
18:02
ab5tract joined
18:46
kst` left,
kst` joined
19:15
explorer joined
19:21
smg joined
19:30
adc_penner joined
20:02
preflex joined
20:26
araujo joined
20:27
kst` left,
kst` joined
20:55
mberends left
20:57
rindolf left
|
|||
slavik | rakudo: eval("say 'hello'"); | 20:58 | |
p6eval | rakudo 33350: OUTPUT[helloā¤] | ||
21:09
adc_penner2 joined
21:13
adc_penner left
21:21
masak joined
|
|||
literal | what does xx= do? | 21:24 | |
it's mentioned in S03 but not documented | |||
masak | literal: $a xx= $n does $a = $a xx $n | 21:25 | |
lambdabot | masak: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
literal | ok | 21:26 | |
masak | TimToady: thanks. | ||
21:29
pmurias left
|
|||
slavik | what is op xx ??? | 21:48 | |
masak | slavik: repeat something $n times as list elements. | 21:50 | |
see S03. | 21:51 | ||
slavik | so $a xx 5 will return a list of 5 $a? | ||
masak | aye. | 21:52 | |
slavik | k | 21:54 | |
21:55
smg left
21:58
spx2 left,
spx2 joined
22:16
kst` left,
kst` joined
22:18
hercynium_ joined
22:23
hercynium left
22:24
mncharity joined
22:27
justatheory left
|
|||
masak | I just want to say that I wrote a test module in Perl 6 today that does factory methods, closure parameters and passing arrays as arguments. | 22:28 | |
and it worked on the first try in Rakudo! | |||
things like that make a developer very happy, you know. | 22:29 | ||
rakudo: say ("a" xx 5).perl # for slavik | 22:30 | ||
p6eval | rakudo 33352: OUTPUT[["a", "a", "a", "a", "a"]ā¤] | ||
slavik | nice | 22:31 | |
22:33
alech left
|
|||
mncharity | perl.net.au/wiki/Elf updated. | 22:35 | |
lambdabot | Title: Elf - PerlNet | ||
masak | mncharity++ | 22:36 | |
22:36
alech joined
|
|||
mncharity | "and it worked on the first try in Rakudo", huzzah! | 22:36 | |
masak | mncharity: if you were to summarize the current status of Elf in three words, what would you say? | 22:37 | |
pugs_svn | r24111 | putter++ | [STD_blue] Makefile targets for selecting a working STD version (head is broken). | 22:39 | |
slavik | not ready yet :P | 22:41 | |
so, what is elf's story? | |||
what is it built on top of and such? | |||
mncharity | masak: 3 words? "mncharity labors alone"? Not true - STD and gimme5 is TimToady. "two person hobby"? plus pmurias. lack of dev resources being the primary characteristic of anything p6. | 22:42 | |
masak | aye. | 22:43 | |
mncharity: if you had a magic wand that produced a third person working on the project, what would you advice that person to do? | 22:44 | ||
mncharity | project wise, STD_blue self compiling may actually be an inflection point. if STD also proves to generate a valid parse of STD.pm, then at this point, the elf critical path is all me - parsing may now be working sufficiently well to bootstrap. | ||
masak | sounds cool. | 22:45 | |
mncharity | s/STD also/gimme5 also/ | ||
"only regexs left". "small matter'o parsing". "regexs easy, ha!". | |||
slavik: :) re story, | 22:46 | ||
masak | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; ":a:b" ~~ G::TOP; say ~$/<foo><bar> # is this a bug? shouldn't ~$/<foo><bar> be just 'a' ? | ||
p6eval | rakudo 33354: OUTPUT[:aā¤] | ||
slavik | masak: ~~ G works ;) | ||
masak | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; ":a:b" ~~ G; say ~$/<foo><bar> # is this a bug? shouldn't ~$/<foo><bar> be just 'a' ? | 22:47 | |
p6eval | rakudo 33354: OUTPUT[:aā¤] | ||
masak | slavik: indeed. | ||
mncharity | it's a self-compiling p6 implementation which has emphasized being usable for a large p6 project (itself). | ||
slavik | masak: it has worked for a while now | ||
mncharity: like kp6? | |||
masak | slavik: aye. but that code is not originally mine, I copied it from an email. | ||
slavik | masak: see my blog :P | 22:48 | |
masak | slavik: I am reading it :) | ||
mncharity | like kp6 in emphasizing self-compilation, not like kp6 in being designed for performance which makes that practical. | ||
slavik | here's another one ... using subst, how would one replace a multiple occurences of a char with like char-count | ||
mncharity | takes just a couple of seconds to self compile. | 22:49 | |
pmichaud | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; my $m = G::TOP(':a:b'); say $m<foo><bar>; | ||
p6eval | rakudo 33354: OUTPUT[:aā¤] | ||
pmichaud | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; my $m = G::TOP(':a:b'); say $m<foo>; | ||
p6eval | rakudo 33354: OUTPUT[:a:bā¤] | ||
pmichaud | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; my $m = G::TOP(':a:b'); say $m<foo><bar>[0]; | ||
p6eval | rakudo 33354: OUTPUT[Use of uninitialized valueā¤ā¤] | ||
pmichaud | rakudo: grammar G { token TOP { ^ <foo>+ $ }; token foo { ':' <bar>? }; token bar { \w } }; my $m = G::TOP(':a:b'); say $m<foo>[0]<bar>[0]; | ||
p6eval | rakudo 33354: OUTPUT[aā¤] | ||
mncharity wonders if rakudo can run elf... experiment for another time. | 22:50 | ||
pmichaud | masak: the problem is that Parrot doesn't distinguish hash access from array access | ||
so $/<foo><bar> is actually the same as $/<foo>[0] | 22:51 | ||
because $/<foo> is an array. | |||
masak | pmichaud: so, is it a bug or not? | 22:52 | |
slavik: something like this? | |||
pmichaud | yes, but I'm not sure where yet. | ||
masak | my $regex = / b+ /; my $str = "abbbbbc"; $str ~~ $regex; say $str.subst( / b+ /, { "[" ~ $/.chars ~ " b's]" } ) | ||
rakudo: my $regex = / b+ /; my $str = "abbbbbc"; $str ~~ $regex; say $str.subst( / b+ /, { "[" ~ $/.chars ~ " b's]" } ) | |||
p6eval | rakudo 33354: OUTPUT[a[5 b's]cā¤] | ||
masak | pmichaud: I'll report it, then. | ||
22:52
hercynium_ left
|
|||
mncharity | slavik: so the main elf parser is a hand-written one based on an old version of STD.pm. there's now also one (STD_blue) based on the current STD.pm and the p5 gimme5. Next step is to teach elf to run STD.pm directly. Internals are p6. Main backend is p5, with a working but not yet really practical one on SBCL. | 22:52 | |
pmichaud | I'll reply to the november email and explain it. | ||
masak | pmichaud: oki. it was a p6u email, though. | 22:53 | |
mncharity | masak: re extra person, if they did lisp, perhaps "make elfish/on_sbcl (the CL backend) also run on CLISP, in hope the pragmatics (eg, compilation noise) are better". If p5, | 22:55 | |
"make a better multi-method dispatch module than Class::MultiMethod, folding in Luke's work, etc". Or, "add named arguments by...", hmm, maybe not, not sure I want destabilize the code base like that just now. | 22:56 | ||
pmichaud | now answered on p6u. | 22:57 | |
mncharity | If really wizzy, help me fold STD.pm, elf, and rx_on_re together, which is my next/current task. | 22:58 | |
A low-tech task is "grovel through the Snn gathering prelude _signatures_". We have a file'o names, but don't even have a list of prelude functions and their signatures yet. :/ Unless someone has gotten to it and I've not noticed. | 22:59 | ||
masak | mncharity: ah, so S29 would have a lot of ready signatures for you? | 23:00 | |
mncharity goes to look at S29... | 23:01 | ||
slavik | ASSERTIONS!!!! :P | ||
masak | excuse me? | 23:02 | |
slavik | pmichaud: since there are SDL and OpenGL bindings for rakudo, do you know if SDL will open an OpenGL context for OpenGL? I would assume so, because nothing really depends on rakudo for that | ||
masak: I ma waiting for assertions in grammars :) | |||
masak | slavik: in Elf? | ||
slavik | masak: in rakudo | ||
pmichaud | at the moment assertions is a fair distance from the top of my priority list, alas. | 23:03 | |
slavik | :( | ||
pmichaud | gonna need some PGE refactors first. | ||
slavik | pmichaud: any idea when parrot will have a nicer bignum? | ||
rakudo: say 2**65 | |||
pmichaud | slavik: no. | ||
p6eval | rakudo 33354: OUTPUT[3.68934881474191e+19ā¤] | ||
slavik | something that doesn't output that | ||
masak | slavik: you can always fake assertions by putting code in subs and methods instead :) | ||
slavik | masak: but <> in grammars don't work at all :( | ||
masak | slavik: well, yes it does. | 23:04 | |
I used <!before xxx> yesterday. | |||
slavik | it does? | ||
masak | sure! | ||
slavik: you _really_ should check out November. | |||
slavik | what about <say "matched"> or something? | ||
pmichaud | if <> didn't work, then we wouldn't be parsing anything in Rakudo. | ||
<say> isn't a subrule. | |||
slavik | oh | ||
masak | slavik: you might want to read S05 again. | ||
pmichaud | you could try: method say($/) { say 'hello'; } in the grammar. That might work. | 23:05 | |
as in, that might get <say> to work. | |||
slavik | I see, so <> isn't just some code to run? | 23:06 | |
pmichaud | no, there's a whole syntax for it. | ||
mncharity | masak: re S29, basically when the elf hypothesis was "get prelude, pass tests, then people will care", the bottleneck was "there is no prelude, have to write one working backwards from tests". Now the elf hypothesis is "people will care when elf is bootstrapped", but after bootstrap, it's back to needing prelude code. | ||
pmichaud | <foo> - invoke a subrule, capture as $<foo> | ||
<?foo> - invoke a subrule zero-width match | |||
<!foo> - invoke a subrule, negated zero-width match | |||
<[abc]> - match any of 'a', 'b', or 'c' | |||
slavik | I see | ||
pmichaud | <.foo> -- invoke a subrule, don't capture. | ||
etc. | 23:07 | ||
masak | mncharity: I see. yes, that sounds reasonable. furthermore, writing a prelude sounds like lots of fun! :) | ||
slavik | I mean like: token blah { 'glah' } <function()> | ||
wait | |||
rather the closing brace should be at the end of that | |||
23:08
jferrero joined
|
|||
masak | slavik: it's easier if you use the syntax described in S05 rather than making up your own. :P | 23:09 | |
slavik | :( | ||
this is perl6, I should be able to invent my own!!! | 23:10 | ||
mncharity | masak: :) could indeed be fun. been fighting to get to the point where it's possible for 3 years now. modulo the limits of elf, it can be done right now. that's another thing the hypothetical person could work on. just not critical path to bootstrap, so no fun for me. ;) | ||
masak | slavik: don't be sad, you're like this close to reading it again, and then all will be well. | ||
slavik | eventually, it will be "*" that will link up with my brain and do whatever it is I want at the moment | ||
it will be a new language ... called STAR | |||
^^ | |||
masak | yeah, whatever. | ||
mncharity | s/so no fun for me/so I have to work on other things/ | ||
slavik | :( | 23:11 | |
mncharity | but if anyone wanted to pour out prelude, in elf dialect or full p6, that would be nifty. | ||
masak | mncharity: I'll keep that in mind. | ||
Elf looks like something worth helping along. | 23:12 | ||
mncharity | really? neat. I sometimes wonder. The "it seems important, but if so, why am I dangling out here by myself" problem. :) | 23:13 | |
masak | mncharity: you're not alone in having such thoughts. :) | 23:14 | |
23:14
nnunley left
|
|||
masak | I mean, November has a few people, but it could use a lot more. | 23:14 | |
23:14
nnunley joined
|
|||
masak | there's simply not enough people crowding around our cool Perl 6 projects :) | 23:14 | |
mncharity | Had a conversation with a haskell person on the subway a few days back (gotta love the Boston Red Line, great techy conversations with strangers:). Reminded me that much of what makes p6 valuable is not only non-obvious, but also hard to explain. | 23:15 | |
masak | indeed. | 23:16 | |
the grammars thing, for example, has simply Never Been Done Before. | |||
using grammars in a program still feels a bit like coding on top of a humming jet engine :) | 23:17 | ||
mncharity | re Never Been Done Before, actually, my understanding is there was quite a bit of it back in the 60's. but the engines weren't powerful enough to get back up to the "real" languages of the day (eg, FORTRAN). so you per-application "language" divergence, with no obvious way to reduce entropy. | 23:18 | |
masak | Tour de Babel. | 23:19 | |
mncharity | yes. my current line is "yes, there's the potential for great divergence. but the infrastructure is strong enough both to support current real languages (so divergence isn't unavoidable), and to do Java-like 'you must use language subset/dialect X' code analysis/policy enforcement tools". | 23:21 | |
masak | mm | 23:22 | |
23:23
iblechbot left,
explorer left
|
|||
mncharity | the haskell conversation was sort of like that. question was "does p6 have a haskell-like type system". I was trying to run an argument of "the flexible parser lets you write haskell. the culture and infrastructure will let you compile it to an embedded ghc. so p6 is a superset of hs. and you can degrade gracefully, in a engineering-wise useful way." but we kept getting stuck on "p6 language lacks limits X, so you can do hs-s | 23:24 | |
masak | well, there probably are real roadblocks to emulating Haskell... | 23:25 | |
mncharity | need to build an argument that p6 is a... metalanguage?, not a language family, but... hmm, not sure what to call it. | ||
masak | at least on top of Parrot. | ||
23:26
smg joined
|
|||
mncharity | sort of like, a prolog engine is lousy for solving any but toy problems, but great for implementing engines to solve your real problems. | 23:26 | |
masak | mncharity: I think I will not be using the language remolding functionality very much myself, because I think that it might be one of those easy but easy-to-shoot-yourself-in-the-foot things. I will probably mostly be a consumer of modules that change the grammar for me. :) | ||
mncharity: did you just imply that Perl 6 is lousy for solving anything but toy problems? :P | 23:27 | ||
mncharity | re toy problems, more like "the full p6 language has many undesirable features, including being very big. that's why you won't in general use the full p6 language in any particular module or application. the p6 compiler story permits the graceful engineering choice of what subset to use." | 23:29 | |
masak | doesn't p5 also permit a choice of what subset to use? | 23:30 | |
mncharity | yes, but I can't choose the "haskell subset" or the "C subset" or ... | ||
masak | no? | 23:31 | |
mncharity | "C subset" perhaps, though the existing inline stuff is rather a kludge. | ||
masak | I've heard about people writing in a C-like way in Perl 5. but maybe that's not what you mean here. | 23:32 | |
mncharity | hmm, what do I mean. "I can write a p6 which has exactly the semantics and runtime performance of language X". | 23:33 | |
therefore there is little cost, and much benefit, to write p6 rather than language X. | |||
for example, if I want to write javascript, I may still wish to write it as p6, because then I get macros, etc. | 23:34 | ||
masak | I'm not sure your dream will come true, at least not that clearly. | 23:35 | |
even considering that Perl 6 will have macros and a mutable grammar. | 23:36 | ||
syntax is easy to change in a language; semantics, not so much. | |||
ab5tract | i can't think of a single undesirable feature of p6 | 23:38 | |
mncharity | masak: if p6 becomes real, it will undoubtably get compile and runtime mops. and on different runtimes get different semantic "extras". | 23:41 | |
masak | uh oh, now you're starting to sound like ruoso and pmurias when they talk about complicated things. :P | 23:42 | |
mncharity | and while p6 is a large language, it's also a great language to do language implementation in. I suspect, once we finally have a working p6 impl, it will turn out to not be intractable to play with the language. even if STD has several hundred productions. :) | ||
^.^ | |||
masak | mncharity: define 'working p6 impl'. | 23:43 | |
Rakudo works. | |||
fsvo 'works'. | |||
vixey | which value of works? | 23:46 | |
mncharity | masak: re define 'working p6 impl', unless things have changed recently, rakudo works in the same sense that pugs works. passes lots of test but can't write non-small p6 applications in it. unless rakudo is now running ext/* ? | ||
masak | vixey: the value "I'm writing code in it" of 'works'. | 23:47 | |
mncharity | pugs could run ext/*. still couldn't handle writing p6 prelude, or something the size of elf (or even half that). | ||
23:47
ZuLuuuuuu joined
|
|||
masak | mncharity: re ext/*, I don't know. haven't checked recently. | 23:48 | |
doing that sounds like an interesting idea. | |||
mncharity | :) | ||
masak | mncharity: would you consider the November wiki non-small? | ||
mncharity | "if it isn't tested, it doesn't work. qed" | ||
sorry, i've not looked at November :/ | 23:49 | ||
masak | mncharity: all the .pm files in November total 47KiB right now. | ||
mncharity | if you didn't have to do a lot of "well, that didn't work, tickled an implementation bug, let's try another approach" whi oops... | 23:50 | |
masak | mncharity: yes, but less and less. | ||
the summer was worst :) | |||
mncharity | still alive. yay. [...] which characterized non-small pugs (and elf too) work, then rakudo's an improvement (or you have internalized it's current limitations;) | 23:52 | |
masak | according to xargs wc, we have 5482 lines of text in out .pm files. that's not LOC, of course, but that's at least 3kLOC. | ||
mncharity | "out .pm files"? | ||
masak | sorry, "our .pm files". | 23:53 | |
i.e. our modules. | |||
23:53
smg left
23:55
adc_penner2 left
|
|||
masak | yep, removing empty lines, lines w/ comments or closing curlies, we still have 3823 LOC. | 23:56 | |
I don't know if I've internalized its current limitations. to some degree, sure. we're simply using whatever is available right now. | 23:57 | ||
pugs_svn | r24112 | putter++ | [elfish/STD_green] Created. Project to run STD.pm on p6/elf. |