Pugs 6.2.6 uploaded by cpan-upload.p6! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste at sial.org/pbot/perl6 Set by integral on 2 June 2005. |
|||
geoffb | OK, there's something just disturbing about no traffic on this channel for hours on end. | 04:48 | |
autrijus_ | indeed. | 04:49 | |
geoffb | One comment from clkao in the last 7+ hours | ||
autrijus_ just woke up | |||
geoffb | Didn't expect you to be around, autrijus_ ! | ||
Ah, early there then. | |||
autrijus_ | quite. before 7am | ||
geoffb | Get to see the dawn today? | 04:50 | |
autrijus_ | no, not a chance :) | ||
although it's alraedy daylight saving time | |||
04:50
autrijus_ is now known as autrijus
|
|||
autrijus | but anyway. today's the hard deadline of hw2005 | 04:51 | |
which means I better write down the pugs->parrot compilation strategy we discussed yesterday | |||
geoffb | So earlier this week (before family came to visit), I went to write some tests for pugs . . . but I couldn't get them to work because of Test limitations . . . and I couldn't work around those because of pugs bugs . . . and recurse. | 04:52 | |
So I was wondering -- does pugs still need exhaustive tests of the "simple stuff", like space handling in expressions and compliance with Perl 6 invariances, and so on? | |||
autrijus | which Test limitations? | ||
yes, definitely so | 04:53 | ||
geoffb | As I recall, I wanted fails_ok to take a string, or somesuch . . . don't recall for sure. | ||
I figured rather than writing tests for bleeding edge stuff, perhaps my time would be better spent fleshing out the basic test core. | |||
autrijus | yes. | 04:54 | |
that'd be much appreciated. | |||
geoffb | OK, after family leaves (Sunday), I'll try to scrape together my tuits in that direction. | 04:55 | |
autrijus | danke. | 04:56 | |
geoffb | de rien | ||
good luck with hw2005, it's pretty good so far. | 04:57 | ||
autrijus | glad to hear that. :)) | 04:58 | |
Khisanth | hrm | 05:02 | |
autrijus | hey Khisanth | ||
I'll brb -- shower & | |||
geoffb | So the rumors of autrijus ircing in the shower appear to be false . . . . | 05:05 | |
or maybe he just lurks, with the laptop right outside the curtain. | |||
autrijus | yup. | 05:09 | |
that's usually the case. | |||
to avoid damaging the keyboard I usually type with a toothbrush or so. | |||
geoffb | LOL | 05:10 | |
crysflame | oof | ||
chopsticks are great for that i hear | |||
autrijus | hey lightstep, crysflame. | 05:11 | |
lightstep | hoy | ||
geoffb | autrijus, a couple days ago I managed to produce a few lines that would work correctly if saved to a file, but would error if pasted into pugs interactive mode. Is there a difference between the parsing in those two cases? If so, why? | 05:14 | |
For reference, the four lines are: | 05:15 | ||
#!/usr/bin/pugs | |||
use File::Basename--perl5; | |||
our &basename := File::Basename.can('basename'); | |||
say basename('/this/is/a.test'); | |||
autrijus | the interactive mode's idea of continuity between lines is flawed. | 05:21 | |
in this case I think it's the class cache -- try ::File::Basename.can('basename'); ? | 05:22 | ||
(btw, nice use of .can) | |||
can you help updating examples/perl5/cpan-upload.p6 to reflect this infinitely better style? :) | |||
geoffb | 1) ah. 2) will try. 3) thanks, you suggested it. :-) 4) Will do. | 05:26 | |
::File::Basename.can('basename') no workie. | 05:28 | ||
(either in a file, or in interactive mode) | |||
What is this workaround for: | 05:33 | ||
my &POST := eval_perl5 'sub { my $url = shift; &HTTP::Request::Common::POST($url, {@_}) }'; | |||
Why not just call POST with ($url, $hashref) directly? | 05:34 | ||
OK, is it supposed to be the case that when you dereference an array ref with {'string'}, it treats the array as a hash with alternating odd and even being key and value? | 05:41 | ||
If not, cpan-upload.p6 is just wrong | |||
er, at line 258 | 05:42 | ||
OK, assuming I'm right, and just committing what I think was meant by the screwy lines in cpan-upload.p6 | 05:49 | ||
svnbot6 | r4524, geoffb++ | cpan-upload.p6: clean up perl5 import workaround syntax; clean up ugliness with hashref arg to POST | ||
geoffb | afk | ||
autrijus | you're right. thanks :) | ||
gaal | please review: Prelude bypass strategy | 05:58 | |
sometimes we want to load pugs faster, bypassing the Prelude. (or sometimes in development we break the prelude and want to wait before fixing it) | |||
to tell pugs not to call initPrelude, set PUGS_BYPASS_PRELUDE in the environment to a true value. | |||
to load an alternate Prelude, do that and specify -MPrelude on the command line, it will be loaded like a regular module via @*INC | |||
what think? | 05:59 | ||
autrijus | worksforme. | ||
gaal | btw, initPrelude is confused about Pos when the prelude breaks, citing ludicrous coordinates | ||
good, i'll add that then | 06:00 | ||
though i wonder if it isn't getting good time to organize all our env vars together :) | |||
autrijus | we can start documenting it at least | 06:02 | |
in the form of pugsrun.pod and friends | |||
or is it pugs::run? | |||
gaal | many of them are only for development now (controllign smoke tests, there are at least three or four) | 06:03 | |
autrijus | sure, but getting it documented is still nice | 06:04 | |
gaal | okay, will start that. | ||
autrijus | 'kay. I think lib/pugs/run.pod is an okay place | 06:05 | |
better suggestions welcome too | |||
gaal | i'll start there. svn++; # 'mv' | ||
ooh, the hash interface from haskell is... interesting :) | 06:09 | ||
you generate a getter per hash, right? | 06:10 | ||
geoffb | bak | 06:13 | |
autrijus | gaal: a getter per hash? | ||
each hash as an associated implementation object | 06:14 | ||
gaal | autrijus, i see code like fetch <- doHash somehash hash_fetchVal | ||
and then you apply fetch with a key | |||
autrijus | oh. right. that's because hash_fetchVal is polymorphic over the hash type | ||
all you know is that somehash is a Val | 06:15 | ||
but it may be a VRef to a VHash | |||
or a PerlSV | |||
or a VMatch | |||
or something else entirely | |||
so doHash is used to unpack the Val via typecasing | |||
gaal | i'm happy i chose to use the hash and not peek in the environment myself :) | 06:16 | |
autrijus | (well, not really typecasing) | ||
gaal | wouldn't have learned all this if i did it the hacky way :) | ||
autrijus | true :) | ||
yay, other people are up. I'll bbiab, breakfast etc | 06:17 | ||
gaal | bon breakfast | 06:18 | |
beh, Run.hs doesn't have findVar and i'm not sure i want to add a dep there | 06:19 | ||
i'll figure something out :) | |||
autrijus | :) | 06:29 | |
gaal | what i figured was that i needed readVar :) | 06:30 | |
geoffb | bed time, g'night | 06:44 | |
gaal | night geoffb | ||
I have a Val and want to force it to a VBool. how? | 06:47 | ||
by Prim's "?" and "!" it looks like VBool var should have done the trick, but i get type errors with that. | 06:48 | ||
Aankhen`` | Shout at it till its spirit is crushed and it obeys all your commands? | ||
gaal | tempting :) but no | 06:50 | |
Aankhen`` | :-( | ||
scook0 | gaal: tried 'VBool (vCast var)'? | 07:05 | |
gaal | not yet - but looking around at other aspects of this problem, i realized that since i needed to unsafePerformIO anyway, i might as well skip the hash interface and getEnv directly :/ | 07:07 | |
it was fun while it lasted :) | |||
gaal praises GHC's pragma syntax that urges locality | 07:13 | ||
svnbot6 | r4525, gaal++ | allow bypassing Standard Prelude when PUGS_BYPASS_PRELUDE is set in the environment | 07:31 | |
r4525, gaal++ | to load an alternate Prelude.pm (from @*INC), use -MPrelude explicitly | |||
r4526, autrijus++ | * hw2005 - Embedding Haskell. | 07:49 | ||
r4527, autrijus++ | * hw2005.txt - minor fixes | 07:59 | ||
Aankhen`` | ?eval "foo".ref | 08:10 | |
evalbot6 | ::Str | ||
Aankhen`` | ?eval "foo".ref.new() | 08:11 | |
evalbot6 | {obj:Str} | ||
Aankhen`` | ?eval "foo".ref.new("bar") | ||
evalbot6 | {obj:Str} | ||
Aankhen`` | ?eval ~("foo".ref.new("bar")) | ||
evalbot6 | '<obj:Str>' | ||
Aankhen`` | ?eval class Foo { ... } my $foo = Foo.new(); $foo | ||
evalbot6 | *** ... - not yet implemented at <eval> line 1, column 13-17 | ||
Aankhen`` | ?eval class Foo { } my $foo = Foo.new(); $foo | 08:12 | |
evalbot6 | \{obj:Foo} | ||
Aankhen`` | ?eval class Foo { } my $foo = Foo.new(); $foo; $foo.ref.new(); | ||
evalbot6 | {obj:Foo} | ||
Aankhen`` | ?eval class Foo { } my $foo = Foo.new(); $foo; my $bar = $foo.ref.new(); | 08:13 | |
evalbot6 | \{obj:Foo} | ||
Aankhen`` | Yeesh. | 08:19 | |
svnbot6 | r4528, Aankhen++ | * bumped up version number for URI::Escape. | ||
r4529, Aankhen++ | * URI::Escape now uses the C<module { ... }> form. iblech++ | |||
Aankhen`` | mod_perl2's tests take less time than Pugs's tests. :-P | 08:20 | |
crysflame | heh | 08:23 | |
svnbot6 | r4530, gaal++ | pugs::run documentation | 08:25 | |
Aankhen`` | ?eval 0 but true | 08:28 | |
evalbot6 | Error: unexpected end of input expecting term | ||
Aankhen`` | ?eval true | ||
evalbot6 | Error: unexpected end of input expecting term | ||
Aankhen`` | Shouldn't C<true> and C<false> be automatically imported so that stuff like C<0 but true> can be used? | ||
(instead of, say, C<0 but bool::true>) | |||
gaal | ?eval 0 but bool::true | 08:33 | |
evalbot6 | Error: Unknown syntactic construct: Syn "but" [Val (VInt 0),App (Var "&bool::true") Nothing []] | ||
gaal | heh. | ||
Aankhen`` | ?eval 0 is true | ||
evalbot6 | Error: unexpected end of input expecting term | ||
Aankhen`` | ?eval 0 is bool::true | ||
evalbot6 | undef | ||
Aankhen`` | ?eval 0 is true | ||
evalbot6 | Error: unexpected end of input expecting term | ||
Aankhen`` | :-\ | ||
gaal | ?eval (0 is bool::true) ?? "true" :: "false" | 08:34 | |
evalbot6 | 'false' | ||
gaal | i think this language feature isn't really implemented yet ;-) | ||
Aankhen`` | Yea, but it wouldn't hurt to have C<true> and C<false>. :-) | 08:35 | |
gaal | i'll add them to the prelude | 08:36 | |
but my working copy is not intentionally broken | |||
so remind me later :) | 08:37 | ||
Aankhen`` | Heh, okay. | ||
gaal++ | |||
gaal | "now" intentionally broken | ||
now "intentionally" broken | |||
now intentionally "broken" | |||
ah, scare quotes. | |||
Aankhen`` | ?eval sub foo () { 42 }; &bar ::= &foo; bar(); | 08:38 | |
evalbot6 | Error: Undeclared variable: "&bar" | ||
Aankhen`` | ?eval sub foo () { 42 }; my &bar ::= &foo; bar(); | ||
evalbot6 | 42 | ||
Aankhen`` | ?eval sub foo () { 42 }; our &bar ::= &foo; bar(); | ||
evalbot6 | 42 | ||
Aankhen`` | ?eval module Foo { sub foo () { 42 }; our &bar ::= &foo; }; Foo::bar(); | 08:39 | |
evalbot6 | Error: No compatible subroutine found: "&Foo::bar" | ||
Aankhen`` | ?eval module Foo { sub foo () { 42 }; our &bar ::= &foo; }; Foo; | ||
evalbot6 | \{obj:Class} | ||
Aankhen`` | ?eval module Foo { sub foo () { 42 }; our &bar ::= &foo; }; ::Foo; | ||
evalbot6 | \{obj:Class} | ||
Aankhen`` | ?eval module Foo { sub foo () { 42 }; our &bar ::= &foo; }; ::Foo::bar; | ||
evalbot6 | ::Foo::bar | ||
Aankhen`` | ?eval module Foo { sub foo () { 42 }; our &bar ::= &foo; }; ::Foo::bar(); | ||
evalbot6 | pugs: cannot cast from VType (mkType "Foo::bar") to Pugs.AST.Internals.VCode | ||
Aankhen`` | o_O | ||
BBIAB. | |||
gaal | another => bug: | 08:44 | |
?eval my %h = ( sub => <yellow> ) | |||
evalbot6 | Error: unexpected "=" expecting subroutine parameters or block | ||
gaal | ?eval my %h = ( <sub> => <yellow> ) | 08:45 | |
evalbot6 | {('sub' => 'yellow')} | ||
gaal | at least, i think it's a bug? | ||
brb | |||
Aankhen`` | ?eval my %h = { sub => [<yellow>] } | 09:00 | |
evalbot6 | Error: unexpected "=" expecting subroutine parameters or block | ||
Aankhen`` | ?eval my %h = ( sub => [<yellow>] ) | ||
evalbot6 | Error: unexpected "=" expecting subroutine parameters or block | ||
Aankhen`` | Ah. | ||
gaal | it's the "sub" being interpreted as a subroutine dec | ||
Aankhen`` | I see what you mean. | ||
gaal | i'm pretty sure it has to do with => precedence, but i'll leave it to autrijus to fix :) | 09:01 | |
09:52
Aankh|Clone is now known as Aankhen``
|
|||
Aankhen`` wonders if mod_perl for P6 will simply build upon mod_parrot, or whether it's not needed at all... | 09:54 | ||
nothingmuch | autrijus: ping | 10:49 | |
Anyone interested in meta models and dancing might want to look at chapter 7 of the harrorth mess | 10:55 | ||
wherein is detailed the way forth words compile forth words | |||
and you can learn a bit of assembley too | 10:56 | ||
by the way, I need an editor for this stuff | |||
any volunteers? | |||
i'll buy you a beer at YAPC | |||
okay, 2 beers | 10:59 | ||
lightstep | "At the lowest level we need [...] conditional branches [...] provided for by haskell". but the view of the rest of the document is running forth on a sequential machine, while haskell uses a graph reduction model | 11:05 | |
Aankhen`` | nothingmuch >> An editor of what sort? | 11:27 | |
svnbot6 | r4531, iblech++ | lib/pugs/run.pod -- More PODification. | ||
r4532, iblech++ | Pugs.Run -- use $PERLLIB if $PERL6LIB is not set. | |||
r4532, iblech++ | pugs::run -- Remove "[make true]" notice about $PERLLIB. | |||
Aankhen`` | A technical editor | ||
? | |||
Or just someone to fix grammar/punctuation/spelling mistakes? | 11:28 | ||
gaal | hah, iblech++; # self-fulfilling documentation | 11:34 | |
Aankhen`` pokes nothingmuch. | 11:49 | ||
svnbot6 | r4533, iblech++ | Pugs.Eval -- Fixed Haddock-confusing Haddocks. | ||
Aankhen`` | ?eval class Foo { multi sub *infix:<==> ($self, $other) { "$self (" ~ $self.ref ~ "), $other (" ~ $other.ref ~ ")" } }; Foo.new() == "a" | 11:56 | |
evalbot6 | '<obj:Foo> (Foo), a (Str)' | ||
Aankhen`` | ?eval class Foo { multi method *infix:<==> ($self: $other) { "$self (" ~ $self.ref ~ "), $other (" ~ $other.ref ~ ")" } }; Foo.new() == "a" | ||
evalbot6 | Error: Wrong number of invocant parameters: 0 actual, 1 expected | ||
nothingmuch gets poked | 11:58 | ||
Aankhen``: an editor for the harrorth documentation | 11:59 | ||
that is: an english language editor, a technical editor | |||
Aankhen`` volunteers for the former. | |||
nothingmuch | in that case, read Harrorth end to end, and darcs send some patches which need no discussion | ||
i'll read them and pay better attention to the errors next time | 12:00 | ||
and discuss more substantial changes, and we will decide together what to do | |||
Aankhen`` | darcs? Bleh. | ||
nothingmuch | okay, unidiffs =) | 12:01 | |
or english diffs: "this was bad, make it "Foo"" | |||
dad just zonked my brain with ackerman | |||
Aankhen`` | Heh. | ||
Nah, I need to get around to reinstalling it anyway. | |||
nothingmuch | how come? | 12:02 | |
lightstep: ping | |||
Aankhen`` | Just. | ||
One question. | |||
What is Harrorth? | |||
nothingmuch | ah | ||
feather.perl6.nl/~nothingmuch/harrorth/ | |||
it's my learn-haskell project | |||
i'm learning haskell forth and parrot (no parrot yet) by writing a forth compiler in haskell | |||
which will eventually target parrot | 12:03 | ||
Aankhen`` | OK. | ||
Sounds cool. | |||
nothingmuch | now, the catch is that i'm documenting my progress like a tutorial | ||
so that people like me, who can get through the monad tuts and whatever but don't feel they've actually learned anything useful might find a purpose | |||
Aankhen`` | Sooo, where do I see the documentation? | ||
nothingmuch | but I can't assume any knowlege, since I don't know much more than the reader at any given point in time | 12:04 | |
the link i gave you has a doc subdir | |||
Aankhen`` | Oops, sorry. | ||
I missed that while looking for Harrorth. | |||
Aankhen`` goeth to inshtall darcsh. | 12:05 | ||
lightstep | nothingmuch, pong | ||
Aankhen`` | I hate it when a "Building with Microsoft Windows" section starts with "You need MinGW, MSYS, and...". | 12:06 | |
nothingmuch | read chapter seven please =) | ||
you are my forth guru #2, so i'd appreciate comments | |||
lightstep | sorry, i only got to the spot i quoted (right before the assembly thingy), and then i slid off to manga. i'll return to it now. | 12:07 | |
nothingmuch | oh, i didn't notice you quoted | ||
lightstep: i've screwed up a bit in the intro | 12:08 | ||
and i've also forgot a paragraph | |||
but the point is that we'll be focusing on a strategy for doing this in a haskellish manner in the next chapter | |||
lightstep | my point is, usually IF is implemented as an immediate work that pushs a JNZ or something, which isn't at all possible in haskell | ||
nothingmuch | what I plan to do is put the whole "Rest of the word" in the place of the address | 12:09 | |
and make the jump a continuation to the interpretation of that thing | |||
lightstep | so you need a parser | 12:10 | |
nothingmuch | i'm not really what I need yet, we'll see when I start writing the code | 12:11 | |
lightstep | ok | 12:12 | |
nothingmuch | darcs pull btw | ||
lightstep: here's a mini plan, i think i'm going to try and follow it: | 12:14 | ||
a "cell" in haskell is either a primitive, a literal, or more AST | 12:15 | ||
something like a branch has two choices | |||
two continuations, one for each condition | |||
the THEN word derives a version of the word currently being compiled | 12:16 | ||
with a filled in branch | |||
the two choices eventually meet to the same AST, but they don't know it | |||
you have a jump which is a cont, and a call which is a recusrive call | |||
lightstep | are the cells organized in a sequence, or does every cell contain a jump to the next cell? | 12:18 | |
nothingmuch | i'm not sure, i think it depends on what's easier to code | ||
or what's harder to code, but turns out more elegant ;-) | |||
lightstep | btw, i've no idea how to use darcs (i only used the web interface till now). i'll be glad if you tell me how to start | 12:19 | |
Aankhen`` | nothingmuch >> Do I use `darcs push` to commit changes? | ||
lightstep | maybe init, then register, then tag? or whatever the names are? | ||
nothingmuch | "darcs get feather.perl6.nl/~nothingmuch/harrorth" gets you a harrorth in pwd | 12:20 | |
Aankhen`` | I got it. | ||
I'm talking about committing my changes. | |||
nothingmuch | when you cd into it "darcs pull" updates the repo with changes | ||
Aankhen``: that was for lightstep | |||
Aankhen`` | Oh, sorry. | ||
Confusion, heh. | |||
Er, wait... do I use `darcs record` or `darcs push`? | 12:21 | ||
nothingmuch | Aankhen``: you can darcs push 'feather:~nothingmuch/harrorth', but I need to chmod it first | ||
or you can darcs send | |||
and put in my email | |||
or you can send -o or something, and that gets put into a file, which you can put somewhere | |||
Aankhen`` | Which would be? | ||
nothingmuch | or email | ||
lightstep | whoa, cool. much nore than arch. | ||
nothingmuch | ah | ||
darcs record does that | |||
if you've made a change to the working dir you must make a patch out of it | |||
Aankhen`` | OK. | ||
nothingmuch | once you have a patch you can move it around, and it's dependencies get dragged along with it | ||
Aankhen`` | I'll use `darcs send` later. | 12:22 | |
nothingmuch | so you can 'push' or 'send' or 'pull' it | ||
also, there's a notion of a "default repo" | 12:23 | ||
if you push to the ssh path of the repo, subsequent 'darcs pulls' will use that | |||
IIRC | |||
which is slower | |||
so you should --no-set-default | 12:24 | ||
and you can also put that in a config file, so that no-set-default is assumed every time you say 'darcs push' | |||
svnbot6 | r4534, autrijus++ | * hw2005 - Section 6 (basically) done! Only one section to go! | 12:48 | |
Aankhen`` | nothingmuch >> How do I send you the patch by e-mail? | 13:05 | |
I can't `darcs send`, since apparently that will end up using Microsoft Exchange or something. | |||
?eval "<URL: www.pugscode.org/>" ~~ s/^\<[URL: ]?(.*)\>$/$0/ | 13:09 | ||
evalbot6 | Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them | ||
Aankhen`` | O_O | 13:10 | |
QtPlatypus | Aankhen``: evalbot's regex engion is broken | 13:11 | |
svnbot6 | r4535, iblech++ | autrijus++'s hw2005 -- Grammar and typo fixes. | ||
Aankhen`` | Ah. | ||
Even for P5 regexen? | |||
QtPlatypus | Its been that way for a while | ||
iblech | QtPlatypus: Is it? I think it's only because evalhelper.p5 limits the available memory | ||
Aankhen`` | Dangit, now I have to build Parrot. :-( | 13:12 | |
iblech | ?eval "hi" x 100000000; 5 # shouldn't work | 13:13 | |
evalbot6 | 5 | ||
iblech | ?eval "hi" x 100000000000; 5 # shouldn't work | ||
evalbot6 | 5 | ||
iblech | ?eval "hi" x 1000000000000000; 5 # shouldn't work | ||
evalbot6 | 5 | ||
iblech | ?eval "hi" x 100000000000000000000; 5 # shouldn't work | ||
evalbot6 | 5 | 13:14 | |
iblech | beh | ||
Aankhen`` | LMAO. | ||
iblech | ?eval bytes("hi" x 100000000000000000000); 5 # shouldn't work | ||
evalbot6 | pugs: out of memory (requested 8388608 bytes) | ||
iblech | ha! :) | ||
Aankhen`` | Yey! Finally! | ||
iblech | Seems like Haskell has pretty good optimizations for strings | ||
Aankhen`` | Yup. | 13:16 | |
?eval bytes("foo") | |||
evalbot6 | 3 | ||
Aankhen`` | ?eval bytes("foobar") | ||
evalbot6 | 6 | ||
Aankhen`` | Ah. | ||
?eval "foobar".bytes | |||
evalbot6 | 6 | ||
Aankhen`` | That bytes(). Heh. | ||
"foobar".chars | |||
?eval "foobar".chars | |||
evalbot6 | 6 | ||
QtPlatypus | I wonder if haskal is cheeting and your "hi" x 100000000000000000000 just doesn't get run due to lazyness | 13:17 | |
Aankhen`` | ?eval "foobar".graphs | 13:18 | |
evalbot6 | 6 | ||
Aankhen`` | ?eval "foobar".codes | ||
evalbot6 | 6 | ||
QtPlatypus | ?eval "??".chars | 13:19 | |
evalbot6 | 2 | ||
iblech | FYI, .graphs is currently a synonym to .chars | 13:20 | |
Aankhen`` | OK. | ||
iblech | QtPlatypus: In pure Haskell: for sure -- (concat $ replicate 10000000 "Hi") will return immediately. But I wonder why that's the case in Pugs, too, as we explicitely disable laziness in the appropriate places, so we match Perl's behaviour... | 13:22 | |
QtPlatypus | iblech: It could be a bug. Though I expect not an majour one. | 13:24 | |
Aankhen`` | ?eval our <$foo $bar $baz>; | 13:26 | |
evalbot6 | Error: unexpected "<" expecting qualified identifier, variable name or "(" | ||
Aankhen`` | ?eval our (<$foo $bar $baz>); | ||
evalbot6 | Error: unexpected "<" expecting variable name, "undef" or ")" | ||
Aankhen`` | Ah well. | ||
I had to try. :-) | |||
svnbot6 | r4536, iblech++ | ChangeLog -- Add note about pugs::run. | 13:27 | |
Aankhen`` | ?eval my $foo = "bar\\n"; $foo; | ||
evalbot6 | \'bar\\n' | ||
Aankhen`` | ?eval my $foo = "bar\n"; $foo; | 13:28 | |
evalbot6 | \'bar ' | ||
Aankhen`` | ?eval my $foo = "bar\\n"; $foo; | ||
evalbot6 | \'bar\\n' | ||
Aankhen`` | ?eval my $foo = "bar\\n"; "\Q[$foo]"; | ||
evalbot6 | 'Q[bar\\n]' | ||
iblech | ?eval our ($foo, $bar, $baz); # works | ||
evalbot6 | undef | ||
Aankhen`` | iblech >> Yeh, I know. | ||
I was just wondering whether through any manipulation of parsing <...> would work. :-) | |||
?eval my $foo = "bar\\n"; quotemeta($foo); | 13:29 | ||
evalbot6 | Error: No compatible subroutine found: ""emeta" | ||
iblech | Ah. But I don't think it could work, as our() expects variables ($foo), not variable names ('$foo'). | 13:30 | |
Aankhen`` | Yeah, I know. | ||
Like I said, I was just wondering. :-) | 13:31 | ||
iblech | wondering++ :) | 13:32 | |
Aankhen`` | Hehe. | 13:33 | |
# XXX: Hopefully uri CLASS will return CLASS. | |||
# See L<S06/"Currying"/"subroutines/methods/etc. simultaneously:">. | |||
$impclass ||= .:implementor($scheme) ||= use URI::_foreign; | |||
Do you think you could explain that? | |||
(I read the relevant section in S06, but I don't quite understand) | 13:34 | ||
iblech | s/uri/use/ in the first line of the comment | 13:36 | |
use(Class) should evaluate to Class | |||
Aankhen`` | Ahh. | ||
iblech | (That was my understanding of the AES, if not, one would have to write ...||= do { use URI::_foreign; URI::_foreign } | 13:37 | |
Aankhen`` | OK. | ||
Is there any reason why ||= should be used there instead of //=? | 13:38 | ||
iblech | No, probably just habit. //= is fine and more clear | ||
Aankhen`` | Okey dokey! | ||
Ah, I would dearly love to have subtypes and C<where> clauses. | 13:39 | ||
method :init(::?CLASS $class: Str $str, Str $scheme) { | 13:44 | ||
That looks for an invocant of type URI? | |||
I mean, wouldn't that make more sense as $self or something of the sort? | 13:45 | ||
Hrm, wait. | |||
Aankhen`` re-reads. | |||
iblech | :init is a class method | ||
No, wait, it isn't... | 13:46 | ||
Aankhen`` | It is, apparently. | ||
return $impclass.:init($uri, $scheme); | |||
That's how it's called. | |||
iblech | It *should* be a class method, but isn't in my port | ||
Yep | |||
Aankhen`` | So it ought to be Class $class, right? | 13:47 | |
iblech | The proper translation is method :init(Class $class: ...) | ||
Yep | |||
Aankhen`` | Yeh. | ||
Heh. | |||
Aankhen`` edits. | |||
C<< bless $class: foo => "bar" >> is a synonym for C<< $class.bless(foo => "bar") >>? | 13:50 | ||
iblech | Yep | 13:51 | |
Aankhen`` | OK. | ||
iblech++ # patient as always | |||
svnbot6 | r4537, iblech++ | Pugs.Help -- Minor cosmetic fix. | 14:03 | |
r4537, iblech++ | pugs::run -- Wrote section about Pugs' command line flags. | |||
r4538, gaal++ | fix mention of yaml_harness | |||
r4539, iblech++ | Pugs.Help -- Put link to pugs::run. | |||
gaal | iblech, do you think pugs::run should be svn mv'ed to end with .pm? if so please go ahead | 14:06 | |
iblech | Don't see anything wrong with .pod | 14:07 | |
gaal | k, i just nocticed you called it .pm somewhere. never mind :) | 14:08 | |
iblech | Ah, typo | ||
svnbot6 | r4540, gaal++ | add =item for PERLLIB | ||
kelan | jabbot: nopaste | 15:01 | |
jabbot | kelan: I'm not sure I understand you fully. | ||
kelan | perlbot: nopaste | ||
perlbot | Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel> | ||
Aankhen`` | Wow, TortoiseSVN rocks. | 15:16 | |
gaal | Wow, Close to the Edge rocks. (just sayin') | 15:32 | |
Aankhen`` | Yes rocks. | ||
gaal | Yes++; progrock++ | 15:33 | |
(that feeling of listeining to an album you love after a while you didn't listen to it, only to discover it's still amazingly excellent)++ | 15:34 | ||
Aankhen`` | (listening to a shuffled, 5000 song library over time and therefore discovering new music everyday)++ | 15:35 | |
(parents who listen to music you like)++ | |||
gaal | cofee! | 15:36 | |
wow, this is bad spell day. | |||
15:55
Boogie_ is now known as Boogie
16:07
iblech_ is now known as iblech
16:34
Aankh|Clone is now known as Aankhen``
|
|||
putter | autrijus: is there anything we can do to help you meet deadline? | 17:45 | |
putter notes svn.openfoundry.org is off the air. A hw2005.txt ci with minor grammar tweaks will have to wait...:( | 17:46 | ||
autrijus | putter: heya | 18:18 | |
putter: please nopaste it here | |||
putter: or just paste it here | |||
Limbic_Region | how goes the hackathon autrijus? | 18:22 | |
autrijus | Limbic_Region: very well! | 18:37 | |
figured out the compilation strategy | |||
I'm still finishing up hw2005 (due in 3.5 hours) | |||
Limbic_Region | you'll make it | 18:38 | |
autrijus | lots of blatant obsoleted and misleading statements in parrot PDDs removed | ||
learned TeX (but not bibtex yet) | |||
integral | .oO( ParrotTeX ) |
18:39 | |
iblech | autrijus: If you have a sec -- is there a way to use Pugs.Eval.findVar from Pugs.Parser.Unsafe? | 18:42 | |
gaal | autrijus: in the "Tied" section: consider | 18:43 | |
-objects". If yes, Perl then calls the "STORE" method on those objects, passing | |||
+objects". If they are, Perl then calls the "STORE" method on those objects, passing | |||
iblech | Currently I'm using "unsafeEvalExp $ Var "varname"", but this 1) dies if varname wasn't found and 2) seems a bit too heavy to me, as I just want to resolve varname | 18:44 | |
gaal | iblech, can't you readVar ? | ||
oh you'tr in the parser, no matter | |||
iblech | ...And findVar has special logic for &vars (i.e. automatically creating &prefix:<[+]> etc.), which I'd rather not like to replicate in Pugs.Parser.Unsafe | 18:46 | |
autrijus | greetings | 18:47 | |
iblech: I think readVar is the way to go. | 18:48 | ||
if you want the value, that is | 18:49 | ||
iblech: you can duplicate readVar's logic | |||
or generalise it for all MonadEval class. | |||
gaal: gaal thanks, fixed | 18:50 | ||
iblech | But it seems that readVar doesn't have special logic for &vars, so readVar won't find "&prefix:<[+]>", right? | 18:51 | |
autrijus | right. so you need to move the logic there | 18:52 | |
and reuse it | |||
gaal | actually: also ..."on them", not "on those objects", since we are already in the Deict monad. | ||
iblech | Ok, I'll try that | ||
autrijus | gaal: k | 18:53 | |
autrijus started writing out PIR grammar | |||
after 20 constructors | |||
I found there's still 40 to go | |||
if I still had any doubt about the craziness of generate PIR directly from the parsed Exp, with any chance of optimisation, then there's no more | 18:55 | ||
it's clearly a way of madness | |||
instead I've written out the PAST grammar which has only seven node types, so we can optimise the hell out of it :) | |||
even for the Eval monad itself | |||
so expect some more 200% speedups down the road :) | |||
iblech: hey, you grok TeX right? | 18:56 | ||
iblech | autrijus: If you mean LateX, then yes | 18:57 | |
Don't have a clue of pure TeX | |||
gaal | :) | ||
autrijus | :) | 18:58 | |
iblech | :) # 3 smileys, can we top that? :) | 18:59 | |
autrijus | iblech: cool. I'm having problems distinguishing | ||
\texttt{} | |||
\code{] | |||
and other constructs | |||
during the conversion of .txt to .tex | |||
gaal | we can do a moose smiley. }:) | ||
crysflame | :X | 19:00 | |
autrijus | iblech: do you have a feather account? | ||
in ~autrijus/hw2005/pugs.tex | |||
that's my current formatted source | |||
I'd be happy if you can sanity check a bit to see if there's some outrageous errors | |||
(typing "make" in there should produce a pugs.ps) | |||
iblech | autrijus: No, please cp that to public_html or how it's called | 19:01 | |
autrijus: Sure | |||
autrijus | and/or help fixing the usage of things like {tree"} nad turn "libperl.so" to \texttt{libperl.so} (or something like that) | ||
iblech: perlcabal.org/~autrijus/hw2005.tgz | 19:02 | ||
danke sehr | |||
iblech | Kein Problem | 19:03 | |
nothingmuch | Aankhen``: did you figure darcs out? | 19:05 | |
putter | back... pasting... | 19:07 | |
iblech | autrijus: Hm, you defined \code to mean the same as \texttt, so what's the exact problem? | ||
autrijus | iblech: the exact problem is that I did none of that definition XD | 19:08 | |
iblech: it's all copy-paste of hs-plugins.tex | |||
I have no idea what is defined to what | |||
so if \code just means \texttt... then wonderful | |||
thanks for telling me that :) | |||
also I noticed the source code <pre> things | 19:09 | ||
doesn't break | |||
iblech | autrijus: :) It's at the top: \newcommand{\code}[1]{\texttt{#1}} -- "define the new command "\code", which takes 1 arg (which can be later referred to by #1), and let it expand to \texttt{#1}" | ||
pasteling | Someone at 66.30.119.55 pasted "hw2005.txt: minor grammar tweaks." (25 lines, 1K) at sial.org/pbot/10953 | ||
nothingmuch | autrijus: any opinions on chapter 7? | 19:10 | |
autrijus | nothingmuch: Leo says your journal is the best text he've found about Haskell | 19:11 | |
and that he can actually grok one chapter at a time without head exploding or something | 19:12 | ||
nothingmuch | =D | ||
there's a saying in judaism | |||
saving one life is like saving the whole world | |||
scaled down to saving a head from exploding | |||
autrijus | I think ch7 is wonderful -- I never grokked how compile-time words relate to BEGIN until you wrote that | ||
nothingmuch | just that makes me overjoyed =) | ||
autrijus | of course the BEGIN is nestable? | 19:13 | |
you can do compile-time-inside-compile-time? | 19:14 | ||
nothingmuch | i'm not 100% sure | ||
i haven't played around | |||
in theory yes | |||
though I suspect it depends on your impl | |||
: just puts stuff on the stack | |||
or maybe it doesn't, i'm not sure | |||
autrijus | nod. | 19:15 | |
nothingmuch | you might preallocate some data | ||
the way a word's definition is linear | |||
or make sure to jump around the nested word | |||
food time... see you soon! | |||
autrijus | ciao | ||
Aankhen`` | nothingmuch >> I figured out darcs somewhat, but I need to figure out how I send you a particular patch by e-mail; I can't use `darcs send` as it tries to send using Microsoft Exchange. | 19:20 | |
gaal | a.*, darcs send -o file.patch | 19:21 | |
autrijus | mugwump: hey, you know if there's a pod2kwid somewhere? | 19:22 | |
Aankhen`` | Like I said, `darcs send` doesn't work... | ||
autrijus | chip's asking | ||
Aankhen`` | Or rather, it's not an option. | ||
gaal | -o file writes it to a file | ||
Aankhen`` | Oh. | 19:23 | |
autrijus | maybe PDDs won't take up that much vertical space when it's converted to kwid :) | ||
hmm Pod::Simple::DumpAsKwid | 19:24 | ||
Aankhen`` | Thanks, gaal. :-) | ||
gaal | sure :) | ||
pasteling | "iblech" at 80.81.17.181 pasted "autrijus: pugs.tex fixes" (120 lines, 5.6K) at sial.org/pbot/10954 | 19:28 | |
autrijus | iblech++ xx inf | ||
iblech: h | 19:30 | ||
iblech: hm, can't apply | |||
iblech: can you just put the entire .tex somewhere? | |||
I'll adapt | |||
iblech | Sure, a sec | ||
m19s28.vlinux.de/iblech/.pugs.tex | 19:31 | ||
nothingmuch | Aankhen``: probably the simplest way for you to work is by just pushing to the repo on feather | 19:32 | |
keep your own repo there | |||
by darcs getting to your home dir | |||
(it's cheap, too, hardlinks and all that) | |||
putter | autrijus: I assume you saw the paste. Is pugs.tex supposed to be A4 or Letter. I note some of the code sticks out far enough to overlap adjacent columns, or be clipped by A4 printing. | ||
nothingmuch | and then push to your repo, where I can pull from | ||
kelan | anyone want to help me understand harrorth chapter 6? :) | 19:34 | |
nothingmuch | kelan: sure =) | ||
but blame autrijus ;-) | |||
kelan | heh | ||
nothingmuch | i think that in a later stage in the project i will try to move it down the chronology | ||
autrijus | putter: indeed... I don't know why is it the case | ||
maybe I should investigate linebreaks | |||
kelan | well i get most of it, but i can't figure out how the simplified `interpret` is evaluating correctly | 19:35 | |
autrijus | it's for A4 | ||
www.cs.uu.nl/~daan/hw2005/ | |||
but deadline is in 90 minutes :) | |||
so I'll focus on the content | |||
almost there | |||
kelan | this line (line 225): interpret ast = doExp (head ast) >>= \i -> return i | ||
with the simplified `doExp` that just returns an empty interp | |||
iblech | autrijus: Listings don't auto-break, one has to put breaks manually in them | ||
autrijus | iblech: :-/ | 19:36 | |
kelan | it doesnt seem like it should work to me | ||
autrijus | iblech or putter: do you have time to investigate A4 breaks for me? | ||
kelan | so apparently i'm misunderstanding something | ||
nothingmuch | how is the vienna hackathon proceeding? | ||
autrijus | and perhaps update the .pugs.tex file again | ||
iblech | Will do | ||
autrijus | nothingmuch: it's extremely fruitful thus far | ||
nothingmuch: got Pugs->Parrot compilation strategy figured out largely | |||
iblech | autrijus: Should I use the same .tex? Or do you have an updated version of it? | ||
nothingmuch | with the meta compilation thingamabob? | 19:37 | |
autrijus | iblech: just use the same .tex | ||
I'll deal | |||
nothingmuch: yeah | |||
iblech | autrijus: Ok | ||
nothingmuch | is this going to be a 10 day thing? WOW! | ||
pasteling | "kelan" at 68.101.16.64 pasted "what's wrong in my evaluation understanding?" (169 lines, 2.9K) at sial.org/pbot/10955 | ||
autrijus | nothingmuch: yeah... also leo has got some notes on how to get STM on parrot | ||
nothingmuch | =D | ||
autrijus | and serialised conts | 19:38 | |
kelan | thats a bit long, because i wrote out all of the steps | ||
autrijus | so the two big things can be made portable | ||
now we just have to make parrot link libperl | |||
and then there's nothing stopping the entire examples/ to be compiled to parrot | |||
nothingmuch | what what what? | 19:40 | |
i don't see the connection between libperl and examples | |||
putter | iblech: another option is to reduce the explicit indentation in the lstlisting's which are too long... sacrificing consistency for "dont have to rewrite code". | 19:41 | |
autrijus | nothingmuch: examples/perl5/cpan-upload.p6! | ||
nothingmuch | ah! | ||
putter | autrijus: references? | ||
autrijus | putter: I failed to grok bibtex. | ||
nothingmuch | kelan: sorry, i missed the nopaste... reading now | ||
kelan | nothingmuch: ok thanks | ||
autrijus | putter: so I guess I can use some help in googlescholaring | ||
gaal | please keep in mind that we don't have perl5 embedding in win32... | 19:42 | |
autrijus | gaal: but parrot is no ghc | ||
gaal: parrot can survive link with perl more easily | |||
gaal | ah! wonderful | 19:43 | |
putter | is there a list of papers you intend to reference somewhere...? | ||
nothingmuch | kelan: i think you got it right | ||
kelan | nothingmuch: but the end result is a function, not an empty interp | ||
nothingmuch | oh wait... one sec | 19:44 | |
kelan | you would need to apply that function to another interp to get the empty one back | ||
nothingmuch | think of it this way | ||
autrijus | putter: "Monadic framework for subcontinuations"... the GADT paper from SPJ... hs-plugins paper... the STM paper... | ||
nothingmuch | f <- doExp ... | ||
autrijus | putter: any paper about parrot, I have no idea... | ||
putter: that's pretty much it | |||
nothingmuch | local f (interpret exps); | ||
ignore the rest of the stuff for now | 19:45 | ||
kelan | i don't know what `local` does, which is why i was trying with the simplified `interpret` | ||
nothingmuch | this function will return a Reader with a function that will give an interpreter to X, take the result, and send it to local | ||
chain it | |||
and that's basically it | |||
the details is just a triple inversion | |||
well, double inversion | |||
try expanding >>= first | 19:46 | ||
i think it will make more sense | |||
oh wait, that's what you did | |||
=) | |||
kelan | :) | ||
autrijus | brb | ||
nothingmuch | in that case, stop there, then evaluate the external runReader | ||
kelan | it seems like there needs to be another application somewhere to get a real result | ||
nothingmuch | yes, the details are hard... i spent like 2 hours reading the source to Reader again and again and again | 19:47 | |
as I said before, I think it will make a wonderful obfu in p5 | |||
pasteling | "iblech" at 80.81.17.181 pasted "autrijus: line break fixes" (155 lines, 6.7K) at sial.org/pbot/10956 | ||
nothingmuch | i've never seen 10 lines confuse me so much | ||
iblech | autrijus: The only two lines which are a little bit too long are two example lines of async { atomically { | 19:48 | |
autrijus | ok. | ||
nothingmuch | kelan: i think that maybe >>= is incorrect | 19:52 | |
kelan | the one i used? | 19:53 | |
nothingmuch | the expansion | ||
kelan | i used the version from the Prelude because it expands easier, but it should be the same | ||
i'll look over my expansion | 19:54 | ||
nothingmuch | hmm | ||
i'm not sure | |||
what I remember most distinctly: | |||
doExp returns a lambda | |||
eventually there's very little parameter passing, which is quite transparent | 19:55 | ||
between the lambda returned by runReader (interp ast) and that lambda | |||
kelan | i thought doExp returns a Reader | ||
nothingmuch | yes it does, a lambda in a Reader | 19:56 | |
kelan | right | ||
nothingmuch | ignore the Reader for a second, it's just glue =) | ||
kelan | but the Reader is where the problem is for me | ||
because the lambda inside it is never applied | |||
nothingmuch | i mean at the principal level | ||
the lambda inside is supposed to get the external `e` i think | |||
let me try to carry on the second reduction of runReader | 19:57 | ||
i would have done it differently | |||
i'll nopaste in a sec | |||
kelan | does `runReader (return $ \interp -> interp{ stack = []})` evaluate to `\_ -> (\interp -> interp{ stack = []})` ? | 19:58 | |
putter is not making good progress... | |||
kelan | because if so, the external `e` is going into the `_` parameter, so it doesnt get to the inner lambda | 19:59 | |
nothingmuch | right, which is silly | ||
the error is before what I started with | 20:00 | ||
because in another reduction i get the same thing | |||
autrijus | chip: when you have the next spare moment | 20:01 | |
chip: please rescue me from my room, thanks, much appreciated :) | |||
(my room in leo's place has a knob only on one side of the door.) | 20:02 | ||
(so if I go into the room without unpacking the knob and taking it with me inside, then I'm effectively locked within) | |||
(because it can only be opened from outside) | |||
chip | autrijus: LOL ok | 20:03 | |
kelan | hmm. closets usually only have knobs on the outside, don't they ;) | ||
leo stuck you in a closet! | |||
chip | autrijus: Leo's on the way! | ||
autrijus | cool | ||
chip is amused that this message passed through .nl if not .us to get about 30 meters | |||
kelan | nothingmuch: maybe i should give up on this part and just try to understand the real version that uses `local`? | 20:04 | |
nothingmuch | i think so | 20:05 | |
but not yet | |||
try reducing runReader (interpret []) initInterp | |||
kelan | ok | ||
nothingmuch | oh right! i see why, | ||
doExp needs returns something to be used by local, in most situations | |||
i think that using it as the left side of a bind that does an ask is not 100% correct | 20:06 | ||
but i'm not sure | |||
i'm too tired from doing silly things all day long | |||
jhorwitz | yo lambdacamels. back from vacation. i'm sure i missed, well, everything. :) | 20:08 | |
autrijus | yo jhorwitz! | ||
nothingmuch | kelan: i'll try to reduce stuff for you, and append it to harrorth | 20:09 | |
autrijus | jhorwitz: leo chip me among other friends figured out ways to do Exp->PAST->PIR->PBC! | ||
nothingmuch | that way you can check if you got it right when you finish | ||
kelan | nothingmuch: ok, thanks | ||
jhorwitz | autrijus: ooooooh | ||
autrijus | jhorwitz: also figured out VObj in ParrotObject land | ||
jhorwitz | autrijus++ | ||
autrijus | and generational GC | ||
jhorwitz | in europe now? | ||
nothingmuch | and if it's not right, i was probably wrong =) | 20:10 | |
autrijus | and plans for STM and serialised conts | ||
and stuff. | |||
(all within the last 18 hours) | |||
jhorwitz: yeah, in Leo's place | |||
jhorwitz | i wouldn't expect any less in 18 hours from you guys. :) | ||
autrijus | jhorwitz: but I have 50 mins to finish this paper :) | ||
(oh I also recorded some of this into the paper.) | |||
jhorwitz | off with you. ;-) | ||
jhorwitz is now anticipating his next svn up | 20:11 | ||
putter | autrijus: when is the deadline? | 20:13 | |
nothingmuch | kelan: interpret [] finished - darcs pull | 20:14 | |
autrijus | putter: midnight london time today | 20:15 | |
putter | which is now+? | ||
autrijus | +45 | ||
min | |||
I'm in Conclusions | |||
nothingmuch | midnight london time? it's midnight in 45 mins here | ||
and it's GMT+3 | |||
jhorwitz | 4:15 here, and i'm GMT+5 | 20:16 | |
i think you have more time than you think | |||
autrijus | right | ||
Aankhen`` | 1:45 AM here; GMT+5.5 | ||
autrijus | I counted backwards. | ||
so still 2:45. | |||
Aankhen`` | (just thought I'd add to the time lists :-P) | ||
autrijus | but I can't stay up anymore :) | ||
jhorwitz | eek, i'm GMT -5 | ||
plus, minus...minor details | |||
nothingmuch | autrijus: cold shower == minimum 30 minutes of alertness | ||
integral | midnight london time? That's not for 2h40 ... | 20:18 | |
integral is brain lagged | |||
crysflame | central | 20:19 | |
chip | London is -1 from us, as we're Greenwich+1 (which is not to say GMT+1, what with summer) | 20:21 | |
s/us/Hernnbaumbarten/ | 20:22 | ||
s/Hernnbaumbarten/Herrnbaumgarten/ # geez, spelling German is hard | |||
integral | hmm? you're GMT+1? Isn't that what we are? | 20:23 | |
s/we/London/ | |||
chip | Um, that's exactly what I said we aren't. | 20:25 | |
"which is not to say GMT+1" | |||
integral | uh, so by "greenwich" you didn't mean GMT, you meant London time ... | ||
integral goes back to hacking continuations to fix his brain ;-) | 20:26 | ||
autrijus | so it's just GT, not mean :) | ||
gaal | UTC or Z come in handy :) | ||
putter | iblech: e' in tex? | 20:30 | |
iblech | putter: ? | ||
kelan | probably wants Ć© | 20:31 | |
nothingmuch | kelan: done! | ||
kelan | i'm not:) | 20:32 | |
putter | yes | ||
nothingmuch | interpret [Push 1] and interpret [] | ||
have fun =) | |||
kelan | ok thanks | ||
nothingmuch | i'm off to do laundry/shower etc | ||
under misc/ | |||
putter | andrƩ | ||
kelan | nod | ||
iblech | putter: Don't know for sure, try 'e, `e, e', e`, "e, e" | 20:33 | |
nothingmuch | this is what I finish with: ( \e' -> e'{ interpStack = (1:) (interpStack e') } ) initInterp | ||
( \e' -> e'{ interpStack = 1:(interpStack e') } ) initInterp | |||
Odin-LAP | GMT is absolutely and completely equivalent to UTC. UTC is just the new name for GMT. ;) | 20:44 | |
gaal | true; but it was given that name to remove possible confusion against london time. | 20:45 | |
Odin-LAP | Heh. :p | ||
England is GMT+DST. | |||
iblech | Yay! We have rudimentary macro support! :) | 20:47 | |
autrijus | iblech: !? | ||
oh wow. | |||
Odin-LAP | Riddle me this. Is there something specced somewhere which says alphabetic operators have to be seperated from operands by space? | ||
Hmmm. | |||
iblech | pugs> macro test ($x) { say "macro"; "100$x" } | ||
undef | |||
pugs> sleep 1; say 2; test 3 | |||
2 | |||
macro | |||
'1003' | |||
autrijus | iblech++ | 20:48 | |
Odin-LAP | iblech: How rudimentary? :> | ||
Aankhen`` | iblech++ | ||
iblech | But not the whole parsing thing, only the compile-time evaluation thing | ||
autrijus | right, but that's fine | ||
Odin-LAP | Heeh. :p | ||
autrijus | because I plan to compile rules into parsec prims anyway | ||
but that's for 6.28.x | |||
iblech | Odin-LAP: t/macros/*, with small modifications, pass :) | ||
autrijus | this is so nice | ||
iblech++ | |||
Aankhen`` | Parsing would need to wait till we have better rules support anyway, wouldn't it? | ||
autrijus | Aankhen``: yes | 20:49 | |
iblech | That's enough, thanks :) | ||
Odin-LAP | karma iblech | ||
jabbot | Odin-LAP: iblech has karma of 337 | ||
autrijus | in other news, I believe I just finished the first draft. | ||
like, complete, text | |||
only problem now is no references. | |||
Aankhen`` | ?eval module Foo { } | ||
evalbot6 | undef | ||
autrijus | perlcabal.org/~autrijus/hw2005.tex | 20:50 | |
perlcabal.org/~autrijus/hw2005.pdf | |||
iblech | Aankhen``: Do you think it should return the type/module/class object Foo? | ||
Aankhen`` | iblech >> IMHO, having C<use module;> return the module/class is enough... | ||
iblech | Aankhen``: Ok | 20:51 | |
Aankhen`` | I figure if C<module Foo { }> returns the module, the only use would be to have anonymous modules... is there a need for that? | ||
iblech | autrijus: On the last page, in the bottom left, the definition of RelOp is a little bit too long | 20:52 | |
autrijus | iblech: fixed already | ||
reuploaded | |||
Aankhen`` | ?eval "foo".trans([<f o>] => [<F O>]) | ||
evalbot6 | Error: No compatible subroutine found: "&trans" | ||
Aankhen`` | ?eval "foo" ~~ tr/a-z/A-Z/ | ||
evalbot6 | Error: unexpected "A" expecting term postfix, operator, ",", ":", ">>=:=<<", ">>!=<<", ">>==<<", ">><=<<", ">>>=<<", ">>~~<<", ">>!~<<", ">>eq<<", ">>ne<<", ">>lt<<", ">>le<<", ">>gt<<", ">>ge<<", ">><<<", ">>><<", "\187=:=\171", "\187!=\171", "\187==\171", "\187<=\171", "\187>=\171", "\187~~\171", "\187!~\171", "\187eq\171", "\187ne\171", "\187lt\171", "\187le\171", "\187gt\171", "\187ge\171", "\187<\171", "\187>\171", "=:=", "!=", "==", "<=", ">=", "~ | ||
autrijus | oh wow. | 20:53 | |
(re the error message) | |||
Aankhen`` | Heh. | ||
Hrm. | |||
nothingmuch | my god, you go for 10 minutes, and pugs gets macros | ||
autrijus | nothingmuch: such is the pre-singularity age of accelerated acceleration | 20:54 | |
Aankhen`` | ?eval multi sub *infix:<==> ($first, $second) { $first ~ "1" eq $second ~ "2" }; "a" == "b" | ||
evalbot6 | bool::false | ||
Aankhen`` | ?eval multi sub *infix:<==> ($first, $second) { $first ~ "1" eq $second ~ "2" }; "a" == "a" | ||
evalbot6 | bool::false | ||
Aankhen`` snickers. | |||
?eval multi sub *infix:<==> ($first, $second) { $first ~ "1" eq $second ~ "2" }; 1 == | |||
evalbot6 | Error: unexpected end of input expecting term | ||
Aankhen`` | ?eval multi sub *infix:<==> ($first, $second) { $first ~ "1" eq $second ~ "2" }; 1 == 1 | ||
evalbot6 | bool::true | ||
Aankhen`` | D'oh. | ||
nothingmuch | everyone, we need to make a petition to iblech's school so that they will let him go to the hackathon this week | 20:55 | |
Aankhen`` un-snickers. | |||
?eval multi sub *infix:<==> ($first, $second) { ("$first, $second", $first ~ "1" eq $second ~ "2") }; 1 == 1 | |||
evalbot6 | bool::true | ||
Aankhen`` | Bah. | ||
autrijus decides to just mail the current version to Daan. | 20:56 | ||
Aankhen`` | ?eval multi sub *infix:<+> ($first, $second) { ("$first, $second", $first ~ "1" ~ $second ~ "2") }; 1 + 1 | ||
evalbot6 | 2 | ||
Aankhen`` | ?eval my $foo; $foo = "foo"; my $bar ::= $foo; $bar = "bar"; $foo; | 20:57 | |
evalbot6 | \'bar' | ||
nothingmuch | Aankhen``: btw, what did you do with the darcs patch? | ||
Aankhen`` | nothingmuch >> I tried e-mailing it to you, but failed... | ||
nothingmuch | push it to feather then | ||
Aankhen`` | What was your e-mail address? | ||
I'm scared of doing that. | |||
nothingmuch | ssh feather; darcs get ~nothingmuch/harrorth; | ||
then push to feather:harrorth | |||
Aankhen`` | Would that require an account on feather? | 20:58 | |
nothingmuch | yes, it would | ||
[email@hidden.address] | |||
or you can have an account on pasta (my box) | |||
you can also nopaste a patch | |||
or put a txt one somewhere | |||
Aankhen`` | It's kinda long; I'll e-mail it. | ||
woobling? Not wobbling? | 20:59 | ||
nothingmuch | no, woobling | ||
Aankhen`` | Ah. | ||
That'd be my mistake, then. | |||
nothingmuch | like what the swedish chef says when he does the coconut thing | ||
Aankhen`` | Sent. | 21:00 | |
nothingmuch | grazie! | ||
mplayer woobling.org/coconut.mp4 | |||
Aankhen`` | NP, sorry it got delayed. | ||
When you use a Proxy object on an C<is rw> sub/method, does it actually create a new object each time? | 21:02 | ||
chip | could be a different method every time. &aliasing := &bites | 21:04 | |
Aankhen`` | Er... I'll take that as a yes. | 21:05 | |
pasteling | "putter" at 66.30.119.55 pasted "a first rough cut at bibtex" (35 lines, 1.1K) at sial.org/pbot/10957 | ||
chip | I can't answer for sure, I'm just guessing | ||
Aankhen`` | OK, thanks. | ||
putter | autrijus: are these the papers you have in mind? any others? (I didn't see any papers for parrot. just talks). | 21:06 | |
chip | Who is responsible for svnbot6? | ||
autrijus | putter: oh wow. | ||
chip uses the Professor Mind Trick | |||
Aankhen`` | chip >> iblech, I think... | ||
chip | "These are not the papers you're looking for. You can go about your grad work." | ||
autrijus | putter: yes, those are those. | ||
chip | iblech: ping | 21:07 | |
iblech | chip: Yes? | ||
putter | ok, I'll do a quick cleanup pass... | ||
autrijus | putter: how do I integrate it with perlcabal.org/~autrijus/hw2005.tex ? | ||
putter: cool! please just give me a url of tarball or something I can download and resend to Daan, then | |||
chip | iblech: since you've set up and are running the bot already, could you watch parrot and send commit messages to irc.perl.org #parrot? | ||
iblech | chip: Sure | 21:08 | |
Aankhen`` | Aha! I was right! Mwahahhaahahahaahahaha! | ||
chip | iblech: thanks! svn.perl.org/parrot | ||
Aankhen`` accidentally chokes. | |||
autrijus | er | 21:09 | |
actually | |||
iblech: svn.perl.org/parrot/trunk/ | |||
is a better url | |||
Aankhen`` recovers and takes on a dignified air. | |||
autrijus++ # I second that | |||
chip | what, only the truck? | ||
trunk? | |||
Aankhen`` | # (remind me not to `svn co svn.perl.org/parrot/` ever again, even by mistake) | ||
chip | heh | 21:10 | |
could be worse. Robert didn't bring over the repo copy of icu | |||
Aankhen`` | The whole checkout crashed somewhere around tags/RELEASE_0_1_0/. | ||
Then I suddenly realised that last time I did it, I only checked out the trunk. | |||
Ah sweet, sweet trunk... | |||
iblech++ # svnbot6 | 21:11 | ||
Hmmm... | 21:13 | ||
iblech >> Is there a reason why Net::IRC isn't a proper class, aside from the primitive nature of Pugs OO at the time it was written? | 21:14 | ||
putter | ok, pasting first working draft, connection info... | 21:15 | |
Aankhen`` | s/primitive/relatively primitive/ | ||
nothingmuch | -and returns an `IO Interp`. WTF? | ||
autrijus | putter: ping me when you're done | ||
nothingmuch | +and returns an `IO Interp`. WTH? | ||
silly! | |||
Aankhen`` blushes. | |||
iblech | Aankhen``: No. There's a real OO in ext/Net-IRC/lib/Net/IRC-OO.pm, but I haven't tested the OO ver | ||
Aankhen`` | iblech >> OK. | ||
nothingmuch >> I just went with my spellchecker. :-) | 21:16 | ||
nothingmuch | in that case i'll unspellcheck some stuff =) | ||
Aankhen`` | ?eval "foo " ~~ m/ $/ | ||
evalbot6 | Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them | ||
Aankhen`` | Bah! | ||
pasteling | "putter" at 66.30.119.55 pasted "first working draft of bibliography" (42 lines, 1.2K) at sial.org/pbot/10958 | ||
Aankhen`` | Oops. | ||
Right, no pattern matching for evalbot6. | 21:17 | ||
iblech | s/\.$/, because parrot exceeds the RAM limit/ | ||
Aankhen`` | Yeh, I did the same thing earlier. | 21:18 | |
My memory is a fascinating thing. | |||
Are all your modules on freepan for P6? | 21:19 | ||
svnbot6 | r8304, autrijus++ | * bump pdd04 to version 1.5. | ||
r8305, bernhard++ | At the Austrian Perl Workshop it was reported, that the 'bc' config test | |||
r8305, bernhard++ | hangs on Win32. So this check is now only performed on linux, as the output | |||
r8305, bernhard++ | of the will only be used in a future 'languages/bc'. | |||
r8306, mdiep++ | Start an extend.pod. | |||
iblech | Err? | 21:20 | |
putter | autrijus: I'm just going to do a double check. "S.P.Jones" ok, etc. will ping. | 21:21 | |
Aankhen`` | ?eval role Foo { } | 21:22 | |
evalbot6 | undef | ||
Aankhen`` | ?eval role Foo { method bar { 42 } } | 21:23 | |
evalbot6 | undef | ||
autrijus | putter: I think I can stay up for maybe 38 more minutes :) | ||
Aankhen`` | ?eval role Foo { method bar { 42 } }; my $foo is Foo; $foo.bar | ||
evalbot6 | Error: unexpected "i" expecting "=", ":=", "::=", ";" or end of input | ||
Aankhen`` | ?eval role Foo { method bar { 42 } }; my $foo does Foo; $foo.bar | ||
evalbot6 | Error: unexpected "d" expecting "=", ":=", "::=", ";" or end of input | ||
Aankhen`` | ?eval role Foo { method bar { 42 } }; my $foo; $foo does Foo; $foo.bar | ||
evalbot6 | Error: Unknown syntactic construct: Syn "does" [Var "$foo",Var ":Foo"] | ||
Aankhen`` | Darn. | ||
chip | You can't just say C<$foo does Foo>, can you? | 21:27 | |
maybe C<my $foo of Any does Foo> | 21:28 | ||
eval role Foo { method bar { 42 } }; my $foo of Any does Foo; $foo.bar | |||
Aankhen`` | G'night. | ||
chip | ?eval role Foo { method bar { 42 } }; my $foo of Any does Foo; $foo.bar | ||
evalbot6 | Error: unexpected "o" expecting "=", ":=", "::=", ";" or end of input | ||
chip | hm. | ||
?eval role Foo { method bar { 42 } }; class Bar does Foo {}; my Bar $foo; $foo.bar | 21:29 | ||
evalbot6 | Error: No compatible subroutine found: "&bar" | ||
chip | ?eval role Foo { method bar { 42 } }; class Bar { does Foo }; my Bar $foo; $foo.bar | 21:30 | |
evalbot6 | Error: No compatible subroutine found: "&does" | ||
chip | thought not | ||
the Any thing is silly | |||
iblech: ping | 21:34 | ||
iblech | chip: Pong | ||
chip | Hm. | 21:35 | |
I was about to make a feature request: only one karma bump per commit. | |||
But now I wonder ... maybe it's a good idea to encourage long commit messages. :-, | |||
so ... n/m | 21:36 | ||
thanks | |||
iblech | We had the same discussion here :) Our arguments for leaving it as it is were 1. long commit messages bonus, 2. vertical alignment (even if we s/\+\+/ /, the commit messages won't vertically align when seen in a proportional font) | 21:37 | |
putter | autrijus: pasted. I yanked the month from subcontinuations because two seem to be in use (Feb and July). | 21:38 | |
autrijus | 'k | ||
pasted? | |||
putter | pastling seems slow... sial.org/pbot/10961 | 21:39 | |
autrijus | putter: how do I use this? | ||
save it to pugs.bib | |||
that's all? | 21:40 | ||
do I need to say \cite or some such? | |||
putter | \cite{*} just above the \bibliography | ||
oops, | |||
\nocite{*} | |||
kelan | nothingmuch: thanks for your help. i understand how `interpret` with `local` is working | ||
putter | complete: | 21:41 | |
\nocite{*} | |||
\bibliography{pugs2} | |||
assuming paste is in a new file pugs2.bib. it didnt look like pugs.bib was being used. | 21:42 | ||
k? | |||
nothingmuch | kelan: goody! | 21:43 | |
oh wow! i get to do 3 way diff-merge! | |||
autrijus | putter: I went for direct citing | ||
nothingmuch | Herkamire from #forth helped maked chapter 7 more grokkable, and Aankhen fixed some spelling errors | 21:44 | |
autrijus | works beautifully! | ||
putter++ ! | |||
putter would have chosen better ids... ;) | |||
weee. that was fun. ;) | |||
autrijus | =) | 21:45 | |
nothingmuch | hola lightste1 | ||
autrijus | re-uploaded everything | ||
putter: check to see if it makes sense? | |||
putter | I used the tar file you created... dont have feather access... | 21:46 | |
autrijus | oh oh | ||
check my journal | |||
putter | k | ||
oh, note the tar'ed Makefile didn't automagically update ps and pdf... dont accidentally submit the wrong version! .) | 21:48 | ||
autrijus | ok :) | ||
nothingmuch | wow, darcs is so cool | 21:50 | |
xerox | Indeed! | ||
nothingmuch | i love the way it handles conflicts | 21:51 | |
with merge patches really being that | |||
putter wonders why \keywords and \terms got trailing {} which werent in the sigplanconf template... | |||
autrijus | putter: because I adopted this with the old hs-plugins tex | 22:05 | |
but looks like it's still okay | 22:06 | ||
anyway. I'll sleep now | |||
happily we beat the deadline | |||
#perl6++ | |||
nothingmuch | ciao! | ||
huraah! | |||
autrijus | I'll finally return to coding ;) | ||
two weeks is a bit too long | |||
nothingmuch | sleep coding? | ||
autrijus | I mean from tomorrow on | ||
nothingmuch | sure... | ||
autrijus | (although I think hw2005 really forced me to think things thru, so it was still worth it) | ||
nothingmuch | where and when is hw going to be, btw? | 22:07 | |
autrijus | nothingmuch: www.cs.uu.nl/~daan/hw2005/ | ||
autrijus waves... & | 22:08 | ||
putter | good night autrijus. | 22:10 | |
iblech | m19s28.vlinux.de/iblech/pugs-macros.patch # As OpenFoundry is still down | 22:11 | |
Ok, work done, gonna sleep, too :) | |||
Night #perl6 | |||
putter thinks "macros !?!" O.O ;) | |||
iblech | Yeah, and the tests pass! :) | 22:12 | |
Anyway, sleep & | |||
wolverian | whoa iblechbot | 22:15 | |
er | |||
iblech++ | |||
putter | something for the infinite todo list... an emacs p6 mode which hides sigils, colorizing symbols instead. | 22:16 | |
chip | putter: down that path lay ColorForth. just make sure you've left a will. | 22:17 | |
Boogie_ at home & going to bed. :) | |||
nothingmuch | forth... MMM! | 22:18 | |
otoh, colorforth and emacs share some qualities | |||
putter | I noticed my ruby code is better abstracted than my p6, my p6 than my p5. It appears I'm using visual complexity as a proxy for semantic complexity... so things dont get refactored as much. | 22:19 | |
nothingmuch | like being an OS with a language, an IDE, a UI, etc ... all at the same time | ||
putter: identify what parts of ruby give you that, and post to p6l? | |||
Khisanth | there is also other things to consider, do you know p6 as well as ruby? :) | 22:26 | |
putter | yes, ColorForth was... amusing. | ||
nothingmuch: I think they are all known issues. I wouldn't buy simpler syntax at the cost of simpler semantics. | 22:28 | ||
Though I expect p6 will get dialects which, for instance, try to make barewords scalars. I almost never use explicitly name nonscalar variables anymore... | 22:29 | ||
Hmm, that may be a case of perl huffman encoding perhaps beginning to lag use...? | |||
Khisanth: re groking p6 vs ruby, true. Also, I find myself pugs defensive. If something misparsed without parens, even months ago, I use parens... | 22:31 | ||
An alternative to colorized idents might simply be less visually significant sigils. Hmm, maybe perl-mode will let me use a different face for the sigils themselves. | 22:33 | ||
Though I've been burned a couple of times on ./foo vs .foo. That could be nice in color, so i could see the patterns of usage within a class... | 22:34 | ||
aside from the cookbook, I wonder if we could use a style guide? | 22:35 | ||
nothingmuch: btw, I've really been enjoying harrorth. Thanks! ;) | 22:37 | ||
nothingmuch returns from shower | 22:40 | ||
barewords - i think I agree for module code | |||
but $foo is still highly identifyable to me (awk, bash, perl) | |||
so i'd actually like to keep it in "my" perl 6 | |||
and in scripts i do find myself using @ a lot | |||
as for harrorth - that's wonderful news! appearently autrijus is enjoying it from a mentor perspective, and you, kelan and even leo are avid readers | 22:41 | ||
=) | |||
putter | :) | 22:42 | |
nothingmuch | comments are very welcome, by the way | 22:43 | |
feel free to swamp me with grammer fixes, semantic fixes, or suggestions for future directions | |||
putter | 'k | 22:50 | |
nothingmuch | anyone quick: nothingmuch.woobling.org/pugs_test_status/ <-- not updated because openfoundry is down? | 23:15 |