pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
00:15 penk left 00:19 kanru left 00:29 devogon left 00:32 rutlov joined 00:33 rutlov left 00:51 nipotaway is now known as nipotan 01:00 lyokato joined 01:02 polettix left, avar left 01:03 avar joined 01:05 Limbic_Region left 01:08 mykhal left 01:30 jisom joined 01:46 sunnavy joined 01:49 buetow left 02:05 buetow joined 02:15 rutlov joined 02:16 rutlov left 02:36 rfordinal left 03:01 buetow left 03:03 amnesiac joined, TimToady joined 03:22 TimToady1 left 03:49 weinig left
sunnavy from S02:1587 When "strict" is in effect (which is the default except for one-liners), non-qualified variables (such as $x and @y) are only looked up from lexical scopes, *but* never *from* package scopes. 04:02
maybe never *beyond* package scopes?
04:06 mu9214 joined, mu9214 left 04:11 rutlov joined 04:12 rutlov left
TimToady it doesn't look in the package scopes at all, unless you've installed a lexical alias via "our" 04:13
or otherwise imported the symbol into your lexical scope
sunnavy gotcha, thanks 04:18
04:41 TimToady_ joined 04:58 TimToady left
sunnavy Is it permitted that whitespaces are between a symbolic unary operator and its operand? like | $capture? 05:15
allbery_b it should be but pugs might be somewhat broken in that regard 05:16
(collision between unary operators and the former filetest operators, which went away in part because of that brokenness)
sunnavy thanks, allbery_b :-) 05:19
05:34 rfordinal joined 05:37 weinig joined 05:39 devogon joined 05:55 TimToady joined 06:00 penk joined 06:02 amnesiac left
pugs_svnbot r17613 | moritz++ | [kp6] added bootstrap.pl 06:04
diff: dev.pugscode.org/changeset/17613
lambdabot Title: Changeset 17613 - Pugs - Trac
moritz_ bootstrap.pl imitates `make` because I'm too dump to do it in the Makefile 06:05
06:14 TimToady_ left
meppl good morning 06:14
06:14 rutlov joined 06:15 riffraff joined
moritz_ good morning meppl ;) 06:15
meppl good morning moritz 06:16
moritz_ wonders if kp6's Runtime/Perl5/*.pm is compatible with kp6's compiled modules, or just with mp6's output 06:17
06:17 rutlov left 06:27 Ashizawa joined 06:37 polettix joined 06:41 TimToady_ joined 06:47 meppl left, pmurias joined
pmurias morning 06:47
moritz_: hi
moritz_ hi pmurias 06:48
DarkWolf84 hi there
06:48 meppl joined, Casan joined
pmurias most of Runtime/Perl5/*.pm is compatible with code generated by kp6 06:48
DarkWolf84: hi
pmurias hates Visitor::Global 06:54
07:00 renormalist joined, TimToady left
pmurias #pugs say f();sub f {"hello"} 07:06
exp_evalbot OUTPUT[helloā¤]
pmurias #pugs say f();my sub f {"hello"}
exp_evalbot OUTPUT[helloā¤]
pmurias #pugs say $f;my $f = "hello" 07:07
exp_evalbot OUTPUT[*** ā¤ Unexpected ";"ā¤ expecting "::"ā¤ Variable "$f" requires predeclaration or explicit package nameā¤ at /tmp/O5RUPKVUy1 line 1, column 7ā¤]
07:08 elmex joined 07:09 cognominal__ left
pmurias #pugs undecleared() 07:09
exp_evalbot OUTPUT[*** No such subroutine: "&undecleared"ā¤ at /tmp/1w5KgL1RSL line 1, column 1 - line 2, column 1ā¤]
pmurias #pugs if (0) {undecleared()} 07:10
exp_evalbot OUTPUT[undefā¤]
pmurias #pugs if (0) {&undecleared()}
exp_evalbot OUTPUT[*** ā¤ Unexpected "()}"ā¤ expecting "::" or signature valueā¤ Variable "&undecleared" requires predeclaration or explicit package nameā¤ at /tmp/zvP4JscJ34 line 1, column 21ā¤]
07:10 franck___ joined
Yappo hi 07:11
pmurias Yappo: hi
where is it speced int the synopsis that subroutine can be called before declaration 07:13
?
and that there existence is checked at runtime?
moritz_ perhaps one of the tests has an enlightening smartlink? 07:15
there is one test that doesn't even compile with current pugs
a short look into a recent smoke should reveal it
pmurias found it 07:16
pugs isn't fully right here 07:17
if (0) {undecleared()} should fail
bloonix morning
pmurias S02:2504
bloonix: morning
moritz_ bloonix: moin 07:18
so it is indeed legal to call a sub before it is declared 07:19
what about referencing it? my $a = &foo; sub foo { return 'bar' };
07:21 LCamel joined
DarkWolf84 why is used -Ilib in bootstrap.pl 07:23
gaal moose
DarkWolf84 so p5 can read p6? 07:25
I don't get it 07:26
moritz_ it should be -Ilib5 actually
my local kp6-perl5.pl has an 'use "lib5";' so I didn't recognize it 07:27
07:28 ak__ left, ak__ joined 07:29 iblechbot joined
DarkWolf84 in that case kp6 uses no module path like mp6 07:34
07:35 penk left
moritz_ wait, the repo version has this line: use lib '../v6-MiniPerl6/lib5', 'lib5'; 07:35
pmurias moritz_: the sub magic only happens for barewords 07:36
pugs_svnbot r17614 | moritz++ | [kp6] removed bogus -Ilib from bootstrap.pl, DarkWolf84++
diff: dev.pugscode.org/changeset/17614
lambdabot Title: Changeset 17614 - Pugs - Trac
moritz_ pmurias: ok, then a few test cases are invalid
07:38 Aankhen`` joined 07:39 jedai joined
renormalist [mp6 in context of kp6] Can I give params into a class via new() in any way? Class.new(42) at least compiles, but I don't know how to access that from inside the class. 07:39
moritz_ I think mp6 had a (weird) way of initializing members, but I don't know if kp6 implements that 07:40
pmurias in mp6 ::Foo(key=>value) 07:41
DarkWolf84 like in p6
:)
pmurias look into the kp6 compiler internals for example
*examples
moritz_ I'd use Foo.new(key => value) in p6 ;)
pugs_svnbot r17615 | pmurias++ | [kp6] for decleares a topic but Global dosn't see it 07:45
diff: dev.pugscode.org/changeset/17615
lambdabot Title: Changeset 17615 - Pugs - Trac
DarkWolf84 ?eval class X {42}; my $foo .= X.new(a); 07:47
:)
pugsbot_r17185 Error: No such subroutine: "&a"
DarkWolf84 oops
?eval class X {42}; my $foo .= X.new('a');
pugsbot_r17185 Error: Must only use named arguments to new() constructorā¤Be sure to use bareword keys. 07:48
moritz_ ?eval class X { has $.a;}; my $foo = X.new(a=>2);
?eval class X { has $.a;}; my $foo = X.new(a=>2); say $foo.perl
pugsbot_r17185 \X.new(("a" => 2),)
moritz_ ?eval class X { has $.a;}; my $foo = X.new(:a(2)); say $foo.perl 07:49
pugsbot_r17185 OUTPUT[\X.new(("a" => 2),)ā¤] Bool::True
DarkWolf84 I know
just show the error :>
in spec constructor accept only position args 07:54
moritz_ and pugs implements it that way 07:55
07:56 hkb_aw is now known as hkb_lab 07:57 DarkWolf84 left
renormalist re 08:01
pmurias: But how do I access key from inside Foo?
$.key ?
08:01 iblechbot left
renormalist damn, work & :-) 08:02
back in 1h
08:07 timbunce joined
pmurias school& 08:18
08:27 demq joined 08:40 demq left 08:41 salzh joined 08:51 JarJarBi1ks joined 09:03 andara joined, JarJarBinks left 09:04 Blwood joined 09:06 JarJarBinks joined 09:17 salzh left 09:18 JarJarBi1ks left 09:19 cognominal_ joined
GeJ out of curiosity, any got news from audreyt? 09:29
...anyone... 09:30
09:43 cognominal_ left 09:52 iblechbot joined 10:17 jisom left 10:22 buetow joined 10:30 cognominal_ joined, nipotan is now known as nipotaway
moritz_ GeJ: I think that was the answer ;/ (ie nothing) 10:52
10:57 lyokato left 11:07 pbuetow joined 11:14 buetow left 11:30 andara left, andara joined 11:42 masak joined 11:49 sunnavy left 11:50 fglock joined 11:51 nipra joined, iblechbot left
fglock i'm finally back to irc - starting on a new computer 11:51
i missed the bootstrapping fun :P 11:52
moritz_ fglock: it's not over ;)
fglock: kp6 compiles itself without error messages, but it doesn't run yet 11:53
fglock ok
i've got no svn yet 11:54
moritz_ poor man ;)
should we collect a bit of money to get you one?
;-)
fglock heh - firewall problems, should be fixed soon 11:55
i'll try through feather
moritz_ where are you know? 11:57
fglock lisbon, portugal
moritz_ at your new work? 11:58
fglock yes
i'm getting this error in feather, using svk up -s: A checksum mismatch occurred: Base checksum mismatch on '/mirror/pugs/src/perl6/Perl-6.0.0-STD.pm' 12:01
moritz_ Perl-6.0.0-STD.pm was removed
and renamed to STD.pm
so try to remove it manually, and see if that helps 12:02
fglock ok
pmurias b 12:03
fglock: hi
fglock pmurias: hi!
pmurias Visitor::Global is a big hindrance 12:05
fglock hmm
pmurias i'm thinking/experimenting how to get rid of it
fglock one possible way is to install a my-subroutine, that calls the GLOBAL version 12:06
this sub can be overwritten
by a user sub 12:07
pmurias binding subs might be better the creating wrapers
s/the/then/
fglock sure 12:08
so if you use print(), then it would bind my &print := GLOBAL::print
until you define your own print() 12:09
pmurias yes
fglock otoh, what problem do you get with the current version? 12:11
pmurias with for loops 12:13
Global turns the $topic into $GLOBAL::topic
fglock that's because the topic is not being created, it's a bug in the AST generator 12:15
pmurias $Main::{$_} = $GLOBAL::{$_} for keys %GLOBAL::; should be enough to replace Global
fglock it should create a Pad with the variable
i'd rather fix 'if' instead 12:16
pmurias ah i so see what you mean 12:17
fglock i'm reinstalling, will be back to hacking in an hour or so
12:17 pbuetow left 12:18 timbunce left 12:19 elmex left, buetow joined
pmurias fglock: k 12:20
12:20 Ashizawa left 12:26 cmarcelo joined 12:30 lambdabot left 12:31 lambdabot joined
pugs_svnbot r17616 | renormalist++ | [kp6] 12:32
r17616 | renormalist++ | - kp6-perl5.pl gives options to emitters, currently used for a secure flag
r17616 | renormalist++ | - secure mode now implemented via setting a constant and checking for it
diff: dev.pugscode.org/changeset/17616
lambdabot Title: Changeset 17616 - Pugs - Trac
renormalist moritz_: you can now use kp6-perl5.pl --secure to compile in the eval bot
moritz_ renormalist: thanks ;) 12:33
renormalist: I already did that, even though it had no efect before 12:34
as of r17585
renormalist it does it now with your suggested constant way
moritz_ #kp6 use IO;
exp_evalbot r17616: OUTPUT[DISPATCH: calling on invalid object:$VAR1 = 'perl';ā¤ā¤ at lib5/KindaPerl6/Runtime/Perl5/MOP.pm line 32ā¤ main::DISPATCH('perl') called at - line 16ā¤]
renormalist #kp6 mkdir('/tmp/foo'); 12:35
exp_evalbot r17616: OUTPUT[DISPATCH: calling APPLY KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x8362eb4) on invalid object:$VAR1 = {};ā¤ā¤ at lib5/KindaPerl6/Runtime/Perl5/MOP.pm line 32ā¤ main::DISPATCH('undef', 'APPLY', 'KindaPerl6::Runtime::Perl5::DispatchSugar::Dispatch=HASH(0x83...') called at
..- line 16ā¤]
renormalist hm
#kp6 say(42); 12:36
exp_evalbot r17616: OUTPUT[42ā¤]
renormalist #kp6 Math.rand(5);
exp_evalbot r17616: OUTPUT[3.80142717542642ā¤]
renormalist #kp6 IO.mkdir('/tmp/foo'); 12:37
exp_evalbot r17616: OUTPUT[forbidden code at lib5/KindaPerl6/Runtime/Perl5/IO.pm line 5 (KP6_DISABLE_UNSECURE_CODE)ā¤ at lib5/KindaPerl6/Runtime/Perl5/Kp6Security.pm line 9.ā¤]
renormalist ah, that's my code
mkdir is protected
moritz_ renormalist++
12:38 nipra left
moritz_ though I'd think the normal spelling is "insecure", not "unsecure" ;) 12:38
12:40 jhorwitz joined 12:41 fglock left 12:43 fglock joined
pugs_svnbot r17617 | renormalist++ | - spelling fixes 12:43
diff: dev.pugscode.org/changeset/17617
lambdabot Title: Changeset 17617 - Pugs - Trac
renormalist moritz_: should now be fixed 12:45
pugs_svnbot r17618 | renormalist++ | - spelling fixes again, damn :-)
diff: dev.pugscode.org/changeset/17618
lambdabot Title: Changeset 17618 - Pugs - Trac
renormalist #kp6 IO.mkdir('/tmp/foo');
exp_evalbot r17618: OUTPUT[forbidden code at lib5/KindaPerl6/Runtime/Perl5/IO.pm line 5ā¤ at lib5/KindaPerl6/Runtime/Perl5/Kp6Security.pm line 9.ā¤]
renormalist #kp6 Math.rand(5); 12:46
exp_evalbot r17618: OUTPUT[0.770446621249921ā¤]
renormalist #kp6 Math.srand(5);
exp_evalbot r17618: OUTPUT[1ā¤]
renormalist #kp6 Math.rand(5);
exp_evalbot r17618: OUTPUT[4.13381566446789ā¤]
renormalist #kp6 Math.srand(5);
exp_evalbot r17618: OUTPUT[1ā¤]
renormalist #kp6 Math.rand(5);
exp_evalbot r17618: OUTPUT[3.53244544509382ā¤]
renormalist hm, not sure this works correctly
anyway, afk & 12:47
fglock oops - Data::Bind is not installing from CPAN (used by v6.pm)
renormalist #kp6 Math.srand(2); Math.rand(5);
exp_evalbot r17618: OUTPUT[4.56216326718733ā¤]
renormalist #kp6 Math.srand(2); Math.rand(5); 12:48
exp_evalbot r17618: OUTPUT[4.56216326718733ā¤]
renormalist #kp6 Math.srand(2); Math.rand(5);
exp_evalbot r17618: OUTPUT[4.56216326718733ā¤]
renormalist #kp6 Math.srand(2); Math.rand(5); Math.rand(5);
exp_evalbot r17618: OUTPUT[0.795414544861472ā¤]
fglock ah, it's the "Module::Build is not configured with C_support" thing
moritz_ renormalist: that's how I'd expect it to work 12:49
renormalist yes
i was confused but single eval bot runs are disconnected from another, of course
so the srand had no effect first time I thought it was wrong 12:50
so now I'm really afk :-)
moritz_ evalbot fork()s for each ^#(kp6|eval|p6|pugs|nqp) command
renormalist yes, and that's a Good Thing 12:51
pugs_svnbot r17619 | pmurias++ | [kp6] for generates right AST (dosn't work) 12:54
diff: dev.pugscode.org/changeset/17619
lambdabot Title: Changeset 17619 - Pugs - Trac
13:04 dalecooper joined 13:05 ruoso joined
pmurias ruoso: hi 13:05
ruoso pmurias, hi 13:06
pmurias, so... I saw kp6 can compile itself... is there already any plan for the next steps? 13:12
moritz_ ruoso: it compiles itself, but the result doesn't work yet :( 13:13
ruoso moritz_, any idea why?
let's do it the same way I was trying to make the bootstrap... creating test cases for the features that are failing...
moritz_ ruoso: just run ./bootstrap.pl && cd bootstrap 13:14
copy kp6-perl5.pl there, and then executed it with -Ilib
pmurias ruoso: for dosn't work 13:15
moritz_ #kp6 for 0..2 { say $_; }; 13:16
exp_evalbot r17619: OUTPUT[Syntax Errorā¤no method 'APPLY' in Class 'Int'ā¤]
moritz_ #kp6 for 0..2 -> $a { say $a; };
exp_evalbot r17619: OUTPUT[Syntax Errorā¤no method 'APPLY' in Class 'Int'ā¤]
pmurias #kp6 for (0,1,2) -> $a {say $a}
exp_evalbot r17619: OUTPUT[Syntax Errorā¤DISPATCH: calling APPLY on invalid object:$VAR1 = {};ā¤ā¤ at lib5/KindaPerl6/Runtime/Perl5/MOP.pm line 32ā¤ main::DISPATCH('undef', 'APPLY') called at - line 16ā¤]
pmurias #kp6 @a=(1,2,3);for (@a) -> $a {say $a}
exp_evalbot r17619: OUTPUT[Syntax Errorā¤]
ruoso pmurias, I've got some warnings about the redefinition of KindaPerl6::Grammar.__rule_block1 13:17
is that related to the code blocks inside rules?
pmurias yes
the count is per file
ruoso that is a problem, isn't it?
pmurias yes
it should also add the rule name where the block appears 13:18
ruoso and the file name mangled somehow
moritz_ why not package name?
ruoso not only package
but file
like
__rule_block_filename_line_inc
__rule_block_$filename_$line_$inc i mean
pmurias inc is ?
ruoso just for the case that there is more than one block in the same line 13:19
moritz_ the incremented number
pmurias __rule_block_$filename_$inc would be enough
moritz_ aye
pmurias the $inc is kept as a member of the visitor
ruoso is filename unique? 13:20
I don't think so
I don't think we can count on that
it's probably a better idea to generate a lexical variable that contains the coderegf 13:21
pmurias yes
ruoso and just deref as a sub call inside the rule
or even
get the source back from the AST and recompile after thar 13:22
that*
pmurias the first option is i think preferable
moritz_ least effort, but quite effective
ruoso pmurias, the best would be if Token already generated a AST and just included the code inside it 13:23
which is not quite impossible, actually
pmurias the second option is slower and suffers from bugs in the AST emitter
ruoso: if you want to do it
i thought of doing quasi-quotes once we get a bootstrap 13:24
ruoso and what if we create a syntax marker that would be replaced by the Lit::Code object
in the AST
pmurias i don't understand
explain more/diffrently
ruoso generate the rule with a: WE_WILL_CALL_THE_BLOCK_HERE_PLACEHOLDER
that would be searched on the tree 13:25
and substituted by the Lit::Code
pmurias isn't it better just to generate a lexical sub 13:26
ruoso this can be confusing and conflicting with other lexical variables
pmurias ruoso: what you propose would sort of be like quasi-quotes
ruoso yep...
we would add a KindaPerl6::AST::Placeholder object type in the AST 13:27
this placeholder would be like a macro
that would then be replaced by the code itself
which is already an AST object
after the generated p6 code be parsed 13:28
we could make this placeholder thing as a stack 13:29
that everytime we create a placeholder we add it's referral to the stack
pmurias i see
ruoso and then, everytime the placeholder is substituted by the referral, the stack would be shifted
FIFO 13:30
pmurias having quasi-quotes would obsolete this 13:31
and they aren't so much more difficult
ruoso how would that work
?
considering you're returning a string, and the block code is already a AST tree
pmurias i would return only AST nodes then 13:32
there is no use using strings if you have quasi-quotes
ruoso i didn't get it
you still is generating p6 code that needs to be parsed
and that block is enclosed in this code 13:33
how will you do that?
pmurias let me find an example 13:34
ruoso rule myrule { 'abc' { return 'cde' } } 13:35
pugs_svnbot r17620 | ruoso++ | [kp6] some notes on how the runtime could be even more splitted from the compilation
diff: dev.pugscode.org/changeset/17620
lambdabot Title: Changeset 17620 - Pugs - Trac
ruoso the idea of the placeholder would be like generating a code equivalent to: 13:36
rule myrule { 'abc' (((!!!PLACEHOLDER!!!))) }
include the placeholder as a rule in the grammar
and once the placeholder is parsed
it shifts from the stack the node that should be returned 13:37
moritz_ ruoso: re NOTES-NEW-COMPILER.txt: are you planning to write a new compiler that is bootstrapped with kp6? 13:38
ruoso moritz_, just wondering, actually 13:39
pmurias or refactor the current one to a new layout?
ruoso trying to see if it makes sense or not
pmurias, that would be an option, in the case it makes sense
13:40 daxim_ left, daxim_ joined
moritz_ that diagram looks... scary ;) 13:40
pmurias with quasi-quotes avalible i don't think it would make sense to generate p6 code instead of p6 ast
ruoso moritz_, heh 13:41
moritz_ btw am I right in assuming that the hackathon is finished?
ruoso pmurias, I still didn't got what the quasi-quotes are
pmurias you can use for example q:code {$var} as sugar for ::Var(sigil='$',name=>'var',...)
ruoso moritz_, yep
moritz_, or not...
;)
we're as active as in the hackathon ;)
moritz_ ruoso: I'm just asking because of moving IDEAS-HACKATHON to docs/ 13:42
ruoso moritz_, fglock ?
pmurias ruoso: have you seen the Quasiquoting section in S06?
ruoso you mean, not parsing the rule block until the Token emiter?
pmurias no 13:43
using AST nodes instead of code in strings
with similar syntax 13:44
ruoso pmurias, hm... I see...
but then you need a AST2Str and Str2AST
pmurias it should avoid the time consuming parsing step 13:45
AST2Str is EmitPerl6 and Str2Ast is Grammar.pm
ruoso moritz_, btw... what is scary about the diagram?
moritz_ ruoso: it has many nodes, and many bidrectional/circular edges 13:46
ruoso pmurias, well... you'll be regenerating the orig code to be parsed again
moritz_ ruoso: it's not that complicated, but the first impression is "d'oh, that's tough" ;)
ruoso moritz_, heh
moritz_, but do you think it makes sense?
pmurias, it would be better if we had a AST2YAML/YAML2AST or something like that... 13:47
moritz_ ruoso: yes, I think it does (but I'm not a compiler wizard)
ruoso: and there are things that are rather similar in kp6 right now
pmurias ruoso: i won't
moritz_ like the pluggable emitters
pmurias be regenerating the code
i'll ci an example 13:48
ruoso pmurias, so, how will you represent the Lit::Code object inside the string?
it needs to be stringified 13:49
13:49 riffraff left
moritz_ ruoso: with the diagram I can't find a possiblity to change the grammar at runtime 13:52
13:52 |Jedai| joined
moritz_ how would you do that? 13:52
pmurias ruoso: it dosn't need to be strinfied 13:53
pugs_svnbot r17621 | pmurias++ | [kp6] quasi-quote example
diff: dev.pugscode.org/changeset/17621
lambdabot Title: Changeset 17621 - Pugs - Trac
pmurias quasi-quotes are syntax sugar for explicitly creating AST 13:54
ruoso pmurias, so, you'll be calling the backend emitter in the Rule::Block emitter 13:57
that was what I was trying to avoid
fglock what is the command for initializing pugs in svk? i'm trying svk co //pugs svn.pugscode.org/pugs 13:58
pugs_svnbot r17622 | pmurias++ | [kp6] example of intended use of quasi-quotes in Token.pm
diff: dev.pugscode.org/changeset/17622
lambdabot Title: Changeset 17622 - Pugs - Trac
13:58 iblechbot joined
pmurias ruoso: why would i call the backend emitter 13:58
fglock i get: Path //pugs does not exist
pmurias and if you do //
?
the quasi-quotes are transformed when Token.pm is compiled 13:59
moritz_ I'd expect just 'svk co svn.pugscode.org/pugs/'
but I never tried it
ruoso pmurias, hmmm 14:00
fglock that seems to work
ruoso now I see
pmurias++
That is certainly better...
and we should probably substitute all this code generation and parsing in Token.pm to that...
14:01 szbalint left
pmurias i'm not sure if it's sane to implement them before the boostrap 14:04
*bootstrap
fglock svk didn't understand -100 and it wants to download from revision 1
moritz_ though shalt refrain from downloading r1 ;)
fglock how can I make it ask again? 14:05
ruoso pmurias, we need a solution to the rule::block to be able to bootstrap
moritz_ feather.perl6.nl/svk.html sounds good
lambdabot Title: SVK on Feather
fglock moritz_: i think that instructions are specific for feather 14:07
moritz_ fglock: do you need the history?
if not, there's a -head option iirc 14:08
14:09 jedai left, szbalint joined
fglock moritz_: like this? svk up --head -s 14:10
pmurias ruoso: hacking around the problem with $filename$inc 14:12
moritz_ fglock: somethink like that, but I don't know exactly... and I haven't got a svk installation here :(
ruoso pmurias, ok 14:13
14:14 polettix left
pmurias ruoso: is using Digest::MD5 ok? 14:16
ruoso md5 of what? 14:17
pmurias the source file being compiled
ruoso probably using the stringified "Lit::Code=HASH(0x123213)" taking the 0x123123 is enough
or not
but yes... 14:18
md5 + inc seems enough for now
pmurias is there anything else blocking the bootstrap 14:19
?
i can think only of ::Foo(key1=>1,key2=>2) 14:20
not working
ruoso is that the cause for the compilation error? 14:23
pmurias no
it's a runtime thing
ruoso at this moment, tryng to use the bootstrapped libs fail with a compilation error... 14:24
moritz_ yes, that's the rule blocks with same names 14:25
pmurias no
it's the for's
moritz_ does a 'svn up' ;) 14:26
pmurias i have no idea how to fix the for's 14:27
pugs_svnbot r17623 | pmurias++ | [kp6] md5 of source file added to __rule_block 14:28
diff: dev.pugscode.org/changeset/17623
lambdabot Title: Changeset 17623 - Pugs - Trac
ruoso trying to add a "my $a" before the for 14:29
to see if the compiler see it as a local var instead of global
pmurias you to it in each of the files? 14:30
s/to/do/
ruoso I'm trying just in the "Parameters", as it's the first one 14:31
if the problem goes elsewhere
then it makes sense to do that
kp6 takes an entire decade to bootstrap
moritz_ 186 seconds for me 14:32
for one compilation pass
pmurias meaning
moritz_ compare that to GHC or GCC ;)
pmurias ?
moritz_ compile all p6 files once with kp6-perl5.pl (the mixed mp6/kp6 thingy)
pmurias wow
that's fast 14:33
ruoso moritz_, bootstrap.pl could receive a param to work with more than one processor
yep
pmurias moritz_: what's your hardware?
ruoso the my $var before the "for" solves it
moritz_ Pentium M 1.5 GHz
nothing fancy, really
pmurias i'll install dia, and then see how long does it take for me 14:35
moritz_ I don't have an SMP maschine, so there's no incentive to implement parallel compilation ;)
pmurias i remember Grammar.pm alone compiled longer
pugs_svnbot r17624 | ruoso++ | [kp6] added a kp6-bootstrap-perl5.pl script, and tested "my $var" before a for works...
diff: dev.pugscode.org/changeset/17624
pmurias and i have 2.4 GHz ,2Gb ram and use ratpoison as my wm 14:36
moritz_ I once built a "linux from scratch" with a complete bootstrapped toolchain on a 700MHz maschine - it compiled for days, literally ;)
pmurias i use gentoo
:) 14:37
moritz_ pmurias: well, gentoo has binary packages as well ;)
ruoso: what does kp6-bootstrap-perl5.pl do? 14:38
14:40 dalecooper left
ruoso nothing special... 14:40
it just "use lib 'bootstrap/lib'
moritz_ ah, ok 14:41
ruoso #pugs my %a = { a => 1, b => 2 }; %a{a} := 3; 14:45
exp_evalbot OUTPUT[*** No such subroutine: "&a"ā¤ at /tmp/6mumS0xlqW line 1, column 32-33ā¤]
ruoso #pugs my %a = { a => 1, b => 2 }; %a{'a'} := 3;
exp_evalbot OUTPUT[{obj:<Scalar::Const:0xb72d4fdc>}ā¤]
ruoso #pugs my %a = { a => 1, b => 2 }; %a{'a'} = 3; 14:46
exp_evalbot OUTPUT[\3ā¤]
ruoso confused with binding to a value of a hash
moritz_ my %a = {a => 1, b => 2}; print %a<a>; 14:47
#pugs my %a = {a => 1, b => 2}; print %a<a>;
exp_evalbot OUTPUT[1]
ruoso #pugs my %a = { a => 1, b => 2 }; %a<a> = 3; say %a<a>;
exp_evalbot OUTPUT[3ā¤]
ruoso #pugs my %a = { a => 1, b => 2 }; %a<a> := 3; say %a<a>;
exp_evalbot OUTPUT[3ā¤]
ruoso #kp6 my %a = { a => 1, b => 2 }; %a<a> := 3; say %a<a>; 14:48
exp_evalbot r17624: OUTPUT[Syntax Errorā¤DISPATCH: calling APPLY on invalid object:$VAR1 = {};ā¤ā¤ at lib5/KindaPerl6/Runtime/Perl5/MOP.pm line 32ā¤ main::DISPATCH('undef', 'APPLY') called at - line 26ā¤]
ruoso #kp6 my %a = { a => 1, b => 2 }; %a<a> = 3; say %a<a>;
exp_evalbot r17624: OUTPUT[Syntax Errorā¤DISPATCH: calling APPLY on invalid object:$VAR1 = {};ā¤ā¤ at lib5/KindaPerl6/Runtime/Perl5/MOP.pm line 32ā¤ main::DISPATCH('undef', 'APPLY') called at - line 26ā¤]
ruoso #kp6 my %a = { a => 1, b => 2 }; %a{'a'}> = 3; say %a{'a'}; 14:49
exp_evalbot r17624: OUTPUT[Syntax Errorā¤]
ruoso #kp6 my %a = { a => 1, b => 2 }; %a{'a'} = 3; say %a{'a'};
exp_evalbot r17624: OUTPUT[3ā¤]
ruoso #kp6 my %a = { a => 1, b => 2 }; %a{'a'} := 3; say %a{'a'};
exp_evalbot r17624: OUTPUT[Can't modify non-lvalue subroutine call in scalar assignment at - line 32, near ")ā¤}"ā¤Execution of - aborted due to compilation errors.ā¤]
14:51 sysfault joined
moritz_ #kp6 my %a; %a{'a'} = 1; %a{'b'} = 2; 14:52
exp_evalbot r17624: OUTPUT[2ā¤]
moritz_ #kp6 my %a; %a{'a'} = 1; %a{'b'} = 2; say %a{'b'}
exp_evalbot r17624: OUTPUT[2ā¤]
moritz_ #kp6 my %a; %a{'a'} = 1; %a{'b'} := 2; say %a{'b'}
exp_evalbot r17624: OUTPUT[Can't modify non-lvalue subroutine call in scalar assignment at - line 30, near ")ā¤}"ā¤Execution of - aborted due to compilation errors.ā¤]
14:53 sysfault left
fglock i can no longer commit: Authentication realm: <svn.pugscode.org:443> Pugs Subversion Repository 14:56
pugs_svnbot r17625 | ruoso++ | [kp6] it looks like we need hash item binding in kp6 to bootstrap
diff: dev.pugscode.org/changeset/17625
lambdabot Title: Changeset 17625 - Pugs - Trac
ruoso pmurias, fglock is telling me you removed the BIND sub from MOP... ;) 14:58
pmurias yes 14:59
is hash binding legal p6?
hash element binding
ruoso pmurias, yep
It doesn't seems to be specced
but pugs supports it
and mp6 only supports bind and no assign
so we need it, at least until we bootstrap kp5 15:00
kp6
we can remove after that
moritz_ couldn't we default to assignment as a quick'n'dirty hack?
ruoso if it's not legal
hmm... bind is probably used as a bind somewhere
pmurias don't think so 15:01
mp6 emits is as hash assigment 15:03
15:03 ak__ left
pmurias *assignment 15:03
ruoso trying something here
15:05 polettix joined
ruoso welll 15:07
I fixed the test 46...
but broke about everything else
heh
pmurias you can't have everything ;)
masak there are situations where that is as it should be 15:12
human judgement is needed there ;)
ruoso Container := Object looks like a weird bind 15:14
SamB heh
ruoso binds are supposed to be container := container
container := object is a plain assignement 15:16
15:19 rindolf joined
pmurias ruoso: you can have a $variable := object 15:20
you don't have the object wraped in a Scalar then 15:21
15:22 renormalist left
ruoso but I mean, this have no binding semantics... it's a plain assignement 15:23
isn't it?
hmmm
if object is readonly, then, $variable is readonly
ok
ok... 15:27
I found
pmurias what did you find? 15:28
15:29 amnesiac joined
ruoso my $foo = Foo.new makes the assignement without initializing $foo 15:31
as a container
that's what makes everything break 15:32
pmurias k 15:33
well it's not ok :)
fglock i can't commit yet 15:37
i guess i need to get re-invited 15:40
moritz_ fglock: I'll try, if commitbit responds 15:41
compared to commitbit even perlmonks.org is fast ;)
obra: is there a command line interface to commitbit? 15:42
that would make life easier for feather users
15:42 rindolf left
obra the problem is that feather is fucked up and has horrible performance for large file scans. (like what sqlite does all the time) 15:43
moritz_ since unfucking feather isn't very easy.. could it help to change to another database? 15:44
Juerd feather will get a hardware upgrade within 2 weeks.
moritz_ cool, Juerd++
Juerd And hereby I'm removing sslh from the system 15:46
If you need it, please patch it so it doesn't max out the CPU :)
moritz_ ... or provide a second IP ;) 15:47
15:47 fglock left 15:48 kanru joined 15:50 pbuetow joined 15:57 barney joined
ruoso ok... 15:57
after my changes I have 50% pass
but I think it's in the right direction
pmurias you could nopaste a diff or something if you want to show them 16:02
pmurias wanders why 36 and 40 started to fail 16:03
16:04 justatheory joined
Juerd moritz_: Additional IPs are available if needed; I think it's a bit inefficient to use an entire second IP just so people can evade silly firewalls. 16:12
Discussion (or numbers on how many people depended on sslh) welcome. 16:13
pmurias ruoso: did you find anything else the the binding which blocks the bootstrap? 16:19
Juerd So far, I have no actual data on anyone really *using* sslh 16:20
ruoso pmurias, I'm struggling with it
it looks like it's in the right way
pasteling "ruoso" at 82.154.252.25 pasted "Trying to implement the BIND." (179 lines, 11.1K) at sial.org/pbot/27286 16:22
ruoso pmurias, take a look 16:25
16:26 bonesss joined
TimToady_ fg 16:27
.oO(grr)
pmurias ruoso: nay
i don't think changing back to BIND is a good choice 16:28
ruoso pmurias, what?
masak TimToady_: why ".oO(grr)"?
ruoso pmurias, which choice do we have?
pmurias we could change the emit assignment if the left side of the bind is a hash elem 16:29
TimToady_: is %hash<elem> := 1; legal?
moritz_ probably a "wrong window" array
pmurias ruoso: i could do it if you want 16:30
ruoso pmurias, does it solve all the problems?
16:30 szbalint left 16:31 franck___ left
pmurias ruoso: it should solve that one 16:32
other problems are probably unrelated to binding
ruoso pmurias, give it a try
pmurias giving already
TimToady_ pmurias: you should be able to bind to a hash/array element 16:33
ruoso TimToady_, that's not yet in the specs, isn't it?
the only reference I found was a thread in the ml
16:33 TimToady_ is now known as TimToady
ruoso pmurias, but I think we're going to need a new runtime 16:34
for the final compiler
TimToady ?eval my @a = 1,2,3; @a[1] := 42; say @a
pugsbot_r17185 OUTPUT[1423ā¤] Bool::True 16:35
ruoso TimToady, it's implemented by pugs...
but I couldn't find it in the specs
TimToady then it's gotta be right :)
ruoso heh
ok
TimToady I think it falls in the category of "anything not forbidden is allowed", esp since it's so fundamental 16:36
indeed, in Python every array element assignment is really what we think of as binding
ruoso pmurias, fglock is saying that making the INDEX and LOOKUP as lvalue would solve it
pmurias lvalue here means? 16:37
in the perl5 sense? 16:38
ruoso yep
16:40 |Jedai| is now known as jedai 16:42 rindolf joined
pugs_svnbot r17626 | pmurias++ | [kp6] binding is changed to assignment in the emitter 16:45
diff: dev.pugscode.org/changeset/17626
lambdabot Title: Changeset 17626 - Pugs - Trac
pmurias the test works 16:46
which means we likely have the assignment wrong
ruoso did you run the last binding test I wrote? 16:47
16:47 stevan_ left
pmurias yes 16:48
and
?
ruoso so it's semantics is write
right
multi's and junctions are now failing 16:52
for some reason
16:55 andara left 16:58 buetow left, buetow joined
pmurias ruoso: don't know when they started to fail 17:00
moritz_: the bootstrap.pl took 0m7.384s on my machine 17:05
pugs_svnbot r17627 | ruoso++ | [kp6] bootstrap script now accepts a n parameter to paralellize the copilation 17:06
diff: dev.pugscode.org/changeset/17627
17:06 masak left
pmurias ruoso: blocking on for again :( 17:09
ruoso pmurias, I'm pre-declaring the "my" variables
Can't locate object method "new" via package "KindaPerl6::Visitor::Perl" at bootstrap/lib/KindaPerl6/Runtime/Perl5/Compiler.pm line 14. 17:10
that's a new error
pmurias ruoso: you predeclared all of them :)
?
ruoso yep 17:11
ruoso committing now
pugs_svnbot r17628 | ruoso++ | [kp6] moving forward... no more compilation errors in bootstrapped kp6... only runtime errors now
diff: dev.pugscode.org/changeset/17628
lambdabot Title: Changeset 17628 - Pugs - Trac
ruoso I left the broken for test, so we know it doesn't work
17:11 weinig left
pmurias k 17:12
17:15 rjbs joined, nwc10 joined
rjbs TimToady: What's the reasoning behind calling err "err"? 17:15
ruoso pmurias, I think it's time to start the new compiler
we need to convert everything to kp6 calling convention 17:16
instead of mp6 calling convention
pmurias makes sense 17:17
17:18 dmq32 joined
ruoso let's do the following 17:19
we take the current "lib" dir, make a copy to "lib-kp6-mp6"
17:19 fglock joined
ruoso then we take the current "lib5" dir and make a copy to "lib-kp6-mp6-p5" 17:19
so the current compiler stays stable 17:20
and we start implementing the other
makes sense?
pmurias think so
ruoso doing it
pmurias COMPILATION_PROCESS.png looks very much like the current kp6 architecture 17:22
17:26 cmarcelo left 17:27 weinig joined
pugs_svnbot r17629 | ruoso++ | [kp6] Huge source code layout re-structure... now we have kp6-mp6 and kp6-kp6 sub-projects 17:27
diff: dev.pugscode.org/changeset/17629
lambdabot Title: Changeset 17629 - Pugs - Trac
ruoso refactoring Makefile to the new structure 17:28
17:30 kanru left
moritz_ pmurias: run 'time bootstrap.pl -a' 17:32
pmurias: otherwise it'll only rebuild touched files 17:33
pmurias doing it that way, it wouldn't take so long otherwise 17:34
i wonder how you manage to recompile kp6 that much faster on a slower machine
ruoso pmurias, more memory? 17:35
kp6 is very memory jungry
s/jungry/hungry/
pmurias are 4Gb of ram required?
moritz_ you said it took 0m7.384s 17:36
mine took 128s which is 3m8s
so yours is much faster
moritz_ has 512MB ram, some of which is claimed by the GPU 17:37
17:37 ahmadz joined
pmurias i misread the output 17:37
moritz_ ok ;) 17:38
ahmadz hi
pmurias it wasn't 7 seconds for sure
it dosn't really matter 17:39
kp6 isn't that memory hungry 17:40
to shows it's under 10% here
well under 20% always so it dosn't use more then 400m 17:41
ruoso finishing the structural changes in the source 17:49
moritz_ ruoso: which way are you going now? BIND or lvalue? 17:52
ruoso moritz_, pmurias fixed changing the BIND to a ASSIGN in case of hash lookup or array index 17:54
the Makefile was changed...
pugs_svnbot r17630 | ruoso++ | [kp6] structural source layout changes finished.
diff: dev.pugscode.org/changeset/17630
ruoso calling bootstrap.pl is uncecessary now
a simple make 17:55
will do it
and now we can change the runtime in lib-kp6-kp6...
17:56 cmarcelo joined
ruoso I think now we basically need to re-write as much as possible files from kp6-kp6/ p5 runtime to p6 17:58
like KindaPerl6::Runtime::Perl5::Compiler
to KindaPer6::Runtime::Perl6::Compiler 17:59
pugs_svnbot r17631 | moritz++ | [kp6] removed bootstrap.pl (substituted by Makefile) 18:01
diff: dev.pugscode.org/changeset/17631
lambdabot Title: Changeset 17631 - Pugs - Trac
18:01 Psyche^ joined 18:12 polettix left 18:14 Patterner left, Psyche^ is now known as Patterner
pugs_svnbot r17632 | ruoso++ | [kp6] Match is no longer p5.. the p6 version is used instead 18:16
diff: dev.pugscode.org/changeset/17632
lambdabot Title: Changeset 17632 - Pugs - Trac
18:18 TimToady_ joined
ruoso #kp6 say "hello" 18:22
exp_evalbot r17633: OUTPUT[Can't open perl script "kp6-perl5.pl": No such file or directoryā¤]
pugs_svnbot r17633 | ruoso++ | [kp6] Bootstrap todo list...
diff: dev.pugscode.org/changeset/17633
ruoso oops
lambdabot Title: Changeset 17633 - Pugs - Trac
ruoso going home 18:24
pugs_svnbot r17634 | ruoso++ | [kp6] as kp6-mp6 is the only working version, lets leave it as the evalbot executable
diff: dev.pugscode.org/changeset/17634
lambdabot Title: Changeset 17634 - Pugs - Trac
ruoso pmurias, take a look at the KP6-Bootstrap-Notes file 18:25
it seems we're really close to the bootstrap
pmurias k
ruoso home & 18:26
18:26 ruoso left
moritz_ #kp6 say "foo" 18:31
exp_evalbot r17634: OUTPUT[Can't locate KindaPerl6/Runtime/Perl5/Runtime.pm in @INC (@INC contains: lib5 /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at - line 7.ā¤BEGIN failed--compilation
..aborted at - line 7.ā¤]
18:33 snearch joined
moritz_ now I'm confused - how should evalbot execute kp6? 18:34
18:35 TimToady1 joined, bonesss left 18:38 TimToady left
moritz_ got it, lib-kp6-mp6-p5 18:38
pugs_svnbot r17635 | moritz++ | [kp6] udpated compile-and-run ./kp6 to reflect current pathes
diff: dev.pugscode.org/changeset/17635
lambdabot Title: Changeset 17635 - Pugs - Trac
18:41 exp_evalbot left, exp_evalbot joined
pugs_svnbot r17636 | moritz++ | [evalbot] fixed kp6 includes 18:41
diff: dev.pugscode.org/changeset/17636
lambdabot Title: Changeset 17636 - Pugs - Trac
18:45 rfordinal_ joined 18:46 rfordinal left 18:47 snearch left, TimToady_ left 18:49 pmurias left 18:50 ahmadz left 19:01 weinig left 19:06 mattrdo joined, fglock left, jhorwitz left 19:22 pbuetow left 19:26 dakkar joined 19:27 justatheory left 19:30 weinig joined 19:35 szbalint joined 19:46 rindolf left 19:52 jisom joined 20:07 the_dormant joined, the_dormant left 20:24 devogon left 20:29 barney left 20:31 gojo10 joined
pugs_svnbot r17637 | fglock++ | test 20:42
diff: dev.pugscode.org/changeset/17637
lambdabot Title: Changeset 17637 - Pugs - Trac
20:43 nwc10 left 20:45 fglock joined 20:46 lisppaste3 left, lisppaste3 joined 20:52 dakkar left 20:59 spx2 joined 21:13 spx2 left
jisom does perl6 treat nan as true or false? 21:13
21:23 Casan_ joined
meppl good night 21:25
21:25 Casan left 21:43 Aankhen`` left
fglock jisom: NaN is true in pugs 21:44
jisom thanks
21:47 rjbs left 21:55 szbalint left
pugs_svnbot r17638 | fglock++ | [kp6] mv some files to docs/ 22:09
diff: dev.pugscode.org/changeset/17638
lambdabot Title: Changeset 17638 - Pugs - Trac
22:12 polettix joined 22:16 iblechbot left 22:18 jisom left
pugs_svnbot r17639 | fglock++ | [kp6] added a test for Inf, NaN (we need this to create range objects) 22:18
diff: dev.pugscode.org/changeset/17639
22:24 Caelum joined 22:54 jisom joined 22:55 lambdabot left 22:56 lambdabot joined 22:58 fglock left 23:08 cmarcelo left 23:10 justatheory joined 23:27 stevan_ joined, jisom left
Blwood To know which functions are implemented in pugs we have to look inside /t to see if there's a test for it right ? And normally there should be a link in the synopsis to it. Am I right ? 23:58