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. |
|||
ImustDIE | has anyone had any luck getting perl 5 modules to work in pugs on windows? | 01:45 | |
stevan | hmmm, svn.openfoundry.org is still down? | 04:28 | |
stevan really needs to install svk | |||
nothingmuch | morning | 06:37 | |
chromatic: since you're always reading logs... ping ;-) | 06:38 | ||
our supermarket shipment has arrived | 09:35 | ||
we got this wonderful kind of chocolate | |||
"aerial" instead of "airy" | |||
=P | |||
10:05
Maddingue__ is now known as Maddingue
|
|||
clkao | is openfoundry fucked again? | 10:47 | |
forunately most of you have svk now... | |||
nothingmuch | =D | 10:50 | |
clkao++ | |||
masak | clkao: i don't grok svk yet | 11:13 | |
i like it, but it's difficult | |||
my current project is to set up a local svk depot for personal use | 11:14 | ||
clkao | see if svk.elixus.org/?VisualBook helps :) it's hot | ||
masak | thx | ||
clkao++ # visual book looks very promising | 11:15 | ||
just what i needed | |||
lunch & | |||
Aankhen`` | SVN is down? | 11:49 | |
That's it. | 11:50 | ||
SVK, here I come. | |||
Of course, I am completely ignorant of how that makes a difference, but it's as good an excuse as any. ;-) | |||
nothingmuch | Aankhen``: svk.elixus.org/?VisualBook | 12:06 | |
clkao just mentioned it an hour or so ago | |||
nothingmuch makes moos sounds | 14:02 | ||
by moos i mean moose, ofcourse | |||
QtPlatypus | Moos would be cow sounds. | 14:03 | |
masak makes mousse sounds | 14:30 | ||
i guess that means i'm silent | 14:31 | ||
nothingmuch | www.squeak.org/ | 14:33 | |
QtPlatypus amkes platypus sounds. | 14:35 | ||
nothingmuch | is that the macos chime? | ||
autrijus | (tropical cyclone)-- # likely to delay svn.openfoundry.org's revival | 14:36 | |
(and also makes life less fun -- can't go outside for the next 48+ hours) | |||
QtPlatypus | (This reminds me of the clasic OO example) | 14:37 | |
nothingmuch | autrijus: as if you would go outside on a nice day | ||
autrijus stares at random nonhealty fridge food | |||
nothingmuch: oh, I would usually go outside for food. | |||
nothingmuch | or diet coke =) | ||
autrijus | that too. | ||
nothingmuch | is it really bad? or just bad enough that you can't carry your laptop with you? ;-) | ||
autrijus | but this one is the strongest in at least 5 years | ||
and taipei will be among the primary affected areas... it's landing in 2 hours iirc | 14:38 | ||
already the wind makes it very hard to walk on the street. | |||
nothingmuch | so you've got 2 hours to stock up on food =) | ||
autrijus | yeah, just did | ||
nothingmuch | you are confusing | ||
autrijus | hm? | 14:39 | |
nothingmuch | i thought you just said you are not going out | ||
but then you said you just did | |||
autrijus | I thought _you_ are confusing -- I mean the confusing ranting on MMD in the typeclasses thread with dubious relevancy | ||
nothingmuch | so i got confused | ||
it's very relevant | 14:40 | ||
autrijus | I just returned to my place; I can't go out in the next 48 hours. | ||
nothingmuch | well, that means you're bound to be more productive | ||
no time wasted walking where there is no place to sit and type | |||
=D | |||
autrijus | oh and why would camels deny their lambda nature? that's even more confusing of you | ||
nothingmuch | lambda camels in denial deny parts of perl 6, not their lambdaness | 14:41 | |
autrijus | that is a curious use of the word 'denial' | ||
but ok, that's less confusing :) | |||
nothingmuch | nevermind, it was just a silly joke =) | ||
oh my, darcs uses preprocessor macros | 14:42 | ||
what the hell for? | |||
autrijus | the line between silly jokes and serious realities in p6l is so blurred it's a fog | ||
mm, platform or ghc-version #ifdef maybe? | |||
nothingmuch | why would someone need preprocessor macros for a functional language for anything except optional features? | ||
Subject: [darcs-devel] darcs patch: Rename bound variable in fromJust macro. | 14:43 | ||
that doesn't sound like it | |||
autrijus | aw. well, I guess TH is not popular enough yet | ||
nothingmuch | #define fromJust (\m -> case m of {Nothing -> bug ("fromJust error at "++__FILE__++":"++show (__LINE__ : .... | ||
that doesn't look like it | |||
autrijus | aha. | ||
nothingmuch | and the commit message says: Could we please use Lisp macros instead? | ||
autrijus | it's for adding positions of errors | ||
nothingmuch | (presumably TH is good enough to fill this, right?) | ||
autrijus | yes, as is the mundane "assert" feature of GHC. | 14:44 | |
but maybe the contributor knows neither of this... maybe | |||
nothingmuch | submit a patch and make darcs a little less hairy? | ||
Julisz is big on Haskell mojo, so unlikely | |||
autrijus | well, then maybe it is considered cleaner | ||
(which in a way it is) | |||
nothingmuch | i dunno | ||
autrijus | I don't quite care. :) | 14:45 | |
nothingmuch | regardless, darcs has been getting a surge of patches lately, and git progress is nice... it's making me happy =) | ||
autrijus | cool =) | ||
nothingmuch | ".... but anyone who ever had a heart..." | 14:52 | |
nothingmuch pathologically avoids link errors on linux (which work on aix, and I haven't even tested on other platforms)) | |||
putter | 53m/s, yipes! www.cwb.gov.tw/V4e/typhoon/news/typhoon-news.htm | 14:53 | |
(it's so nice to see weather info in m/s... happy sigh) | |||
nothingmuch | our forcast where I live is: hot and dry | 14:54 | |
a little hotter, just as dryu | |||
less hot, dry | |||
slight humidity (hot) | |||
then we get hamsin, which is wonderful weather | |||
sometimes sunlight becomes yellow, because of all the sand | |||
like, a real sick mustard type yellow | 14:55 | ||
then after that it's hot and dry | |||
then we get 2 months of winter | |||
autrijus | 53m/s is nothing... it's expected to raise a lot more tomorrow | 14:56 | |
putter | (effect of typhoon at 10 Mm distance... bubkis;) | ||
nothingmuch | 53m/s is nothing, I can take it | ||
=P | |||
how do the sky scrapers stay upright? | 14:57 | ||
autrijus | by some engineering feat | ||
bubkis? | |||
the first google hit says "Bubkis --> can be used to explain Anything! It is a noun *and* an adjective! How exciting!" | |||
putter | satphoto www.pagasa.dost.gov.ph/wb/tcupdate.shtml | ||
autrijus | ooh nice. | 14:58 | |
nothingmuch | what a pretty page | ||
putter | bubkis n. (Yiddish) Zero, nothing (s.a. nada). via American-Australian Slang Dictionary via OneLook. | ||
nothingmuch | the bubkis one, that is | ||
QtPlatypus | nothingmuch: They put moddel skyscrapers in wind tunnels. Blow typhoon streanth winds at them. The models that don't get blown away get built. | ||
nothingmuch | QtPlatypus: right, but even with good design it seems difficult | 14:59 | |
putter | "The models which do get blown away get broken, so they have to build new models." | ||
autrijus | lol | ||
QtPlatypus nods "I worked with an aritecture department. There was alot of maths involved" | 15:00 | ||
autrijus | "Why do we speak in 'quotes'?" | ||
nothingmuch | "... you know, i've seen every movie you've been in ..." | ||
autrijus | "I get it! It's a form of 'masquerade' where we pretend to speak with the voice of someone else!" | 15:01 | |
putter | I intended "this a as a way of saying something with an alternate inflection"... | ||
yes | |||
:) | |||
autrijus | ":-)" | 15:02 | |
putter | lol | ||
nothingmuch | "i'm lou reed" | ||
putter | pity you can just go up 10km. cyclones are soooo flat. ;/ | 15:05 | |
s/can/cant/ | |||
nothingmuch changes to the grateful dead | 15:08 | ||
putter | ok, putter's objective for the day (unless someone has something better): extract pattern strings from Rules (Internals::foo: Rule->patternstring (easy?), Internals::bar: 'name'->Rule (less so)), then | 15:10 | |
Perl6::Grammar::Patterns: new(rxstring) -> hash of needed pattern strings | 15:11 | ||
as a prelude to a slow native rx engine. So everytime people encounter a PGE coredump, they dont give up and go away. | 15:12 | ||
That's the thought, anyway. | 15:13 | ||
autrijus | native as in p6 native? | ||
putter | yes | ||
autrijus | using pcre to parse rules? | ||
putter | try/die backtrack so nicely :) | ||
autrijus | nodnod | 15:14 | |
putter | re pcre... yes, I can do one of those (I actually have most of it already written...:) several times:(... and it's fast... but you get burned the minute you want left recursion (which the p6 version can handle, slowly, with a maxdepth), and you sometimes even get burned with right recursion (dunno why). so... | 15:16 | |
Thought it would be nice to have a version that is "fully correct, and no excuses". | 15:17 | ||
autrijus | I think using pcre to do PGE style parsing is a very worthy goal. | ||
I mean, to do parsing of Perl 6 Rules, not with Perl 6 Rules . | 15:18 | ||
nothingmuch | wow, automator is actually useful... www.macosxhints.com/article.php?sto...9123343874 | 15:19 | |
putter | k. first step is getting pattern strings back out of rules. (well, not really a prerequisite, but esthetically it makes more of a difference (vis "rulex "name" "pattern"") than I expected. Grounding in a way. | ||
stevan | morning guys | 15:20 | |
autrijus | you mean out of VRule structures? | ||
hey stevan-san | |||
stevan | autrijus: I assume no release today :) | ||
autrijus: many thanks for the papers links :) | |||
putter | automater is... hypercard? | ||
autrijus | stevan: no prob... I got quite a few more | ||
QtPlatypus liked hypercard. | |||
stevan | autrijus: I have 2 more to add to it on Method Resolution order | ||
autrijus | stevan: *nod*... not with the svn down with typhoon | ||
I guess we need to suffer another 48 hours of withdrawal | 15:21 | ||
stevan really really needs to install svk | |||
autrijus | do it now! :) | ||
putter | autrijus: yes. though when I looked at it v.briefly a while back, getting from rule name to Rule was harder. can just parse a "<" sigil :) (??) | ||
stevan | autrijus: I got breadth first traversal working in the metamodel | ||
autrijus | putter: huh? it's just a normal lookup | ||
putter | s/was/seemed/ s/can/cant/ sigh | ||
stevan | and I am going to try and implement the C3 MRO stuff today (if I have time) | ||
autrijus | evalVar "<rulename" | ||
putter | oooo. putter goes to hack... | 15:22 | |
hi stevan | |||
stevan | hey putter | ||
autrijus | it's currently all in the '<*' global namespace | ||
"<*foo" etc | |||
the < is sigil and * twigil | 15:23 | ||
see Prim.Match | |||
nothingmuch | < as a twigil is so weird | ||
autrijus | < is a sigil not a twigil | ||
putter: once you read a (VRule rule) out, "rxRule rule" gets you the string back | 15:24 | ||
it's all in Pugs.Prim.Match.doMatch | |||
putter | thanks! | ||
autrijus | however, the hackathon has the < sigil removed | ||
it should be | |||
&rule:<foo> | |||
now | |||
putter | rule: | ||
autrijus | right | ||
but didn't get a round tuit. | 15:25 | ||
nothingmuch | mmmmmm.... this is good music | ||
putter | k. | 15:26 | |
autrijus | stevan: ooh (re: bfs traversal) | 15:28 | |
stevan_ | autrijus: you gave me your round tuit | ||
then I gave it to nothingmuch | 15:29 | ||
autrijus | oh! | ||
stevan_ | so it is his fault :) | ||
nothingmuch | i've gotten to many things, don't be an arse | ||
stevan_ | autrijus: I have not figured out the real value of BFS though | ||
it's neat, but thats about all | |||
autrijus | nod | 15:30 | |
stevan_ | it is very counterintuitive as a dispatch order | ||
the C3 stuff is cool though, it makes MI make sense :) | |||
Python 2.3 new style classes use it too | |||
autrijus | MI? multiple inheritance? | ||
stevan_ | yes | ||
autrijus | ah. *nod* | ||
I think I really should grok Scala | 15:31 | ||
stevan_ | I was actually reading about Scala the other day too | ||
autrijus | it seemed to have thunk of lots of issues p6l only touched briefly | ||
stevan_ | it looks nice | ||
yes, traits being one of them | |||
autrijus | it also has sane generics | ||
and it has case classes! | 15:32 | ||
aka tagged unions | |||
stevan_ | case classes? | ||
ah | |||
ok | |||
autrijus | which is my #1 pet feature missing in p65 :) | ||
s/5// | |||
well, p5 too | |||
stevan_ | :D | ||
autrijus | scala.epfl.ch/intro/caseclasses.html | ||
stevan_ | wow, that is kind of werid | 15:35 | |
I like the decomposition though | |||
that is very nice | |||
reminds me of erlang's pattern matching | |||
how it can reach into the list and match | 15:36 | ||
but this reaches into the classes itself | |||
(assuming I am groking it correctly) | |||
autrijus | yes. | ||
Scala seems to have a very rigorous syntax influenced primarily by ML and Java | 15:38 | ||
which is extremely different from perl 6's syntax | |||
stevan_ | yes, it does kinda of look like that | ||
autrijus | but it's closest to p6 in terms of semantic model, as far as I've seen | 15:39 | |
stevan_ | hmmm, Views are intersting too | ||
they almost look like anon classes with generics | |||
autrijus | but the key with views is they are retroactive abstraction | 15:40 | |
you can impose a view on random 3rd party code without their cooperation | |||
stevan_ | yes, first class adaptors is maybe a better term? | ||
autrijus | right. | ||
which P6's Roles sort of should do | 15:41 | ||
but that part is again underspecced | |||
stevan_ | yes, but not as easy as this does | ||
autrijus | nodnod. | ||
stevan_ | actually with the '$.foo handle ...' delegation and Roles it might not be too hard | ||
oh wait, I take that back | 15:42 | ||
putter | (aside: btw, re MMD, goo uses mmd exclusively, and had (was going to have?) something which nicely boiled down the dispatch tables to something tiny.) | ||
hmmm, scala.epfl.ch/intro/views.html | |||
stevan_ | putter: the problem with creating dispatch tables is that it almost requires a closed class | 15:43 | |
otherwise you have a lot of code to detect subtle changes and destroy caches | |||
putter | or fast recalculation (goo) | ||
autrijus | and it has junctive types :) scala.epfl.ch/intro/compoundtypes.html | ||
putter | but yess, you still have the detection issue | ||
stevan_ | putter with fast dispatch, you never need to recalc or detect | 15:44 | |
I think that will work best with Perl 6 | |||
it spreads out the problem | |||
autrijus is playing the Scala mp3... | 15:45 | ||
putter | hmm, so in p6, can one have lexically scoped views of the object graph? { let Str is RubyStr; ... } | ||
stevan_ | mp3? | ||
autrijus | it reminds me of the Slylandro music in Star Control 2 | ||
" Music | |||
Our P+R department has recommended we popularize our language with a charts-compatible techno-dance-trance song. This has resulted in production of "Scala - genau!", which you can find here: " | |||
lamp.epfl.ch/~buraq/trax/scala_genau.mp3 | 15:46 | ||
(in the "Community" page) | |||
stevan_ | thats just odd | ||
however, now Perl 6 needs a theme song | |||
autrijus | larry gave one | 15:47 | |
stevan_ | ?? | ||
putter | oh, boo, hiss. views just create a distinct proxy object. | ||
stevan_ | putter: yes, they are just sugar | 15:48 | |
but sweet sugar | |||
autrijus | but it's kind of an antitheme | ||
putter wants to tweak the _dispatch_, so o.foo;#->bar {use Hee; o.foo; #->hee} | 15:49 | ||
autrijus | he used it in his 2003 state of onion as a anti-table-of-content | ||
o/~ We the unwilling, / led by the unknowing, / are doing the impossible / for the ungrateful. / We have done so much for so long with so little / We are now qualified to do anything with nothing o/~ | |||
putter | :) | ||
stevan_ | :D | ||
now all we need is a nice techno dance beat | 15:50 | ||
and we can sample larry's voice saying that | |||
autrijus | right | ||
stevan_ | nothingmuch can lay down the bass track, and luqui can do the piano | 15:51 | |
putter | there is an app... read the following, upload the mpg, get your own festival voice. | ||
stevan_ | nice | ||
putter | (festival is open source voice synthesis system) | ||
nothingmuch | stevan_: not now I can't | ||
my left arm is beat up | 15:52 | ||
stevan_ | ah yes, I forgot | ||
ok time for me to do things in the "real world" | 15:53 | ||
putter | Is there a name for wanting to lexically mutate what the object graph appears to be? | ||
stevan_ | autrijus: good luck with the typhoon | ||
putter: insanity :P | |||
nothingmuch | putter: see s06 about WANT | ||
putter | ;) | ||
stevan_ | adios all & | ||
putter | bye stevan_ ;-) | ||
nothingmuch | ciao stevan_ | ||
autrijus | stevan_: ciao | ||
and I'll survive this :) | 15:54 | ||
LCamel++ # driving to svn.openfoundry.org to fix the machine | 15:56 | ||
LCamel++ # hopefully he'll get back before wind gets impossible | 15:57 | ||
putter | Object graph "views" look like the could be a very nice feature. "proxies without a second object". Nicely weaken the coupling between a classes's semantics and syntactics (eg, method names). Makes lots of things (versioning, alternate api's, DSL's without underlying object api's leaking in, etc) much easier. | ||
Ah well. Perhaps just macro infix:<.>... | 15:58 | ||
yipes. that's dedication. | |||
autrijus | or madness. but yeah. | 15:59 | |
LCamel: do take care of yourself... if it gets difficult don't push it | |||
putter | Hey, every language needs myths... "The lone lambda camel, driving through... | 16:00 | |
autrijus | ooh, never thought of LCamel's nickname that way | ||
putter | Seconded: it's just a vcs. It could all burn and we'd cope. Injuries are real. | ||
The alaska iditerod(sp?) has a nice expression: "It's just a dog race." In a dangerous environment, you have to keep your eye on what really matters (people, injury, death), and what really doesn't (everything else). It's just really easy to confuse the former with the latter if its been a while since youve seen one of the latter. | 16:03 | ||
autrijus | one of the former, you mean. | 16:04 | |
putter | oops. yeah. | 16:05 | |
nothingmuch: re want, that's not quite it. that requires participation of the object. the core idea is the object doesn't have to anticipate use. client code can say {use DylanishHashes; ...} and suddenly all hash lookups, to whatever object, have a slightly different semantics (which I dont remember). | 16:07 | ||
nothingmuch | huh? | ||
putter | Exactly the same nitch as proxy objects, but without their cripling attribute of introducing a second object. | 16:08 | |
nothingmuch | webkit.opendarwin.org/ <-- yummy! | ||
putter | You want to be able to pass around the single object, and simply have it look different when you want it to. | ||
clear, or no? | 16:09 | ||
nothingmuch | are you sure you are passing the right continuation | ||
putter | who, me? | 16:10 | |
autrijus | 23:54 < nothingmuch> putter: see s06 about WANT | ||
I think putter was invoking this CC | |||
putter | re svk.elixus.org, <title> could use update (eg, "svk homepage") random thought. | 16:11 | |
yes | |||
autrijus | clkao: change config.yaml for the kwiki page to say SVK not Kwiki maybe? | 16:12 | |
putter | want is something an object calls to inquire about its environment, and invoke some behavior it knows about. | ||
I want something lexically scoped which rewrites $obj.foo() calls, depending on $foo type. | 16:13 | ||
_runtime_ $foo type. | 16:14 | ||
Ie, I want to tweak object dispatch. | |||
Proxies get used for several things. Sometimes, having a proxy object which is distinct from the proxied object is fine. Eg, when using a proxy to access a remote resource. The proxied object isnt something you are going to be dealing with directly. But if the proxied object is in the same space as the proxy, they things get unfortunate. | 16:16 | ||
You create the proxy, and call something which really wanted a diffent proxy on the original, and it both calls something which wants the original, and something which wants a third flavor proxy on a forth flavor proxy of the original. Just isnt going to happen. | 16:17 | ||
nothingmuch | sorry, there is pizza | 16:18 | |
you have been preempted | |||
putter | ;) priorities. | ||
For the backlogging... you want a "proxy" appearance without sacrificing object identity. | 16:19 | ||
autrijus | you want =:= for things that looks different but is actually the same? | ||
putter | yes. | ||
autrijus | a novel concept indeed | 16:20 | |
so you want objects act as polymorphic functions | |||
putter | you can do it with foo($o) calls. just not (without simply a macro infix:<.>) for $o.foo() calls. | ||
autrijus | that is what I mean. | ||
yes. | |||
I find this a curious concept. what is a use case? | 16:21 | ||
putter | hmm... I think so. teasing apart objects as identity and as storage from objects as dispatch participant. | ||
use cases... | |||
autrijus | actually p5's OO model already has them teased apart; identity is of a reference address, storage can be managed in various ways (even Lexical::Attributes), and dispatching is handled strictly at runtime via function calls in the blessed package | 16:24 | |
putter | you're creating a DSL. with multimentods, operators, etc, you have a lot of control over the language. but each "external" objects you use wades in like a bull in a china shop with it's own arbitrary sublanguage (its methods/api). Which is unlikely to fit, is likely to change (grow) to be an even poorer fit. | ||
autrijus | but what's wrong with normal facade objects? | 16:25 | |
oh, I see, you want real one-to-one correspondence that fools even =:= testing. but why's that useful? | 16:26 | ||
(one to one as in "external" object vs "internalized" proxy) | |||
putter | if "everything is a dsl", then everything is constantly stripping and rebuilding facades. | ||
autrijus | if all the informatino is static then we can compile them away like newtypes | 16:27 | |
but yeah, in runtime there's going to be a performance hit. | |||
putter | and everyone pays... simple sub calls f, gets back object, wants to know if its "different", has to strip/cannonicalize it to check. rather than f simply tweaking how dispatch occurs in its scope. | 16:28 | |
autrijus | (I'm still thinking that this belongs to "hard things should be hard" category) | 16:30 | |
(not in the sense of hard to write in, but in the sense of performance hit is acceptable) | |||
but maybe I've been brainwashed by the Class::* modules, which all makes everybody pay | 16:31 | ||
putter | ah, but dealing with it addresses other issues. like versioning. I can have a single object, which appears to obey completely incompatible apiv1, apiv2.3, apivxx... | 16:32 | |
user just says, {use FooApi3.2; ...} and all Foo's look right... and can be exchanged with other code written with different Foo api's in mind. | 16:33 | ||
autrijus | so by "single object" you mean "single class" | 16:34 | |
if so, adhoc views also deals with this, except via creation of dynamic proxy objects | |||
and with adhoc views we can even apply this in an object-by-object basis | 16:35 | ||
putter | no no, my $foo = gimme_a_foo(); $foo.mumble("has Foo-7.12 semantics."); {use FooApi3.2; $foo.mumble("you better have 3.2 semantics!!");} | 16:36 | |
autrijus | and that is... lexical? | 16:37 | |
putter | yes! | ||
:) | |||
autrijus | {use FooApi3.2; bar($foo)} | ||
bar gets a 7.12 object? | |||
this feels very fishy :) | 16:38 | ||
putter | ah, that's the core point. bar gets $foo. $foo has some default appearance, but appearance isnt something that gets passed around. | ||
autrijus | right | ||
I grok your point | |||
putter | as it is with proxy objects | ||
autrijus | well no, you can pass the proxy objects around | ||
and it will stick to the proxied interface | 16:39 | ||
putter | yeah, but then either you play magical stripping games, or you get hairy "I gave my object to foo, and got it back, but it was wrapped with ten proxy objects !&! a third of them undoing the effects of another third !?!" | 16:40 | |
autrijus | (nod, but we know that the magical stripping games can be sugared) | 16:41 | |
but I think I know what you mean now. hrm | |||
putter | another use case... CPAN... | ||
autrijus | the "objects" here are like functions with implicit parameters | 16:42 | |
that controls its dispatching, and where you can lexically modify them away | |||
it is really very far from the p5 model :) | |||
putter | in cpan, you so often are faced with "well, I'm glad they wrote it, but gaahhhhh, some people just should be allowed to write apis". or ... | ||
s/should/shouldn't/ | 16:43 | ||
autrijus | nod, see capitalization.pm | ||
putter | nifty :) | 16:44 | |
autrijus | LCamel++ # it's baaack! | 16:45 | |
putter | with p6, doing {use F3; mumble($foo,"you get sematics 3!")} is a no-brainer. and perhaps with macro infix:<.> it will be too. but I think this will be an important pattern, so I mention it occasionally... | 16:46 | |
# yay! | |||
so many languages with similar semantics regrettably fork of syntactics. so many objects with ... | 16:48 | ||
autrijus | it still bugs me to have modules that take effect lexically to begin with uppercase, but that's just me :) | ||
putter | bleep. s/fork of/fork on/ | ||
autrijus | but with p6 the line is very blurry | 16:49 | |
because symbol imports are lexical by default | |||
but classes are global | |||
putter | err, you mean use Foo; vs use foo;? | ||
autrijus | right | ||
putter | ah. one sideeffect of using rather too many languages is I've completely burned out any default expectation of what variable capitalization-pattern means. | 16:50 | |
"dammit, that's a perfectly straightforward C function so why isn't that pattern binding the X var? ohhhhhh. oops" | 16:53 | ||
(true story. it was late.) | |||
svnbot6 | r5641, Aankhen++ | HTTP::Cookies: | ||
r5641, Aankhen++ | * implemented &add_cookie_header (almost completely :-). | |||
r5641, Aankhen++ | * added commented out LWP::Debug stuff. | |||
r5641, Aankhen++ | * fixed signature for &:normalize_path. | |||
autrijus notes correlations between putter working late and fascinating stories | 16:55 | ||
putter | lol | ||
autrijus | Aankhen``: nice! | 16:56 | |
jhorwitz is rebuilding pugs for the first time in a month | 16:58 | ||
Aankhen`` | Thanks. :-) | 16:59 | |
autrijus | jhorwitz: hey there. sorry I never started with EaEP API | ||
Aankhen`` | What is the P6 equivalent of `while (...) { ... } continue { ... }`? Same syntax? | ||
jhorwitz | autrijus: n.p. neither of us had the time. :) | ||
autrijus | Aankhen``: There is no longer a "continue" block. Instead, use a "NEXT" block | 17:00 | |
within the loop. See below. | |||
(S04, unimplemented) | |||
Aankhen`` | Ah, thanks. | ||
S'okay, most of libwww-perl doesn't work yet. :-) | |||
autrijus | we'll get there :) | ||
Aankhen`` | I know, that's why I'm working on porting it. | ||
There's a lot of modules in it, so I am not worried about stuff not working yet. First I need to get everything ported in whole. | 17:01 | ||
autrijus nods | 17:02 | ||
Aankhen`` | BDB is better than FSFS for Subversion repositories... riight? | ||
autrijus | in the similar sense that FAT is better than NTFS for file storage... | 17:03 | |
Aankhen`` | FAT is better? o_O | ||
autrijus | no. neither is BDB :) | ||
Aankhen`` | Ah. | ||
Maybe I mixed them up. | |||
Weird | 17:04 | ||
C:\Documents and Settings\Aankhen>svk mkdir //pugs | |||
Waiting for editor... | |||
Can't spawn "cmd.exe": No such file or directory at C:/Development/SVK/site/lib/ | |||
SVK/Util.pm line 204. | |||
Aborted: No such file or directory | |||
autrijus | hrm, you don't have cmd.exe in path? | 17:08 | |
also try | |||
Aankhen`` | I do. | ||
autrijus | set EDITOR=notepad.exe | ||
set SVN_EDITOR=notepad.exe # or this | |||
Aankhen`` | I already have SVN_EDITOR set. | 17:09 | |
svnbot6 | r5642, Stevan++ | Perl6::MetaModel | ||
r5642, Stevan++ | * added :breadth dispatch order option | |||
r5642, Stevan++ | - added tests for this | |||
r5642, Stevan++ | * improved the class_precedence_list() method | |||
r5642, Stevan++ | - added tests for this as well | |||
r5642, Stevan++ | * BUILD and DESTROY are now submethods again | |||
r5642, Stevan++ | - they use the force_call() method in ::SubMethod | |||
r5642, Stevan++ | * t/07_A12_examples.t now uses next_METHOD() like in A12 | |||
autrijus | and svk failed to launch that | ||
Aankhen`` | system {$editor[0]} (@editor, $file) | ||
O_O | |||
autrijus | the {} part is the name | ||
never mind that | |||
(see perldoc -f system) | |||
Aankhen`` | Doesn't work with notepad.exe either. | ||
autrijus | strange. | ||
trace it a bit? | |||
this is the latest .exe binary? | |||
Aankhen`` | Ah, wait. | 17:10 | |
I set EDITOR=notepad.exe but not SVN_EDITOR, so it was picking up SVN_EDITOR. | |||
Notepad works. | |||
Aankhen`` goes to check other stuff. | |||
Dang, it doesn't work with Gvim. :-( | |||
Unless I specify the full path. ^_^ | 17:11 | ||
autrijus | well, then :) | ||
Aankhen`` | Er... how do I remove a dir I created using mkdir? | 17:13 | |
autrijus | rm | ||
Aankhen`` | Ah. | 17:14 | |
`rmdir` didn't work, so I got confused. | |||
Thanks for the help. :-) | 17:15 | ||
autrijus | np :) | 17:17 | |
Aankhen`` | I'm running `svk up -s` from my working directory; is it supposed to suddenly commit a whole bunch of revisions? | 17:18 | |
Hmm, okay, it's not committing to the main repository. | 17:19 | ||
autrijus | right. | ||
have you seen svk-overview.png and svk-visual-guide.pdf? | |||
Aankhen`` | I saw svk-visual-guide.pdf | ||
autrijus | # perlcabal.org/~autrijus/svk-overview.png | ||
Aankhen`` | Have I ever told you that you scare me? | 17:21 | |
(in a good way :-) | 17:22 | ||
Hmm, Openfoundry should perhaps put commit messages in a <pre>...</pre> block, or expand all tabs and then replace spaces with non-breaking spaces... | 17:27 | ||
autrijus | you mean in the rss view? | 17:31 | |
it's SVK::Web... patches against that module welcome | 17:32 | ||
putter | autrijus: re evalVar "<rulename", evalVar? | ||
autrijus | putter: er, sorry reduceVar | ||
putter | ah, ok. | ||
autrijus | I unified them | ||
and picked the longer name. very unlike me | 17:33 | ||
putter | ;) | ||
svnbot6 | r5643, iblech++ | * Usual svn props. | 17:35 | |
r5643, iblech++ | * Added a (currently failing) test to t/statements/do.t. | |||
r5643, iblech++ | * New test: t/operators/context_forcers.t, testing &prefix:<+>, &prefix:<?>, | |||
r5643, iblech++ | &prefix:<~>. | |||
putter | am I missing something, or does exposing reduceVal require "structural" change. export reduceVal, import Pugs.Eval in Pugs.Prim. | ||
autrijus | evalExp (Var "<*foo") | 17:36 | |
may be easier. | |||
putter | ah, ok. thanks again. | ||
autrijus | np :_ | 17:37 | |
I mean, :) | |||
putter | :) | 17:38 | |
svnbot6 | r5644, iblech++ | PIL -> JavaScript compiler. | 17:42 | |
r5644, iblech++ | * Pugs.Compile: Modified the declaration of PApp to accept an invocant. | |||
r5644, iblech++ | * Pugs.CodeGen.PIR: Minor changes because of change #1, pugs -BPIR still passes | |||
r5644, iblech++ | the sanity tests. | |||
r5644, iblech++ | * New directory perl5/PIL2JS, containing various modules, a README, and | |||
r5644, iblech++ | pil2js.pl: | |||
r5644, iblech++ | $ pugs -CPIL -Ilib6 -MPrelude::JS -we 'say 2 + 3' | \ | |||
r5644, iblech++ | ./pil2js.pl -html > /tmp/t.html | |||
r5644, iblech++ | * t/01-sanity mostly pass! (see | |||
r5644, iblech++ | m19s28.vlinux.de/iblech/stuff/not_p...2js-demo/) | |||
r5644, iblech++ | * t/01-sanity/03-equal.t doesn't pass because of a bug in Pugs.Compile | |||
r5644, iblech++ | ("3 || 4" is compiled to "&infix:<||>(3, 4)" instead of "&infix:<||>(3, {4})" | |||
r5644, iblech++ | or something similar. | |||
r5644, iblech++ | * See perl5/PIL2JS/README for a list of things which already work. | |||
iblech | food & | ||
putter | oh my. | 17:50 | |
Aankhen`` stares at iblech. | 17:51 | ||
Argh. You just HAD to do it while SVK is syncing up 5,000 revisions, didn't you? :-P | |||
autrijus | oh. wow. wow. | 17:54 | |
autrijus is shocked. _shocked_ I say | |||
mm gust at 63m/s | 18:13 | ||
dudley | Hey, pugs hit the front page of LtU today | 18:14 | |
autrijus | yeah, proving that ltu has its own share of dupes | ||
dudley | heh | ||
Aankhen`` | LtU? | ||
dudley | lambda-the-ultimate.org | 18:15 | |
Aankhen`` | Ahh. | ||
autrijus | lambda-the-ultimate.org/node/view/593 lambda-the-ultimate.org/node/view/620 | ||
there's some more | |||
putter | when converting a datastructure in language A to language B, it is generally fastest to do everything native, ie, crawl A data in A, generating string of B code, which eval'ed in B, generates B data. rather than every language writing -CPIL parsers... | 18:18 | |
perl/ruby can share a rep, python gets its own, js, ocaml, scheme, ... ;) | 18:19 | ||
variants on Show? | 18:20 | ||
autrijus mumbles something about YAML | 18:23 | ||
putter | iblech: *very very broad grin* | 18:24 | |
autrijus | putter: actually PIL prettyprinter to Perl5, written in haskell or p6, is a good idea | ||
alternately use S-expr or YAML may not be bad idea either | |||
and there's always XML when we give up all hope | 18:25 | ||
putter hopes he never has so little hope as that... | 18:26 | ||
so sexp, and yaml too. actually, sexp can substitute for scheme. | 18:27 | ||
hmm, maybe. | |||
better yet, it looks like the backends are turning out simple enough that they don't need to wait on the PIL redesign, no? | 18:28 | ||
autrijus | there's no need to wait anything :) | 18:29 | |
hm, iblech has written a small parser combinator in PIL::Parser under PIL2JS/lib/ | |||
it feelds very parsecish | |||
it looks like it's good enough to handle arbitary haskell structures with a bit tweak | 18:30 | ||
however for my PIL redesign I think I'll annotate each constructure with record syntax | 18:31 | ||
i.e. the constructor arguments will have names | 18:32 | ||
just so larry won't call me "lazy bastard" again | |||
(which he did upon his first glance at the unnamed PIL structure) | |||
iblech: the infix<3,4> thing is probably not a bug | 18:34 | ||
it should be a PThunk | |||
on the 4 position for || | |||
which is different from {4} | |||
because of scope issues | 18:35 | ||
3 || leave(); | |||
3 || { leave() }; | |||
means very different things | |||
iblech | Aankhen``: re. Sorry :D | ||
autrijus: Right. | |||
autrijus | iblech: and I wonder if we can get Parse::Combinator :) | 18:36 | |
(i.e. generalizing PIL::Parser) | 18:37 | ||
iblech | autrijus: Yeah, would be useful, I think :) | ||
autrijus | iblech++ # mad props | 18:38 | |
iblech++ # mad skills | |||
iblech | (Perl 5)++ # better than we may be tempted to think :) | ||
oh, and of course, PIL | |||
oh, and of course, PIL++ :) | |||
Aankhen`` | iblech++ | 18:39 | |
autrijus | Perl5 is very good | ||
Aankhen`` | # JS am cool | ||
autrijus | it's perl5 I have problem with :) | ||
iblech | :) | 18:40 | |
svnbot6 | r5645, putter++ | Added Pugs::Internals::reduceVar, to lookup unparsable names, and Pugs::Internals::rule_pattern, to get the re string from rule objects. | ||
autrijus | I probably should catch some sleep while the window-smashing sound is taking a respite | 18:45 | |
see you tomorrow :) | |||
autrijus waves | |||
putter | & | ||
iblech | Night :) | ||
Aankhen`` | Goodnight autrijus. | 18:47 | |
nothingmuch | i'm at work | 18:58 | |
it's 21:58 | |||
and other people are still delaying my two hour job | |||
= | |||
( | 18:59 | ||
nothingmuch thinks he might be homew tomorrow | |||
svnbot6 | r5646, iblech++ | * Pugs.Compile -- &infix:<||>(foo, bar) is compiled as &infix:<||>(foo, | 19:27 | |
r5646, iblech++ | PThunk(bar)) now. | |||
r5646, iblech++ | * Pugs.CodeGen.PIR -- So Pugs.CodeGen.PIR doesn't have to do this change, as | |||
r5646, iblech++ | Pugs.Compile does it now. | |||
r5646, iblech++ | * Pugs.Parser -- Filtered out &infix:<,> from list of user-overridable subs, as | |||
r5646, iblech++ | else even basic arglists use &infix:<,> if a &infix:<,> is defined (see | |||
r5646, iblech++ | comment). | |||
r5646, iblech++ | * PIL2JS: Prelude::JS -- Proper support for ||, &&, etc. | |||
r5646, iblech++ | * PIL2JS: README -- Minor cleanup. | |||
cognominal | what is the state of PGE? | 19:35 | |
iblech | In latest leo-ctx5, it seems to work mostly again | 19:37 | |
cognominal | ha, when did they intend to merge? | ||
iblech | Dunno | ||
svnbot6 | r5647, iblech++ | perl5/PIL2JS: README -- Added section about PIL2JS's internal design. | 19:56 | |
nothingmuch | bah! 00:05, and still at work | 21:03 | |
someone, please feel my pain | |||
nothingmuch is going to watch the numbers change to 500,000,000 on www.apple.com | 21:04 | ||
Aankhen`` feels nothingmuch's pain. | 21:07 | ||
Now feel my pain: syncing 5,600 revisions when it aborts due to some sort of network error every 300 or 400... | 21:10 | ||
nothingmuch | run it in a shell loop =) | ||
why do you need to mirror the entire history?> | |||
Aankhen`` | I have no idea. | ||
nothingmuch | you can just mirror head, or the last 100 revs | ||
Aankhen`` | I just did an `svk up -s` | ||
. | |||
# in the working copy | |||
nothingmuch | pugs rarely ever goes backwords in time =) | ||
ask around on #svk | |||
i'm not sure what you should do now | |||
Aankhen`` shrugs. | 21:11 | ||
I'll just let it run. | |||
mugwump | nothingmuch: ime, skipping revisions is fraught with difficulties | ||
svnbot6 | r5648, iblech++ | PIL2JS: | ||
r5648, iblech++ | * Misc. bug fixes. | |||
r5648, iblech++ | * README -- Improved section about PIL2JS's internal design. | |||
r5648, iblech++ | * Proper stringification and numification ops. | |||
r5648, iblech++ | * Refactored conversions from PIL2JS.Box objects to native JavaScript objects | |||
r5648, iblech++ | out into PIL2JS.Box.toNative. | |||
r5648, iblech++ | * Should we port PIL2JS to Haskell (compiling Prelude::JS plus five lines of | |||
r5648, iblech++ | Perl 6 source takes 55s here...)? | |||
nothingmuch | okay, nevermind =) | ||
Aankhen`` has the wrong kind of laziness right now. | |||
nothingmuch | if only i had the brainpower to actually do something fun | 21:12 | |
i know, i'll finish the harrorth bootstrapping | |||
iblech | Need to sleep now, I think :) | 21:18 | |
nothingmuch | me too! | ||
iblech++ | |||
impressive work | |||
iblech | Thanks :) | ||
Night all | |||
Aankhen`` | G'night. | ||
Bleh. | |||
putter | night iblech | ||
;) | |||
21:23
ToniEisner is now known as [,
[ is now known as ToniEisner
|
|||
Aankhen`` | Yay, it's at r3072... | 21:25 | |
G'night. | 21:35 | ||
svnbot6 | r5649, mugwump++ | Use svn keyword expansion in preference to reading internal svn state files or `svk info' | ||
integral | mugwump: is that going to work? Surely $Rev$ in that file will only change when that file gets changed, not when any change happens? | 21:38 | |
putter | belated "G'night". | 21:43 | |
mugwump | integral: ah, is that why it wasn't already like that | 21:46 | |
I'll test | 21:47 | ||
putter tosses pcre and p6 rx engines back on the shelf. pge is too busted, even on leo-ctx5, to run the rx grammar to parse regular expressions. (and I'm going back to bootstrap land when waiting a while might make the problem go away...) blech. sigh. | |||
integral | yeah, I think we went over this months ago when this first got written, but time flies around here :-) | ||
putter | s/I'm going/I'm not going/ sigh | 21:48 | |
& | 22:05 | ||
svnbot6 | r5650, putter++ | Minor edit of Perl6::Rx in modules/Grammars/rx_grammar.pl. But PGE can't run it. | ||
cognominal | ?eval say defined &match ?? 'defined' :: 'undefined' ; | 22:08 | |
evalbot6 | Error: Undeclared variable: "&match" | ||
cognominal | defined is a special case that is not handled. is "defined" specced in Perl6? | 22:09 | |
svnbot6 | r5651, iblech++ | PIL2JS: pil2js.pl: Support for precompiling the Prelude::JS (speeding up | 22:10 | |
r5651, iblech++ | further compilations by 100000% or so :)). | |||
r5652, iblech++ | PIL2JS: pil2js.pl -- Very minor cosmetic fix (indentation of the JS Prelude). | |||
cognominal | hum, I am confused defined implies declared... | 22:11 | |
cm | "meow", makes the lambda | ||
cognominal | ?eval say exists &say | 22:15 | |
evalbot6 | Error: No compatible subroutine found: "&exists" | ||
cognominal | boy, I am running in deep existentail problems | ||
?eval say &say.exists | 22:16 | ||
evalbot6 | Error: No compatible subroutine found: "&exists" | ||
mugwump | ?eval [<1 2 3 4 5 6>].reverse.reverse | 22:23 | |
evalbot6 | '1 2 3 4 5 6' | ||
svnbot6 | r5653, mugwump++ | Back-out earlier change, add comment as to why this is done like this | ||
mugwump | ?eval [<1 2 3 4 5 6>].reverse.join(",") | ||
evalbot6 | ',' | ||
mugwump | jabbot: seen gaal? | 22:30 | |
svnbot6 | r5654, mugwump++ | Add cheating (.perl) version of is_deeply | ||
jabbot | mugwump: gaal was seen 1 days 11 hours 44 minutes 39 seconds ago | ||
nothingmuch | moose...... | 22:44 | |
1:44 |