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. |