| Time |
S |
Nick |
Message |
| 00:01 |
|
|
thoughtpolice joined #perl6 |
| 00:06 |
|
|
_go_ joined #perl6 |
| 00:16 |
|
meppl |
good night |
| 00:16 |
|
|
stevan_ joined #perl6 |
| 00:18 |
|
|
weinig joined #perl6 |
| 00:19 |
|
|
weinig_ joined #perl6 |
| 00:37 |
|
|
drupek12 joined #perl6 |
| 00:52 |
|
|
f0rth joined #perl6 |
| 00:55 |
|
|
[particle1 joined #perl6 |
| 00:57 |
|
|
c9s joined #perl6 |
| 01:03 |
|
|
lyokato joined #perl6 |
| 01:05 |
|
|
knewt joined #perl6 |
| 01:18 |
|
|
cognominal_ joined #perl6 |
| 01:20 |
|
|
bsb left #perl6 |
| 01:27 |
|
|
lisppaste3 joined #perl6 |
| 01:42 |
|
|
stevan__ joined #perl6 |
| 01:53 |
|
|
knewt_ joined #perl6 |
| 02:02 |
|
|
cnhacktnt joined #perl6 |
| 02:31 |
|
|
reZo joined #perl6 |
| 02:40 |
|
|
nipotan_ joined #perl6 |
| 02:40 |
|
|
nipotan_ joined #perl6 |
| 02:42 |
|
|
weinig joined #perl6 |
| 02:43 |
|
|
weinig joined #perl6 |
| 02:45 |
|
|
cnhackTNT joined #perl6 |
| 02:59 |
|
|
cnhackTNT joined #perl6 |
| 03:06 |
|
|
elmex_ joined #perl6 |
| 03:13 |
|
|
Pomin joined #perl6 |
| 03:17 |
|
|
cnhackTNT joined #perl6 |
| 03:28 |
|
|
Pomin joined #perl6 |
| 03:33 |
|
|
amnesiac joined #perl6 |
| 04:07 |
|
pugs_svnbot |
r18619 | agentz++ | PCR - added -Ilib to some of the examples |
| 04:07 |
|
pugs_svnbot |
diff: http://dev.pugscode.org/changeset/18619 |
| 04:07 |
|
lambdabot |
Title: Changeset 18619 - Pugs - Trac |
| 04:19 |
|
pugs_svnbot |
r18620 | agentz++ | PCR - added tracer/*.js and util/gen-tracer-view.pl |
| 04:19 |
|
pugs_svnbot |
diff: http://dev.pugscode.org/changeset/18620 |
| 04:19 |
|
lambdabot |
Title: Changeset 18620 - Pugs - Trac |
| 04:25 |
|
pugs_svnbot |
r18621 | agentz++ | PCR - fixed the .js paths in util/gen-tracer.view.pl |
| 04:25 |
|
pugs_svnbot |
diff: http://dev.pugscode.org/changeset/18621 |
| 04:25 |
|
lambdabot |
Title: Changeset 18621 - Pugs - Trac |
| 04:28 |
|
pugs_svnbot |
r18622 | agentz++ | PCR - removed debugging outputs from gen-tracer-view.pl |
| 04:28 |
|
pugs_svnbot |
diff: http://dev.pugscode.org/changeset/18622 |
| 04:28 |
|
lambdabot |
Title: Changeset 18622 - Pugs - Trac |
| 05:10 |
|
|
Ashizawa joined #perl6 |
| 05:17 |
|
|
baest joined #perl6 |
| 05:20 |
|
|
idiotmax_ joined #perl6 |
| 05:20 |
|
|
lumi_ joined #perl6 |
| 05:25 |
|
|
drupek1225 joined #perl6 |
| 05:26 |
|
|
tcliou joined #perl6 |
| 05:28 |
|
|
melissa_1 joined #perl6 |
| 05:29 |
|
|
sri__ joined #perl6 |
| 05:30 |
|
|
OuLouFu joined #perl6 |
| 05:32 |
|
|
jisom joined #perl6 |
| 05:32 |
|
|
ofer joined #perl6 |
| 05:35 |
|
moritz_ |
good morning |
| 05:36 |
|
moritz_ |
the new URL of the IRC logger is http://irclog.perlgeek.de/perl6/today |
| 05:36 |
|
|
fridim joined #perl6 |
| 05:36 |
|
lambdabot |
Title: IRC log for #perl6, 2007-10-24 |
| 05:36 |
|
moritz_ |
after a short period of testing I'll redirect the URLs there |
| 05:37 |
|
moritz_ |
could anybody with root access on feather please make irc.pugscode.org point there? |
| 05:39 |
|
|
devogon joined #perl6 |
| 05:40 |
|
agentzh |
moritz_: irc. was not configured via DNS settings? |
| 05:42 |
|
|
melissa joined #perl6 |
| 05:42 |
|
agentzh |
moritz_: i do have the root access, but i'm not sure which config file i should look into :) |
| 05:43 |
|
moritz_ |
agentzh: not DNS, it's the virtual host that redirects there |
| 05:44 |
|
moritz_ |
agentzh: /etc/apache2/sites-available/irc.pugscode.org |
| 05:45 |
|
|
nothingmuch joined #perl6 |
| 05:50 |
|
moritz_ |
gotta go :( |
| 05:50 |
|
|
`nipra joined #perl6 |
| 06:19 |
|
agentzh |
moritz_: fixed now :) thanks :) |
| 06:25 |
|
agentzh |
hmm, it does not take effect... |
| 06:26 |
|
agentzh |
it seems |
| 06:26 |
|
agentzh |
"sudo apachectl graceful" isn't enough? |
| 06:36 |
|
|
fglock joined #perl6 |
| 06:47 |
|
|
theorbtwo joined #perl6 |
| 06:50 |
|
|
lyokato joined #perl6 |
| 07:25 |
|
|
gorax joined #perl6 |
| 07:36 |
|
|
franck___ joined #perl6 |
| 07:38 |
|
|
`nipra joined #perl6 |
| 07:41 |
|
|
nipotan left #perl6 |
| 07:48 |
|
meppl |
good morning |
| 07:49 |
|
fglock |
kp6: sub f($a,$b){ say "$a:$b" }; f( 456, a=>123 ) |
| 07:49 |
|
exp_evalbot |
r18628: OUTPUT[123:456] |
| 07:49 |
|
fglock |
meppl: good morning :) |
| 07:49 |
|
meppl |
good morning fglock |
| 07:50 |
|
fglock |
kp6: 'good morning' |
| 07:50 |
|
exp_evalbot |
r18628: OUTPUT['good morning'] |
| 07:51 |
|
|
silug joined #perl6 |
| 07:53 |
|
|
chris2 joined #perl6 |
| 07:59 |
|
spinclad |
kp6: 'fglock++' |
| 07:59 |
|
exp_evalbot |
r18629: OUTPUT['fglock++'] |
| 07:59 |
|
fglock |
kp6: sub f($a,$b){ say "$a:$b" }; f( 456, "a"=>123 ) |
| 07:59 |
|
exp_evalbot |
r18629: OUTPUT[456:a 123] |
| 07:59 |
|
spinclad |
quite right |
| 08:00 |
|
spinclad |
kp6: sub f($a,$b){ "$a:$b" }; f( 456, (a=>123) ) |
| 08:00 |
|
exp_evalbot |
r18630: OUTPUT['456:a 123'] |
| 08:00 |
|
spinclad |
good again |
| 08:00 |
|
spinclad |
kp6: sub f($a,$b){ "$a:$b" }; f( 456, :a(123) ) |
| 08:00 |
|
exp_evalbot |
r18630: OUTPUT['123:456'] |
| 08:01 |
|
spinclad |
good again |
| 08:01 |
|
spinclad |
kp6: sub f($a,$b){ "$a:$b" }; f( 456, (:a(123)) ) |
| 08:01 |
|
exp_evalbot |
r18630: OUTPUT['456:a 123'] |
| 08:01 |
|
spinclad |
good again |
| 08:01 |
|
spinclad |
fglock++ |
| 08:01 |
|
spinclad |
fglock++ |
| 08:01 |
|
fglock |
:) |
| 08:03 |
|
spinclad |
i'm not sure kp6 had to get all the surface syntax right (if it only implemented the compiler and runtime), but the semantics has to be there sooner or later |
| 08:03 |
|
|
PerlJam joined #perl6 |
| 08:04 |
|
spinclad |
but it might as well |
| 08:04 |
|
fglock |
kp6: sub f($a,$b){ say "$a:$b" }; my $b = 456; f( :$b, "a"=>123 ) |
| 08:05 |
|
exp_evalbot |
r18630: OUTPUT[a 123:456] |
| 08:05 |
|
fglock |
spinclad: the plan is to start merging the STD grammar in |
| 08:07 |
|
spinclad |
in which case it starts mutating into FullPerl6 |
| 08:07 |
|
fglock |
yes! |
| 08:07 |
|
spinclad |
whee! |
| 08:11 |
|
fglock |
we now have a regex engine based in Perl 5 regex, which should be faster (but less portable) than the current pure-perl6 engine |
| 08:11 |
|
|
humile joined #perl6 |
| 08:11 |
|
fglock |
and we have a Match class that is both Perl 5 and Perl 6 compatible |
| 08:13 |
|
spinclad |
compatible with both kinds of ... hashes, arrays, regexes ? |
| 08:15 |
|
spinclad |
a few moments while i read the changes... |
| 08:15 |
|
|
luqui joined #perl6 |
| 08:16 |
|
fglock |
spinclad: lib5regex/KindaPerl6/Runtime/Perl5/Match.pm |
| 08:16 |
|
luqui |
@paste |
| 08:16 |
|
lambdabot |
Haskell pastebin: http://hpaste.org/new |
| 08:18 |
|
luqui |
http://hpaste.org/3449 |
| 08:18 |
|
luqui |
How do I hint the strictness analyzer to make m strict? |
| 08:18 |
|
luqui |
oops |
| 08:18 |
|
luqui |
wrong channel |
| 08:18 |
|
luqui |
hello everyone :-) |
| 08:18 |
|
spinclad |
hey luqui! |
| 08:19 |
|
luqui |
I've been silently lurking for some months... |
| 08:19 |
|
luqui |
how are things going/ |
| 08:20 |
|
fglock |
luqui: hi |
| 08:20 |
|
spinclad |
i've started kibitzing again |
| 08:21 |
|
spinclad |
we've got a nice kinda something here to play with |
| 08:21 |
|
|
pmurias joined #perl6 |
| 08:22 |
|
pmurias |
kp6: sub f($a,$b) {say "a:$a b:$b";};f(b=>2,a=>1); |
| 08:22 |
|
exp_evalbot |
r18630: OUTPUT[a:1 b:2] |
| 08:23 |
|
|
ruoso joined #perl6 |
| 08:25 |
|
pmurias |
is it speced somewhere that positional arguments fallback to named ones?(not that it isn't handy) |
| 08:26 |
|
luqui |
pmurias, S06 surely |
| 08:27 |
|
luqui |
hmm, I wonder if the whole "sections" thing is dead |
| 08:27 |
|
luqui |
kp6: sub f($a,$b) { say "a:$a b:$b" }; f(b=>2, 6) |
| 08:28 |
|
exp_evalbot |
r18630: OUTPUT[a:6 b:2] |
| 08:28 |
|
luqui |
kp6: sub f($a,$b) { say "a:$a b:$b" }; f(b=>2, 6, 9) |
| 08:28 |
|
exp_evalbot |
r18630: OUTPUT[a:6 b:2] |
| 08:28 |
|
pmurias |
luqui: what "sections" thing? |
| 08:28 |
|
|
cognominal_ joined #perl6 |
| 08:28 |
|
luqui |
pmurias, previously, the first named argument would end the positional "section" and positionals afterward would only be considered for the slurpy array |
| 08:28 |
|
luqui |
something I was not so fond of |
| 08:29 |
|
luqui |
but yes, you may pass named arguments instead of positionals to any function |
| 08:30 |
|
luqui |
giving the decision of how to call the function to the caller :-) |
| 08:31 |
|
pmurias |
S06:452 |
| 08:32 |
|
pmurias |
re "sections" |
| 08:33 |
|
luqui |
uh... I can't seem to find the synopses anymore |
| 08:33 |
|
luqui |
are they in pugs? |
| 08:33 |
|
pmurias |
http://svn.perl.org/perl6/doc/trunk/design/syn |
| 08:33 |
|
lambdabot |
Title: Revision 14466: /doc/trunk/design/syn |
| 08:33 |
|
|
kanru joined #perl6 |
| 08:34 |
|
pmurias |
according to my .svn/entries |
| 08:34 |
|
luqui |
oh right... duh... that was _my_ proposal :-) |
| 08:34 |
|
pmurias |
there is a version with smartlinks somewhere |
| 08:35 |
|
luqui |
it was changed while I was still here |
| 08:36 |
|
luqui |
hmm pipe "sigil"... that's new |
| 08:36 |
|
spinclad |
13:39:15 < TimToady> my mental model is that you march through the formals left to right finding either a named binding or the next position if there's no named binding. |
| 08:37 |
|
pmurias |
can you change the positionals name withought changing the api |
| 08:37 |
|
pmurias |
? |
| 08:37 |
|
luqui |
sub foo(:foo($bar)) {...} |
| 08:37 |
|
spinclad |
(snippet from chat yesterday) |
| 08:38 |
|
luqui |
which is a parameter named bar which looks like foo to the outside |
| 08:38 |
|
pmurias |
isn't it a named one then/ |
| 08:38 |
|
pmurias |
s/\/?/ |
| 08:38 |
|
luqui |
(pmurias, do not take what I say too seriously, I may not have any idea what I'm talking about) |
| 08:38 |
|
spinclad |
yes, that's a named-only parameter |
| 08:38 |
|
luqui |
oh right |
| 08:39 |
|
fglock |
hmm - kp6 is now 23% Perl 5, 20% Lisp, 11% Perl 6; the remaining is MiniPerl6 and a bit of C |
| 08:39 |
|
luqui |
uh... I remember something being tossed around like sub foo($bar is named('z')) |
| 08:39 |
|
luqui |
sounds like a nice balance |
| 08:39 |
|
|
cls_bsd joined #perl6 |
| 08:40 |
|
pmurias |
fglock: chars or lines? |
| 08:40 |
|
fglock |
luqui: it would be nice to have a haskell backend :) |
| 08:40 |
|
fglock |
pmurias: chars, including spaces |
| 08:40 |
|
spinclad |
(so how would you say, this parameter is positional, named foo, aliased to $bar inside ? i think you can't) |
| 08:40 |
|
luqui |
fglock, is that a request? :-) |
| 08:40 |
|
luqui |
(I could get into that I think) |
| 08:41 |
|
fglock |
yay! |
| 08:41 |
|
luqui |
fglock, you're talking about _generating_ haskell code, right, not using an interpreter |
| 08:41 |
|
luqui |
? |
| 08:41 |
|
fglock |
luqui: it would be nice to have a Perl6-in-Perl6 that supported haskell AND parrot |
| 08:41 |
|
fglock |
yes, generating |
| 08:41 |
|
fglock |
so that we can bootstrap in haskell too |
| 08:42 |
|
luqui |
hm, okay, so what exactly is needed here? written in, generating to, etc? |
| 08:42 |
|
spinclad |
the code it generates could be a REPL tho if you feed it that... |
| 08:42 |
|
|
masak joined #perl6 |
| 08:42 |
|
luqui |
while i check out the massive pugs repo |
| 08:43 |
|
fglock |
luqui: kp6 emitters are written in MiniPerl6, and require a small native runtime |
| 08:43 |
|
luqui |
I should look at pugs/v6? |
| 08:43 |
|
spinclad |
pugs/v6/v6-KindaPerl6 |
| 08:44 |
|
fglock |
http://svn.pugscode.org/pugs/v[…]rl6/Visitor/Emit/ |
| 08:44 |
|
lambdabot |
Title: Revision 18630: /v6/v6-KindaPerl6/src/KindaPerl6/Visitor/Emit, http://tinyurl.com/ynqqq3 |
| 08:45 |
|
fglock |
there is a compiler overview in http://svn.pugscode.org/pugs/v6/docs/kp6.jpg |
| 08:47 |
|
agentzh |
fyi, here's a more complicated example for the PCR tracer (not for kp6 yet): http://agentzh.org/misc/tracer/langs/index.html ;) |
| 08:47 |
|
lambdabot |
Title: Test |
| 08:49 |
|
|
chris2_ joined #perl6 |
| 08:50 |
|
fglock |
agentzh: amazing |
| 08:50 |
|
agentzh |
:) |
| 08:51 |
|
agentzh |
actually it's all from your amazing PCR ;) |
| 08:51 |
|
pmurias |
agentzh: you could just show if simple atoms match or not withought displaying the trying stage |
| 08:52 |
|
pmurias |
it would quicken the pace of the trace |
| 08:52 |
|
agentzh |
pmurias: quite reasonable :) |
| 08:52 |
|
fglock |
the trying stage is nice to see, we could have both as an option then |
| 08:53 |
|
agentzh |
pmurias: i'll provide an option for the user to control the level |
| 08:53 |
|
agentzh |
and i'll also provide "random jump" rather than going step by step |
| 08:53 |
|
agentzh |
it's a TODO :) |
| 08:54 |
|
pmurias |
agentzh: what would the "random jump" do? jump to a random point? |
| 08:54 |
|
agentzh |
rigth |
| 08:54 |
|
agentzh |
*right |
| 08:54 |
|
agentzh |
clicking a char in the input text |
| 08:54 |
|
agentzh |
and the tracer will jump to that |
| 08:54 |
|
agentzh |
and i'll provide a "Prev" button to going toward the other direction ;) |
| 08:55 |
|
agentzh |
*for going |
| 08:55 |
|
pmurias |
and if it is possible to get there by multiple routes? |
| 08:55 |
|
agentzh |
always get there the "next" match |
| 08:55 |
|
agentzh |
*by the "next" match |
| 08:55 |
|
luqui |
fglock, what is a complete backend for reference? |
| 08:56 |
|
fglock |
Perl5 is the most complete |
| 08:56 |
|
pmurias |
or Perl5Regex? |
| 08:56 |
|
luqui |
wow agentzh, that's awesome |
| 08:57 |
|
fglock |
yes, Perl5Regex extends Perl5 |
| 08:57 |
|
|
iblechbot joined #perl6 |
| 08:57 |
|
agentzh |
luqui: i hope p5 regex engine will provide that as well ;) |
| 08:57 |
|
agentzh |
luqui: so will PGE ;) |
| 09:00 |
|
|
`nipra joined #perl6 |
| 09:00 |
|
agentzh |
folks, feel free to hack on PCR/tracer/*.js and PCR/util/gen-tracer-view.pl directly :) |
| 09:01 |
|
luqui |
how do I run kp6? |
| 09:01 |
|
agentzh |
the tracer (generator) is already in the pugs repos |
| 09:02 |
|
fglock |
$ perl script/kp6 -Bperl5rx <<< ' say "hi" ' |
| 09:02 |
|
fglock |
-Cast shows the AST |
| 09:03 |
|
luqui |
excellent |
| 09:03 |
|
fglock |
though you may want to process the AST before emitting, there are several options for that |
| 09:05 |
|
fglock |
eg: $ perl script/kp6 --do=Global -Cast <<< ' say "hi" ' |
| 09:06 |
|
fglock |
the options are the names of the files in src/KindaPerl6/Visitor/* |
| 09:08 |
|
luqui |
is the visitor recursion explicit |
| 09:08 |
|
luqui |
through .emit? |
| 09:08 |
|
luqui |
hmm, looks like no |
| 09:09 |
|
fglock |
Traverse.pm takes care of that by default, unless you return a processed subtree |
| 09:10 |
|
luqui |
I don't understand the purpose of the if $node_name eq 'CompUnit' section of Visitor/Global.pm |
| 09:11 |
|
fglock |
it's the Node class name (that's because MiniPerl6 didn't have enough introspection) |
| 09:11 |
|
fglock |
it will go away after bootstrap |
| 09:11 |
|
luqui |
no, I mean the whole block's reason for existence |
| 09:11 |
|
fglock |
looking |
| 09:11 |
|
luqui |
looks like the identity... |
| 09:13 |
|
fglock |
yes, it seems so |
| 09:14 |
|
pmurias |
luqui++ #code cleanup |
| 09:16 |
|
luqui |
what is the level of self-modification allowed by kp6? |
| 09:16 |
|
luqui |
i.e. can you mess with the global pad at runtime etc? |
| 09:16 |
|
fglock |
yes |
| 09:17 |
|
fglock |
if you can't, it's probably a bug |
| 09:17 |
|
luqui |
okay, so my backend will be "sortof" interpreted |
| 09:17 |
|
luqui |
I was wondering whether I could hope to have a 1-1 mapping between perl funcs and haskell (top-level) funcs |
| 09:18 |
|
luqui |
how about local pads? |
| 09:18 |
|
luqui |
%MY<foo> = 42; |
| 09:18 |
|
fglock |
re global pad, see src/KindaPerl6/Visitor/Namespace.pm |
| 09:19 |
|
fglock |
it's backend-specific, in Perl 5 local pads are objects |
| 09:19 |
|
fglock |
mapped into native closures |
| 09:19 |
|
luqui |
hmm, how do I run multiple --do args in sequence? |
| 09:19 |
|
fglock |
but it also uses native pads |
| 09:19 |
|
fglock |
with commas |
| 09:20 |
|
pmurias |
luqui: --do Global,...,EmitPerl5 |
| 09:20 |
|
luqui |
k |
| 09:21 |
|
fglock |
hmm - I get an error with $ perl script/kp6 --do=Global,Namespace -Cast <<< ' say "hi" ' |
| 09:21 |
|
luqui |
okay, I'm just seeing what amount of "nativeness' I can compile to |
| 09:21 |
|
luqui |
the more native, the better haskell's gc can perform |
| 09:21 |
|
fglock |
it should be able to desugar almost everything to arrays and hashes |
| 09:22 |
|
luqui |
I kinda don't want it to do that for locals though; i.e. I'd like the name of a local to be able to be forgotten |
| 09:22 |
|
|
weinig joined #perl6 |
| 09:22 |
|
fglock |
luqui: how about reuse Pugs infrastructure? |
| 09:22 |
|
fglock |
runtime |
| 09:23 |
|
luqui |
would that help anything? |
| 09:23 |
|
fglock |
I don't know, just asking |
| 09:24 |
|
luqui |
unless it has been significantly cleaned up, I kinda don't want to |
| 09:24 |
|
luqui |
(but it has been a long time since I've seen it) |
| 09:24 |
|
luqui |
there were way too many special cases for features implemented all over the place; I wouldn't really know which ones were doing what |
| 09:24 |
|
luqui |
(and it had the same problem with pads not forgetting variable names) |
| 09:24 |
|
luqui |
okay. if it helps the bootstrap process that will work, but if it's only the amount of work for me, I think I'd rather not |
| 09:25 |
|
fglock |
restarting from scratch is good |
| 09:26 |
|
fglock |
(you reuse the experience) |
| 09:37 |
|
luqui |
fglock, does kp6 run like ruby... i.e. there are not multiple phases? |
| 09:38 |
|
luqui |
(judging from: foo(); sub foo() { say 'hi' } ) |
| 09:38 |
|
|
gorax` joined #perl6 |
| 09:38 |
|
fglock |
not sure what you mean - one-pass compilation? |
| 09:39 |
|
luqui |
no, more like, is sub foo() { say 'hi' } exactly equivalent to our &foo := sub () { say 'hi' } |
| 09:39 |
|
luqui |
or is there like an implicit BEGIN around it? |
| 09:39 |
|
pmurias |
luqui: it's a bug |
| 09:40 |
|
pmurias |
or rather something not implemented yet |
| 09:40 |
|
fglock |
both - there is a BEGIN around our &foo := sub () { say 'hi' } |
| 09:40 |
|
fglock |
looking |
| 09:43 |
|
pmurias |
luqui: kp6 support BEGIN blocks |
| 09:43 |
|
pmurias |
*supports |
| 09:44 |
|
fglock |
it's broken |
| 09:44 |
|
luqui |
I opt to ignore them for now :-) |
| 09:44 |
|
fglock |
thanks |
| 09:45 |
|
fglock |
the infrastructure is there - it's fixable |
| 09:49 |
|
fglock |
kp6: my $x; say $x; BEGIN { $x = 123 } |
| 09:49 |
|
exp_evalbot |
r18630: OUTPUT[123] |
| 09:50 |
|
fglock |
I think subroutine serialization is broken |
| 09:56 |
|
pmurias |
fglock: provisional calls are not implemented yet |
| 09:59 |
|
fglock |
kp6: my &x; sub y { say 123 }; x(); BEGIN { &x := &y } |
| 09:59 |
|
exp_evalbot |
r18630: OUTPUT[Syntax error serializing BEGIN block, after position 8 in: $Code_x = ] |
| 10:07 |
|
|
sclv joined #perl6 |
| 10:09 |
|
|
lyokato joined #perl6 |
| 10:09 |
|
luqui |
kp6: my @x = (1,2,3); say @y |
| 10:09 |
|
luqui |
er |
| 10:09 |
|
exp_evalbot |
r18631: OUTPUT[syntax error at position 6, line 1 column 6:my @x = (1,2,3); say @ ^ HERE] |
| 10:09 |
|
luqui |
kp6: my @x = (1,2,3); say @x |
| 10:09 |
|
exp_evalbot |
r18631: OUTPUT[syntax error at position 6, line 1 column 6:my @x = (1,2,3); say @ ^ HERE] |
| 10:10 |
|
fglock |
kp6: my @x = [1,2,3]; say @x |
| 10:10 |
|
exp_evalbot |
r18631: OUTPUT[1 2 3] |
| 10:10 |
|
fglock |
List is not implemented |
| 10:11 |
|
fglock |
adding to TODO |
| 10:20 |
|
moritz_ |
agentzh: the tracer is _so_ cool |
| 10:20 |
|
moritz_ |
agentzh: I |
| 10:20 |
|
moritz_ |
agentzh: I'm waiting for the web interface breathlessly |
| 10:21 |
|
moritz_ |
ie where you can enter your own rules and text to match |
| 10:21 |
|
agentzh |
moritz_: that will require a server-side mechanism ;) |
| 10:21 |
|
moritz_ |
agentzh: I know ;) |
| 10:21 |
|
agentzh |
moritz_: unless someone ports PCR over to JS ;) |
| 10:22 |
|
moritz_ |
agentzh: server side is better ;) |
| 10:22 |
|
agentzh |
*nod* |
| 10:22 |
|
fglock |
agentzh: that's a plan |
| 10:22 |
|
agentzh |
fglock: really? |
| 10:22 |
|
agentzh |
fglock: porting PCR to JS ? |
| 10:22 |
|
moritz_ |
agentzh: but if there is a simple command line interface I might write a CGI wrapper for it |
| 10:22 |
|
fglock |
agentzh: writing a JS backend to MP6 or KP6 |
| 10:22 |
|
agentzh |
fglock: cool |
| 10:23 |
|
agentzh |
moritz_: there is :) |
| 10:23 |
|
agentzh |
moritz_: see the POD in PCR/util/gen-tracer-view.pl for details :) |
| 10:23 |
|
moritz_ |
agentzh: I'll look at it as soon as I have the tuits |
| 10:23 |
|
agentzh |
moritz_: great :) |
| 10:23 |
|
agentzh |
moritz_: i'm blogging about this tool right now ;) |
| 10:23 |
|
agentzh |
moritz_: will post it to audrey's blog site soon |
| 10:24 |
|
moritz_ |
YaY |
| 10:24 |
|
agentzh |
:) |
| 10:25 |
|
luqui |
kp6: { 1 => 2 }.{1} |
| 10:25 |
|
exp_evalbot |
r18631: OUTPUT[no method 'APPLY' in Class 'Pair' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 132 KindaPerl6::Runtime::Perl5::MOP::__ANON__('KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x81...', 'APPLY') called at |
| 10:25 |
|
exp_evalbot |
..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 36 main::DISPATCH('KindaPerl6::Runtime::Perl5:...] |
| 10:26 |
|
luqui |
how do you do hashes? |
| 10:27 |
|
moritz_ |
kp6: my %h={a => b}; say %h{"a"} |
| 10:27 |
|
exp_evalbot |
r18631: OUTPUT[DISPATCH: calling APPLY on invalid object:$VAR1 = {}; at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 33 main::DISPATCH('undef', 'APPLY') called at - line 22] |
| 10:27 |
|
moritz_ |
I thought fglock++ fixed that bug yesterday |
| 10:28 |
|
luqui |
also, how do I determine variable scope from ast? |
| 10:29 |
|
luqui |
it doesn't look like it's coded |
| 10:29 |
|
fglock |
kp6: my %h={a => "b"}; say %h{"a"} |
| 10:29 |
|
exp_evalbot |
r18631: OUTPUT[b] |
| 10:29 |
|
luqui |
oh there it is |
| 10:29 |
|
luqui |
pad => ::Pad(...) |
| 10:30 |
|
luqui |
kp6: {a => "b"}.{"a"} |
| 10:30 |
|
exp_evalbot |
r18631: OUTPUT[no method 'APPLY' in Class 'Pair' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 132 KindaPerl6::Runtime::Perl5::MOP::__ANON__('KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x86...', 'APPLY') called at |
| 10:30 |
|
exp_evalbot |
..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 36 main::DISPATCH('KindaPerl6::Runtime::Perl5:...] |
| 10:30 |
|
|
BooK_ joined #perl6 |
| 10:31 |
|
fglock |
{a => "b"}{"a"} |
| 10:31 |
|
fglock |
kp6: {a => "b"}{"a"} |
| 10:31 |
|
exp_evalbot |
r18631: OUTPUT[no method 'LOOKUP' in Class 'Pair' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 132 KindaPerl6::Runtime::Perl5::MOP::__ANON__('KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x83...', 'LOOKUP', |
| 10:31 |
|
exp_evalbot |
..'KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x83...') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Run...] |
| 10:31 |
|
fglock |
kp6: {a => "b", x => "y"}{"a"} |
| 10:31 |
|
exp_evalbot |
r18631: OUTPUT['b'] |
| 10:32 |
|
moritz_ |
so multiple pairs form a hash, and hash lookup works? |
| 10:32 |
|
fglock |
yes |
| 10:32 |
|
moritz_ |
but pair lookup doesnt |
| 10:32 |
|
fglock |
that's easy to fix :P |
| 10:33 |
|
fglock |
I'm just adding to TODO for now |
| 10:36 |
|
luqui |
isn't there a perl prelude? |
| 10:36 |
|
luqui |
it seems odd to have both print and say in the platform prelude |
| 10:36 |
|
luqui |
for example... |
| 10:38 |
|
fglock |
src/KindaPerl6/Runtime/Perl6/Prelude.pm |
| 10:38 |
|
fglock |
we can move &say() to there |
| 10:39 |
|
fglock |
luqui: the reason is that we didn't have "\n" until recently |
| 10:39 |
|
luqui |
aha |
| 10:44 |
|
fglock |
kp6: my @x = (1,2,3); say @x |
| 10:44 |
|
exp_evalbot |
r18633: OUTPUT[1 2 3] |
| 10:48 |
|
fglock |
kp6: my $x = gather { while 1 { take 42 } }; say $x[5]; |
| 10:48 |
|
exp_evalbot |
r18634: OUTPUT[42] |
| 10:48 |
|
luqui |
fglock++ (goes without saying) |
| 10:50 |
|
fglock |
kp6: my $x = gather { while 1 { print "thinking... "; take 42 } }; say $x[5]; |
| 10:50 |
|
exp_evalbot |
r18634: OUTPUT[thinking... thinking... thinking... thinking... thinking... thinking... 42] |
| 10:52 |
|
luqui |
wait... what? |
| 10:52 |
|
luqui |
oh |
| 10:53 |
|
luqui |
okay |
| 10:53 |
|
luqui |
I read that as while 1 { take "thinking" }; take 42 |
| 10:53 |
|
luqui |
btw, how'd you do that!? |
| 10:54 |
|
luqui |
do a closure transform turning it into cps? |
| 10:54 |
|
luqui |
or use the scheme coro stuff? |
| 10:54 |
|
luqui |
or.. what? |
| 10:55 |
|
luqui |
oh, what backend is that on? |
| 10:56 |
|
fglock |
that's the Perl 5 backend |
| 10:56 |
|
fglock |
it uses Coro.pm |
| 10:57 |
|
luqui |
ahh that dark magic |
| 10:57 |
|
fglock |
turning it into cps was plan B |
| 10:58 |
|
* luqui |
thanks the lawd for ContT :-) |
| 11:10 |
|
fglock |
otoh, transforming to closures would make it very portable |
| 11:26 |
|
agentzh |
new journal entry: http://pugs.blogs.com/pugs/200[…]raphical-tra.html |
| 11:26 |
|
lambdabot |
Title: Pugs: A graphical tracer for Perl 6 regexes based on PCR |
| 11:26 |
|
agentzh |
comments welcome :) |
| 11:29 |
|
fglock |
perl5rx now passes all but 2 tests (junction and token-sym) |
| 11:30 |
|
agentzh |
fglock: great |
| 11:34 |
|
fglock |
we need eval() and try() in order to run ext/Test |
| 11:37 |
|
fglock |
kp6: say {a => "b"}{"a"} |
| 11:37 |
|
exp_evalbot |
r18636: OUTPUT[b] |
| 11:54 |
|
fglock |
kp6: say {a => "b"}.{"a"}, (1,2,3).[1], [1,2,3].[2] ; |
| 11:54 |
|
exp_evalbot |
r18639: OUTPUT[b23] |
| 11:56 |
|
fglock |
lunch & |
| 12:23 |
|
|
funktio joined #perl6 |
| 12:28 |
|
|
riffraff joined #perl6 |
| 12:41 |
|
|
mykhal joined #perl6 |
| 12:43 |
|
|
kanru joined #perl6 |
| 12:53 |
|
|
cmarcelo joined #perl6 |
| 13:07 |
|
moritz_ |
agentzh: are you still around? |
| 13:08 |
|
|
kyrbe joined #perl6 |
| 13:08 |
|
moritz_ |
or any other feather admin? |
| 13:09 |
|
|
kyrbe left #perl6 |
| 13:09 |
|
moritz_ |
agentzh++ changed the irc.pugscode.org redirect to the new URL, but it needs a /etc/init.d/apache2 reload |
| 13:10 |
|
|
iblechbot joined #perl6 |
| 13:19 |
|
moritz_ |
where is svnbot? |
| 13:19 |
|
|
pugs_svn joined #perl6 |
| 13:19 |
|
moritz_ |
I'll send the new one in again |
| 13:19 |
|
pugs_svn |
r18614 | moritz++ | [irclog] more template whacking |
| 13:19 |
|
pugs_svn |
r18615 | moritz++ | [irclog] channel indexes are cached as well |
| 13:19 |
|
pugs_svn |
r18616 | moritz++ | [irclog] don't send xhtml header for channel index (which isn't valid xhtml) |
| 13:19 |
|
pugs_svn |
r18617 | moritz++ | [irclog] fixed caching for channel index |
| 13:19 |
|
pugs_svn |
r18618 | moritz++ | [irclog] fixed previous commit. Hopefully. |
| 13:19 |
|
pugs_svn |
r18619 | agentz++ | PCR - added -Ilib to some of the examples |
| 13:19 |
|
pugs_svn |
r18620 | agentz++ | PCR - added tracer/*.js and util/gen-tracer-view.pl |
| 13:19 |
|
pugs_svn |
r18621 | agentz++ | PCR - fixed the .js paths in util/gen-tracer.view.pl |
| 13:20 |
|
moritz_ |
oups, it shouldn't replay all those that it missed :( |
| 13:20 |
|
|
pugs_svn joined #perl6 |
| 13:20 |
|
moritz_ |
sorry for the spam |
| 13:25 |
|
wolverian |
I didn't mind |
| 13:26 |
|
moritz_ |
good ;) |
| 13:28 |
|
|
ruz joined #perl6 |
| 13:39 |
|
|
pmurias joined #perl6 |
| 13:41 |
|
|
masak joined #perl6 |
| 13:53 |
|
|
TJCRI joined #perl6 |
| 14:08 |
|
wolverian |
agentzh, the regex tracing toolthingy is very very cool, nice work |
| 14:10 |
|
moritz_ |
indeed ;) |
| 14:10 |
|
|
fglock joined #perl6 |
| 14:14 |
|
pugs_svn |
r18641 | fglock++ | [kp6-perl5] remove say() from Runtime/Perl5 |
| 14:14 |
|
fglock |
TODO lists are nice when they work :) |
| 14:15 |
|
moritz_ |
fglock: especially if they work as "that's for _YOU_ TO DO" |
| 14:15 |
|
moritz_ |
;-) |
| 14:15 |
|
fglock |
code reviews are nice too |
| 14:15 |
|
fglock |
moritz_: heh |
| 14:16 |
|
moritz_ |
fglock: code reviews like that from luqui++ earlier today? |
| 14:16 |
|
fglock |
yes |
| 14:18 |
|
moritz_ |
so when I moved say() to Perlude.pm I just deleted the calling part from MOP.pm, but not the implementation? |
| 14:20 |
|
fglock |
hmm - I don't remember what was in MOP - looking |
| 14:21 |
|
moritz_ |
$meta_Value->add_method('say', ...) |
| 14:22 |
|
fglock |
ah, that shouldn't be there, I think |
| 14:23 |
|
fglock |
I need to review the spec about when to redirect (methods x subs) - what Sxx is that? |
| 14:24 |
|
|
toshinori joined #perl6 |
| 14:25 |
|
|
vbattsAtWork joined #perl6 |
| 14:28 |
|
fglock |
hmm - .arity counts required parameters - are parameters in pointy subs required by default? |
| 14:28 |
|
fglock |
ok, got it |
| 14:28 |
|
fglock |
fixing |
| 14:32 |
|
pugs_svn |
r18642 | fglock++ | [kp6] Grammar - params are required, unless specified |
| 14:34 |
|
|
weinig joined #perl6 |
| 14:37 |
|
|
vbattsAtWork left #perl6 |
| 14:43 |
|
|
amnesiac joined #perl6 |
| 14:45 |
|
|
franck____ joined #perl6 |
| 14:56 |
|
fglock |
people smoke a lot in Portugal :( |
| 14:58 |
|
moritz_ |
that's hard for non-smokers |
| 14:58 |
|
moritz_ |
or people with lungs, in general |
| 14:59 |
|
fglock |
except for the subway, they smoke everywhere |
| 15:01 |
|
moritz_ |
smoke--- |
| 15:01 |
|
moritz_ |
(smoke testing)++ |
| 15:01 |
|
fglock |
:) |
| 15:03 |
|
fglock |
we need a bootstrapping script |
| 15:03 |
|
fglock |
I wish I could understand the Makefile :P |
| 15:04 |
|
moritz_ |
kp6: my $var; if defined($var) { say "not ok" } else { say "ok" } |
| 15:04 |
|
exp_evalbot |
r18642: OUTPUT[ok] |
| 15:05 |
|
fglock |
I think the top_targets section needs to be plit |
| 15:05 |
|
fglock |
split |
| 15:05 |
|
* moritz_ |
is a Makefile noob :( |
| 15:06 |
|
fglock |
I'll try and see if it works |
| 15:07 |
|
moritz_ |
if I change t/01-sanity/07-defined.t to call 'defined($var)' instead of 'defined $var', the test passes for kp6 |
| 15:07 |
|
moritz_ |
should I commit that change? |
| 15:08 |
|
moritz_ |
I think it's a more general question: should the 01-sanity tests have very, very simple syntax? |
| 15:11 |
|
masak |
while I remember it, there's a mis-attribution going on over at planetsix.perl.org in which blog posts by avar++ and agentzh++ all get attributed to audreyt |
| 15:11 |
|
masak |
maybe someone with privs should rename that blog to just "Pugs" or something |
| 15:12 |
|
moritz_ |
or "perl6 dev" or something |
| 15:12 |
|
moritz_ |
it's not all pugs ;) |
| 15:12 |
|
masak |
moritz_: ack |
| 15:15 |
|
pugs_svn |
r18643 | fglock++ | [kp6] added KP6-BOOT target (compiles KP6-KP6 using KP6-MP6) |
| 15:16 |
|
fglock |
moritz_: I was looking for the spec on sub/method calls, then I got distracted |
| 15:16 |
|
|
dlocaus joined #perl6 |
| 15:16 |
|
fglock |
it's probably better to just fix the impementation |
| 15:16 |
|
fglock |
implementation |
| 15:17 |
|
fglock |
I haven't found the docs yet :P |
| 15:18 |
|
fglock |
kp6: my $var; if defined: $var { say "not ok" } else { say "ok" } |
| 15:18 |
|
exp_evalbot |
r18643: OUTPUT[syntax error at position 19, line 1 column 19:my $var; if defined: $var { say "not ok" } else { say "ok"  ^ HERE] |
| 15:19 |
|
|
rlb3_work joined #perl6 |
| 15:21 |
|
moritz_ |
fglock: ok, never mind then |
| 15:21 |
|
fglock |
moritz_: that's fixable |
| 15:21 |
|
moritz_ |
fglock: yes, but probably not worth the trouble if we switch to STD.pm anyway |
| 15:22 |
|
|
mr_ank_ joined #perl6 |
| 15:29 |
|
pugs_svn |
r18644 | moritz++ | [kp6] more verbose error messages in Gramar::Sub |
| 15:30 |
|
moritz_ |
fglock: I'm looking at it anyway... in which of the Grammar files can I find subroutine calles? |
| 15:31 |
|
fglock |
Grammar.pm:527 - but it looks right |
| 15:32 |
|
moritz_ |
yes, it does |
| 15:37 |
|
pmurias |
moritz_: 01-sanity tests should test for things which are required for running Test.pm |
| 15:37 |
|
pmurias |
so they should have as simple syntax as Test.pm uses |
| 15:37 |
|
moritz_ |
ok |
| 15:38 |
|
fglock |
moritz_: the error is a bad interaction between "if" and "apply" |
| 15:38 |
|
fglock |
apply is too greedy |
| 15:41 |
|
pugs_svn |
r18645 | moritz++ | [irclog] a few small template tweaks |
| 15:44 |
|
pmurias |
fglock: how should i test in mp6 if an array is empty? |
| 15:44 |
|
fglock |
pmurias: looking |
| 15:46 |
|
pmurias |
i'm thinking of wraping access to variables with a $.namespace with ::BOX(...) which would turn undef into ::Undef instances |
| 15:46 |
|
|
dlocaus joined #perl6 |
| 15:49 |
|
pugs_svn |
r18646 | moritz++ | [irclog] caching of all output pages except the one today |
| 15:49 |
|
fglock |
pmurias: if @a ... should work |
| 15:49 |
|
fglock |
pmurias: not sure, but aren't you hiding a bug? |
| 15:50 |
|
ruoso |
pmurias, I would rather implement the scope and namespace in kp6 level instead |
| 15:50 |
|
ruoso |
instead of trusting in p5 namespace and scope |
| 15:51 |
|
pugs_svn |
r18647 | moritz++ | [irclog] fixed previous commit, it was caching too much |
| 15:51 |
|
pmurias |
ruoso: yes, it would be better |
| 15:52 |
|
pmurias |
in the case of p5 namespaces, algthough kp6 scope could be much slower |
| 15:53 |
|
pmurias |
the problem occurs only when accesing namespaces |
| 15:54 |
|
pugs_svn |
r18648 | fglock++ | [kp6-kp6] fixed boot target; added missing files |
| 15:55 |
|
fglock |
hmm - $ KP6_TARGET=KP6-BOOT perl Makefile.PL ; make # nothing useful happens |
| 15:59 |
|
fglock |
decommute & |
| 16:03 |
|
* pmurias |
should be focusing on his Polish Olympiad in Informatics tasks, but kp6 keeps distracting him ;) |
| 16:07 |
|
* moritz_ |
should do other things as well |
| 16:07 |
|
moritz_ |
but most of them aren't that much fun |
| 16:15 |
|
|
justatheory joined #perl6 |
| 16:27 |
|
|
drupek1225 joined #perl6 |
| 16:31 |
|
|
fglock joined #perl6 |
| 16:36 |
|
|
bkaney joined #perl6 |
| 16:38 |
|
fglock |
an Olympiad in Informatics looks cool |
| 16:39 |
|
fglock |
I've got a working Makefile.PL :) |
| 16:41 |
|
moritz_ |
that's cool as well ;) |
| 16:42 |
|
|
shlomif joined #perl6 |
| 16:47 |
|
fglock |
the problem was the directory names in Makefile.PL were wrong |
| 16:54 |
|
pugs_svn |
r18649 | fglock++ | [kp6] working kp6-kp6 bootstrap script (4 files fail to compile): |
| 16:54 |
|
pugs_svn |
r18649 | fglock++ | $ KP6_TARGET=KP6-BOOT perl Makefile.PL ; make |
| 16:55 |
|
moritz_ |
fglock: do I need a 'forcerecompile' to get it working? |
| 16:55 |
|
|
weinig joined #perl6 |
| 16:57 |
|
fglock |
kp6-kp6 doesn't work yet |
| 16:58 |
|
moritz_ |
I meant the compilation process ;) |
| 16:59 |
|
pugs_svn |
r18650 | fglock++ | [kp6-kp6] move kp6.p6 to src-script/kp6-kp6.pl; it compiles to script/kp6-kp6.pl |
| 17:00 |
|
fglock |
moritz_: not sure - just touch some file in src/ and see if it works |
| 17:03 |
|
moritz_ |
fglock: seems like, yes |
| 17:04 |
|
fglock |
great - I'll take a look at the compilation failures |
| 17:08 |
|
pugs_svn |
r18651 | fglock++ | [kp6-kp6] changed Makefile.PL so that kp6-kp6 really compiles using itself |
| 17:13 |
|
|
weinig joined #perl6 |
| 17:20 |
|
|
Psyche^ joined #perl6 |
| 17:21 |
|
pugs_svn |
r18652 | fglock++ | [kp6] missing semicolon in Visitor/Emit/Perl5Regex.pm (not a bug in MP6) |
| 17:22 |
|
moritz_ |
make: *** No rule to make target `kp6-kp6.pl', needed by `all'. Stop. |
| 17:25 |
|
pugs_svn |
r18653 | moritz++ | [kp6] Makefile.PL: fixed path to kp6-kp6.pl |
| 17:29 |
|
|
dlocaus joined #perl6 |
| 17:30 |
|
fglock |
oops - i also fixed that |
| 17:30 |
|
fglock |
I'll try to merge |
| 17:31 |
|
moritz_ |
did I forget to 'svn up'? |
| 17:32 |
|
fglock |
no, I didn't commit |
| 17:32 |
|
pugs_svn |
r18654 | fglock++ | [kp6-kp6] updated MANIFEST |
| 17:32 |
|
fglock |
moritz_: no problem :) |
| 17:32 |
|
moritz_ |
fglock: ok ;) |
| 17:34 |
|
pugs_svn |
r18655 | fglock++ | [kp6-perl5] missing file |
| 17:34 |
|
dlocaus |
http://svn.pugscode.org/pugs/v[…]tor/Emit/Perl5.pm |
| 17:34 |
|
dlocaus |
For class Val::Int; in the return string where is $.int defined? |
| 17:34 |
|
lambdabot |
http://tinyurl.com/yqzgby |
| 17:39 |
|
fglock |
dlocaus: Val::Int is declared in AST.pm; the emitter just adds new methods |
| 17:40 |
|
dlocaus |
humm, neat. So a class can be redefined... |
| 17:40 |
|
fglock |
yes, classes are "open" |
| 17:42 |
|
fglock |
the kp6-kp6 problem with KindaPerl6::Grammar::Term is a perltidy warning - may be not an error |
| 17:57 |
|
pugs_svn |
r18656 | fglock++ | [kp6] added --noperltidy option to script/kp6 (default is --perltidy) |
| 18:00 |
|
pugs_svn |
r18657 | fglock++ | [kp6] fixed last commit |
| 18:07 |
|
fglock |
hmm - perltidy seems to be confused because it found a '/' inside a regex |
| 18:07 |
|
|
zostay_ joined #perl6 |
| 18:09 |
|
|
jisom joined #perl6 |
| 18:11 |
|
fglock |
fixing |
| 18:13 |
|
dlocaus |
I'm a bit confused on something... why was the AST/Emit code writin in perl6? |
| 18:14 |
|
dlocaus |
I also admit to being a bit confused on how this bootstrapping also works. |
| 18:15 |
|
moritz_ |
dlocaus: the idea is that if the compiler can compile itself, you can be pretty sure it's not too buggy |
| 18:15 |
|
moritz_ |
dlocaus: so you write the compiler in the same language as it implements |
| 18:16 |
|
moritz_ |
dlocaus: but since p6 is a rather complex and big language, fglock++ started with a small subset, and called it "MiniPerl6" or mp6 |
| 18:16 |
|
dlocaus |
so the having the compiler compile itself, is an inherant self-test. |
| 18:16 |
|
moritz_ |
dlocaus: right |
| 18:16 |
|
moritz_ |
dlocaus: and of the initial compiler there was a perl6 and a miniperl6 version |
| 18:16 |
|
moritz_ |
perl5 and miniperl6, sorry |
| 18:16 |
|
fglock |
dlocaus: yes |
| 18:16 |
|
|
pmurias joined #perl6 |
| 18:16 |
|
dlocaus |
if mp6 is writtin in perl5, kp6 uses mp6 to produce p6/p5/parrot code, how do you know that mp6 is written correctly? |
| 18:17 |
|
fglock |
dlocaus: mp6 is written in mp6 |
| 18:17 |
|
moritz_ |
dlocaus: mp6 is written in mp6, only an initial version was written in perl5 |
| 18:17 |
|
pmurias |
dlocaus: and it isn't written completly correctly ;) |
| 18:17 |
|
* dlocaus |
blows a brain fuse. |
| 18:17 |
|
fglock |
moritz_: the initial version was in v6.pm :) |
| 18:17 |
|
moritz_ |
dlocaus: but it emits perl5 (and parrot, I think) |
| 18:17 |
|
moritz_ |
fglock: ok ;) |
| 18:18 |
|
moritz_ |
dlocaus: so on top of that fairly simple compiler, kp6 is build |
| 18:18 |
|
fglock |
and v6.pm was written with PCR, which was written with lrep... |
| 18:18 |
|
moritz_ |
.oO( long bootstrapping chain ;) |
| 18:19 |
|
fglock |
lrep was written with lrep, but the very first version was Perl 5 |
| 18:19 |
|
fglock |
log, long ago |
| 18:19 |
|
fglock |
long |
| 18:19 |
|
dlocaus |
so on the way to a full p6 version is as moritz_ said a long bootstrapping chain, each iteration of mp6 -> kp6 -> (almost there perl6) x N -> p6. |
| 18:20 |
|
moritz_ |
dlocaus: yes, that's one of the ways |
| 18:20 |
|
moritz_ |
dlocaus: another one is the bottom-up path that the parrot folks take |
| 18:21 |
|
moritz_ |
and yet another one is pugs, a fairly top-down approach |
| 18:21 |
|
|
barney joined #perl6 |
| 18:21 |
|
fglock |
v6 is middle-up-bottom |
| 18:22 |
|
dlocaus |
v6? |
| 18:22 |
|
|
perlbot joined #perl6 |
| 18:22 |
|
fglock |
v6 as in v6/v6-KindaPerl6 |
| 18:22 |
|
moritz_ |
dlocaus: http://search.cpan.org/~fglock/v6-0.020/lib/v6.pm |
| 18:22 |
|
lambdabot |
Title: v6 - An experimental Perl 6 implementation - search.cpan.org |
| 18:23 |
|
moritz_ |
fglock: I thought you meant v6.pm ;) |
| 18:23 |
|
fglock |
it's the parent project for Perl6-in-Perl6 |
| 18:23 |
|
fglock |
that also :) |
| 18:24 |
|
fglock |
buy food & |
| 18:27 |
|
pmurias |
dlocaus: another reason for writing the compiler in perl6 is that you get to use a cool language |
| 18:29 |
|
dlocaus |
I'm trying to figure out what happened to the details. |
| 18:30 |
|
dlocaus |
who is responsible for sorting out the name spaces? who is responsible for finding variables (global/file/lexical), who is responisble for sorting out the calling chain? who is responisble for handing overloaded class function calls. |
| 18:31 |
|
|
Torment joined #perl6 |
| 18:33 |
|
|
blindfish joined #perl6 |
| 18:34 |
|
moritz_ |
dlocaus: I'm sure fglock will give you a better answer than I'm able to when he's back |
| 18:35 |
|
dlocaus |
moritz_: I'm reading up on the PIR. ;) |
| 18:37 |
|
|
dduncan joined #perl6 |
| 18:38 |
|
pmurias |
dlocaus: who or what? |
| 18:38 |
|
dlocaus |
pmurias: sorry, what is responsible... for .. :) |
| 18:39 |
|
pmurias |
overloaded class function calls in the c++ sense ? |
| 18:39 |
|
dlocaus |
yes. |
| 18:39 |
|
dlocaus |
virtual functions. |
| 18:40 |
|
moritz_ |
is that MOP.pm? |
| 18:40 |
|
pmurias |
Multi |
| 18:40 |
|
pmurias |
src/KindaPerl6/Runtime/Perl6/Multi.pm |
| 18:40 |
|
pmurias |
it's in very early stages |
| 18:41 |
|
pmurias |
sorting out the calling chain == caller? |
| 18:41 |
|
fglock |
dlocaus: would you split that into small easy questions? |
| 18:41 |
|
moritz_ |
pmurias: I think dlocaus is refering to inheritance |
| 18:41 |
|
dlocaus |
:) |
| 18:42 |
|
pmurias |
dlocaus: MOP is responsible for inheritance |
| 18:42 |
|
fglock |
dlocaus: when you find out you should write it down in docs/ |
| 18:42 |
|
moritz_ |
;) |
| 18:43 |
|
dlocaus |
I'm looking at the Visitor/Emit code, and reading up a bit on the PIR, trying to find where issues of inheritance, overloading, variable namespace resolution and other ugly details of programming (the neato stuff) is located. |
| 18:43 |
|
fglock |
now get to have the food cooked |
| 18:43 |
|
pmurias |
if you can't find out something, someone else can fill it in |
| 18:43 |
|
moritz_ |
dlocaus: since parrot implements quasi all of p6's object model, you don't have to do that manually |
| 18:44 |
|
pmurias |
dlocaus: you might want to check out the PAST |
| 18:44 |
|
moritz_ |
dlocaus: at least the inheritance part |
| 18:44 |
|
|
IllvilJa joined #perl6 |
| 18:44 |
|
fglock |
the notebook fits nicely over the microwave (I wonder if the microwave interferes with the gprs modem) |
| 18:44 |
|
dlocaus |
so parrot is just a trimed down p6? abit uglier? |
| 18:45 |
|
moritz_ |
dlocaus: no, parrot is a virtual maschine |
| 18:45 |
|
pmurias |
for dynamic languages |
| 18:45 |
|
dlocaus |
sorry, parrots assembly language is a trimmed down p6? |
| 18:45 |
|
moritz_ |
dlocaus: _very_ much trimmed down - for example no regexes, no junctions, no ... |
| 18:45 |
|
[particle] |
dlocaus: parrot has a very expressive object model |
| 18:46 |
|
pmurias |
and a lot uglier |
| 18:46 |
|
fglock |
dlocaus: some of these things will need parrot-specific hacks (some of them are under-documented) |
| 18:46 |
|
fglock |
but #parrot people are sure willing to help |
| 18:46 |
|
dlocaus |
ah, ok. So parrot will be doing the "ugly" stuff that will make p6. |
| 18:47 |
|
pmurias |
PAST spec: pdds/draft/pdd26_ast.pod in the parrot repo |
| 18:47 |
|
moritz_ |
some of it, yes |
| 18:49 |
|
fglock |
dlocaus: Parrot implements most of the semantics; the compiler implements the syntax |
| 18:49 |
|
dlocaus |
so, kp6 emits (PIR + [PIR library calls]) to yield pure PIR, which in turn is converted to PASM. |
| 18:50 |
|
moritz_ |
dlocaus: yes, that's the plan |
| 18:50 |
|
moritz_ |
the PASM conversion is done by parrot as well, luckily |
| 18:50 |
|
dlocaus |
do you guys want me to write this up, run it past you (for mistake correction) and then put it some where? |
| 18:50 |
|
fglock |
I think pasm is deprecated; Parrot now just uses PIR directly |
| 18:51 |
|
fglock |
dlocaus: just add to the repository |
| 18:51 |
|
[particle] |
pir isn't converted to pasm |
| 18:51 |
|
moritz_ |
dlocaus: the other way round: first you commit it into the repo, then we can read it |
| 18:51 |
|
fglock |
it works like that |
| 18:51 |
|
[particle] |
and pasm isn't deprecated |
| 18:51 |
|
fglock |
[particle]: ok |
| 18:51 |
|
[particle] |
pasm is a human-readable form of bytecode |
| 18:51 |
|
moritz_ |
[particle]: but it can compiled to pasm, can't it? |
| 18:51 |
|
moritz_ |
s/can/can be/ |
| 18:51 |
|
[particle] |
currently, the pir->pasm converter isn't working |
| 18:51 |
|
|
r0bby joined #perl6 |
| 18:52 |
|
[particle] |
however, you will be able to convert pir to pasm before parrot 1.0 |
| 18:52 |
|
moritz_ |
so it converts to PBC directly right now? |
| 18:53 |
|
[particle] |
pir is compiled to pbc |
| 18:53 |
|
[particle] |
either in-memory, then executed by the vm, or saved on-disk |
| 18:56 |
|
|
barney joined #perl6 |
| 18:58 |
|
|
rindolf joined #perl6 |
| 18:58 |
|
[particle] |
dlocaus: it's possible in the future that we can do a translation from kp6 ast to parrot ast, and have the parrot compiler toolkit handle the rest of the compilation |
| 18:59 |
|
[particle] |
however, currently the pct (parrot compiler toolkit) doesn't accept ast as input |
| 18:59 |
|
[particle] |
we've spoken about a yaml-based format for ast, though, so it's on our minds |
| 18:59 |
|
|
marmic joined #perl6 |
| 19:00 |
|
fglock |
[particle]: does it makes sense to compile to nqp? |
| 19:01 |
|
[particle] |
fglock: good question. lemme think about that |
| 19:01 |
|
dlocaus |
brb, nature is calling & |
| 19:01 |
|
moritz_ |
[particle]: does nqp implement the object model? |
| 19:02 |
|
fglock |
we can implement objects using hashes, like in kp6-perl5 |
| 19:02 |
|
moritz_ |
fglock: but then a big benefit of the parrot backend goes away |
| 19:02 |
|
[particle] |
(phone) |
| 19:03 |
|
|
justatheory joined #perl6 |
| 19:04 |
|
pmurias |
it should be possible to emit pir which creates past |
| 19:06 |
|
moritz_ |
pmurias: but why go through the trouble? |
| 19:07 |
|
moritz_ |
pmurias: the idea of PAST is that you don't have to write PIR |
| 19:07 |
|
moritz_ |
pmurias: if you don't take that advantage, why use it at all? |
| 19:07 |
|
pmurias |
moritz_: you write less pir |
| 19:08 |
|
pmurias |
and you can easily stop emiting pir when the yaml backend arrives |
| 19:09 |
|
pmurias |
i'm thinking of emiting the pir programaticly |
| 19:10 |
|
moritz_ |
pmurias: how do you mean? |
| 19:11 |
|
pmurias |
moritz_: i'll write an example |
| 19:11 |
|
fglock |
pmurias: it might work, emit PAST as yaml and then pipe through a PAST->PIR converter |
| 19:11 |
|
|
tlb joined #perl6 |
| 19:11 |
|
fglock |
when Parrot gets yaml input you just discard the filter |
| 19:12 |
|
pmurias |
fglock: i like this idea |
| 19:13 |
|
fglock |
eat & |
| 19:13 |
|
[particle] |
back |
| 19:14 |
|
[particle] |
i think the ultimate best place for the kp6-parrot hookup is via ast |
| 19:15 |
|
[particle] |
as far as yaml-based ast representation is concerned, we just need somebody with tuits |
| 19:15 |
|
[particle] |
our ast is specified, we just need basically a json-plus-objects subset of yaml to represent it |
| 19:15 |
|
[particle] |
we have a great tool for writing parsers already :) |
| 19:16 |
|
[particle] |
...so writing the ast parser shouldn't be hard |
| 19:16 |
|
Tene |
I have free evenings for the rest of the week, I just don't know how long it would take me to get up-to-speed on doing that. |
| 19:17 |
|
[particle] |
if you bounce over to irc.perl.org#parrot, we can talk to pmichaud, who has more details |
| 19:17 |
|
pmurias |
tired eyesight& |
| 19:17 |
|
barney |
I'd love to have a 'PAST in YAML' for Plumhead |
| 19:17 |
|
[particle] |
barney: i bet you would, considering how many ways you're compiling plumhead :) |
| 19:18 |
|
avar |
[particle]: What tool? PGE? |
| 19:18 |
|
[particle] |
yep |
| 19:18 |
|
barney |
Emit PIR that sets up a PAST data structure has it's charms, but not many |
| 19:18 |
|
avar |
I found everything but that highly confusing when I trued it |
| 19:19 |
|
avar |
*tied |
| 19:19 |
|
[particle] |
write a past in yaml parser using perl 6 grammar |
| 19:21 |
|
avar |
how is parrot doing now that it has objects? |
| 19:21 |
|
[particle] |
we're currently migrating the languages over to the new object model |
| 19:21 |
|
[particle] |
nqp has moved to using protoobjects |
| 19:21 |
|
avar |
what are those? |
| 19:22 |
|
[particle] |
my $x = Dog.new(); # 'Dog' is a protoobject |
| 19:22 |
|
[particle] |
i only have a protounderstanding of them, but it's like a normal object except less defined |
| 19:23 |
|
[particle] |
it responds to the methods on a normal object that don't need self to be defined |
| 19:23 |
|
avar |
Yeah p6 specific, I thought it had to do with parrot's object model |
| 19:23 |
|
[particle] |
.can() .WHAT() etc |
| 19:33 |
|
|
perlbot joined #perl6 |
| 19:38 |
|
|
perlbot joined #perl6 |
| 19:39 |
|
|
perlbot joined #perl6 |
| 20:11 |
|
|
fglock_ joined #perl6 |
| 20:15 |
|
pugs_svn |
r18658 | moritz++ | [irclog] 'fixed' location of at.png |
| 20:40 |
|
|
[particle] joined #perl6 |
| 20:43 |
|
pugs_svn |
r18659 | fglock++ | [kp6-kp6] "$ KP6_TARGET=KP6-BOOT perl Makefile.PL; make" without errors; uses --noperltidy |
| 21:01 |
|
|
daxim_ joined #perl6 |
| 21:01 |
|
pugs_svn |
r18660 | fglock++ | Created v6-Onion placeholder - v6/v6-Onion/README |
| 21:08 |
|
moritz_ |
is the plan for onion to start as a copy of kp6, and keep on working with that while using the old kp6 as a compiler? |
| 21:10 |
|
|
bkaney left #perl6 |
| 21:10 |
|
pugs_svn |
r18661 | dlo++ | This documents a discussion of where object method overload and other code to resolve namespaces is the duty of parrot. |
| 21:11 |
|
dlocaus |
moritz_: [particle]: fglock_: I documented the discussion from earlier today. FYI. |
| 21:12 |
|
moritz_ |
dlocaus: I'm reading it right now |
| 21:13 |
|
|
weinig joined #perl6 |
| 21:14 |
|
moritz_ |
dlocaus: I think you confused some "is" and some "should be" statements |
| 21:14 |
|
dlocaus |
moritz_: looking |
| 21:15 |
|
moritz_ |
dlocaus: for example the inheritance and multi method dispatching are both handled in the kp6 compiler/runtime, not in the parrot/whatever emiters right now |
| 21:16 |
|
moritz_ |
dlocaus: the parrot backend could do the inheritance thingy (which correspondends to virtual methods in C++), but right now it doesn't implement it at all |
| 21:18 |
|
dlocaus |
moritz_: ok, I'll update the document. |
| 21:18 |
|
moritz_ |
dlocaus: btw the scoping (lexical/local/global vars) is, at least partially, implemented in the Runtime/Perl{5,6}/Pad.pm |
| 21:19 |
|
moritz_ |
.oO( and I see that you like the irc logger ;-) |
| 21:21 |
|
dlocaus |
cya (cover your butt) |
| 21:22 |
|
|
TJCRI joined #perl6 |
| 21:22 |
|
dlocaus |
also, it helps people remember "what they said / what they ment" in the "context". Especially, when people may be "simplifing" things down a bit for the new guy. :) |
| 21:24 |
|
moritz_ |
;) |
| 21:25 |
|
moritz_ |
I find it quite hard sometimes to chose the right balance between simplicity and correctness |
| 21:26 |
|
moritz_ |
for example the perl5->v6->mp6->kp6->onion bootstrapping process is pretty hard to understand if you're not used to bootstrapping such things ;) |
| 21:26 |
|
dlocaus |
I'm finding it a bit difficult to write a document that will be around for "months" yet has to deal with past, current, and future problems that have been fixed. How does one document "Well, it doesn't work right now, but we'll have it sorted out by and by". Which, when done, would invalidate part of the document. |
| 21:27 |
|
moritz_ |
dlocaus: you can always adapt or delete it |
| 21:28 |
|
moritz_ |
we all have to accept that what we do is imperfect, and that others will see that |
| 21:28 |
|
dlocaus |
moritz_: you can only adapt or delete it, if you know its there. Like the web, things tend to be a bit sticky. (I hate google for that reason, it doesn't invalidate information that has been superseded by more correct information; it just lumps everything together) |
| 21:30 |
|
moritz_ |
dlocaus: I agree. On the other hand 959 of what I say will be superseeded one day... |
| 21:30 |
|
moritz_ |
so I don't stop talking although most of it will be bullshit soon |
| 21:30 |
|
moritz_ |
because I want to say something, ocasionally ;) |
| 21:30 |
|
dlocaus |
:) |
| 21:32 |
|
* moritz_ |
looks for a fitting dilbert strip ;) |
| 21:33 |
|
moritz_ |
http://www.dilbert.com/comics/[…]2002715970926.gif |
| 21:33 |
|
lambdabot |
http://tinyurl.com/ytazzl |
| 21:33 |
|
moritz_ |
at least it mentions "eternal nothingness" ;) |
| 21:34 |
|
pugs_svn |
r18662 | dlo++ | with (moritz_)'s help, several confusions with what "should be / is" being done by what have been resolved. |
| 21:34 |
|
dlocaus |
moritz_: OMG. the last year of my last job. |
| 21:35 |
|
|
Limbic_Region joined #perl6 |
| 21:48 |
|
|
mr_ank joined #perl6 |
| 21:54 |
|
dlocaus |
moritz_: once the bootstrapping is done, will there be any need for the v6, mp6, kp6 code? |
| 21:55 |
|
moritz_ |
dlocaus: yes. For bug fixing and optimization |
| 21:57 |
|
moritz_ |
dlocaus: and there are ever recurring tasks... |
| 21:57 |
|
moritz_ |
for example perl 6 supports perl5 regexes... |
| 21:57 |
|
moritz_ |
but presents their captures in a perl6ish way |
| 21:58 |
|
moritz_ |
which means that each perl6 compiler that doesn't reimplement the p5 re engine has to translate p5 captures to p6 captures |
| 21:58 |
|
dlocaus |
moritz_: at sometime, are all these layers simplified into 1? |
| 21:58 |
|
moritz_ |
dlocaus: yes |
| 21:58 |
|
dlocaus |
moritz_: ok |
| 21:59 |
|
moritz_ |
dlocaus: actually when kp6 is bootstrapped and there is working parrot or p5 emitter, you won't need mp6 any more |
| 21:59 |
|
dlocaus |
moritz_: but kp6 requires mp6 and mp6 requires v6. |
| 22:00 |
|
avar |
isn't mp6 self-hosting? |
| 22:00 |
|
moritz_ |
dlocaus: it requires mp6 because it can't compile itself |
| 22:00 |
|
moritz_ |
avar: afaict yes |
| 22:00 |
|
moritz_ |
dlocaus: but when kp6 can compile itself to p5, you can just keep a p5 image of the kp6 compiler around |
| 22:01 |
|
* dlocaus |
blows another brain fuse. |
| 22:01 |
|
moritz_ |
dlocaus: that's all a bit confusing when you hear it the first time |
| 22:02 |
|
avar |
just think of how gcc does it:) |
| 22:02 |
|
|
toshinori joined #perl6 |
| 22:02 |
|
avar |
the compiler is written (in a subset of) perl 6 and is a program that can parse and run another subset of p6 |
| 22:03 |
|
moritz_ |
.oO( but don't think of GHC ;) |
| 22:04 |
|
dlocaus |
so, its not really a chicken and egg problem that everyone says, it is really an evolution solution? you start small, use something small to build something bigger, and repeat until done. |
| 22:04 |
|
moritz_ |
dlocaus: yes |
| 22:04 |
|
moritz_ |
dlocaus: that's why the new layer will be called "onion" |
| 22:04 |
|
moritz_ |
it has many shells (or whatever you call them in english) |
| 22:04 |
|
dlocaus |
layers. |
| 22:05 |
|
moritz_ |
right, layers |
| 22:05 |
|
moritz_ |
when I can't remember relatively easy words it's time to sleep |
| 22:05 |
|
moritz_ |
g'night everybody ;-) |
| 22:05 |
|
dlocaus |
moritz_: night, and ty. |
| 22:13 |
|
|
ofer joined #perl6 |
| 22:13 |
|
|
dlocaus left #perl6 |
| 22:14 |
|
|
toshinori joined #perl6 |
| 22:18 |
|
|
drupek1225 joined #perl6 |
| 22:19 |
|
|
toshinori joined #perl6 |
| 22:31 |
|
|
ofer0 joined #perl6 |
| 22:46 |
|
|
IllvilJa joined #perl6 |
| 22:48 |
|
|
weinig joined #perl6 |