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.
dlocaus & dog walk 00:00
00:00 dlocaus left 00:03 lichtkind_ left 00:05 theorbtwo joined 00:10 devogon left 00:16 theorb left 00:30 jhorwitz left 00:34 nipotaway is now known as nipotan 00:35 ludan left 00:39 dduncan left 00:46 araujo joined, vbattsAtWork joined 00:52 bsb joined 00:54 [particle1 joined 00:56 kanru joined 00:59 [particle] left 01:00 nekokak_ left, Limbic_Region left 01:07 awwaiid joined 01:12 r0bby left, Jamtech joined 01:14 r0bby joined 01:17 lyokato joined 01:45 cognominal_ left 01:48 cognominal_ joined 01:49 vel joined 01:50 vel left 01:52 Caelum left 01:56 amnesiac joined 02:05 [particle] joined, weinig_ left 02:15 [particle1 left 02:19 weinig joined 02:22 justatheory left, Jamtech left 02:43 justatheory joined 02:53 diotalevi joined 02:56 vbattsAtWork left 03:46 Caelum joined 04:01 IllvilJa joined 04:09 justatheory left 04:11 justatheory joined 04:33 jiing joined 04:43 ofer left 05:00 Ashizawa joined 05:04 ofer joined 05:05 nipotan is now known as nipotaway 05:27 devogon joined 05:28 jisom joined, SubSyn joined 06:06 toshinori left 06:11 [particle] left 06:23 viklund left 06:29 drrho joined 06:33 SubSyn left
pugs_svn r18576 | agentz++ | PCR - tracer now works in the console (mostly) 06:40
agentzh to run the current tracer, try out the following commands: 06:43
$ util/compile_p6grammar.pl -D examples/adder.grammar > Adder.pm
$ perl -Ilib -MAdder -e 'print Adder->add("3 + 23")->(), "\n"'
moritz_ agentzh: is PCR updated to the "new" regex syntax already?
agentzh moritz_: nope
moritz_: (afaik) 06:44
yay! examples/digits.grammar works with the tracer as well 06:48
currently the tracer outputs are not human-readable...
should be fed into another renderer 06:49
>>BEGIN concat<< 248..270 at 5
>>BEGIN group<< 248..252 at 5
248..270 is the positional range in the original .grammar file 06:50
while "at 5" is the current parsing focus in the input string
"concat" and "group" are both regex AST node names
06:51 Casan joined
moritz_ agentzh: as a proof of concept you could write a regex syntax hilighter based on that output ;) 06:51
agentzh moritz_: that's what i'm currently working on ;)
moritz_ agentzh: ok ;) 06:52
07:01 faxathisia joined 07:29 Aankhen`` joined, iblechbot joined 07:31 elmex joined 07:43 franck___ joined 07:46 xinming left 07:47 drupek12 left
ruoso considering everything must be able to stringify, would it be sane to implement the hash lookup based on the stringification of the object? It must be noted that this doesn't mean storing the string as the key, but only using it in the needed copmarisions inside the hash implementation... 08:14
08:14 Aankh|Clone joined 08:17 justatheory left
moritz_ that's what perl5 does, right? 08:19
08:20 fglock joined
Aankh|Clone Yes. 08:21
Wait, what?
:-P
fglock ruoso: I'd use the object id instead 08:24
moritz_ is that backend specific?
ruoso the object id wouldn't work for strings 08:26
because different objects with the same value must match the same key
moritz_, p5 stores the stringification
pugs_svn r18577 | fglock++ | [kp6-perl5] allow mixed positional and named arguments
ruoso I'm only using the stringification to comparisions
not storing it
moritz_ ruoso: so use stringification for low-level values (Str, Num...) and ID for other objects? 08:27
ruoso hmm... this would complicate things... 08:28
because I would need to test if it is a low-level value or not
fglock kp6: sub x ($a,$b){ print " $a-$b, " }; x(1,2); x( a=>3, b=>4 ); x( b=>6, a=>5 );
exp_evalbot r18577: OUTPUT[ 1-2, 3-4, 5-6, ]
moritz_ but hash keys need to be immutable, right?
ruoso moritz_, why? 08:29
moritz_ ruoso: in order to allow efficient lookup
ruoso ah.. ok
yeah..
moritz_ that's what the "hash" part of a hash is all about ;)
ruoso heh
moritz_ so perhaps stringification isn't all that bad 08:30
there was a reason for the way it was done in p5 08:31
ruoso yep... but the problem is... this may end up with bad behaviour... 08:32
for objects that does have stringifications
that aren't unique when they should be
moritz_ ruoso: that's a trade off between efficiency and usability 08:33
ruoso maybe a "hashcode" thing is needed
moritz_ ruoso: thou shalt not write object that stringify identically ;)
ruoso heh
08:34 Aankhen`` left
moritz_ and take hashcode if available, otherwise stringification? 08:34
ruoso having to test that is a bad thing
better to have mandatory "hashcode"
the default implementation may be the stringification
moritz_ that makes sense 08:35
ruoso but hashcode must always be a string... 08:36
fglock ruoso: I don't think $dog1 and $dog2 must hash to the same thing, only Constants do 08:40
ruoso fglock, if $dog1 = "foo"; and $dog2 = "foo"... yes, they do.... 08:41
if $dog1 = "123" and $dog2 = 123... hmmm... I think they should do...
08:41 masak joined
moritz_ agrees 08:42
ruoso if class Dog has only the memeber "name", and the hashcode is its name
$dog1 with name "Rex" and $dog2 with name "Rex" should do also...
other way you can't reproduce the key...
moritz_ ruoso: I don't think you can enforce that in the general case
ruoso if that's the last reference you have
moritz_, if the hashcode returns the name, yes... 08:43
moritz_ ruoso: so use .perl instead of .hashcode
ruoso: right, but you can't be sure that the dumb perl author makes that right
ruoso moritz_, that way the objects won't match 08:44
that's normal
the default hashcode for an object is it's id
ok
that solves the problem
moritz_ um, why not?
ruoso the point is, you must have a way to make two objects match
Aankh|Clone Why? 08:45
ruoso and this is using the hashcode methods
Aankh|Clone Er, two arbitrary objects or...?
moritz_ ruoso: so if you have two Dog objects, that have identical content, they won't match if you use ID
ruoso: do you want that?
ruoso yep... that would be the default
moritz_ ok
ruoso so...
moritz_ and for strings you just return self? 08:46
in .hashcode, I mean
ruoso the basic values default for hashcode is the stringification
objects return the id
(stringified id for that matter...)
Aankh|Clone <moritz_> ruoso: so if you have two Dog objects, that have identical content, they won't match if you use ID # isn't that the required behaviour for a hash table?
ruoso Aankh|Clone, the problem is to know whether the objects must or must not match 08:47
moritz_ kp6: class Foo { has $.bar }; my $a = Foo.new(bar => 'baz'); say "$a";
exp_evalbot r18577: OUTPUT[::Foo(...)ā¤]
ruoso and that's the pourpose of the hashcode method
Aankh|Clone ruoso: I'm not following you.
ruoso that should be at the control of the programmer
Aankh|Clone Mmm.
moritz_ and the default should be not to match
ruoso think about a XML DOM node
yep
moritz_ ok, then the stringification of an ID is a sensible default 08:48
ruoso you probably want a XML DOM node to match based in it's name and attributes
moritz_, yep.. like Foo(0x123123123)
:)
moritz_ ruoso: but the current stringification doesn't include the ID - are you going to change that?
ruoso nope... 08:49
moritz_ ok
ruoso i'm changing that: for objects, the hashcode returns a stringified id
probably with the tag like p5 does
so $dog1 would stringify to Dog=0x123123123 08:50
moritz_ you can add a 'class hashcode', so .hashcode is a natural typecasting method
ruoso s/stringify/hashcode/
moritz_ and in that class you can implement the hash algorithm
and it inherits from Str or str
Str, that is ;)
or is that an abuse of the coercion/type casting sytem? 08:51
ruoso maybe not... 08:52
I don't know yet
I'm thinking in the low-level yet...
low-level doesn't have type casting system yet
(for low-level, I refer yap6)
08:53 iblechbot left
ruoso I should probably wait for TimToady's opinion on that, before taking any decision... 08:55
moritz_ looks at the back door 08:56
pugs_svn r18578 | fglock++ | [kp6] Roadmap: added Milestone 5.1 - Upgrade the regex engine to the current specification 09:00
moritz_ html version of the roadmap updated 09:01
fglock: the status for gather/take should be updated as well 09:04
09:05 faxathisia left
Aankh|Clone <ruoso> you probably want a XML DOM node to match based in it's name and attributes # I'm not so sure about that. 09:06
ruoso Aankh|Clone, just an example...
Aankh|Clone <top><one foo="bar"/><two><one foo="bar"/></two></top>
That way, the <one foo="bar"/> within <top> and <one foo="bar"/> within <two> would match. 09:07
ruoso no, because the parentNode would be different
Aankh|Clone Ah, so not just attributes then.
Not just XML attributes, that is. :-)
ruoso yep.. 09:08
pugs_svn r18579 | moritz++ | [kp6] roadmap: updated gather/take and threads section
moritz_ fglock: please take a look at this commit, not sure I made it rigth
s/th$/ht/
09:08 rafl left 09:09 polettix left 09:11 pmurias joined 09:12 rafl joined, pmurias_ joined, pmurias left, Aankh|Clone is now known as Aankhen``
pmurias_ @tell ruoso re hashing: S02:571-573 09:14
lambdabot Consider it noted.
09:14 pmurias_ left
moritz_ ok, so .WHICH is roughly the same as the intended .hashcode 09:15
masak is still very bad at keeping the different .WHO, .WHAT and .WHICH methods apart 09:16
Aankhen`` Yay. 09:17
moritz_ pugs: say "foo".WHAT
exp_evalbot OUTPUT[Strā¤]
Aankhen`` So WHICH is not a macro?
Just a regular method?
moritz_ pugs: say "foo".WHO
exp_evalbot OUTPUT[*** No such method in class Str: "&WHO"ā¤ at /tmp/nUduFpqUy3 line 1, column 5 - line 2, column 1ā¤]
moritz_ Aankhen``: why should it be a macro?
masak: there seems to be no .WHO method, and .WHAT returns the meta-object
Aankhen`` I didn't say it should, I was confirming that it isn't a macro, unlike one of the other all-uppercase method thingies... 09:18
s/should/should be/
S12 says that it is a macro, though.
fglock moritz_: looks good, thanks 09:19
Aankhen`` perlcabal.org/syn/S12.html#Introspection
lambdabot Title: S12
moritz_ ok, whatever ;)
Aankhen`` "These are all actually macros, not true operators or methods."
moritz_ Aankhen``: does it make a difference?
Aankhen`` So if .WHICH is a macro, how does a class define that its own WHICH method is called instead? :-S
ruoso moritz_, yep... WHICH is hashcode
lambdabot ruoso: You have 1 new message. '/msg lambdabot @messages' to read it.
Aankhen`` Then you'd have to use .'WHICH' or ."WHICH" or something everywhere to allow for custom methods. 09:20
Unless the macro automatically calls that method! Yay.
moritz_ still doesn't grok macros at all 09:21
is there a _gentle_ introduction somewhere? no lisp please ;)
Aankhen`` Why? Macros take an AST and transform it into another AST.
Awww, what's wrong with Lisp?
moritz_ Aankhen``: the syntax
Aankhen`` Common Lisp macros are the easiest thing to understand.
Bigot. :-P
moritz_ they just view an AST like a nested list, right? 09:22
ruoso moritz_, now... if you have problems understanding macros... you'll realise why lisp is so hard ;)
Aankhen`` moritz_: A list in Lisp is actually just a tree, so the answer is "sort of".
ruoso: What's hard about Lisp?
moritz_ ruoso: I never really tried, I have to admit ;) 09:23
Aankhen`` (By which I'm guessing you mean Common Lisp.)
ruoso heh... everytime I try to customize emacs, i have a headache
and quit after two minutes 09:24
Aankhen`` moritz_: Okay, here's one way to look at it: macros are regular functions that run at compile-time; they take an AST and transform it into another AST. That resulting AST is used in the compiled code in place of the call to the macro.
ruoso :)
moritz_ Aankhen``: ok, that's nice... how do I access the AST in p6 macros? 09:25
Aankhen`` Some part of the arguments passed.
I'm not sure how exactly, though. 09:26
moritz_ hm, ok 09:27
Aankhen`` Here we go: "In the absence of a signature to the contrary, a macro is called as if it were a method on the current match object returned from the grammar rule being reduced; that is, all the current parse information is available by treating self as if it were a $/ object."
moritz_ ok
so basically you have to know the parser's internals to fiddle with macros 09:28
Aankhen`` Not the parser's internals, really. But you do have to be familiar with the grammar, at least the part that you're transforming from and the part that you're transforming to.
ruoso but there are also the quasiquotes
which help with that 09:29
jql it's a beautiful design tactic, though
ruoso you may use quasiquotes to expand the macro
then you don't need to know about the ast at all
Aankhen`` ruoso: Yes. 09:30
jql: What is?
moritz_ waits with grokking macros until somebody write a tutorial with many examples
jql the macro works by manipulating whatever "is supposed to be" in $/
whatever that is. :)
Aankhen`` Heh/
Heh.
09:30 chris2 joined 09:31 chris2 left 09:32 chris2 joined
pugs_svn r18580 | fglock++ | [kp6] move Visitor::Perl to Visitor::Emit::AstPerl 09:42
09:42 jisom left 09:44 xinming joined 09:46 xinming_ left
pugs_svn r18581 | fglock++ | [kp6] script/kp6 - add options -Cperl5rx and -Bperl5rx 09:52
r18582 | fglock++ | [kp6-perl5rx] s/.str/.Str/ 09:58
r18583 | fglock++ | [kp6-perl5rx] fixed lib search order 10:02
moritz_ fglock: are you working quasi-fulltime on kp6 today? ;-) 10:03
fglock yes :)
moritz_ $flocks_employer++ ;-) 10:04
fglock (I had a meeting, but it was moved to tomorrow)
actually, I'm also working on the $work business plan for Perl 6 10:06
pugs_svn r18584 | fglock++ | [kp6-perl5rx] s/bool/true/ ; token execution returns the Match object 10:18
10:21 drrho left
pugs_svn r18585 | fglock++ | [kp6-perl5rx] started Perl 6-5 bridge; t/kp6/grammar/01-simple-or-token.t passes 10:25
agentzh fglock: take a look at this: agentzh.org/misc/tracer/main.html 10:27
lambdabot Title: Test
agentzh the tracer is working (mostly) now :)
fglock agentzh++ x 1e9 10:28
agentzh :D
thanks :)
fglock cool
agentzh the tracer adds ~0 runtime cost to compilers w/o the -D option :) 10:29
i'm expecting to add this to kp6 ;) 10:30
pugs_svn r18586 | fglock++ | [kp6-perl5rx] properly escapes space ; t/kp6/grammar/02-non-capturing-group.t passes 10:34
fglock agentzh: take a look at: $ perl script/kp6 -Cperl5rx t/kp6/grammar/02-non-capturing-group.t 10:35
it compiles Perl 6 regex into Perl 5 regex
agentzh fglock: looking 10:36
heh, very interesting p5 code :) 10:37
i think i'll be able to add hooks into the code blocks :) 10:38
pugs_svn r18587 | fglock++ | [kp6-perl5rx] t/kp6/grammar/03-ident-token-from-grammar.t - fixed syntax ; passes 10:39
fglock agentzh: it reuses the p5 backtracking, it should be much faster than the code in PCR 10:41
pugs_svn r18588 | fglock++ | [kp6-perl5rx] t/kp6/grammar/04-not-before-subrule.t - fixed syntax; passes 10:43
10:44 dmq joined 10:49 reZo joined
pugs_svn r18589 | fglock++ | [kp6-perl5rx] t/kp6/grammar/05-code-inside-rule.t passes 10:52
agentzh fglock: thanks for the info :) 10:55
fglock agentzh: I mean to replace the engine in PCR with the KP6 engine, but KP6 still needs some more features 10:56
agentzh fglock: is the AST stay the same? 10:58
*does
fglock KP6 uses an OO ast, but it's mostly the same
10:58 lyokato left
agentzh hmm 10:58
is there any PCR component that is reusable? 10:59
or have i rewrite everything in PCR using kp6's code?
*do i have to
fglock PCR compilers are plugged-in, so it's mostly just writing a wrapper, I guess 11:00
agentzh cool
super &
Kattana that tracer is awesome
agentzh Kattana: thanks :) 11:01
Kattana: but it does not run in IE...sadly
ruoso (agentzh++) for 1..Inf;
agentzh ruoso: :D
ruoso the tracer is really awesome
fglock agentzh: to see the AST: $ perl script/kp6 -Cast t/kp6/grammar/06-P5-modifier.t
agentzh that's what i had in mind months ago ;)
and that was why i hacked on PCR madly this summer ;) 11:02
fglock: thanks for the info :)
fglock agentzh++ mad hacker
agentzh :)
sorry, gotta run for supper now & 11:03
11:06 [particle] joined
pugs_svn r18590 | fglock++ | [kp6-perl5rx] initial support for :Perl5 modifier; t/kp6/grammar/06-P5-modifier.t passes 2, fails 2 tests 11:12
11:20 drrho joined 11:23 chris2 left
fglock perl5rx tests 07-10 pass; test 11 = "panic: top_env" 11:24
11:25 iblechbot joined
pugs_svn r18591 | fglock++ | [kp6-perl5rx] fixed tests 13, 16 11:27
11:29 faxathisia joined 11:30 Ashizawa left
pugs_svn r18592 | fglock++ | [kp6-perl5rx] added script/run_tests_kp6_mp6_perl5rx.pl 11:42
r18593 | fglock++ | [kp6-perl5rx] t/kp6/grammar/11-to-line-end.t passes 11:43
r18594 | fglock++ | [kp6-perl5rx] t/kp6/grammar/17-complex-return.t passes 11:52
11:59 rindolf joined, IllvilJa left 12:03 rindolf left
pugs_svn r18595 | fglock++ | [kp6-perl5rx] code cleanup 12:05
integral is perl5rx generating 5.10 regexps, perhaps taking advantage of all its new features? 12:27
12:29 fglock left 12:35 dmq left 12:37 mr_ank joined 12:48 dalecooper joined 12:50 faxathisia left 13:00 reZo left 13:01 dmq joined 13:04 mr_ank left 13:06 funktio joined
moritz_ integral: afaict it generates 5.8 regexes 13:06
13:07 jhorwitz joined 13:30 cmarcelo joined
integral ah. 13:31
13:33 fglock joined
fglock integral: it will use 5.10 features as-needed, but it's 5.8 compatible so far 13:35
integral okay
13:45 vbattsAtWork joined
pugs_svn r18596 | fglock++ | [kp6-perl5rx] fixed t/kp6/grammar/06-P5-modifier.t 13:52
13:52 TJCRI joined
pugs_svn r18597 | fglock++ | [kp6-perl5rx] t/kp6/grammar/06-P5-modifier.t passes 14:09
r18598 | fglock++ | [kp6-perl5rx] t/kp6/grammar/12-non-return-block.t passes 14:20
14:40 toshinori joined
pugs_svn r18599 | moritz++ | [kp6] make forcerecompile 14:43
14:51 dalecooper left
pugs_svn r18600 | fglock++ | [kp6-perl5rx] fixed t/kp6/grammar/15-capture-from-rule-block.t 14:53
14:53 c9s_ left 14:55 TJCRI left 14:56 c9s_ joined
pugs_svn r18601 | fglock++ | [kp6-perl5rx] all grammar tests pass 14:56
moritz_ confirmed ;) 14:58
which means that perl5rx is now in better shape than pure perl5
14:59 c9s_ is now known as cornelius
fglock now let's take a look at the other tests 14:59
15:00 cornelius is now known as c9s_
pugs_svn r18602 | fglock++ | [kp6-perl5rx] add ShortCircuit processor 15:02
15:04 TJCRI joined, TJCRI left
pugs_svn r18603 | fglock++ | [kp6] fixed t/kp6/42-single-rule-grammar.t 15:05
moritz_ kp6: say( defined(undef) ?? "yes" !! "no" ); 15:06
exp_evalbot r18603: OUTPUT[noā¤]
moritz_ kp6: say( defined(0) ?? "yes" !! "no" );
exp_evalbot r18603: OUTPUT[yesā¤]
moritz_ kp6: my %a; %a{ 'a' } = 1; say(defined(%a.keys)); 15:07
exp_evalbot r18603: OUTPUT[1ā¤]
moritz_ kp6: my %a; %a{ 'a' } = 1; my $h = %a.keys; say( defined($h) ?? "yes" !! "no")
exp_evalbot r18603: OUTPUT[yesā¤]
moritz_ kp6: my %a; %a = { a => 1, }; my $h = %a.keys; say( defined($h) ?? "yes" !! "no") 15:08
exp_evalbot r18603: OUTPUT[yesā¤]
fglock moritz_: what are you looking for?
ah - failing tests 15:10
pasteling "moritz_" at 89.12.253.20 pasted "kp6: 40-hash-keys" (5 lines, 99B) at sial.org/pbot/28185 15:11
moritz_ this paste prints "no"
but it is esentially the same as what I just tried with evalbot
15:11 drrho left
fglock hmm - I think I found it 15:16
15:17 c9s__ joined 15:20 fridim left 15:21 c9s_ left 15:24 fridim joined, dmq left, demq joined, fridim left 15:25 fridim joined, c9s__ is now known as c9s, fridim left 15:26 moritz joined 15:28 rindolf joined
moritz_ irc logs (and logging bot) will go down shortly, but I expect them to be up really soon[tm] (less than 20min) 15:31
15:36 moritz_ left, test left, barney joined 15:38 marmic left, drupek12 joined 15:39 weinig left
pugs_svn r18604 | fglock++ | [kp6] fixed Pair to Hash coercion 15:39
15:40 dlocaus joined
dlocaus hello! 15:40
moritz hi dlocaus ;)
lambdabot moritz: You have 1 new message. '/msg lambdabot @messages' to read it.
moritz @messages
lambdabot ahmadz said 1m 7d 5h 2m 11s ago: "Did runpugs work with the new fixes on your machine (feather3.perl6.nl/runpugs)? (Remember to refresh cache just in case)"
moritz that's a darn old message, and I'm sure I already read it
fglock dlocaus: hi! 15:41
dlocaus does anyone know of any good documentation on the "grammar" keyword? I've been looking around trying to find specific syntax/keyword, and descriptions.
moritz lambdabot seems to be a bit buggy
dlocaus: it's basically a class
dlocaus: but it usually consists of regex/rules/tokens
masak dlocaus: did you check the synopses?
moritz looks for documentation..
15:42 marmic joined
masak dev.perl.org/perl6/doc/design/syn/S05.html 15:42
lambdabot Title: Synopsis 5: Regexes and Rules - perl6
dlocaus masak: yes, however the documentation didn't provide enough information
I was looking at testcase #17 in grammar last night, and I couldn't make head or tails of the grammar definition
moritz perlcabal.org/syn/S05.html#Grammars
lambdabot Title: S05
masak dlocaus: maybe grep the pugs repository for 'grammar'
dlocaus: what testcase #17? 15:43
moritz masak: probably kp6 testcase 17
dlocaus It appears to be testing the grammar class.. There is a bug in it, in which that memory usage grows to 1gig, and then the program dies.
masak oh. 15:44
dlocaus I was removing lines of code to reduce the problem and see if I could debug it.
17-complex-return.t
fglock dlocaus: it works now, on the perl5rx backend 15:45
dlocaus oh... ok
masak hm, is there an mm// syntax now?
moritz masak: yes 15:46
masak what does it do?
moritz m:sigspace
masak ah ok
Juerd Re runpugs: everything returns "next". Huh? 15:47
pugs_svn r18605 | fglock++ | [kp6-perl5rx] group the token definition in a single term
moritz Juerd: it works fine for me 15:48
15:48 TJCRI joined
Juerd pugs> fooey 15:49
("next", Bool::True)
pugs> bar
("next", Bool::True)
pugs> 1+1
("next", Bool::True)
moritz pugs> 1+2 15:50
3
Juerd In runpugs?
moritz in runpugs, yes 15:51
15:51 theorbtwo left
moritz at run.pugscode.org/runpugs/ 15:51
lambdabot Title: Run Perl 6 Now -- in your browser!
moritz Juerd: do you have a javascript error console or something in your browser?
or firebug if you use firefox?
then you could see if there are javascript errors (I don't get any)
Juerd Firebug sees no errors 15:53
moritz weird 15:54
pugs_svn r18606 | fglock++ | [kp6-kp6] add missing files 16:01
Juerd For some reason, feather0 is spending 50% CPU on iowaiting 16:02
Damn, its lvm is really fucked up 16:03
Null pointer errors from the kernel
Expect a feather1..3 crash real soon
moritz
.oO( not good )
which one is feather0? the "real" hardware?
Juerd Yes
moritz ouch
Juerd And these LVs are used by feather1..3 16:04
avar fglock: working on bootstraping?
moritz is there an fsck for LVs?
Juerd No, it's not a filesystem.
It's relatively raw storage.
fglock avar: yep
Juerd I think I'll just powerboot the thing now, as I'm sitting right next to it
Better than tonight during backups...
avar neat
Juerd So, sorry folks, here go the feathers 16:05
I'll shutdown feather1 properly
fglock Juerd: no more svn?
Juerd fglock: Indeed.
avar gah broken makefile 16:06
Juerd I expect it to be back up in 10 minutes
avar rm -f blib/arch/auto/KindaPerl6/KindaPerl6.so
cc -shared -L/usr/local/lib KindaPerl6.o -o blib/arch/auto/KindaPerl6/KindaPerl6.so \
moritz
.oO(we should have used git in the first place ;)
avar \
cc: KindaPerl6.o: No such file or directory
cc: no input files
make: *** [blib/arch/auto/KindaPerl6/KindaPerl6.so] Error 1
moritz avar: kp6 C backend? *SCNR*
Juerd c14.convolution.nl/munin/perl6.nl/f...l-cpu.html 16:07
See for yourself
lambdabot Title: Munin :: perl6.nl :: feather0.perl6.nl :: cpu, tinyurl.com/yof2ng
moritz why 200%? for 2 CPUs? 16:08
16:08 wolverian left 16:09 wolv joined
avar disgerard that, my error 16:09
16:11 dalek left, Juerd left, PerlJam left 16:13 TJCRI left, TJCRI joined
dlocaus fglock: I've updated Makefile.PL to use nmake. It could be better written, but I don't know of a good way to go about doing it. What else can I work on? 16:13
fglock hmm - looking 16:14
16:15 fridim joined
fglock dlocaus: would you like to learn Parrot? 16:18
dlocaus I'm not sure I have the beak for that. :)
But, I'm willing to give it a shot. What do you need? 16:19
fglock just try out something like: echo 123 | perl script/kp6 -r kp6 -Bparrot 16:21
16:22 Jamtech joined
dlocaus I got back that KindaPerl6/Runtime/Perl6/Pair.pm did not return a true value at compiled/perl5-kp6-kp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 829. 16:22
I svn updated about 20 minutes ago.
16:23 test joined
fglock sorry, I mean: echo 123 | perl script/kp6 -Bparrot 16:23
I was playing with another backend here
dlocaus humm.. I got something that looks like a macro language. 16:24
16:24 justatheory joined
fglock yes, that's Parrot "pir" 16:25
16:25 moritz_ joined, moritz left
Tene was tracking the pugs repository via git-svn for a while... that's on my currently-dead laptop, though. 16:26
dlocaus fglock: If this is where help is needed, I'm willing to put effort into it.
16:27 masak left
fglock dlocaus: there seems to be many people willing to help with the Parrot backend, 16:27
16:27 rindolf left
fglock it's not difficult to get help on Parrot, either here or in the #parrot irc 16:28
moritz_ #parrot is on irc.perl.org btw
fglock dlocaus: you can find out about the emitters at src/KindaPerl6/Visitor/Emit/ 16:29
the file structure is about the same for each backend 16:30
dlocaus fglock: ok.
spinclad kp6: sub f($a,$b){ "$a:$b" }; f(a=>1,2)
exp_evalbot r18606: OUTPUT['2:'ā¤]
spinclad kp6: sub f($a,$b){ "$a:$b" }; f(b=>1,2)
exp_evalbot r18606: OUTPUT['2:1'ā¤]
fglock spinclad: fixing 16:31
spinclad kp6: sub f($a,$b){ "$a:$b" }; f(1,a=>2) 16:32
exp_evalbot r18606: OUTPUT['1:'ā¤]
spinclad kp6: sub f($a,$b){ "$a:$b" }; f(1,b=>2)
exp_evalbot r18606: OUTPUT['1:2'ā¤]
spinclad C<f(1,a=>2)> should perhaps complain, like f(a=>1,a=>2) 16:33
kp6: sub f($a,$b){ "$a:$b" }; f(a=>1,a=>2) 16:34
exp_evalbot r18606: OUTPUT['2:'ā¤]
16:34 wilx left
fglock spinclad: fixed it here, but svn is currently down 16:35
I could paste the diff
16:36 barney left
spinclad let me check the spec tho; (if :namedargs and positionalargs are split into two streams first, their order between streams could be lost. Spec might disallow this...) 16:36
16:39 araujo left 16:43 knewt left 16:44 araujo joined
dlocaus & food. 16:46
16:48 cathya joined
fglock & decommute 16:48
16:57 dalek joined
pasteling "pugsbot_r17185" at 193.200.132.135 pasted "Pugs build failure" (6 lines, 278B) at sial.org/pbot/28189 16:57
16:57 pugsbot_r17185 joined 16:58 pugs_svnbot joined
moritz_ YaY, svn is back 16:58
Juerd++
pugs_svn r18607 | dlo++ | Made minor changes to the warning for using nmake (MSWin32). 16:59
pugs_svnbot r18607 | dlo++ | Made minor changes to the warning for using nmake (MSWin32).
diff: dev.pugscode.org/changeset/18607
lambdabot Title: Changeset 18607 - Pugs - Trac
pugs_svn r18608 | moritz++ | [irclog] start transition to extensive use of mod_rewrite
17:00 Juerd joined
pugs_svnbot r18608 | moritz++ | [irclog] start transition to extensive use of mod_rewrite 17:00
diff: dev.pugscode.org/changeset/18608
lambdabot Title: Changeset 18608 - Pugs - Trac
Juerd Bad news: I have no idea what is wrong 17:01
spinclad :(
Juerd It has to do with LVM snapshots, which are used for the daily backups.
There have not been correct backups the past few days.
17:01 blindfish joined
Juerd If you like to panic, now would be a good time. 17:01
spinclad any indications of hardware/software issue? 17:02
17:02 cathya left
Juerd spinclad: It must be software, because the snapshots don't use different hardware than the normal volumes. 17:02
17:04 rindolf joined 17:06 knewt joined 17:08 barney joined, fglock left 17:09 pmurias joined
spinclad kp6: sub f($a,$b){ "$a:$b" }; f(a=>1,2) 17:09
exp_evalbot r18608: OUTPUT['2:'ā¤] 17:10
TimToady I'd guess the snapshot mechanism is spinning trying to acquire a lock it can't get.
Juerd Well, it does work, but incredibly slow 17:11
2 megabytes per second datatransfer on the snapshot
And I have no idea how to debug a kernel :) 17:12
TimToady are you backing the LVMs serially or concurrently?
Juerd I'm not sure what you mean 17:13
TimToady maybe they're fighting...
is there more than one LVM that you're backing up?
Juerd There's one big VG, that's on one big PV, which is one big MD raid array
No, just one.
TimToady nevermind then
Juerd It does them sequentially because they're all on the same drives. 17:14
And it works perfectly on other hosts. It has worked great on feather until the crash recently
It probably caused the crash too
TimToady seems like there's some way it's storing persistent locks that maybe arent GC'd even by a crash 17:15
like the problems RPM gets sometimes with Berkeley DB locks
17:15 franck___ left
TimToady if any part of the backup system is using BDB, you might have to go in by hand and occasionally blow away the locks by hand 17:16
let me see if I can dig up a reference 17:17
Juerd There's no Berkely DB involved 17:19
Just lvm snapshots and tar
and gzip, ssh, perl
17:20 cerridwen left
dlocaus svn.pugscode.org/pugs/v6/v6-KindaPe...Grammar.pm 17:20
on the "token ident {" rule, there is an odd character after the closing '|'. Is that supposed to be there?
lambdabot tinyurl.com/23kuus
17:20 Psyche^ joined
[particle] that's the cent sign, and yes 17:20
$Ā¢ is valid perl 6 17:21
dlocaus humm, ok.
spinclad one of the odd bits of utf8 that have crept in 17:22
TimToady Juerd: well, for reference, here's the link anyway: rpm.org/hintskinks/repairdb/
lambdabot Title: Repair an RPM database safely 17:23
[particle] what's a hint skink? is that like a perl monk?
pmurias dlocaus: it was added because of STD.pm
TimToady $Ā¢ is supposed to look like deep magic because it is deep magic. 17:24
it's basically the current match continuation
pmurias dlocaus: do you know Common Lisp? 17:25
dlocaus I'm reading up on it. On my monitor/font, I couldn't make out the character.
TimToady we run this channel in utf8
dlocaus I studied a little schema about 10 years in college. But I hated it. (sorry)
pmurias no problem ;)
TimToady dlocaus: what locale are you running in? 17:26
oh, wait, you're on XP
dlocaus TimToady: I'm running WinXP.
US-English.
[particle] that's the 'ms-redmond' locale ;)
TimToady when I'm on win I usually run putty for a terminal, which does support unicode to some extent 17:27
[particle] i use pidgin for im/irc, and it's pretty unicode friendly
TimToady especially since I run irssi on a different machine under screen
17:27 IllvilJa joined
TimToady so I need a remote terminal anyway 17:28
the nice thing about using screen is you never have to log off the irc channel
dlocaus I'm playing with the font's on my editor trying to see if I can find a nice "c" cent redering.
TimToady what do you use for an editor?
[particle] there's probably a lucida console unicode font variant 17:29
dlocaus UltraEdit.
TimToady can't help you there; first thing I do is download vim :)
spinclad TimToady: is there a spec on the order of binding positional and named args to positional parameters? as in sub f($a,$b) {...}; f(1,:a(2)); f(:a(2),1) ... does the 1 get bound to $b in either case? 17:30
[particle] i usually download firefox first, then vim :)
dlocaus :), I've been using it for a long time. I think a lot of keyboard short cuts are now hardwired into my finger muscles.
spinclad or conversely, bound to $a, and 2 bound to $a as well? 17:31
wolv oh, wow, git-svn cloning the pugs repo takes a while 17:32
spinclad (i saw that :a(1),:a(2) could be bound to @a, but that's something else again)
allbery_b TimToady++ (you just answered a completley unrelated problem I've been figting with this morning. unfortunately it seems to be a sleepycat-- db bug)
17:32 Patterner left, Psyche^ is now known as Patterner
spinclad (checked the specs; S06 didn't seem to say) 17:34
TimToady yes, the section on binding has evolved over time as pugs was being developed, and now seems less clear than it used to be. 17:35
integral
.oO( git-svn clone it on feather, then rsync the git repo home, wolv )
TimToady at the moment it seems to say that binding order is controlled by the call's arguments rather than the formal parameter's order, but that seems wrongish to me; maybe that sentence was trying to say something else. 17:37
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. 17:39
*positional
wolv integral: not a bad idea :)
Juerd TimToady: Thanks for the link
integral git++ # rsync and plain-ol' http serving
17:39 wolverian joined
Juerd TimToady: I have to maintain two RPM-based servers too, so it might come in handy 17:40
17:40 wolv left
TimToady in any case, it's very important that parameter binding not end up O(N**2) 17:40
pugs: sub f($a,$b){ "$a:$b" }; f(2,a=>1) 17:41
exp_evalbot OUTPUT["1:2"ā¤]
spinclad thinking of the arguments translating to a Capture, with its separate @ and % aspects... it seems (to me) that the named args and positional args end up in different streams, with no ordering between them. then it seems you can only specify @| then %|, or %| then @|, globally for the whole language...
wolverian what's the path to the pugs repo on feather?
if there is a public one, that is.. I just assumed it's on feather for some reason 17:42
spinclad sorry, your 'my mental model' is a third possibility i missed. good.
17:43 weinig joined
wolverian thanks :) 17:43
spinclad (well, that amounts to eat from %| then @|, for each parameter.) 17:44
TimToady part of the reason for using proto subs is to allow mapping of named arguments to positional at compile time so we know the first N args can just be slapped in positionally 17:45
so you don't pay the % lookup penalty for parameters that the sig is expecting positionally. 17:46
spinclad wolverian: svn.pugscode.org/pugs
lambdabot Title: Revision 18608: /
spinclad indeed
Juerd wolverian: feather.perl6.nl/svk.html 17:47
lambdabot Title: SVK on Feather
Juerd I want a way to backup feather1. The only safe way I can currently think of is to suspend the virtual machine and then copy its data 17:48
wolverian well, there's no git-svk I think..
Juerd Which would suck
17:48 weinig_ joined
wolverian so I did git-svn clone file:///... I'm not sure how proper that is :) 17:48
TimToady balancing out flexibility with efficiency while keeping a simple mental model is hard; we were very happy when we came up with the proto sub hack... :) 17:49
but yes, the specs don't really seem to express it right yet
wolverian well, getting one revision was quite fast
spinclad TimToady: this ('my mental model') answers my question then 17:50
cj TimToady: when I mention implementing perl6 on the CLI (.NET), the first response I get is that stack-based virtual machines are not as well-suited for implementing dynamic languages as register-based VMs. Can you tell me why someone might say that, or where I might read to get some details?
TimToady another reason that the binding must happen in formal order is that we allow defaults to refer to previous formals
cj TimToady: there's a lot of support from MS around implementing perl6 on the CLI
TimToady so I think the sentence in S06 has the terms backwards
uh, they must be assuming that they would be targeting the CLI via Parrot, which is regeister based. 17:52
but there's nothing about the Perl 6 language that requires a register-based VM
or a stack-based VM, for that matter
17:57 TJCRI left
TimToady a more interesting question is how hard it'll be to at least emulate continuations for purposes of pattern matching and logic programming; and whether that forces Perl 6 to keep its own runloop 17:59
wolverian is irc.pugscode.org working?
oh, it is
I have a terrible urge to rewrite irclog in catalyst 18:00
TimToady another interesting question is the extent to which we can make their exception model fail-soft in a way that works well will parallel programming 18:01
you don't want to be unwinding the whole stack merely because one element out of your million element hyperoperation turned out to be undefined.... 18:02
[particle] hopefully for .net users, ms will figure that out on their own
Tene wolverian: port catalyst to Perl 6 first. 18:03
TimToady unwinding the stack should be the last resort, and then only when you already know where you're unwinding it to.
wolverian Tene, that's even more terrible :)
18:04 wilx joined, weinig left
TimToady another question is on porting to the CLI is whether it can support STM efficiently. 18:04
wolverian: can't be any harder than porting Perl 6 to Perl 6 first... :) 18:05
wolverian I'll just take a few years off from university.. 18:07
should be done by christmas!
18:08 funktio left
wolverian hm.. the git svn repo doesn't have any branches, does it? 18:10
er... s/git/pugs/
[particle] no branches in pugs repo 18:11
wolverian damn, I was hoping for some cute gitk graphs :)
Tene wolverian: nah, svn is too fond of linear history for there to be anything interesting. 18:14
wolverian that's so web1.0
18:16 PerlJam joined
Tene gets to use git at work and rather enjoys it. 18:17
18:18 jisom joined 18:19 weinig_ left 18:20 weinig joined 18:23 pugs_svn left
moritz_ ?eval "test" 18:23
pugsbot_r17185 "test"
18:24 theorbtwo joined
TimToady ?eval sub f($a,$b){ "$a:$b" }; f(2,a=>1) 18:24
pugsbot_r17185 "1:2"
18:25 bradb joined
moritz_ kp6: sub f($a,$b){ "$a:$b" }; f(2,a=>1) 18:25
exp_evalbot r18608: OUTPUT['2:'ā¤]
TimToady pugs is correct assuming we keep the priority of % over @ 18:26
[particle] can you mix $a and $^a ? 18:27
PerlJam [particle]: mix? They're the same aren't they?
[particle] pugs: f($^a, $a, $b){ "$^a:$a:$b"; f(3,2,a=>1) 18:28
exp_evalbot OUTPUT[*** ā¤ Unexpected "){"ā¤ expecting "::"ā¤ Variable "$b" requires predeclaration or explicit package nameā¤ at /tmp/SbBeuJaPi5 line 1, column 14ā¤]
TimToady currently only bare blocks with no arguments are allowed to use $^a 18:29
[particle] oops
pugs: f($^a, $a, $b){ "$^a:$a:$b"}; f(3,2,a=>1)
exp_evalbot OUTPUT[*** ā¤ Unexpected "){"ā¤ expecting "::"ā¤ Variable "$b" requires predeclaration or explicit package nameā¤ at /tmp/ieGFXsHunv line 1, column 14ā¤]
[particle] ah, good.
18:31 Jedai joined
cj thanks, TimToady! 18:34
TimToady: mind if I send your comments to the ms devs?
18:35 BinGOs_ joined
[particle] better yet... send the ms devs here :) 18:35
18:36 weinig_ joined, amnesiac left, weinig left
TimToady cj: I assume anything I say here is public record... 18:37
cj TimToady: roger that 18:39
18:40 BinGOs__ joined 18:41 cerridwen joined 18:42 shlomif joined, shlomif left 18:44 BinGOs left, BinGOs__ is now known as BinGOs
cj TimToady: you want to be CC'd? 18:46
18:48 Torment left 18:49 TJCRI joined
araujo TimToady, be careful then ;-) 18:49
moritz_ araujo: in case you didn't notice: this channel is publicly logged ;) 18:50
araujo: nobody with just a tiny bit of sanity will read through all of it, but you never know... ;)
Tene reads almost everything in this channel. 18:52
moritz_ Tene: me too. I meant somebody not on the channel ;)
bilbo1507 Lots of lurkers, too, like myself. :) 18:53
18:53 BinGOs_ left
moritz_ bilbo1507: you lost! now you're not lurking anymore ;) 18:54
18:54 rindolf left
bilbo1507 True, true. But the Evil Empire (whoever you consider that to be) is always lurking :) 18:54
cj why are all of the links broken on this page? 18:56
m19s28.dyndns.org/iblech/stuff/pugs...be6f4.html
lambdabot Title: TAP Matrix - Mon Oct 22 20:53:14 2007 GMT, tinyurl.com/yukavl
pugs_svnbot r18609 | moritz++ | [irclog] 19:07
r18609 | moritz++ | - moved .htaccess to cgi/
r18609 | moritz++ | - prepared switiching to different virtual host
diff: dev.pugscode.org/changeset/18609
lambdabot Title: Changeset 18609 - Pugs - Trac
19:21 dlocaus left, cmarcelo_ joined, rlb3_work_ joined 19:23 rlb3_work left 19:25 bradb left, cmarcelo left, cmarcelo_ is now known as cmarcelo 19:31 bkaney joined 19:36 jisom left 19:38 xinming_ joined
bkaney Hi. Are traits available in pugs 6.2.13? I am having syntax troubles... 19:42
spinclad 'traits' == roles? 19:46
bkaney Yes. dev.perl.org/perl6/doc/design/syn/S12.html (Traits section) 19:47
lambdabot Title: Synopsis 12: Objects - perl6
19:50 barney left 19:52 blindfish left
spinclad i think full support of roles depends on a new meta-object model for pugs, which has been pending for most of a year now. 19:54
TimToady as used in S12, traits !== roles
in fact, we should rename traits to something else, "tweaks" maybe
but yes, bare 6.2.13 is a year old now, and you'll have much better luck with the latest revision of pugs 19:56
bkaney Okay. I did the emerge (gentoo) and that's what I got, although there could be a new ebuild...
TimToady even though it doesn't have a full MO implementation yet
most of us just go straight from the svn repo 19:57
bkaney yea, I'll have to do that and give it a shot and see what happens. thanks. 19:59
TimToady in any case, as soon as we give you a commit bit, you'll want the fresh version anyway. :) 20:01
20:02 weinig joined
TimToady bbl & 20:07
20:13 vbattsAtWork left 20:14 weinig_ left 20:23 ruoso left 20:40 c9s left, c9s joined
cj TimToady: bah. I'm going to cc you on this email to the .NET devs since you didn't object :) 20:41
20:43 marmic left 20:46 marmic joined 20:50 perlbot left
pugs_svnbot r18610 | moritz++ | [irclog] added more configuration to .htaccess 20:53
diff: dev.pugscode.org/changeset/18610
lambdabot Title: Changeset 18610 - Pugs - Trac
20:55 BinGOs_ joined 20:56 weinig left 20:59 BinGOs left 21:00 BinGOs joined, xinming_ left, daxim joined 21:01 weinig joined, weinig left
pugs_svnbot r18611 | moritz++ | [irclog] added missing (new) index.pl 21:05
diff: dev.pugscode.org/changeset/18611
lambdabot Title: Changeset 18611 - Pugs - Trac
21:06 weinig joined 21:08 justatheory_ joined 21:13 BinGOs_ left 21:15 daxim_ left
pugs_svnbot r18612 | moritz++ | [irclog] more .htaccess hacking 21:17
diff: dev.pugscode.org/changeset/18612
lambdabot Title: Changeset 18612 - Pugs - Trac
pugs_svnbot r18613 | moritz++ | [irclog] enable caching of index page 21:20
diff: dev.pugscode.org/changeset/18613
lambdabot Title: Changeset 18613 - Pugs - Trac
21:29 justatheory left
pugs_svnbot r18614 | moritz++ | [irclog] more template whacking 21:29
diff: dev.pugscode.org/changeset/18614
lambdabot Title: Changeset 18614 - Pugs - Trac
21:30 ST47 left, ST47 joined 21:40 perlbot joined
pugs_svnbot r18615 | moritz++ | [irclog] channel indexes are cached as well 21:41
diff: dev.pugscode.org/changeset/18615
21:41 perlbot left
lambdabot Title: Changeset 18615 - Pugs - Trac 21:41
21:42 perlbot joined, perlbot left
pugs_svnbot r18616 | moritz++ | [irclog] don't send xhtml header for channel index (which isn't valid xhtml) 21:44
diff: dev.pugscode.org/changeset/18616
lambdabot Title: Changeset 18616 - Pugs - Trac
21:44 perlbot joined
moritz_ caching testing sucks if you don't have an easy way to reset the cache ;9 21:47
pugs_svnbot r18617 | moritz++ | [irclog] fixed caching for channel index
diff: dev.pugscode.org/changeset/18617
lambdabot Title: Changeset 18617 - Pugs - Trac
21:47 perlbot left
moritz_ ah, found it ;) 21:47
21:48 perlbot joined 21:50 TJCRI left
pugs_svnbot r18618 | moritz++ | [irclog] fixed previous commit. Hopefully. 21:53
diff: dev.pugscode.org/changeset/18618
lambdabot Title: Changeset 18618 - Pugs - Trac
21:53 pmurias left 21:55 cmarcelo left 21:56 Jamtech left 22:33 polettix joined 22:35 Limbic_Region joined 22:39 mr_ank joined 22:42 Aankhen`` left 22:44 iblechbot left 22:45 bkaney left 23:14 lambdabot left, lambdabot joined 23:26 drupek12 left