svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/
Set by putter on 11 February 2007.
Arathorn i guess i'm asking why { foo() } seems to mean sub { foo() } rather than do { foo() } 00:00
audreyt: open(...) or do { warn "failed to open"; return; }
i've never really understood why the do is necessary, or if it's even good style (given the history of 'do' as a perl4ish keyword) 00:01
jql Arathorn: It's a design choice, to make passing code around in variables easier.
avar why isn't code always an expression? 00:02
audreyt open err { warn "failed!"; return }();
the extra () seems a reasonable thing to type
Arathorn mm, ok
avar is my Code $c = do { foo() }; the same as my $c = \&foo; in p5? 00:03
jql avar: err, no
Arathorn performance wise is that nastier than worse than unless (open) { warn "failed!"; return } #?
jql do { foo() } actually calls foo()
allbery_b my Code $c = { foo() }; which I think is my $c = sub { foo(); }; 00:04
Arathorn given that it has to presumably do closure magic when instantiating the anonymous function
allbery_b I think &foo is the new \&foo but don't quote me, I don' 00:05
t have the synopses memorized :)
Juerd Arathorn: It's partly for nice syntax like: map { $_ ** 2 }, @numbers
Arathorn: Which would otherwise either require a special case, or: map sub { $_ ** 2 }, @numbers 00:06
Arathorn right, that makes sense
Juerd Arathorn: Also, for @bar { ... } would be something like for @bar, sub { ... }
moritz_ which could be writetn as @number >>** 2 (just in this case)
Arathorn i guess i'm too used to {} being merely a block delimiter in C-style languages, rather than yielding a coderef
Juerd moritz_: I've never been really good at contriving code :)
allbery_b think postscript? :) 00:07
Juerd Arathorn: It's a block delimiter in Perl too.
Arathorn: Only a keywordles block is treated differently when it's not in void context.
Note that in void context, it still immediately executes.
Arathorn right 00:08
Juerd In fact, I think 0 || { die } may execute die.
Arathorn it doesn't in (my very old) pugs
jql $x = 0 || { die } ?
is different from the void version?
Juerd jql: Closure assignment.
Yes.
5; # 5 in void context 00:09
my $x = 4; # 5 in item context
my @x = 5; # 5 in list context
s/4/5/
jql so, it would have a different result depending on whether it's the last statement in the function? heh
jql gets out the spooky stick
Juerd jql: I think so. But sane people don't write this in void context anyway :)
Arathorn whilst i can see why there's convenience in {} returning a coderef in a non-void context, the different in behaviour for some reason seems unintuitive. but that's probably just me
jql Arathorn: I always used comma in the case you cited above, in p5 00:10
Arathorn jql: that's what i've been doing to - or || do { foo; bar; baz };
s/to/too/;
jql foo(), bar() if 0 || (warn("foo"), return)
Arathorn but i've always wondered whether do {}; had any unexpected overhead due to the block somehow having to be stored in such a way that it can be executed via 'do' 00:11
Juerd do { } is syntax, not a function call. 00:12
afaik
Arathorn right 00:14
audreyt do{} has overhead.
braceless-do does not
(the overhead is constructing a lexical scope)
Arathorn does anyone know what overhead one would expect there to be between sub { warn; return }() and plain old { warn; return } #?
TimToady the scope could be optimized away if it's unused 00:15
audreyt well if you drop the "sub"
jql depends on the level of -O
audreyt then it's the same
if you say "sub" then we have to construct a Routine instead of Block
Arathorn oh, ok
audreyt which is considerably harder to optimize away
jql especiaally considering warn() probably calls context()
Arathorn so {} in a non-void context yields a reference to Code which happens to be a Block?
audreyt correct.
Arathorn okay. 00:16
TimToady it's not whether it's in a void context, but whether it's being used as a statement
Arathorn looks slightly more panicked and says "okay." again 00:17
TimToady alternately, you can say that a block in statement position forces itself into void context and passes the real context to its inside.
rhr Arathorn: &abort := -> Str $err { warn "$err\n"; return; } then you can say things like open ... err abort "some error"
TimToady if you want to return a block rather than its value, use "return" explicitly.
allbery_b looks around furtively before starting the whole update-build-smoke cycle again... 00:18
audreyt allbery_b: another massive commit coming...
allbery_b heh
Arathorn rhr: fair enough - although i'm searching for an idiom where my error block could contain arbitrary error handling. more like a cheap one-off exception
avar audreyt considered harmful to pugs smoking:)
TimToady err try {...} maybe then? 00:19
moritz_ 18426 test cases: 7287 ok, 11139 failed, 3055 todo, 693 skipped and 2341 unexpectedly succeeded 00:20
Arathorn i guess so
moritz_ fascinating ;-)
rhr yeah, there's that. I've found that idiom to be pretty useful though
Arathorn rereads S4
svnbot6 r15613 | audreyt++ | * Pugs.Parser: Allow exported "my" subs, whatever they may mean...
Arathorn i guess i'm wondering if there 00:22
is any way to avoid setting up a new lexical scope, or anonymous code block
other than 0 || (warn(), return);
uh, s#||#err#
00:23 lisppaste3 joined
audreyt well yes 00:23
TimToady then "err try expr" or "err do expr"
audreyt what TimToady said.
Arathorn ah, just by missing the braces - okay 00:24
TimToady tosses the lexical scope but keeps the dynamic
Arathorn presumably expr still ends up being comma delimited, though?
assuming you want multiple expressions
audreyt I think TimToady recently added to S04 this form: 00:25
0 err (warn; return);;
nvm the trailing semis
oh, not really, the form is 00:26
0 err (return if warn "...");
Arathorn ah, ok
moritz_ does ghc cleans up its temp files?
audreyt semis within parens still isn't defined, iirc
moritz_: usually yes
moritz_ ok, then i probably had an unusual case ;-) 00:27
no, I'm wrong
audreyt restarting evalbot 00:29
Arathorn audreyt/TimToady/all: thanks for clarifying block behaviours - that all makes sense now
00:30 Psyche^ joined, eric_ joined
Arathorn stops agonising over the perceived ugliness of the open() or do { log_to_server(); log_to_client(); etc; return; } he just wrote in his p5 thing and relurks 00:31
svnbot6 r15614 | putter++ | yet_another_regex_engine/ - began :ratchet support. It looks like simply concat(quant_or_alternation,commit_sequence). 00:33
00:34 evalbot_r15613 joined
audreyt ?eval 1 00:34
obra "That didn't last long" 00:35
putter Perl-6.0.0-STD.pm... 370 tokens, 70 rules, 14 other regex, and 4 methods. Even in a small font that's big.
;)
00:37 Psyche^_ joined
putter oh, and 30 classes. 00:39
pasteling "evalbot_r15613" at 122.126.32.85 pasted "Pugs build failure" (277 lines, 18.1K) at sial.org/pbot/23430 00:41
00:41 evalbot_r15613 joined
svnbot6 r15615 | audreyt++ | * Pugs.Types: Make Array elements truly bindable: 00:42
r15615 | audreyt++ | my @x;
r15615 | audreyt++ | @x[10] := 123;
r15615 | audreyt++ | @x[10] = 5; # can't assign into Int
r15615 | audreyt++ | also make cloning an STM action rather than an Eval action.
audreyt (Hashes were already bindable this way.)
svnbot6 r15616 | audreyt++ | * Change all liftSTM into stm and all liftIO into io. 00:43
00:44 Psyche^_ is now known as Patterner, Schwern joined
audreyt allbery_b: feel free to smoke now :) 00:44
audreyt goes to sleep and prays that evalbot can resurface in ~20mins
00:46 stevan__ joined
svnbot6 r15617 | audreyt++ | * regen instances. 00:46
pasteling "evalbot_r15617" at 122.126.32.85 pasted "Pugs build failure" (217 lines, 14.4K) at sial.org/pbot/23431 00:48
00:50 evalbot_r15617 joined
audreyt ?eval 1 00:50
:/
moritz_ I guess evalbot needs a "make clean"
anyway, bed++
audreyt no, that was because INIT blocks are broken
allbery_b hm
00:51 eric_ is now known as forsaken
putter evalbot being absent for a day will simply make us appreciate it all the more when it comes back. 00:51
allbery_b notes that he isn't exactly sitting around waiting
00:51 evalbot_r15617 joined
audreyt ?eval 1 00:51
00:52 explorer joined
svnbot6 r15618 | audreyt++ | * evalbot.pl: rather than fix pugs's INIT block, let's use a 00:56
r15618 | audreyt++ | state variable now to workaround it...
r15619 | audreyt++ | * Pugs.Parser: fix CHECK and INIT block anyway. 00:58
allbery_b hits the button and goes back to Pesach cleaning...
01:01 ozo_ left, ozo_ joined 01:05 nipotaway is now known as nipotan
audreyt zzz for real & 01:07
pasteling "evalbot_r15619" at 194.145.200.126 pasted "Pugs build failure" (425 lines, 25K) at sial.org/pbot/23432 01:18
01:19 evalbot_r15619 joined
allbery_b needs make clean, I believe 01:19
rhr Arathorn: it still seems to me that a named pointy block does just what you want. my &abort_and_log := -> Str $svmsg, Str $clmsg { log_to_server($svmsg); log_to_client($clmsg); etc; return; } open ... err abort_and_log "blah", "blah"; 01:26
Arathorn is there any advantage to that over a plain old subroutine, though? 01:30
rhr pointy is transparent to return
Arathorn ah, ok 01:31
rhr so it return from the caller
Arathorn nods.
still, it isn't very concise. I guess i just expected 0 err { foo; bar; baz } to work, without having to () the block 01:32
rhr I had the same question here a week or two ago :) 01:33
01:48 kanru joined 02:02 jisom joined
allbery_b yay new pugs! smoking... 02:06
(btw creating JS prelude throws an error...) 02:07
02:21 dmq joined 02:32 mjk joined 02:45 b00t joined 02:51 mako132_ joined 02:54 dolmans joined 03:19 dvorak_ joined 03:38 mako132_ joined 03:55 SCalimlim joined 04:06 Aankhen`` joined 04:11 forsaken joined
avar ponders re::engine::PCR v.s. re::engine::Pugs::Compiler::Rule; 04:39
04:52 Schwern joined
obra RE::Engine::PugsRule? 04:53
avar perhaps....:) 04:54
04:54 amnesiac joined
avar I'm leaning towards PCR, easy to swap it out for PGE, typing wise:) 04:54
obra nod 04:55
avar I got captures working in re::engine::Plugin, well, numbered captures 04:57
$re->captures( [ qw(a o e u) ] ); :)
going to do $re->captures( sub { my ($re, $num) } ); too I guess, 04:58
$5000 would call sub { my ($re, $num }->($re, 5000) :)
04:58 Schwern joined 05:35 Psyche^ joined 05:41 Psyche^_ joined 05:48 nipotan is now known as nipotaway, Psyche^_ is now known as Patterner 06:14 BooK_ joined 06:43 iblechbot joined 06:54 Psyche^ joined 06:57 RHainsworth joined, RHainsworth left, elmex joined 06:59 Psyche^_ joined 07:00 Psyche^_ is now known as Patterner 07:06 rfordinal joined 07:14 euleron joined
meppl guten morgen 07:22
07:26 marmic joined 07:43 DrSlump_2 joined 07:47 Caleb1 joined
Caleb1 sup d00ds? 07:47
just here to tell you that perl is teh suck, and no l33t hax0rs use it
07:50 Caleb1 left 07:57 aukjan|gone is now known as aukjan
Schwern I think we've made the big time. 08:02
audreyt ?eval 1 08:05
evalbot_r15619 1 08:06
shay shit 08:07
I'm going to delete perl now, I thought that it was l33t 08:08
08:11 the_dormant joined
Schwern It is merely elite. 08:11
08:15 dec_ joined
svnbot6 r15620 | audreyt++ | * capture.t: unTODO. 08:22
r15621 | audreyt++ | * splat_rw.t: "sub f (*@x is rw)" is now specced to work, not to fail. 08:28
r15621 | audreyt++ | Add smartlink and reverse the tests.
r15622 | audreyt++ | * multi_named_vs_pos.t: unTODO. 08:31
r15623 | audreyt++ | more unTODO. 08:46
08:48 dec_ is now known as dec 08:55 jisom joined 08:56 jisom left 08:57 jisom joined
svnbot6 r15624 | audreyt++ | * namespaces.t: unTODO; all passes. 09:05
09:12 devogon joined
avar audreyt: re::engine::Plugin has $re->captures( [ bless {} => "PCR" ] ); $1->( "hello world" ); working now # dmq++ :) 09:21
audreyt: /w 19
eek
09:27 RHainsworth joined 09:31 Jedai joined 09:32 RHainsworth left 09:38 beppu joined
audreyt oooh 09:39
09:41 Psyche^ joined 09:42 IllvilJa joined
avar use re::engine::Pugs::Compiler::Rule; if ("abc" =~ /((.).)./) { $&; $&->from; $&->to; $1; $1->[0]; } 09:43
audreyt: or re::engine::PCR; what do you think?:)
svnbot6 r15625 | moritz++ | unTODOed several test files 09:44
09:55 Psyche^ is now known as Patterner
ayrnieu audreyt++ # your VB rocks! slideshow was a hit in ##C :-) 09:59
avar mm, url? 10:00
ayrnieu avar - feather.perl6.nl/~audreyt/osdc/vb.xul
avar shorten that
eek
ayrnieu www.pugscode.org / see the link on the left-hand-side 10:01
lambdabot Title: Pugs - pugscode
10:02 polettix joined
avar I just typed it:) 10:02
wow, a html slideshow that doesn't suck:) 10:03
made with some tool or handcoded?
ayrnieu The other slideshows there are also quite good, but they are not HTML. 10:05
10:30 ruoso joined
audreyt avar: "view source" :) 10:54
ayrnieu: ##C?
avar: ::PCR sounds good. going to upload it on cpan? :D 10:55
avar I'm going to keep it all for myself:) 10:56
well, afte I get stuff working in ::Plugin well enough:)
audreyt :D 10:57
avar++ # most exciting
avar it's just synatx sugar dear:) 10:58
sugar++
*syntax
specbot6 r14338 | audreyt++ | * formatting code consistency suggested by Daniel Hulme. 11:03
ayrnieu audreyt - the C IRC channel, yes. 11:07
audreyt - double-# for obscure Freenode reasons.
audreyt ok... 11:08
avar ayrnieu: the people on that channel suck:) 11:10
ayrnieu well, a troll wanted to let us know that he really likes VB. It's always better to take such people mostly as genuine, and to share good links like that. 11:11
avar pedantic bastards:)
ayrnieu avar - *nod*, I can only barely stand people who habit that channel.
avar #hurd was worse though back in the day:) 11:12
11:45 devogon joined
svnbot6 r15626 | fglock++ | PCR - more Unicode fixes; named_chars.t passes 411/419 11:45
r15626 | fglock++ | - added external/internal 'ignorecase' flag
11:46 fglock joined 11:51 Psyche^ joined 11:53 Psyche^ is now known as Patterner 12:10 weinig|bbl is now known as weinig 12:18 diakopter joined 12:43 rindolf joined 12:46 araujo joined 12:55 [particle] joined 12:56 dec_ joined 12:57 agentzh joined 13:04 agentzh left 13:13 the_dormant joined
svnbot6 r15627 | fglock++ | PCR - CPAN version 0.21 13:19
13:39 Limbic_Region joined
avar fglock: what's new? 13:51
ah, ^^ commit;
audreyt fglock: blog about it? :
:)
13:52 vel joined
clkao mmmmm 13:52
14:03 BooK joined
fglock hi! 14:11
re new - better unicode support
svnbot6 r15628 | fglock++ | - added t/regex/capture_rollback.t (2 TODO tests) 14:12
avar audreyt: pugs.blogs.com should be in svn:)
audreyt avar: want to go about make that happen? 14:13
atom<->svn bridge or something
avar how about just storing the posts as POD?:) 14:14
audreyt sure... :)
fglock also, some internal fixes, such as operator precedence 14:15
audreyt: it there a way to access pugs variables from PCR? 14:16
also, to handle back closures for pugs to parse/compile 14:17
audreyt fglock: give me an API and I'll make it happen
fglock: currently all lexicals are passed in again for eval_perl5 bridge 14:18
fglock I'd really like to have some way of making pads look like objects
audreyt but globals are inaccessible
is that good enough?
?eval my $x = 5; eval('$x', :lang<perl5>)
14:19 evalbot_r15619 is now known as evalbot_r15628
evalbot_r15628 5 14:19
audreyt like that
moritz_ cool ;-)
fglock ok! I'll make some tests
14:19 buetow joined
audreyt fglock++ 14:19
fglock: btw have you seen my new PadEntry layout? 14:20
I intend to blog about it
data PadEntry
= EntryLexical { pe_type :: !Type, pe_proto :: !VRef, pe_store :: !(TVar VRef), pe_fresh :: !(TVar Bool) }
| EntryStatic { pe_type :: !Type, pe_proto :: !VRef, pe_store :: !(TVar VRef) }
| EntryConstant { pe_type :: !Type, pe_proto :: !VRef }
basicaly there are three kinds of entries: refreshable, nonrefreshable, and nonbindable (and thus nonrefreshable)
all of them carries a type constraint, and a compile-time-object that is the "proto" object 14:21
for example, "my $x is Scalar" carries the proto of Scalar.new
but the proto is determined when compilatino of that scope ends, so if you have
"{ my $x is Scalar; BEGIN { $x = 3 } }"
then each time that scope is entered, a fresh Scalar.new(Int(3)) is cloned 14:22
(except for the first time; the "fresh" slot in Lexical pad tracks that)
I find this layout much saner than the old Cell layout 14:23
and maybe helpful to kp6 (which does not yet have Static/Constant layouts)
</rant>
fglock re API: currently it works like this: the p6 compiler overrides the definition of the 'Pugs::Grammar::Rule.parsed_code' rule; and the backends call a hardcoded 'Perl6.emit' sub if '$Pugs::Compiler::Perl6::VERSION' is defined 14:24
re kp6: the current problem in p5-land is that ':=' just calls perl5 '=', without type-checking 14:26
14:26 breakeven joined
fglock I'd like to discuss kp6 when you have some time - I'm not happy with the architecture yet 14:27
kp6 is almost building a VM on top of p5
mm - no Cell? 14:29
is tieing supported? 14:30
probably by defining new role methods for FETCH, etc? 14:31
audreyt well, tieing is simply binding 14:32
fglock to a proxy var 14:33
audreyt the tieable role simply lifts the type constraint in pe_type
yes.
fglock mm - I'd like to port lazy arrays to Haskell if I could 14:38
smash greetings
so, what's new in haskell land ? 14:45
14:49 DrSlump joined
DrSlump hi 14:50
audreyt smash: perl5 bridge converted to MO (with .HOW etc); "constant" and "state" declarators for vars and subs; much more accurate multi dispatch coming up next 14:52
15:02 cognominal joined
smash audreyt: writing in haskell ? 15:03
ajs_ fglock, I dunno if you were around to see sial.org/pbot/23398 but it looks like it was a problem with escapes in rule-embedded code with quoting 15:07
lambdabot Title: Paste #23398 from "ajs" at 63.107.91.99
audreyt smash: yeah 15:10
15:11 iblechbot joined
smash audreyt: nice, anything specific i can help with ? i miss writing code in haskell 15:11
audreyt smash: ooh. let's see... 15:14
15:14 aukjan is now known as aukjan|gone
audreyt smash: write me a function that checks if a Capture can bind to a Signature? 15:16
or checks two Signatures against a Capture to determine which one is closer to it
15:16 ProperNoun joined
audreyt smash: the Sig data type is in src/Pugs/Val/Code.hs line 73 15:17
the CaptVal data type is in Pugs.Val.Capture
see if they make sense to you?
the algorithm is S06:338 15:18
smash let me update first 15:19
audreyt alternately... write a unifier for two Signature to find the common Signature that can bind to both 15:20
for example
($x, $y) and ($x, $y, $z) should unify to ($x, $y, $z?) 15:21
ajs_ Another thing I've run into is "our" scoped variables don't appear to be available to <$foo> inside regexen
pasteling "ajs_" at 63.107.91.99 pasted ""our" scope not available to regex" (4 lines, 65B) at sial.org/pbot/23441
ajs_ in v6 that is
change the "our" to "my" and it works fine 15:22
audreyt the idea is that if a Capture is incompatible with the unified sig, then it has no chance of binding to any of the original sigs
smash audreyt: where's the algorithm gain ? 15:33
s/gain/again/ 15:34
audreyt smash: an older version of the binding/compatible algorithm is src/Pugs/Bind.hs 15:36
smash: the spec is in S06
line 338
15:59 diakopter joined 16:07 lichtkind joined
lichtkind are there any attempts to rewrite MAD for Partidge ? 16:08
16:18 wilx` joined 16:22 fglock joined
fglock ajs_: checking... 16:23
16:29 drupek12 joined 16:34 forsaken joined
fglock _ajs: re backslash: interpolating quotes in v6.pm are unfinished; single quotes parse: '\\' 16:35
16:35 rashakil_ joined
fglock _ajs: but after it parses, there are more problems... 16:36
16:36 mj41 joined
fglock _ajs: re 2nd paste, that's an error in v6.pm emitter; compiled rules should be inlined 16:39
16:39 chris2_ joined 16:40 chris2_ is now known as chris2
fglock mm - last v6.pm release was on my birthday 16:41
clkao whoot
avar audreyt: I forget, did you have co-maint or maint on re::engine::PCRE? 16:50
fglock does it make sense to write $somelang emitters for pugs yaml dumps? 16:51
avar yaml dumps of what? the parse tree? 16:53
fglock avar: pugs can dump compiled code to yaml; I don't know if it's the parse tree 16:55
16:56 Southen_ joined, justatheory joined
avar like what $somelang? 16:56
fglock avar: C, C++, Perl5
current kp6 possible targets 16:57
avar ooh:)
how do you run kp6? 16:58
PerlJam fglock: sounds interesting.
svnbot6 r15629 | fglock++ | PCR - added TODO tests; 16:59
r15629 | fglock++ | - defined Base::Grammar::DESTROY to avoid autoloading it 17:00
fglock avar: there is some code in v6/v6-KindaPerl6, but it's not really runnable yet - needs runtime libs and such
17:01 forsaken joined
fglock emitters are lightweight enough to be run from pugs 17:02
otoh, a native compiler is still needed to execute eval blocks 17:10
I wonder if pugs 6.283 will compile rules to haskell 17:15
pasteling "fglock" at 201.54.129.80 pasted "pugs parsefail, trying to parse the PCR rule grammar" (9 lines, 230B) at sial.org/pbot/23442 17:26
audreyt fglock: are you using latin1? 17:31
yes you are. bad idea
fixed 17:32
svnbot6 r15630 | audreyt++ | * Rule2.pm: use utf8; 17:34
fglock audreyt: thanks! 17:37
audreyt :) 17:38
fglock pugs: *** Can't locate utf8.pm in @*INC ... 17:40
audreyt well, that's hardly exciting...
gaal rehi 17:41
TimToady hi gaal
audreyt fglock: create a stub utf8.pm for now?
fglock audreyt: ok
gaal hey :) audreyt, any moose I can moose? 17:42
fglock audreyt: isn't utf8 the default?
TimToady fglock, do you have any automated way to unTODO the passing regex tests?
audreyt gaal: yes, I need a Signature unifier 17:43
fglock TimToady: no, sorry
audreyt and a Signature/Capture compat checker
gaal what's Sig unification?
audreyt then VCode can switch to use newsig instead of [Param]
gaal :(Int $x) <=> :(Num $x) ?
audreyt property: give two Sig, produce a Sig that, if a Capt can't be bound to it, then it can't be bound to the orig two 17:44
given that property, of course a legit implementation is simply return :(|$)
but try to do better than that :)
gaal unify :: Sig -> Sig -> Capt -> Sig ? 17:45
audreyt no
instance Monoid Signature where
mappend :: Sig -> Sig -> Sig
gaal give me a frinstance with sigs?
audreyt it's not Capt related
:($x) `mappend` :($x, $y) = :($x, $y?)
:(Int $x) `mappend` :(Str $y) = :(Int|Str $y)
:($x is rw) `mappend` :($x) = :($x is rw) 17:46
gaal :($x) `mappend` :($x) => :($x) yes?
audreyt sure
gaal what about code constraints?
simple addition?
where $c1 where $c2 ?
audreyt use | semantics
no
obra B/win 75 17:47
audreyt where $c1|$c2
or just drop the where
probably wise to drop
we are not required to be gcd
just some cd
TimToady fglock: don't apologize, just keep an eye out for a minion/cagecleaner to do it. :)
gaal I'm not even sure ValSig expresses junctions now?
audreyt so just drop it :)
TimToady any minions/cagecleaners listening in, feel free to volunteer... 17:48
gaal k :) I'll write some algebraic rules first and nopaste them for review
audreyt moose!
gaal I've always been of that opinion, yes
TimToady there's >2000 todos that can be unTODO'd with a bit of automation
[particle] you keep pugs in a cage? HOW CRUEL! 17:49
fglock pugs -Iext/Test/lib t/regex/p6regex/p6regex.t | grep '^ok' | grep TODO | perl -ne ' print ", $1" if /(\d+)/ '
TimToady if there are no minions/cagecleaners, a fawning sycophant would do...
gaal audreyt: are there any cases where mappend is not commutative here? 17:50
audreyt TimToady: do onlies install shortnames? 17:51
er, longnames
gaal: shouldn't be
gaal cool
TimToady onlies hide all outer longnames
audreyt sub f () { 3 }
&f:()();
kosher?
TimToady why not, just a set that happens to contain one member? 17:52
audreyt k.
but it's the same pad entry? 17:53
TimToady sort of proto f is override
audreyt i.e. if I rebind one, the other gets rebound?
&f vs &f:()
TimToady hmm
question is whether :() does PDLish slice or a "copy" 17:54
audreyt well, currently it goes like this 17:55
multi f () { 3 }
we already said that &f and &f:() are distinct entities
you can &f.wrap which does not touch &f:()
if &f:() gets rebound, &f chases it
but not the other way around
question is if onlies work like that. I think I prefer that its shortname/longname is actually the same entry 17:56
TimToady If that makes it simpler, I guess I'm okay with it
probably dwimmier that way
and maybe -Oier 17:57
audreyt yeah. also saves pad storage a lot
k.
does 17:58
$f:(Int, Int)
mean anything at all?
(the previous line might have been "$f := &f")
as in, could it be a legit syntax? 17:59
and also if I import a $f that is bound to a multi, and I have a local $f that is bound to a multi, do they unify?
(current pugs say "yes" to all above)
i.e. it's sigil-invariant
TimToady hmm, it tends to violate the adverb-applied to infix contract 18:03
$a op $b :() should apply to op
18:04 ayrnieu joined
TimToady and I'm thinking of &foo:() as a single token 18:04
but maybe our ident:() forms trump that
on the other hand, if we generalize ident:() forms that far, then
1..$x:by(2) is in trouble 18:05
and would have to be written 1..$x :by(2)
audreyt but then
1..&x:by(2)
1..$x:by(2)
parses differently is weird, too 18:06
moritz_ is the name "pugs" officially lower case?
audreyt or does it?
diakopter notes that Tim*Toady* used the word sycophant.
audreyt moritz_: it's officially whatever case, up and including PUGS
moritz_ pUGs ;-)
audreyt or that, yes.
ayrnieu I always evangelize this project as pUgS 18:07
moritz_ that looks UgLy
audreyt or ļ¼°ļ½•ļ½‡ļ½“ 18:08
obra I'm so glad I finally shaved the unicode in irc yak. 18:11
svnbot6 r15631 | gaal++ | * Signature Monoid instance algebra for review
obra It makes #perl6 so much more worthwhile
audreyt wow that was quick
18:11 ajs_ joined
audreyt obra++ 18:11
fglock many tests in p6regex.t give error messages, but succeed - is it ok to unTODO for now?
obra TimToady++ # most of the useful bits
TimToady++ # for utf8 IRC, but also, for Just about everything else. 18:12
gaal TimToady, audreyt, please review misc/pX/gaal/SigMonoid.lhs
lichtkind is it true that MAD is written in haskell too? 18:13
ajs_ fglock, thanks for looking at those regex issues
gaal (lhs in vain, I probably won't be able to rip out data Sig from Pugs.Val)
audreyt k. let me finish checking in longnames... 18:16
18:18 dec joined
fglock ajs_: I'm rethinking v6.pm (and kp6); trying to find out which projects should be maintaned or closed 18:19
audreyt TimToady: infix:<..> is nonassoc? 18:20
nvm it is
gaal does unpacking work with structural typing? ie, is this legal? :($t (Left $l, Right $r)) 18:22
svnbot6 r15632 | gaal++ | * add unpacking case
r15633 | fglock++ | p6regex.t - unTODO all 'ok', even if there were error messages
gaal or does it require a BinTree static constraint? 18:23
audreyt I think they are orthogonal
gaal cool. :-)
ajs_ fglock, as long as the future holds a Perl5-based Perl 6 to use for transition, I don't think it matters what it's called. v6 has certainly taught everyone a lot. 18:26
fglock ajs_: :)
18:27 jisom joined 18:28 jisom left, jisom joined
gaal audreyt, do you have a commit pending? I've a Makefile.PL fix but it can wait. 18:33
audreyt please commit
svnbot6 r15634 | gaal++ | * Never attempt debugging builds when compiling with GHC 6.6. 18:36
audreyt ok, longnames done. 18:40
gaal whee
18:42 Aankhen`` joined
svnbot6 r15635 | audreyt++ | * Pugs.Types: Introduce "v_longname" field to Var; 18:43
r15635 | audreyt++ | its parsing rule is looking for ":(" in the string.
r15635 | audreyt++ | &::('skip()') 18:44
r15635 | audreyt++ | Currently, no canonization attempt is made.
Aankhen`` Why is it looking for sad faces? :-(
audreyt (that means &::('skip( )') will lookup sail)
lol
er, skip:() and skip:( ) respectively above
fglock TimToady: re automatic: grep + Set::Infinite works :) 18:46
gaal audreyt: missing SCodeMulti export in Pugs.AST.Utils
er, import
svnbot6 r15636 | audreyt++ | * Pugs.Val.Code: Restore Show instance for Sig.
audreyt SCodeMluti is no more. 18:47
svnbot6 r15637 | fglock++ | t/regex/from_perl6_rules/properties.t - unTODO a thousand tests
TimToady fglock: :)
svnbot6 r15638 | audreyt++ | * Pugs.AST.Internals: VMultiCode now holds a map from longname 18:48
r15638 | audreyt++ | to variants, instead of an array of variants, to guarantee
r15638 | audreyt++ | that longnames are unique.
r15639 | audreyt++ | * Pugs.AST.Utils: SCodeMulti is no more.
gaal audreyt: chase into Pugs.AST.Pad too 18:49
audreyt gaal: wait 3min 18:50
gaal lol you're too fast as usual :)
audreyt commit is slow :)
svnbot6 r15640 | audreyt++ | regen instances.
r15641 | audreyt++ | * Pugs.AST.Pad: Since SCodeMulti is no more, merge
r15641 | audreyt++ | multi entries by content, not by type. That means
r15641 | audreyt++ | if two "my $f" in nested scopes happens to be bound
gaal it's in already; svnbot6 polleth slow
svnbot6 r15641 | audreyt++ | to multi selector protosubs, they gets unified.
pasteling "evalbot_r15634" at 194.145.200.126 pasted "Pugs build failure" (394 lines, 21.3K) at sial.org/pbot/23446
svnbot6 r15642 | audreyt++ | * Pugs.AST: All longnames now implicitly create shortname 18:51
r15642 | audreyt++ | protodispatchers if one is not already in scope.
audreyt r15643 should build. 18:53
svnbot6 r15643 | audreyt++ | * Pugs.Parser: Parse for longname forms:
r15643 | audreyt++ | &f:($x, $y)
r15643 | audreyt++ | The signature part is canonicalized correctly here.
r15643 | audreyt++ | Also make exporting selective multi variants work.
r15644 | audreyt++ | * Pugs.Parser.Operator: multi longnames should not affect
r15644 | audreyt++ | the operator precedence table; we let the proto do that.
audreyt er, r15645.
svnbot6 r15645 | audreyt++ | * Eliminate SCodeMulti in all other places. 18:54
r15645 | audreyt++ | This concludes the longname batch.
audreyt looking at monoid now...
19:02 jisom_ joined
audreyt checked in some fix 19:03
gaal looking
okay, thanks 19:04
svnbot6 r15646 | audreyt++ | * SigMonoid: some clarifications 19:05
gaal oh, :($x?) :+: :($x = 42) is ($x?), right?
(and thus, :($x) :+: :($x = 42) is, too?)
:($) :+: :($) = :($x) 19:07
the "x" isn't invented there, is it? 19:08
and: is this really correct?
:($x) :+: :($y?) = :($x, $y?)
because if it is, why is this correct?
:(:$elk) :+: :(:$caribou) = fail "incompat"
svnbot6 r15647 | gabriele++ | 99problems lispish solution for #56 19:09
r15648 | fglock++ | t/regex/from_perl6_rules/propcharset.t - unTODO
audreyt er
sorry that was typo
:($) + :($x) = :($x)
gaal fixed 19:10
audreyt :($x) :+: :($y?) is surely incompat. sorry
gaal okay
is the slurpy ne mandatory presumption good? 19:11
audreyt aye 19:12
although
:(*$x) vs :($x) # should probably unify to :($x is rw) 19:13
but not sure about that.
:(*$y) vs :($x) # too
gaal hmmm
ok I don't understand why :)
audreyt the idea is that once you have the lvalue
you can call .ITEM or .LIST to get either context 19:14
but that may be too weird.
svnbot6 r15649 | gaal++ | * SigMonoid: some fixes
audreyt maybe just unify to incompat...
gaal ok, this'll give us a first approx.
brb
devbot6 dev: WikiStart edited by audreyt <dev.pugscode.org/wiki/WikiStart> 19:17
gaal you know, I'm not sure splittin SigMethSingle and SigSubSingle was such a win 19:18
audreyt it surely is not 19:20
gaal undoing then. 19:21
19:23 IllvilJa joined
svnbot6 r15650 | gaal++ | * the compiler says it doesn't need {-# SOURCE #-} here, so remove it 19:30
fglock hmm - Perl6::Rules fails many more tests in 5.9.4 than in 5.8.8 19:37
19:37 forsaken joined
moritz_ shoudn't the 5.* releases be backwards compatible? 19:38
ayrnieu yes, they should.
fglock moritz_: Perl6::Rules is experimental; but I wonder if it should fails less tests 19:39
ayrnieu Perl6::Bible on CPAN comes from Feb2006 -- were can I find the working copy? 19:40
svnbot6 r15651 | gaal++ | * unify the two Sig constructors to one with a Maybe invocant.
audreyt ayrnieu: spec.pugscode.org/ 19:43
lambdabot Title: Official Perl 6 Documentation
audreyt ayrnieu: also svn.perl.org/perl6/doc/trunk/design/syn
lambdabot Title: Revision 14338: /doc/trunk/design/syn
ayrnieu cool, thanks 19:44
gaal audreyt: did you encounter a ghci random borkage where :r throws the following error: 19:46
Overlapping instances for (:>:) Pugs.Types.VStr String
devbot6 dev: SummerOfCodeIdeas edited by audreyt <dev.pugscode.org/wiki/SummerOfCodeIdeas>
audreyt gaal: I did not... hm 19:47
gaal somewhere in Pugs.AST.Eval
it's totally bogus, it sees Pugs.Internals.Cast's instance twice
audreyt I did encouter something like that
but only with a lot of :r
so it's rare
gaal :rare 19:48
k, moving along...
s_invocant sigZero = Nothing, yes?
audreyt sure 19:49
19:49 Loro joined 19:51 Loro joined
gaal @index Monoid 19:51
lambdabot Data.Monoid, Control.Monad.Writer, Control.Monad.RWS
gaal ahh heh, I meant s/Zero/Empty/. say "I will read the entire error message" xx $blackboard 19:52
.oO( now all those ADTs that have a constructor called "empty" allude to instantiating Monoid....)
19:54
19:56 euleron is now known as AZTEK 19:57 AZTEK is now known as rononovski
gaal how to express mappend failure? 20:00
'error' would be very bad.
is this really a monoid if it's not closed on append?
meppl good night
audreyt gaal: maybe we blindly uinfy to (|$).
*unify
gaal "sigBogus" 20:01
audreyt "sigWhatever"
gaal what's the MkSig for that?
Is Sig currently experssive enough for it? 20:02
oh, s_slurpyCapture?
audreyt yeah.
and mempty for all other slots
gaal ok. |$'s p_variable, is it simply '$'? does it need a p_types? 20:04
audreyt nay
[] is another word for Any
gaal cool. 20:05
ayrnieu eval: say "I will read" xx 2 20:06
buubot ayrnieu: String found where operator expected at eval line 1, near "#line 1 eval say "I will read"" (Missing operator before "I will read"?) Bareword found where operator expected at eval line
ayrnieu ?eval say "I will read" xx 2
20:07 evalbot_r15628 is now known as evalbot_r15645
evalbot_r15645 user error (Incompatible version number for compilation unitā¤Consider removing blib6/lib/Prelude.pm.yml and make it againā¤)ā¤pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤ 20:07
moritz_ ?eval say "I will read" x 2
?eval say "I will read" x 2 20:08
ayrnieu er, well, in the 'Use Pugs Now -- in your browser', say "s" xx 2 # gave me output of just "ss\n"; should it be "s\ns\n" ?
moritz_ ayrnieu: no, it should not 20:09
ayrnieu: because the arguments of a functions are processed, and then the function is called
evalbot_r15645 pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤
audreyt repairing evalbot. 20:10
ayrnieu moritz - uh, sure, then: shouldn't this give me "s\ns\n"? say ["s", "s"]
rather: say ("s", "s") 20:11
moritz_ no
"say" only adds a newline once
you might want print "s\n" x 2
ayrnieu Yes, I realize that I can do this in other ways. 20:12
moritz_ but timtowtdi ;-)
ayrnieu not in this case. 20:13
moritz_ ?eval for (1 xx 2) {say "s"}
evalbot_r15645 pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤ 20:14
moritz_ ?eval for (1 .. 2) {say "s"}
evalbot_r15645 pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤
ayrnieu Sorry, what I mean is that 'say' seems oddly limited in usefulness. 20:15
but, if this is defined, fine. I just thought it weird in the browser.
audreyt ("ss" xx 2).>>say # that works 20:16
moritz_ ayrnieu: I'm pretty sure that this behaviour is intended 20:17
svnbot6 r15652 | audreyt++ | * Pugs.Types: Qualified names are never lexical.
moritz_ ayrnieu: and I like it that way
ayrnieu moritz - why do you like it this way?
Limbic_Region .seen diakopter
lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region @moosages
lambdabot putter said 1d 1h 18m 18s ago: draft donate language: colabti.de/irclogger/irclogger_log/...l=409#l666
moritz_ ayrnieu: because in p5 I often wrote print $foo, $bar, $baz, "\n"; 20:18
ayrnieu: or print ..., $/;
audreyt .say for 'ss' xx 2; # works too
Limbic_Region isn't there a seen bot here? 20:19
audreyt @seen Limbic_Region
lambdabot Limbic_Region is in #perl6. I last heard Limbic_Region speak 6s ago.
Limbic_Region @seen diakopter
lambdabot I saw diakopter leaving #perl6 12m 47s ago, and .
ayrnieu audreyt - do you need the . in that?
audreyt ayrnieu: yes. otherwise it's just (say "")
defaulting to $CALLER::_ made parsing much more unpredictable than what it's worth 20:20
(plus you'd need to guess whether the API writer thought about adding $CALLER::_)
so we eliminated them
gaal audreyt: :($x?) :+: :(:$x?) -- do we perform this check? 20:22
Limbic_Region @tell putter I like it. I have some ideas and will be on later tonight.
lambdabot Consider it noted.
audreyt gaal: well, $x? is a legit unificiation
gaal # clashing named and positional names
ayrnieu moritz - thanks for that example -- I forgot that I also do that in Perl, ad kept comparing say to Ruby's puts
svnbot6 r15653 | audreyt++ | * Cipher: work around shortcomings in multi dispatch
gaal so the named is fixed to a positional in this case? 20:23
ayrnieu waaits for machine to stop thrashing. If it isn't the machine at the keyboard, it's the machine running the IRC client :-/
Limbic_Region @tell diakopter my paypal connection didn't pan out so I would love to be able to send you a check for you to forward audreyt. I will be around tonight if you are for details.
lambdabot Consider it noted.
audreyt gaal: sure, because \(x=>1) will always cause a tie 20:24
20:24 ludan joined
audreyt \(1) causes positional to win 20:24
\() is another tie
but it's legit, as parsing is consistent
gaal yeah. okay :) 20:25
ludan hi
audreyt ludan: greetings 20:26
20:26 BooK joined
svnbot6 r15654 | moritz++ | first very early version of donate.pugscode.org 20:27
gaal uh, p_variable :: Var, which Var type is this now?
audreyt smoketime should be much better now. 20:28
gaal .. and what's its zero?
ooh
audreyt gaal: it's the Var in Pugs.Types
we unified that from CapInternals long ago
its zero is varNullScalar 20:29
gaal cool. does sigWhatever use varNullScalar?
}:)
audreyt :D
gaal huh? there's no xor in Prelude? 20:31
(hs)
specbot6 r14339 | larry++ | Various clarifications suggested by TheDamian++ 20:32
svnbot6 r15655 | audreyt++ | * overloading.pl: Put explicit $_ in signature as it's required now.
specbot6 r14339 | larry++ | Explicit pipe target is now @(*) or @@(*).
r14339 | larry++ | Separated clobbering <== ==> from pushy <<== and ==>>
r14339 | larry++ | Pushy pipes can now be stacked on filters as well as sinks.
r14339 | larry++ | $?BLOCK and other contexts now consistently return a list of labels.
[particle] was single semi-colon replaced by double semi-colon in sigs? 20:34
if so, cleanup on aisle 03!
audreyt the trailing one, yes.
[particle] + for zip(@names; @codes) -> $name, $zip {
audreyt no, not in calls 20:35
calls wtill use single
*still
[particle] ah
20:35 wilx joined
audreyt double semis has nothing to do with callside singles 20:35
[particle] haven't reread the spec recently, just skimming the commit logs 20:36
so i'm a bit behind on syntax
audreyt k
I'll bbl... 20:39
svnbot6 r15656 | audreyt++ | * Pugs.Parser: Routines with no formal parameters but $_ 20:40
r15656 | audreyt++ | in scope should still default to (*@_):
r15656 | audreyt++ | sub f { $_ }; # Signature is :(*@_), not :($_)
20:41 larsen_ joined
audreyt oh yay 20:42
TheDamian++ # he remembered to kill the %hash:<a> form
svnbot6 r15657 | lwall++ | Clarify when say and print should complain about empty arglists. 20:44
20:48 bernhard joined
ayrnieu ow, the docss at that svn were a trap. 20:48
svnbot6 r15658 | audreyt++ | * donate: MIME type fixes.
audreyt someone write some tests for r15657?
moritz_ audreyt: thanks (MIME) 20:50
audreyt np :)
svnbot6 r15659 | audreyt++ | * Pugs.Prim: unbreak &sort 20:55
audreyt donate.pugscode.org/ now points to live svn data.
moritz_ audreyt: I don't think it's ready for a broad public right now ;-) 20:56
audreyt neither do I :)
moritz_ as long as nothing links to it... ;-) 20:57
.seen Limbic_Region
svnbot6 r15660 | audreyt++ | * arity.t: arity is a method, not a sub.
moritz_ @seen Limbic_Region
lambdabot I saw Limbic_Region leaving #perl6 32m 33s ago, and .
20:57 fglock left 20:58 yts joined
moritz_ @tell Limbic_Region please add yourself to docs/feather/donate.pugscode.org/index.html as first donor as soon as you transfer the money (including name or nick (+link if you want), date, amount) 20:59
lambdabot Consider it noted.
gaal audreyt: sorry, I ran out of wakies..
svnbot6 r15661 | gaal++ | * SigMonoid: a few more rules, please review
r15661 | gaal++ | * Pugs.Val.Code: start of implementation
gaal opt-floating, or -infecting, or whatever, is tricky. I added a few cases but I may have been wrong about them 21:00
I gotta sleep, can resume tomorrow.
audreyt yay
gaal moose
21:01 offby1` joined
gaal z& 21:01
rhr typo in r14339: &ROUTINE.name should be &?ROUTINE.name
audreyt fixed 21:02
rhr am I crazy to want this to work? @x = gather while @x < $len { take foo if bar }
TimToady already specced to work 21:03
rhr :)
audreyt don't we need := ?
TimToady why?
audreyt my @lines = =<>; # I thought it's eager here 21:04
as opposed to := which maintains laziness
TimToady he didn't ask for lazy...
audreyt that example looks like laziness
rhr out of curiosity, where does the spec mention this?
TimToady S04:461 21:05
specbot6 r14340 | audreyt++ | * S02: typo spotted by rhr++
r14341 | larry++ | Typos
audreyt rhr: is the identical occurence of @x in both lhs and rhs intentional, so as to exercise laziness? 21:06
rhr yes, it should be @x both places 21:07
svnbot6 r15662 | moritz++ | added inheritance test to pre_post.t
moritz_ can somebody please take a look at the last two tests in pre_post.t?
21:07 marmic joined
moritz_ I'm not sure if I understood the Synopsis correctly 21:07
svnbot6 r15663 | audreyt++ | * Pugs.Parser: Repair "my @x = 1,2,3". 21:08
TimToady okay, then yes, you need := for that gather to not be eager.
rhr where can I get the raw Synopsis pod to find line numbers? 21:09
TimToady the reuse of @x is rather subtle there...
rhr TimToady: ok
TimToady svn.perl.org/perl6/doc/trunk/design/syn
21:09 Limbic_Region joined
TimToady or for the ones under pugs 21:09
svn.pugscode.org/pugs/docs/Perl6/Spec
lambdabot Title: Revision 15663: /docs/Perl6/Spec
rhr thanks. I guess that just falls out of laziness then? 21:10
audreyt yes. 21:11
rhr cool
TimToady and 9 developers out of 10 will shoot you if you use that construct. :)
rhr heh 21:12
TimToady at least, if you use it uncommented...
21:12 explorer joined
Patterner Do we want to know what the 10th does? 21:13
TimToady no, but I believe it involves broomsticks 21:14
Patterner Sounds more painful that a simple shot.
Limbic_Region @seen audreyt 21:21
lambdabot audreyt is in #haskell and #perl6. I last heard audreyt speak 10m 31s ago.
Limbic_Region she go to sleep?
lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region @moosages
lambdabot moritz_ said 22m 36s ago: please add yourself to docs/feather/donate.pugscode.org/index.html as first donor as soon as you transfer the money (including name or nick (+link if you want), date,
amount)
audreyt Limbic_Region: hi. 21:22
(about to sleep)
Limbic_Region @tell moritz_ it is going to take some time, I need to send a check to diakopter who will then forward the money for me but will do
lambdabot Consider it noted.
moritz_ re
lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
moritz_ @moosages
lambdabot Limbic_Region said 13s ago: it is going to take some time, I need to send a check to diakopter who will then forward the money for me but will do
Limbic_Region audreyt - was just wondering if you are doing Win32 builds
Limbic_Region has had a hanging test for some time now 21:23
moritz_ Limbic_Region: no problem, just remember doing it
Limbic_Region but as you were "away", I didn't bother with it
specbot6 r14342 | audreyt++ | * S06: Clarify that simple parenless form of declarators must
r14342 | audreyt++ | support list-context assignment.
audreyt Limbic_Region: which one? 21:24
svnbot6 r15664 | audreyt++ | * defaults.t: unTODO; fix broken semi
r15665 | audreyt++ | * multi_named_vs_pos.t: unTODO 21:25
Limbic_Region audreyt - I am running smoke now
audreyt - don't know how long it will take - so I will just @tell you
audreyt - so go to bed ;-)
audreyt k
moritz_: where is it said that PRE checks are inherited?
moritz_: I thought it's associated with the block
and if the parent does not get entered, the PRE should not fire 21:26
moritz_ audreyt: I thought I'd read it in the specs some time ago
audreyt: but I may well be wrong
audreyt you are right.
but 21:27
The precondition is satisfied if either the method's own C<PRE> block
returns true, or I<all> of its parents' C<PRE> blocks return true.
moritz_ isn't that... very weird? 21:28
audreyt it is
moritz_ because it means that if I inherit from a class I change its behaviour
audreyt also that if it has no parents with PRE blocks, that the second clause worked voidly?
moritz_ the right thing would be to OR-ify all PRE blocks
and to AND-ify als POST blocks 21:29
audreyt I have no idea why they should be treated differently.
moritz_ read "Object Oriented Software COnstruction" by Betrand Meyer ;-)
audreyt ok :) 21:30
moritz_ I can try to summarize it, but it will take a few minutes
audreyt but then your test is still wrong
moritz_ yes
audreyt so fix it :) and add a smartlink
moritz_ ok, soon 21:31
audreyt with single inheritance chain, the spec algorithm is the same as OR all PRE blocks
moritz_ and who fixes the spec?
ok
audreyt the spec is written this way to accomodate for MI
and it looks fine
moritz_ allright
but I think it's not very clear
audreyt it's terribly unclear :) 21:32
moritz_ that it refers to MI
audreyt also does not deal with the case where parent has PRE but child does not
so yeah, clarification would be cool, but I need to sleep :) 21:33
till tomorrow... &
TimToady night
moritz_ then just the PRE of the parent should count
night
TimToady commuting & 21:34
21:39 marmic joined 21:44 diakopter joined
Limbic_Region diakopoter ping 21:46
er
diakopter ping
diakopter Limbic_Region: here. 21:47
lambdabot diakopter: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region well, I just send you a /msg
my paypal connection fell through so ....
22:07 evalbot_r15652 joined 22:14 offby1` is now known as offby1, Psyche^ joined 22:22 Psyche^ is now known as Patterner
svnbot6 r15666 | moritz++ | fixed broken pre_post.t test of inherited PREs 22:22
Limbic_Region are the recent changes known to make pugs horribly slow or is there something else I should be concerned about? 22:36
22:44 LimbicRegion joined 22:45 LimbicRegion is now known as Limbic_Region 23:11 meppl joined 23:13 gnuvince` joined
specbot6 r14343 | larry++ | Added the KitchenSink role. 23:13
r14343 | larry++ | Fiddle the feed operators to work better with files and such.
23:14 gnuvince` joined 23:15 polettix joined
svnbot6 r15667 | audreyt++ | * chained.t: update declarator list. 23:20
23:21 miyagawa joined
Limbic_Region @tell audreyt Win32 is no longer hanging on smoke - this means the changes have either fixed the problem or resulted in the hanging test failing prior to the hang 23:21
lambdabot Consider it noted.
23:26 bsb joined 23:41 weinig is now known as weinig|bbl
svnbot6 r15668 | audreyt++ | * Automata::Cellular: Switch to the preferred form to export 23:41
r15668 | audreyt++ | operators defined for a class:
r15668 | audreyt++ | method postfix:<++> () is export { ... }
r15669 | audreyt++ | * Pugs.Parser: Correctly handle "is export" methods by 23:43
r15669 | audreyt++ | exporting with its longname rather than shortname.
23:46 fatman2 joined
fatman2 hello i am fatman and i weigh 400 pounds. you can see videos of my supreme fatness at www.fatman.tk 23:46
23:47 fatman2 left 23:49 dolmen joined
svnbot6 r15670 | audreyt++ | * Pugs.Prim: atomicEval now ensures that errors and control 23:50
r15670 | audreyt++ | exceptions within the STM transaction gets propagates out
r15670 | audreyt++ | correctly. This makes "--1" fail as desired.
r15671 | audreyt++ | * Export Object::HOW and Object::new, because the spec 23:53
r15671 | audreyt++ | contains lots of "new Foo" calls and we wouldn't want
r15671 | audreyt++ | them to fail miserably.