Camelia, the Perl 6 bug

IRC log for #perl6, 2007-10-24

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time 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/v6/v6-Ki​ndaPerl6/src/KindaPerl6/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/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 132␤ KindaPerl6::Runtime::Perl5::MOP::__AN​ON__('KindaPerl6::Runtime::Perl5::Dis​patchSugar::Dispatch=HASH(0x81...', 'APPLY') called at
10:25 exp_evalbot ..compiled/perl5-kp6-mp6/lib/K​indaPerl6/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/Ki​ndaPerl6/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/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 132␤ KindaPerl6::Runtime::Perl5::MOP::__AN​ON__('KindaPerl6::Runtime::Perl5::Dis​patchSugar::Dispatch=HASH(0x86...', 'APPLY') called at
10:30 exp_evalbot ..compiled/perl5-kp6-mp6/lib/K​indaPerl6/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/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 132␤        KindaPerl6::Runtime::Perl5::MOP::__AN​ON__('KindaPerl6::Runtime::Perl5::Dis​patchSugar::Dispatch=HASH(0x83...', 'LOOKUP',
10:31 exp_evalbot ..'KindaPerl6::Runtime::Perl5::Disp​atchSugar::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/2​007/10/a-graphical-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/v6/v6-KindaP​erl6/src/KindaPerl6/Visitor/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/dilbert/a​rchive/images/dilbert2002715970926.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

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs