Pugs 6.2.8 released! | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by autrijus on 13 July 2005.
geoffb :-) 00:00
nothingmuch the universe tends to threaten to do that when you're working with haskell, and are starting to reimplement your brain in it
geoffb nodnod
nothingmuch goes to take a shower, in the hopes that the windows build will actually get somewhere 00:01
it keeps hanging and I don't like babysitting 00:02
geoffb :-/ 00:03
nothingmuch yeah, some stupid tool
it does a reset, and waits for the daemon to restart
the daeamon finishes restarting
but the client keeps on hanging
reproducably, on some tests, but not others, which is odd
but nevermind
www.thebestpageintheuniverse.net/c.cgi?u=banish 00:16
geoffb nothingmuch: ah, see now *that* was a nice break from monad theory 00:29
wolverian hmm, on what level would one write a generic syntax filter that doesn't change the semantic meaning? such as changing 'foo if bar' to 'if bar { foo }'? 00:34
svnbot6 r5800, Stevan++ | Perl6::MetaModel - (p5 version)
r5800, Stevan++ | * Perl6::Class is now a subclass of Perl6::Instance (code consolidation)
r5800, Stevan++ | * much code moved to Perl6::Class::Util::*
r5800, Stevan++ | * misc. code cleanup here and there...
wolverian AST or grammar or...?
mugwump that would have to take the non-optimised AST and write it out again, I guess 00:38
ezra_ either way, it needs to be acceptable to the grammar, right? 00:39
mugwump you'd hope it didn't produce broken code, yes 00:40
ezra_ i mean both syntactic forms have to actually parse, before you get an AST to transform.
mugwump you might be able to get away with simply mutating the AST and rely on the regular AST dumper to do that for you 00:41
ezra_: to do that sort of thing, you need to start with an AST. You can't just mutate the source text.
ezra_ but you have to right out two productions to allow both form, yes?
S -> X if Y and S -> if Y { X } 00:42
mugwump The AST would have to know which was used to be able to roundtrip safely from source code to AST and back 00:43
ezra_ s/right/write/
What's the AST dumper used for? 00:44
ezra_ is ignorant of most of perl6
mugwump The AST dumper is used to take a ParseTree and write it out again. It currently only supports debugging output of these trees. 00:45
wolverian mugwump, hm, right. that's what I was thinking.
ezra_ (ah)
wolverian I'm thinking of every perl coder having his set of filters as a standard preprocessing phase in his favourite editor 00:46
so that everyone codes in his version of perl.
(this is strictly a subset of the standard grammar. I'm not interested in grammar changes.)
mugwump Nice idea; I think a more achievable first goal would be to simply get a refactoring editor like eclipse to be able to use pugs itself to drive the highlighting... 00:48
then that sort of thing could be layered atop it 00:49
wolverian hmm. I'd like a more general refactoring layer so that any editor can use it, but maybe I'm building it too big
Khisanth wolverian: everyone coding in their own version of Perl sounds like a nightmare 01:22
wolverian Khisanth, I'm not sure. as long as it can be machine translated.
(and I did say no grammar changes :)
Khisanth maybe every "unit" coding in their own version of Perl 01:23
but then that would still present issues if you hire someone new 01:24
wolverian I'm not sure if there's an issue as long as a file loaded by anyone is guaranteed to be presented in their way
(remember, this is about automatic AST changes under one grammar, nothing fancier) 01:25
Khisanth slightly less nightmarish but still a nightmare :) 01:26
wolverian as long as the filter hides the nightmare from you ... :)
Khisanth since it would imply something like "I'm sorry but your editor is not powerful enough to handle Perl" might occur :)
geoffb ENOTEMACS 01:27
Khisanth which reminds me of the end of Batman Begins
geoffb Or, I suppose, ENOTVIM, for the other half
wolverian Khisanth, true enough. :) then there would have to be an extra filter between the code and the filter, which would probably work in a team setting. 01:29
(or anywhere where you can automatically force people to use that.)
putter Khisanth: nightmare? to be able to read perl in a standard form? think rich style checkers. think having a "default" perl syntax/style or two. think reading CPAN modules in clear code, rather than everyone's carelessly crafted personal dialect. i'm sooooo looking forward to it. 01:34
Re my previously mentioned "method call which doesnt return to caller, but rather to further up the call stack", it turns out $.foo ~= "$nosuchvariable"; is (non-minimally?) sufficient to cause the jump. where $nosuchvariable does exist elsewhere, but should not be in scope. 01:37
weeeeeeeee.
while AST modifying macros are nice, as are modifiable parser grammars, if someone wanted to do a simple p6 Filter::Simple, I'd use it immediately.... 01:39
wolverian ew. :)
putter one line of Filter::Simple gets adverbs on rx working... 01:43
wolverian I just want Seaside on Perl6 ... (continuations for web!) 01:44
putter oh, that's cute. when I fixed the aforementioned $nosuchvariable, I did it by changing the sub argument name, and missed one case of the old name. no warning, just a no local exit. cute.
wolverian heh. 01:45
putter It will be interesting to see how continuations on p6 shake out. I can't imagine them not being exposed on platforms which support them. But many interesting targets dont... 01:46
wolverian wow, Monad.ContT is blowing my mind. 01:47
putter ;) 01:48
wolverian this looks immensely neat and powerful and yet I have no idea whatsoever what it does exactly
(I'm still in the 'trying to get the tuits to learn Haskell beyond the number guessing game' stage) 01:49
putter putter still isnt there yet... 01:50
wolverian putter putter? :)
putter ;)
I get to watch my text, and see how my brain works... "subvocalize 'putter', with continuation for rest of line; activate '/me' typing behavior, setting often overlooked 'Ive typed /me flag'; pop back to subvocalize; fail to consult flag, type 'putter'". what fun. :/ 01:54
actually, its more of a stack shift which often gets subsequently overwritten, but whatever. 01:55
re seaside, some common-lisp folks were arguing (perhaps unsurprisingly) that full continuations don't buy that much versus escape continuations. has anyone written a insightful "foo is why you want your web infrastructure to have full continuations"? 02:01
mugwump putter, because escape continuations are a subset of full continuations. 02:06
putter yes. the question is, has anyone clearly stated what extra you get from having full continuations, in a web infrastructure context (seaside vs whatever). 02:08
mugwump this is a pointed question; for the purpose of serialising state for use in an application server, escape continuations are all you need 02:12
AIUI of course. But I only recently learned of continuations
cwest seen autrijus 02:18
jabbot cwest: autrijus was seen 3 days 6 hours 37 minutes 6 seconds ago
cwest yow
dudley that seems to be a common sentiment :) 02:20
He did post to p6c today, so he's not dead, at least. 02:21
mugwump someone doesn't irc for 3 days and people assume they're dead? COME ON PEOPLE! :-) 02:25
geoffb mugwump, this is autrijus we're talking about. Last time it happened he was falling over from extreme jetlag and lack of sleep.
And even then I don't think he was offline for more than 2 days at a time. :-)
putter and someone from his $work came by here looking for him... 02:30
jdv79 doesn't he stop working on pugs fulltime soon? 02:33
dudley I assumed he had already, and that's why he hadn't been around
geoffb I'm thinking so. 02:34
I'm also guessing his lucky employer gets the same kind of single-minded work ethic that he has been devoting to pugs . . . .
stevan last comment autrijus made (that I saw anyway) was that he was busy with $work and playing the Sims 02:35
my assumption is he is taking a well deserved break from Pugs reality in Sims reality
jdv79 how are things in Metaland? 02:36
stevan jdv79: very cyclical
geoffb Harrorth chapter 6 down, wheee . . . 02:37
jdv79 are roles real now?
stevan jdv79: in the p5 version they are pretty close 02:38
I have been avoiding things like role attributes and being about to do "is" within a role
those things tend to really complicate things
things like autogenerated accessors for attributes get sticky when you combine it with the method conflict rules 02:40
QtPlatypus Is there a BNF for PIL, or even better a set of Perl6 rules for parsing it? 02:41
geoffb Isn't there a PIL-as-YAML target? 02:42
stevan QtPlatypus: the Haskell code for PIL is pretty close to BNF (kind of)
QtPlatypus stevan: Thanks. 02:44
putter QtPlatypus: iblech/PIL2JS is the PIL-parsing forcing factor. last time I checked, it's still a p5 based parser. plan is for pugs to output a yaml dump of PIL, and likely other forms too. but I don't think that's happened yet? 02:56
QtPlatypus nods to putter. 02:57
putter does anyone here understand how Parser.hs etal handle quoting? I've a puzzle... 03:25
are we in any kind of preflight? (it being monday...) 03:44
mugwump last commit from autrijus was more than 5 days ago, so no :) 03:51
but gaal, luqui, stevan, and iblech seem busy as ever 03:52
Khisanth putter: adverbs on rx? rx:ims /.../ :blah; ? 03:54
QtPlatypus ?evan rule block { \{ .* \} };'{abc}' ~~ /<block>/; 04:03
?eval rule block { \{ .* \} };'{abc}' ~~ /<block>/;
evalbot6 Error: unexpected end of input expecting "\\", "$!", "$/", "$" or "'"
QtPlatypus ?eval rule block { \{ .* \} }; 04:04
evalbot6 undef
mugwump ?eval rule block { \{ .* \} }
evalbot6 undef
QtPlatypus ?eval rule block { \{ .* \} };/<block>/ ~~ "a"; 04:05
evalbot6 bool::false
QtPlatypus ?eval rule block { \{ .* \} };/<block>/ ~~ '{a}';
evalbot6 Error: unexpected end of input expecting "\\", "$!", "$/", "$" or "'"
QtPlatypus ?eval rule block { \{ .* \} };/<block>/ ~~ q/{a}/; 04:06
evalbot6 Error: unexpected "/" expecting ";", statements or end of input
QtPlatypus Weard
Khisanth hmm
try something from A5? 04:07
hey! 04:14
hmm 04:15
04:36 ezra_ is now known as the_ez, the_ez is now known as ezra_
putter Khisanth: yes. aka modifiers. 04:39
QtPlatypus: re \}, you might try <'}'>. though a just-applied patch may have fixed this issue too. 04:40
QtPlatypus putter: No good. 04:45
svnbot6 r5801, putter++ | In Parser.hs, created a new quoting level QB_Minimal between QB_No and QB_Single. Unlike No, it recognizes backslashed escapes of backslash and qfProtectedChar. Unlike Single, it doesn't reduce them (ie, to a backslash or to the qfProtectedChar). This appears to be what one wants for regexp literals. Previously, a parsed bs bs sp and bs sp were indistinguishable. The correct handling of odd quotes, eg rx?...\?...? , is less clear,
QtPlatypus I'll try upgrading.
putter :( 04:48
Actually, r5801 doesn't help either. :( 04:49
QtPlatypus r5801 isn't installing. 04:56
putter !! 04:57
details?
QtPlatypus Syntax error in inc/PugsBuild/Config.pm 04:58
Ok I see what's happened, false alarm. 04:59
putter whew. ;)
QtPlatypus This is much better. 05:01
putter re rule block { \{ .* \} };/<block>/ ~~ '{a}'; there seem to be a couple of issues. one a parser issue (unexpected end of input - its not an artifact of the read-eval loop). <'}'> solves that. second, ~~ is not currently commutative with rx'es. '{a}' ~~ /<block>/ fixes that. last, pge is choking. which isnt entirely suprising even if you have a current copy of the parrot leo-ctx5 branch. 05:11
sigh.
ah, you need <'}'> to keep pugs happy, but pge doesnt understand <'...'> yet. 05:13
pge is happy doing \{ .* \}
(or didnt a few days ago) 05:14
?eval rule block { \{ .* <[}]> } '{a}' ~~ /<block>/ 05:18
evalbot6 pugs: src/events.c:270: init_events_first: Assertion `rc == 0' failed.
putter erp?!?
works in ./pugs... 05:19
perhaps evalbot has an old parrot? 05:20
(ie, isnt using the leo-ctx5 branch... sigh)
QtPlatypus is upgrading both his pugs and his parrot. 05:22
putter the recommended parrot for pge is not the usual trunk/ but rather leo-ctx5/ . fyi. 05:23
QtPlatypus Damn.
putter though the latter doesnt always compile. :(
"perl6 development - a microcosm of software engineering. Ie, a maze of twisty little passages. If only our tools worked, we could make tools that worked, but..." 05:25
QtPlatypus Ć£svn.perl.org/parrot/leo-ctx5 or somewhere else? 05:27
(Ignore the nonsence) 05:28
putter Explaining the current state of things to someone a decade hence may be like explaining life a century+ ago. "I dont understand why X was so hard. You just wash your hands. -No running water - go to stream/neighborhood pump. Ok, so I get a bucket of water and wash my hands. -No soap. Why not? Not invented/available yet. Damn, ok, you..." 05:29
checking...
it's under branches/leo-ctx5/ 05:30
perhaps svn.perl.org/parrot/branches/leo-ctx5/ ?
and it seems to currently be broken. 05:34
MANIFEST problem
gaal oh no! I got bitten by ghc's "strange object" problem. what do i do?
(morning!)
putter good morning! Dont let it get away! :) 05:35
gaal what, strange objects are precious? :) 05:36
putter QtPlatypus: r8656 worked, but thats getting a bit long in the tooth.
what platform and version of ghc are you running?
(some strange objects are well known, and thus less precious :)
gaal win32, ghc-6.5 snapshot of few months back 05:37
putter cpu?
gaal update_fwd: unknown/strange object 35176
intel p4 3ghz prescott ht
putter so 32bit. hmm... 05:38
gaal y
didn't happen last week
...and this is on the r before your checkins
so it doesn't look like your fault ;-) 05:39
wow, nice quote on a.w.a.d. today
A root is a flower that disdains fame. -Kahlil Gibran
putter :) 05:43
Searching sourceforge.net/tracker/?group_id=8...tid=108032 I dont see any strange object tickets which are not 64-bit related. So the next questions are can you replicate it (less interesting if not), and is it still a problem (but it can be painful to try and find out). 05:45
err, "still a problem" in a more recent snapshot... 05:46
gaal fwiw, i'm making clean and trying again with a larget heap 05:47
putter my fuzzy impression is strange object is gc related, so larger heap will put off the problem. 05:48
yipes. 2am. good night folks. & 05:49
gaal well, it did happen in the most memory intensive part, where i had already gotten ooms before on smaller heaps
night :)
(Run.hs w/precompiled Test.pm)
svnbot6 r5802, chromatic++ | Minor typo fixes (error message and documentation). 06:30
r5803, chromatic++ | Added basic tests for method introspection (S12/Introspection). Most fail.
r5804, chromatic++ | Make a few tests from t/35_Method_introspection.t pass.
stevan chromatic++ # someone else taking an interest in the metamodel :) 06:57
svnbot6 r5805, Stevan++ | Perl6::MetaModel - (p5 version)
r5805, Stevan++ | * Major refactor of ::MetaClass (bootstrapping)
r5805, Stevan++ | - more than 50% of ::MetaClass is now described as a ::MetaClass instance
r5805, Stevan++ | - ::MetaClass internals restructured to match what Perl6::Object creates
r5805, Stevan++ | * Perl6::Instance removed (we didn't need it)
r5805, Stevan++ | * guts of Perl6::Instance moved back into Perl6::Class
r5805, Stevan++ | - changes made in ::MetaModel to facilitate this change
gaal newish smoke win32: perlcabal.org/~gaal/smoke_xp.html 07:11
08:07 Aankh|Clone is now known as Aankhen``
gaal ?eval :x<2>.perl 09:08
evalbot6 'undef'
gaal anyone know how to fix that?
?eval (x => 2).perl 09:09
evalbot6 'undef'
gaal pairs are broken?
?eval :x<2> 09:10
evalbot6 ('x' => '2')
gaal ?eval (x=>2)
evalbot6 ('x' => 2)
gaal okay, so .perl on pairs is broken. :)
nothingmuch perl 6 doesn't have the flop flop operators, right? 09:14
gaal doesn't it? they were nice
bbiab& 09:15
svnbot6 r5806, gaal++ | add some tests for :pair constructors inside <<>>-quotes 09:36
r5807, autrijus++ | * Fix pair binding: For functions expecting pairs as arguments, 09:42
r5807, autrijus++ | their Pair arguments should engate in positional binding,
r5807, autrijus++ | not named bindings phase. Implemented with the hack of
r5807, autrijus++ | (Syn "=>") representing a pair as named argument, and the
r5807, autrijus++ | original (App (Var "&infix:=>")) now means positional during
r5807, autrijus++ | the binding phase.
r5808, autrijus++ | * 6.2.9's Main.hs poem is French.
r5809, autrijus++ | * add a small test, due to gaal, that tests Pair object's
r5809, autrijus++ | canonical representation (.perl).
nothingmuch the problem with flipflop is that it's not lexical enough 09:47
i guess you can implement it 09:48
my &infix:<..> = make_me_a_flip_flop();
and that way you have control
sub make_me_a_flip_flop { :FlipState = enum <Before During After> ($left is delayed, $right is delayed) { state FlipState $x = Before; given $x { when Before { if ?$left { $x = During; return True } else { return False } }; when During { if ?$right { $x = After; return False } else { return True }; default { return False } } } } 09:51
oh, it really returns 'multi sub returns Bool' 09:52
so that it's not ambigouous with the range operator
gaal funny you should mention that, i was wanting to implement enum 09:53
but the tests all use <<:Pair<initial_value>>> syntax, hence the detour 09:54
nothingmuch i was guessing
i forgot how it creates types
gaal though s12 mentions some advances stuff there about how it's a role and stuff
yeah
i don't know how to do that 09:55
having it return a hash is easy :)
nothingmuch heh
one sec, i'll have a look
gaal i'm dehydrated, darn
gaal goes find something to drink 09:56
nothingmuch enum returns a list of pairs in any context
but 'my enum day <Sun Mon Tue ...>' is a role
it really creates a class
and I assume that each enumeration is a role
such that Tue is an instance of day that does Tue 09:57
or something
since you have "Today" but Tue;
or "Today" but day::Tue;
it's composing a property at runtime 09:58
gaal can we do that already?
nothingmuch i don't think so
gaal oh :(
well, enum doesn't have tests for that stuff yet anyway
nothingmuch either way, anonymous and named are very different
you should have a crack at anonymous
gaal y
nothingmuch given tuits today I may be tempted to test enum 09:59
i like it
it reminds me of haskell's data
enum Bool <<True False>>
gaal yes, i saw how you used it in the flipflop
"of bit"
nothingmuch now all we need is for the enumeration to allow using higher order functions
right
gaal++
gaal hofs? where?
nothingmuch i think FlipFlop.pm is nice
gaal i think HOP is nice. :) 10:00
nothingmuch enum Maybe <<Nothing Maybe($value)>>>
or some such ;-)
i haven't seen it yet
gaal lol
nothingmuch ofcourse, Maybe would return an opaque
gaal you'll be wanting mzero soon
and mplus and stuff
nothingmuch multi sub Just ($x) returns Maybe { Maybe.new has $x } # whatever, we can never know how it's implemented 10:01
multi sub Just (Maybe $x) { @$x }; # pattern matching
=D
i think I'm not being sane 10:02
enum Maybe does Monad <<Nothing Maybe($x)>> 10:03
gaal nothingmuch, how about you work on parsing :pairs in <<>>?
since you're not sane
nothingmuch i think i have a better idea:
pairs are parsed in <<>> regardless
they always return a pair
so we don't special case it
gaal er
yes,
nothingmuch then it should be easy, but I can't do it now
gaal but they aren't parsed now
ah
ok
nothingmuch i'm on a mental break from work, the 5 minutes after lunch
i still have to kick out that blasted build
it's failing due to system configuration problems 10:04
and I need to go through the logs and based on the type of errors decide whether the fail is just chaffe or really a fail
gaal i see you have enough fun. :)
nothingmuch yup
although my project proposal thing seems to be headed in the right direction
i think i will be doing a lot of heavy perl soon 10:05
gaal beh, pugscode's rss feed dosen't escape html
or else lj's aggregator doesn't
so every time somenone (me this time) puts a < in a commit comment, it gets mangled. 10:06
nothingmuch which commit message?
oh
gaal 5806
nothingmuch i see it properly in safari
but it maybe a quirks mode fix
gaal i don't know who's wrong though
maybe it isn't even specced? this is rss we're talking about :-( 10:07
(actually: it probably is specced. differently across versions)
nothingmuch curl shows me: inside &lt;&lt;>>-quotes
gaal bbiab & 10:08
nothingmuch autrijus: ping 10:18
Aankhen`` nothingmuch: That ought to be okay, shouldn't it?
nothingmuch Aankhen``: yes, it looks like it's a livejournal problem
it probably unescapes, and then does not reescape
Aankhen`` casually shakes a fist at LJ. 10:19
nothingmuch escaping is such a bitch of a problem
i hate it.
that and encoding conversion
no app that is not either:
UI
something that extracts stuff out of a UI
should care about either
e.g., what goes in must come out
that way you make your text editor write utf8 10:20
apache just says what it is
the rss feed gets the file, and pumps it verbatim
Aankhen`` I do believe encoding conversion is a much greater headache than escaping. :-)
nothingmuch livejournal gets a structure with verbatim crap in
nothing is unescaped
this is just sent streight to the browser
the content type is copied from apache
too many applications nowadays try to be smart about this stuff 10:21
what I like about OSX is that they made:
the string library
the file handle object
and most builtin dialogs and stuff (text boxes, etc)
smart enough to handle this stuff well
so that authors should never feel a need to know better than the user
(and usually they don't) 10:22
Aankhen`` Uh huh.
nothingmuch it's so much fun to see apps on OSX support hebrew out of the box
Aankhen`` Heh.
nothingmuch this is something that never happenned before
and they support hebrew because the authors didn't do anything special =)
Aankhen`` Kewl.
Right, I'm gonna go play some more games. 10:23
Late.r
Later.
nothingmuch ciao
nothingmuch needs email, but box at home lost connection... again 10:24
this is the 2nd time in 3 days
it's really frustrating
if only i actually had the time and will to switch ISPs again
nothingmuch has a weird ideae: 10:31
MMD dispatch errors are not fatal in a when { }
the errors are delayed
and fatalized if the given block exited with no choice
pasteling "nothingmuch" at 212.143.92.226 pasted "the maybe monad in perl 6 with nothingmuch's drunken enums" (48 lines, 1.3K) at sial.org/pbot/11996 11:05
nothingmuch damnit, this is bullshit 11:07
"Paste unacceptable: flood rate exceeded. Next paste allowed in 7339 seconds." 11:08
just a second ago I had a "next paste allowed in 10 seconds"
which is something i never got
gaal try another pastebot, nm 11:21
why did the Main.hs poem change language? 11:24
11:30 Aankh|Clone is now known as Aankhen``
pdcawley_ wonders if everyone else finds themselves yawning uncontrolledly whenever Thomas SandlaƟ posts anything... 11:52
Aankhen`` pdcawley_: Of course not! It's very fascinating to see what people can do to English and get away with. :-D 11:59
nothingmuch IA64 seems like a very yummy platform 12:05
pdcawley_ giggles at Aankhen. 12:14
svnbot6 r5810, Aankhen++ | * added variant of &HTTP::Message::BUILD to handle no arguments. 12:22
r5811, Aankhen++ | * added skeleton for HTTP::Request::CGI. 12:42
nothingmuch if I ever own a company my QA department will be writing tests in haskellD 12:58
there's nothing more useless than unmaintainable or unreadable or hard to write tests
and the combination of the 3... eep
i'd rather the test support code (e.g., comparisons, reusable monad thingies, etc) will take 3* times as long 12:59
Aankhen`` HaskellD? 13:01
Is that a typo?
BBIAF. 13:03
nothingmuch yes, it is 13:05
QtPlatypus BTW is it know problem what you can get action at a distence bugs with the PGE? Changing rules seems to cause unde related rules to fail. 13:09
masak thinks pugs development has slowed down recently 13:49
svnbot6 r5812, ingy++ | wahacha
masak i wish there was more i could do to help, but all i master so far is the tests :/
stevan masak: sometimes it is the most calm before the storm :) 14:01
ingy masak: you could write modules :) 14:02
PerlJam putter++ (rules engine on pcre) 14:05
svnbot6 r5813, Stevan++ | Perl6::Code - use PadWalker to bind params, it is voodoo, but it is fun :)
Khisanth hrm why a rules engine in p5? shouldn't ponie have easy access to PGE? :) 14:07
QtPlatypus The PGE is rather buggy and (at least for me) has a tendeny to explode if you look at it wrongly. 14:08
PerlJam QtPlatypus: How have you been looking at PGE? ;-) 14:09
Khisanth: multiple independent implementation of a rules engines suits me better than a single implementation. 14:10
Khisanth well yes and ponie is probably not completely converted either
but I assume at some point PGE will stop doing that :)
PerlJam one would hope
Khisanth at least I hope so
PerlJam QtPlatypus: Like pugs, writing a test that makes PGE blow up will help in getting it fixed. 14:11
Khisanth rules engine in p5 seems nice, rules in pcre seems a bit ... 14:12
QtPlatypus PerlJam: What is the polite way of writing a test that triggers a bus error?
PerlJam QtPlatypus: um ... I wouldn't be polite about a bus error. 14:13
Khisanth: note that all the world uses PCRE while only perl5 uses p5 :)
QtPlatypus ponders writing tests that get the bad responce that he gets. 14:14
Khisanth if pcre were already capable of doing everything rules is then there wouldn't have been a need for some of the changes!
mugwump er, kill $$, "BUS" 14:21
masak ingy: i've been thinking of writing modules. is there a Test::Base coming for perl6? :) 14:23
stevan: sounds like you know something i don't :) 14:24
ingy: btw, a thing i've been wanting to ask you for some time: if i want to convert kwid->html today, what is the best way? 14:25
Khisanth isn't there already a kwid converter? 14:26
stevan masak: I see nothing, I know nothing 14:28
masak :) 14:30
Khisanth: where? link?
Khisanth hmm thought I saw it in the tree before 14:31
QtPlatypus Is there any way to the :D in code? (As as far as I can tell the only way to do that is to pipe out to pugs and then parse the PIL output). 14:33
Khisanth "the :D"? 14:34
QtPlatypus In the RPEL if you type ":D foo;" it dumps PIL at you.
Actually it doesn't it dumps a parse tree. 14:35
Seems there is nothing to a pil dump from with pugs.
Khisanth one of the B modules perhaps? 14:36
QtPlatypus Perhaps. 14:38
Khisanth all the -B stuff seems to be built in though 14:39
QtPlatypus nods "Yes" 14:40
QtPlatypus finds Compile.hs, which is where the PIL is generated apperently. 14:42
autrijus greetings lambdacamels 16:07
Khisanth hello :)
autrijus :)
obra autrijus-san: well-rested? 16:10
autrijus obra: not quite, still recovering from TaPL :)
3 chapters left 16:11
obra oh wow :)
autrijus this reread is really much better than the last time
obra nod
autrijus I noted with mixed emotions that in many many places, the TaPL textbook elides some combination of features
saying it's not used in practice, or too complex to analyze, or intractable enough to not realizable
and yet p6 is doing all of them! 16:12
;)
PerlJam autrijus: so ... when will you start your TaPL rewrite? ;)
autrijus PerlJam: I think I'll start with simple papers that tackles the issues :) 16:14
broquaint TaPL?
Khisanth Types and ... something :) 16:15
see READTHEM
autrijus Programming Languages. 16:16
broquaint Types and Pugs Leetness.
Khisanth by Autrijus Tang? :)
broquaint Did you absorb TaPL directly into your brain, autrijus, Matrix-stylee?
autrijus broquaint: kind of. I'm also learning OCaml :) 16:17
PerlJam autrijus: maybe you could encourage Pierce to take a sabbatical from upenn and visit with you and others
broquaint Watch out for brain teh splode. 16:18
autrijus PerlJam: actually I'm planning to do some Erdősing this winter
the wandering part, not the numbering part :) 16:19
PerlJam autrijus: well then you can wander over to upenn :) 16:22
autrijus that's a possibility, but I'm trying to keep to .eu for now... we'll see :) 16:23
autrijus ponders staying at leo's and repeat the hackathon
PerlJam oh! do that if you can. That sounds so much better ;) 16:24
you're just rereading TaPL but not ATaPL? 16:25
er, ATTaPL 16:26
autrijus I'd do that if I can find my copy :) 16:27
I suspect it's buried deep somewhere
svnbot6 r5814, Aankhen++ | * HTTP::Request::CGI: added documentation. 16:43
masak autrijus: Erdősing sounds like a really good idea 17:17
i wish i had the chance to do something like that
autrijus thanks :) but that also means I need to spend more time on $job this and next month
lest my savings will run well into the negative range 17:18
but I'm quite excited at the prospect of finding erdősees during ICFP and Euroscon 17:19
oh wow. shapr++ 17:32
www.haskell.org/pipermail/glasgow-h...08781.html # Pugs's GADT-for-ordinary-datatype request made into a GHC feature
Aankhen`` Excellent! shapr++ 17:34
BTW, what's GADT? :-P
autrijus Aankhen``: see docs/notes/recursive_polymorphism_and_type_inference :) 17:38
Aankhen`` OK, thanks.
autrijus :)
svnbot6 r5815, autrijus++ | * Global destruction -- DESTROYALL() on all active objects -- 18:11
r5815, autrijus++ | is now guaranteed upon program exit.
geoffb WTH is 'Erdősing'? 18:16
svnbot6 r5816, fglock++ | * Recurrence.pm union/intersection check for closure identity; 18:17
r5816, fglock++ | improved docs.
autrijus geoffb: Paul Erdős is this crazy person who travelled from one mathematician's house to another 18:22
never staying for too long, and during the stay would work with the host on whatever problem the host is working on, and publish a paper together, then he moves on
geoffb Oh that is just cool as hell
(and welcome back, btw) 18:23
autrijus thanks :) it's nice to be alive
geoffb :-)
autrijus (and finally solved chromatic's one and only remaining T::Builder blocker)
geoffb And there was much rejoicing
autrijus :) 18:24
geoffb In your absence several of us having been boning up on haskell attempting to get to happy bug-fixing stage
autrijus nice.
geoffb . . . I, at least, am not yet there, but certainly getting closer
autrijus I'd be glad to walk you thru fixing your pet bug(s)
geoffb Once I finish harrorth, I'll rebuild pugs and let you know. :-) 18:25
s/and/, retest, and/
autrijus nice :) 18:26
geoffb ping nothingmuch 18:27
autrijus hm. Erdős often asks the current collaborator about whom he should visit next. 18:33
aka linked list traversal
across social networks
geoffb Good idea.
autrijus indeed
masak autrijus: I have two pet bugs right now 18:50
the first is a junction bug (t/junction/array_deref.t) which prevents me from tidying up examples/games/tic_tac_toe.p6
the second is a constructor initialized member shifting bug (t/pugsbugs/attribute_list.t) that puts wizard.p6 in its infinite loop
i get motivated by bugs in games 18:51
autrijus that's a wonderful motivation
aha. junctive dereferencing. 18:53
svnbot6 r5817, fglock++ | * Span.pm with coroutines (lazy iterator)
r5817, fglock++ | "say $a while $a = $span.lazy"
szabgab ?eval 1 / "0"
evalbot6 Inf
geoffb ?eval 0 / 0 18:54
evalbot6 Error: Illegal division by zero
geoffb That should be NaN, shouldn't it?
szabgab Is this Inf thing a bug ?, (only when "0" string
geoffb ?eval 1 / 0
evalbot6 Error: Illegal division by zero
autrijus I wonder whether it should raise exceptions
szabgab ?eval 1 / "00"
autrijus p5 certainly did.
evalbot6 Inf
geoffb ?eval 0 / "0"
evalbot6 NaN
geoffb Ah 18:55
My recall is that 1 / 0 in Perl 6 should be Inf, 0 / 0 NaN . . . so as long as the denominator is a string, pugs appears to get it right,
But if the denom is an int, as szabgab shows, bug
autrijus if so, just kill line 69 in Prim/Numeric.hs
kill the err case 18:56
szabgab so what is the correct behavior ? the exceptin or the Inf ?
geoffb Inf / NaN is correct, I believe 18:57
autrijus if so, fix the tests in t/operators/arith.t.
nothingmuch hola 18:58
autrijus: i have two toys to show off
one is haskell esque data constructors 18:59
autrijus good. do it quickly because I'm about to doze off
nothingmuch possibly made possible by a possible hack to enum
or a user defined enum which will work differently
autrijus ah. you extended enums into variant types.
szabgab hi nothingmuch, have not seen you in a while
nothingmuch not really
hola szabgab
what's cooking?
autrijus so what's another toy? 19:00
nothingmuch the other toy is a very cute definition of the flip flop operator in perl 6
well, really a flip flop generatorf
autrijus right, I read it in the backlog
nothingmuch as a module
didn't paste it though 19:01
autrijus cool!
nothingmuch pastebot thinks I'm a spammer
and we need 'my enum Classname'
do we have that?
geoffb nothingmuch, suggestions for harrorth: 1) for each chapter, include repository rev that matches text -- old chapters don't (of course) match head source code, and the datestamps on the kwid files are mostly bogus (identical); 2) have a kwid that just includes collected links to tutorials, other forth interpeters, and so on; 3) link an x86 asm tutorial (I happened to already know x86 asm, but many readers won't)
autrijus we have my class, so I don't see why not my enum
nothingmuch geoffb: regarding revs - I will get to it at the end
but good point 19:02
you mean other tutorials? they are mostly jotted in the journal
but i'll make an xref
geoffb yeah, just thought it would be helpful, not necessary or anything
nothingmuch good points, i'll try to implement them
but not enough time right now for much of that
geoffb nodnod
nothingmuch wnothingmuch.woobling.org/enum_data_types.txt 19:03
nothingmuch.woobling.org/flipflop.txt
nothingmuch will alias 'perl' to 'perl -MFlipFlop' when perl 6 comes out 19:04
and. inclue 'Main::&infix:<..> = FlipFlop::make_me_a_flipflop'
autrijus but that will share a $state for all the '..' 19:06
in the same importer's scope
which is wrong
nothingmuch it's not compatible
but that's the best I could come up with
autrijus okay... I think I can't finish reading "Local type inference" and "Colored local type inference" today. pity, because I really need to read them to come up with coherent PIL typechecking :) 19:07
nothingmuch: you can key states over $?CALLER::POSITION.
nothingmuch linux confs eep!
autrijus or even $?CALLER::RETURN_CONTINUATION
nothingmuch hmm
autrijus but I need to sleep :)
nothingmuch i think that's less reusable
autrijus I very much agree.
autrijus waves... see you tomorrow &
nothingmuch you can wrap that over the current impl
but not the opposite
ciao 19:08
gaal: ping 19:16
Steve_p Shoot! I missed autrijus :-/ 19:23
nothingmuch Steve_p: maybe someone else can help?
Steve_p No, Alias mentioned that autrijus had some of the biggest "edge case" modules for testing PPI. 19:24
I'm testing some modules on ponie, and was just checking to see if he had any thoughts which might be the most mind-bending 19:25
nothingmuch hmm 19:29
nothingmuch must say that most of autrijus's code is pretty readable =) 19:30
svnbot6 r5818, chromatic++ | Fixed destruction tests now that global destruction works. 19:34
r5818, chromatic++ | Bumped up version to 0.2.0 -- ready to use as a backend for other test modules.
geoffb Steve_p, PAR perhaps? 19:45
Steve_p I was thinking that PAR might be the one... 19:46
geoffb (Haven't looked at the PAR source myself, but it's doing some crazy edge-casey stuff)
PPI is allergic to source filters, right? 19:47
Steve_p I think its gotten past the source filter problems, but I'm not sure. I'll get in touch with Alias to see exactly what modules gave PPI the most fits. 19:48
geoffb Anything by ingy and much of Damian's stuff, I suspect
Steve_p Yes, Kwiki and Smart::Comments are next on the list 19:51
nothingmuch Smart::Comments--, Devel::FIXME++
</shameless_plug_and_blasphemy> 19:52
geoffb wheee, more things interesting enough to look at and prevent productivity.
nothingmuch goes to the shower, and then will read about arrows 19:55
ingy :p 19:57
nothingmuch ingy-san 19:58
whither Cryptiki?
ingy sighs
Steve_p watches IO::All explode on ponie :-/ 19:59
I'll have to check to see if it works on bleadperl 20:00
Steve_p wonders how nothingmuch IRC's in the shower 20:01
nothingmuch Steve_p: I lie
Steve_p heh
nothingmuch i do it all the time too
i doubt anyone believes me when I say I leave 20:02
when I start closing windows I usually waste another hour doing garbage collection
geoffb OK, nothingmuch, I'll give you Devel::FIXME++, but Smart::Comments is (as usual) pretty cool 20:05
geoffb has written any number of progress/status modules, but as usual not as visually declarative. 20:06
nothingmuch yeah, i was not really serious.
i had this dream
geoffb I knew that :-)
nothingmuch that I would one day write a proper config file for it
that my fixme filter would be integrated with my VCS for the file in question 20:07
it would look at time stamps, and write permissions
the path of the file
and thus decide whether the fixme is important or not
i still have to get around to it
geoffb round tuits: the world's scarcest resource 20:08
nothingmuch yes, they are
i have one
i'm saving it for it's sentimental value though 20:09
geoffb heh
nothingmuch it's a @Larry joke
they have these round little discs
which have "TUIT" on one side
and "Programming Republic of Perl" with the onion logo on the other
geoffb very cool.
nothingmuch i'm not sure if you get one when you actually got around to something
or when you say you will
geoffb Oh, re: harrorth -- are the basic forth bootstrap words defined by the ANS spec, or otherwise so uniquely defined that they are uncopyrightable? 20:11
nothingmuch no, i'm learning and inventing as I go along
i found the spec very unreadable
so I didn't read it
whenever my forth guru mentions something cool 20:12
like mutual recursion
or does>
i make a mental note to learn how it's used
and then I make a guess at how it's done
i'm usually right, but not because I rock
it's just that forth is so simple there is usually just one logical way
geoffb nodnod 20:13
nothingmuch eep, cat throwing up 20:14
geoffb How *do* you define two words so that they can mutually recurse (instead of the second definition dying from unrec. word?)
bleah
er, first definition dying, sigh
nothingmuch variable some_word 20:15
: other word some_word goto ; ( or somesuch)
basically, apply the BSR opcode to TOS
then define an anonymous word
using :noname 20:16
when you are done compiling you have an address on the stack
(this word may use the word 'other', ofcourse)
some_word !
there are also some more clever ways
geoffb nice . . . .
nothingmuch and, ofcourse, you could preallocate some area
and then copy the def of a word from one place in the heap to another 20:17
or be very very wicked and use low level dictionary editing words
if there are any in your forth
so that you basically create your own ':'
geoffb is considering for the first time in ages picking up a CS book for a language other than Perl, C, or x86 asm
nothingmuch e.g. 'new_dict_entry foo 100 allot' 20:18
geoffb nodnod
nothingmuch : other ... foo ... ;
variable here_backup
here here_backup !
here_variable (presumably the pointer to the next free entry in the heap)
err, i mean
address_of_body_of_word foo here_variable ! 20:19
state on
... compile as you would after ':'
and then after ';' do 'here_backup @ here_variable !'
read p5orth source code
geoffb nodnod
nothingmuch it's a bit yucky
geoffb link? 20:20
nothingmuch because i usually wrote it while sleeping
harrorth repo under misc
gaal nothingmuch: phantom pong
geoffb k
nothingmuch gaal: szabgab wants you at August Penguin
or rather, both of us
pretend I was spoofing his mac address when I pinged you
geoffb: therein lie: a forth prelude
including the words ':' and ';', and the words to support these 20:21
some primitives written in perl 5
some words that are primitives but shouldn't be, written in perl 5, that I want to port to forth
gaal don't think i can make it. going on vacation soon and am very much tied up at $work till then
nothingmuch gaal: it's a thursday evening
svnbot6 r5819, szabgab++ | r4302@gabor: gabor | 2005-07-26 23:15:23 +0300
r5819, szabgab++ | * examples/cookbook/01strings/01-00introduction.expected
r5819, szabgab++ | * examples/cookbook/test.pl
r5819, szabgab++ | Add set of expected results to the first subchapter of the cookbook
r5819, szabgab++ | and the script that will compare the original results with the current once
nothingmuch e.g., ~ 17:00, at the bofs
szabgab nm: actually it is all they long 20:22
nothingmuch szabgab: svk push --verbatim
szabgab not just evening
nothingmuch szabgab, gaal: at 17:30 the bofs are supposed to start
that's what I meant
szabgab ok, next time...
no, that time is incorrect 20:23
the whole thing will end by 17:30
nothingmuch oh, "in parallel"
so this is instead of the trivia stuff?
szabgab yes, I asked for two slots and waiting for the final approval and that it will appear on the site before I can announce 20:24
nothingmuch ah
szabgab yeah that is one of the slots I asked and the rsync is the other slot
nothingmuch talk slots for BOFs?
eep
szabgab parallel ;-(
nothingmuch yeah, that's what I meant 20:25
it's still aweful
szabgab that's how they are doing it. I don't get it but that's their "conference'
gaal nm: how well do mac apps do ms word docs with hebrew? for a non-technical user?
nothingmuch gaal: NeoOfficeJ is a native compilation of OpenOffice.org for OSX
it does very well
my time sheets are filled in excel worksheets 20:26
all our design docs are MS word
gaal is it less slow than oo on windows?
nothingmuch the order form I use to get my daily fix of veggies is msword too
gaal because that's slow on fast machines :(
nothingmuch it's pretty sulggy
to load
but using it wsas OK
i don't edit anything big though
i just open and scroll
.me 20:27
geoffb: i learned a bit about the IA64 platform today
very pretty
if you share my mindset, which I think you do, you should appreciate it
gaal sleeps & 20:28
geoffb Intel's VLIW beastie?
nothingmuch geoffb: yep
geoffb Yeah, some cool stuff there.
nothingmuch well, i really meant that VLIW is cool
i just couldn't remember the correct acronym on the fly
geoffb :-)
nothingmuch it should be very very very fun to compile forth to VLIW platforms
also, do you know of my evil plans for optimizing forth? 20:29
geoffb
.oO( Hmmm, predicated IF ELSE THEN . . . )
No, do tell
Aankhen`` G'night. 20:33
svnbot6 r5820, szabgab++ | * examples/cookbook/01strings/ 20:48
r5820, szabgab++ | More expected versions of the cookbook files
r5821, fglock++ | * added "lazy()" iterator to Set::Infinite
20:49 justatheory is now known as asshole, asshole is now known as justatheory
nothingmuch szabgab++ # test for cookbook is a very good idea 21:07
svnbot6 r5822, fglock++ | * Set::Infinite - added mutators, and a bugfix 21:36
22:25 sili is now known as php-sucks
geoffb Yayyyy . . . finally caught up with harrorth. 22:28
nothingmuch++ # Much fun, harrorth is. Enjoy it, I do.
22:29 php-sucks is now known as sili
geoffb : pimp_harrorth you harrorth love if nothingmuch dup @ 1+ ! then ; 22:30
wolverian I should learn lojban. 22:32
geoffb ditto. I've even got an open tab for it in FF, but I also have several dozen other open tabs. Sigh. 22:33
& # mmmm, life . . . . 22:34
22:39 sili is now known as aeos-tches-cathl, aeos-tches-cathl is now known as cathlikboys