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