-Ofun: xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6 Set by apple-gunkies on 11 November 2005. |
|||
leo | autrijus: [re $!] lwall doesn't really say that $! is invalid outside of an exception handler (I think), for me TSa's answer is clear and ok | 00:52 | |
autrijus | leo: I think lwall says each sub get its own implicit "env $!" | 00:53 | |
leo: TSa's answer says something else entirely (which would also work) | |||
leo | well, TSa says that $! (the exception) is only valid inside a CATCH handler, which make a lot of sens to me | 00:54 | |
autrijus | try { die 3 }; say $!; | 00:55 | |
this idiom will go away then | |||
leo | hmm | 00:57 | |
2 levels of catch are involved here | |||
P6 (default catch handler everwhere (iirc)) | |||
and parrot | |||
the above actually means iirc: try { die 3 }; CATCH {say $!;} | 00:59 | ||
autrijus | I can live w/ that | 01:03 | |
wolverian | I thought CATCH would only be called when an exception was propagated to its lexical scope? | ||
or am I misunderstanding the point of the example :) | 01:04 | ||
leo | I think in the absence of any eception (or handler) there is no $! | ||
autrijus | wolverian: you would be correct :) | 01:06 | |
try { die 3; CATCH { say $! }} | |||
would be p6 | |||
{ die 3 }; CATCH { say $! } | |||
pd | scope is it | 01:07 | |
stevan | hey autrijus how goes the conference | 01:08 | |
autrijus | very much fun | 01:10 | |
VB talk coming in a hour | |||
stevan | nice :) | ||
autrijus | Pugs keynote in 5 | ||
stevan | so I finally got my head around PIR last night | ||
autrijus | happy that the last parrot lex bug we need fixing is just fixed | ||
stevan | oohh Pugs Keynote!!??!?! | ||
autrijus | (find_name not working with .lex) | 01:11 | |
leo++ # oil-for-food^Wtest-for-fix | |||
yeah... pugs keynote... I'm the conway proxy here | |||
stevan | very cool | ||
where is conway? | |||
autrijus | somewhere. had some troubles apparently and can't attend or host me | 01:12 | |
so I end up hacking M::I/PAR/PPI with Alias | |||
which is fun also. | |||
stevan | cool | ||
autrijus | alias is very much fun and nice and gentle in realworld | 01:13 | |
stevan | :) | ||
autrijus | much to my surprise :) | ||
stevan | :D | ||
so its a non-Pugs Hackathon this time then | 01:14 | ||
autrijus | well... seeing how we're porting these to Pugs/P6, I'd still say it's a Pugs hackathon | ||
stevan | ah | ||
autrijus | we need those tools for Pugs as well :) | 01:15 | |
stevan | how much longer are you in .au? | ||
autrijus | 2 more days in melbourne, then 3 in lismore, then 4 in sydney -- make that 9 | 01:16 | |
stevan | then back to .tw? | ||
autrijus | yeah, until early Feb then to Tel-Aviv | 01:17 | |
stevan | will you have $work when you are back in .tw? | ||
autrijus | most likely yes, but not desperately | 01:19 | |
there's one project to finish still | |||
and no more during or after that | |||
and if either Jifty or Cat is any good, the project should be straightforward. | |||
stevan | cool,.. so it's back to 24/7 Pugs :) | ||
autrijus | more like 24/5 but yes :) | ||
thank $deity. | |||
stevan | $deity? | 01:20 | |
autrijus | _insert_random_god_here_ | ||
stevan | ah | ||
Jooon | God of rechargable batteries | ||
stevan | The Great Lithium Ion!!! | ||
pd | I'm not a theist, you ignorant clod :) | ||
heh. "thank NULL." Not sure how I feel about that one. Perhaps better than "thank undef."? | 01:21 | ||
stevan | so autrijus, is the next step on the MM a Haskell version? | ||
autrijus | stevan: yes, ObjSpace-in-Hs and then the bootstrap code evaluator | 01:25 | |
stevan: then codegen from that to PIR objs | |||
stevan | ObjSpace ,.. so we are gutting the current core? | 01:26 | |
autrijus | AST.Internals yes | 01:27 | |
Types.* definitely | |||
stevan | cool | ||
autrijus | I don't think Eval.hs needs to go right now | ||
the abstractions are pretty good | |||
I did this once already with the Container fix in Types.* | |||
so probably can do it again | |||
stevan | so are we going to do that sendmsg thing we spoke about? or some other approach? | ||
autrijus | sendmsg is the way to go | 01:28 | |
stevan | cool | ||
autrijus | and no runtime type assertions by default | ||
it's ducks all the wya down | |||
stevan | quack :) | ||
what are you thinking in terms of the PIR | |||
I am currently stuck as to where to start with the metamodel | |||
I wrote Opaque last night,.. but it felt like I was re-inventing things | 01:29 | ||
but when I hacked a basic Class ,... it felt too high level | |||
autrijus | I think we reuse PIR ParrotObject as Opaque | ||
stevan | yeah, that makes sense | ||
autrijus | PIR allows compile time objspace seeding | ||
so that makes codegen ~trivial | |||
stevan | what about method dispatching... reuse ParrotObject or do it ourselves? | 01:30 | |
autrijus | also reuse PO | ||
as they are also C3 | |||
stevan | hmm ok | ||
yeah I know | |||
autrijus | if there's any mismatch, yell at leo | ||
stevan | LOL | ||
I should write some more tests for the C3 stuff | |||
autrijus | chip's idea is that parrot should be the fastest VM for Pugs | 01:31 | |
stevan | BTW - did you see that matts is using Class::C3 in DBIx::Class now | ||
autrijus | yup, and I get a lot of INIT block warnings | ||
stevan | yup :) | ||
autrijus | I fixed some of them in Catalyst | ||
and released Test-use-ok | |||
for that specifically (you may like it) | |||
stevan | I told him i would remove the INIT if he wanted,.. after all he is the only one using that module :) | ||
yeah I saw Test-use-ok,.. very witty :) | 01:32 | ||
autrijus | :D | ||
anyway, I think a 'no warnings "void"' may be warranted. maybe not. I'm not sure | |||
stevan | it probably makes sense to get rid of the INIT block and make initalization manual | 01:33 | |
stevan ponders how to thread the MM through ParrotSpace | |||
autrijus gets ready for lightning talk | 01:34 | ||
stevan envisions something akin to the Pod Racers in Star Wars | |||
autrijus | =pod Racers | ||
stevan | :) | ||
autrijus discovers nothingmuch posted some flattery on cpanrantings for Test-use-ok | 01:35 | ||
wolverian | heh, cpanrantings | 01:36 | |
Khisanth | pd: there very good reasons to be thanking NULL and undef when you are debugging :) | 01:45 | |
pd | Khisanth, heh. | ||
stevan lights some insence and places them under his statue of NULL | |||
autrijus | because debugging is godforsaken and thankless? | ||
pd | yes, dereferencing a NULL pointer is generally better than dereferencing, say, 3. | ||
fglock_ | hi all! | 01:46 | |
stevan | hey fglock | 01:47 | |
fglock_ | I'm experimenting with compiling a mini-runtime to parrot | 01:48 | |
not much luck yet with -Cpir or -Cpil2 | |||
autrijus | -Cpir is brokem on parrot+lexpad | 01:49 | |
-Cpil2 is waiting on ObjSpace-Hs port | |||
so yeah :/ | |||
(both should improve before parrot 0.4.1) | |||
fglock_ | I just recompiled with parrot embedding, but I still get an error with missing &rx_ | ||
autrijus | I think we can't work with 0.4.0 ever... not worth working around the find_name bug | 01:50 | |
fglock_ | should I use -Cpil ? | ||
autrijus | fglock_: try -Cpil1 | ||
fglock_ | autrijus: trying... | ||
autrijus | but I don't see the rx_ bug here | ||
do you have this in your ocnfig.yml? | |||
precompile_prelude: true | |||
fglock_ | I don't think so - checking... | 01:51 | |
autrijus | it's the deafult | ||
does this work for you? | 01:52 | ||
./pugs -Cpil1 -e '5 ~~ rx:p5/1/' | |||
fglock_ | yes | 01:53 | |
autrijus | so what does not? | ||
fglock_ | it works with -Cpil2 too - I will upload my code - just a minute | 01:54 | |
ok - sorry for the delay | 01:58 | ||
it's in misc/Parser-Mini/read_pil.p6 - but it is just a small hack, not the real thing | 01:59 | ||
xah | how's pugs? | 02:05 | |
autrijus | quite happy | ||
fglock_: you can get a dump with | 02:06 | ||
./pugs -CPIL1-Perl5 -e1 | |||
xah | autrijus: nice job | ||
fglock_ | autrijus: I get the same error. my installation might be broken. | 02:08 | |
stevan | leo: ping | ||
autrijus | xah: thanks! | ||
fglock_: might be... try a rebuild :/ | |||
xah | most of you are also learning haskell? | 02:09 | |
autrijus | I'd say maybe 20% :) | ||
xah | that's pretty cool. | 02:10 | |
fglock_ | autrijus: you got a successful compilation of read_pil2.p6? I'll download the latest parrot tomorrow (I'm using 0.4.0 from CPAN) | 02:12 | |
autrijus | you don't need parrot for that I think | 02:17 | |
fglock_ | xah: learning haskell would help me a lot :) | ||
autrijus | and yes, compilation worksforme with -CPIL1-Perl5 | ||
xah | fglock_: in what way? | 02:18 | |
i started to learn haskell few weeks ago... but got busy with other things. | |||
is there a pugs faq or perl6 faq somewhere? | 02:19 | ||
fglock_ | xah: I could understand the source code - I can read it, but I don't understand many parts | ||
autrijus | xah: pugscdoe.org has "Overview" which may help | 02:21 | |
xah: also see the slides at bottom left of pugscode.org | |||
fglock_ | autrijus: I had a debian pugs installation, besides the svn version - I'm deleting the debian package and rebuilding the svn | ||
autrijus | ok | ||
I'm going to be on stage in 20 mins -- bbiab | |||
xah | autrijus: ah... i remembering seeing that site. I see that you are a supporter of the trad char. | ||
fglock_ | good luck! | 02:22 | |
autrijus | xah: hm? I have both trad and simp listed | ||
fglock_: thanks! | |||
xah | autrijus: right. But from the way you name the trad char. :) | ||
Epix | I want perl6, but i cant have it :(\ | ||
autrijus | Epix: why? downloading pugs doesn't work? | 02:23 | |
xah: ah... but that's how trad char users call it officially | |||
xah: it's the same idea that I don't call the simp char side "Su-Ti" (folk-style) | |||
Epix | autrijus: no, i just havent bothered with pugs, no offical release of p6 yet... | ||
autrijus | as the simp char users call it "Jian-Ti" (simplified-style) | ||
Epix: oh ok... wait another year or so then. | |||
Epix | autrijus: does pugs compile to parrot and is past beta? | 02:24 | |
autrijus | meanwhile you can learn some interesting languages like Ruby or IO or OCaml or Haskell | ||
Epix: yes we do compile to parrot but no we are not past beta. | |||
stevan | is parrot past beta?? | ||
autrijus | probably not. | ||
xah | autrijus: it' be interesting to know if trad char was called the zheng ti, but the standard expr today is rather "complex char" vs "simplified char". | 02:25 | |
Epix | autrijus: ah, you are the author of pugs, correct? | ||
autrijus | xah: actually in taiwan it's called "canonical char" and "folk char" | ||
Zheng-Ti and Su-Ti respectively | |||
xah | autrijus: yeah, because taiwan is filled with politics | 02:26 | |
autrijus | xah: yup, but I subscribe to the idea of wikipedia.org -- "Ming cong zhu ren" (the owner gets to define the name) | ||
xah: so that's how I treat it :) | |||
.tw gets to define how zh-tw is named and .cn gets to define how zh-cn is named. | |||
Epix: yes | 02:27 | ||
xah | autrijus: so you are just showing your political side, after all. Not because how things are really named. :) | ||
autrijus | xah: yup, I'm a card-carrying anarchist :) | ||
Epix | hm, now i need a tutorial and a good reason that p6 > python :P | ||
autrijus | take it or leave it :D | ||
xah | autrijus: but even so, i don't agree that taiwan are really all for one side of naming. | ||
pd | Epix, p6 can be all things to all people. Because, like, it isn't done yet. | 02:28 | |
autrijus | Epix: see svn.openfoundry.org/pugs/docs/articles/tpr.pod | ||
obra | p6 _is_ python. p6 is also antipython | ||
autrijus | Epix: download it and run "perldoc tpr.pod" should give you an ok tutorial | ||
xah | obra: huh? | ||
autrijus | xah: that's okay, I respect that :) | ||
obra | xah: I was playing on "all things to all people" | ||
pd | probably true enough, as it goes. | 02:29 | |
I wouldn't know, I think of myself as being more in the can't-we-all-just-get-along parrot camp. | 02:30 | ||
autrijus | at least we can get along with Tcl | 02:31 | |
Epix | when perl6 comes out with a real, offical relase, what magic new stuff will it have to offer? it seems like the language is getting a huge overhaul... why? | 02:32 | |
pd | I'll leave it at that, I already poked Coke once today about Tcl. | ||
xah | obra: the pythoner's got python3000 is the cooking. | ||
autrijus | Epix: take some time to look at my slides? :) | 02:33 | |
obra | xah: they do | ||
pd | Epix, well I'll tell you one thing I noticed today, and you can take it or leave it: I wrote a simple routine in p6, and I only had to change one word to make it valid PHP. Seemed easier to me. :) | ||
Epix | autrijus: VB doesnt rock :P | ||
autrijus | Epix: pugscode.org/euroscon/pugs.xul | ||
obra | and there's Ruby 2.0 | ||
And Lisp has Arc | |||
autrijus | Epix: pugscode.org/euroscon/pugs.xul as well come to think about it | ||
Epix | obra: when will that be comming out? | ||
obra | When will Python 3000 be coming out. | ||
autrijus | er, I mean pugscode.org/euroscon/vb.xul | ||
pd | sub fib($f) { if ($f > 1) { return fib($f - 1) + fib($f - 2);} else {return 1;} } | ||
obra | If I'm working as the assistant perl6 project manager and I can't even give you a date for perl6... ;) | 02:34 | |
autrijus | obra: I'm happy that nobody says "by Christmas" anymore :D | ||
obra | heh | ||
wolverian | pd, augh, parens on the if, and redundant 'returns'! the sight, it pains me. | ||
pd | wolverian, yeah, but like I said... change one keyword, and it's valid PHP. :) | 02:35 | |
you should see my old Perl5 that I tried to make look like Scheme. | |||
wolverian | heh. | ||
that's better than PHP. :) | 02:36 | ||
pd | can't we all just get along! ;) | ||
pd gets to work on KumbayaPMC | |||
xah | i just learned php yesterday. | ||
Epix | pd: would that keyword be sub? | ||
pd | Epix, it would indeed. | ||
in PHP, it's function instead. | 02:37 | ||
wolverian | pd, no, not with PHP, NEVER. | ||
er, ever. cough. | |||
pd | wolverian, the PHP implementation I have lying around here somewhere for Parrot is pretty decent. | ||
xah | perl forks don't like php is general, is that right? | ||
pd | xah, I wouldn't generalize like that, but many language people are like that. | ||
wolverian | pd, then you only need to fix the language | ||
pd | I'm not a fan of Java, but I like Perl and PHP ok. | 02:38 | |
xah | as far as i can tell, php's usage in the industry probably surpassed mod_perl by a big margin? | ||
wolverian | don't get me started on java. :) | ||
pd | they share a lot of features, and they each have their flaws | ||
wolverian, heh | |||
PHP is slow; perl5 can be a memory hog | |||
etc. etc. | |||
doesn't matter much when all you're doing is running a mysql query and printing out a webpage. | 02:39 | ||
Epix | autrijus: what was the feature presentation | ||
wolverian | print_to_webpage(mysql_query("SELECT $PARAM['foo']")); | ||
pd | yeah, something like that. | ||
xah | lol, look at the perl5 mug www.cafepress.com/pugscode.28683006 | ||
pd | looks pretty similar in both languages too. | ||
xah | 5->6 | 02:40 | |
wolverian | you missed the sql injection vulnerability | ||
pd | oh please. :) | ||
wolverian | :) | ||
sorry. I'll go back to reading a non-programming book now. | 02:41 | ||
pd too | |||
I should get back to it, it's raining frogs. | |||
xah | anyone seen the perl6 logo? | 02:43 | |
pd | are you referring to what's on the mug still? | 02:44 | |
xah | Polymorphic Existential Recursive Lambda VI | ||
y | |||
pd | yeah that was clever | ||
I imagine that'll be Larry Wall's tombstone. | |||
"He was clever." | |||
better than "JAPH" in my book. | 02:45 | ||
xah | is that gonna be the official acronym? | ||
pd | they could do worse, I suppose. | ||
wolverian | please no. then people will write it as PERL more often than perl5 :) | ||
pd | PEARL :) | ||
pd ducksa | |||
*ahh* | |||
wolverian | ducks eat pearls | ||
(and pythons) | 02:46 | ||
pd | ! | ||
and rubies no doubt | |||
wolverian | right. :) | 02:47 | |
good taste, obviously | |||
pd | more like... shiny objects. :) | 02:50 | |
xah | darn. what's a .xul file? | 02:52 | |
pd | that's a mozilla thing, right? | ||
xah | seems like it | 02:53 | |
pd | www.mozilla.org/projects/xul/ | ||
xah | don't seems to be able to read it in firefox | 02:55 | |
it's from pugscode | |||
haskell.xul | |||
wolverian | worksforme in ff and epiphany | ||
xah | what v and os? | 02:56 | |
ff? epiphany? | 02:57 | ||
i'm on os x, firefox 1.5 | |||
pd | Learning Haskell* (pugscode.org/euroscon/haskell.xul) -- Slides from AutrijusTang's talk, requires gecko-based browsers (Firefox, Epiphany, etc.) to view | ||
sounds like a neat trick. | |||
autrijus | xah: really? firefox 1.5 should just work if you point it to the url | 03:02 | |
xah: if you downloaded it, you also need takahashi.js and euroscon.css that came with it | |||
xah | ah i see. Yes it works now. | 03:03 | |
very nice logo! I love it. | |||
autrijus | Epix: the feature presentationis the first movie in pugscode.org/talks/oscon05/movies.html | ||
xah: thanks! | |||
Epix | POE better be ported... | 03:04 | |
autrijus: why did you choose hascall (i bet you get that alot...) | |||
autrijus | Epix: it's in 01Overview.html :) | 03:05 | |
Epix: mostly because it has great tools :) | |||
parser + evaluator = 6 hours | |||
xah | mmm xul is pretty cool | ||
autrijus | xah: you tried "view source"? :) | ||
xah | autrijus: yeah. i downloaded it first because i was on safari. | 03:06 | |
autrijus | oh cool | ||
I see | |||
Epix | autrijus: you dont hear about hascall at all these days... Perly... Is that a real word? :P | ||
autrijus | Haskell? it's only in usable form since 2000 | 03:07 | |
it will take some time for the news to spread | |||
pd | yes, as in, see them perly whites? | ||
xah | gosh i loved the haskell.xul tutorial | 03:09 | |
autrijus | good to hear that :D | 03:10 | |
xah | the fit use of unicode is also cool. | ||
Epix | with a console open, how do i get pugs? | ||
autrijus | Epix: apt-get pugs | ||
Epix: (depending on which platform you are on) | |||
Epix | autrijus: just noticed that (debian) :) | ||
autrijus | good then :) | 03:11 | |
Epix | god.. its apt-get install pugs! :P | ||
pd | ahh! | ||
I just used svn and make and whatnot, seemed easy enough. Then again, I'm on Gentoo. :) | |||
Epix | Its been a long time sinced I perled | 03:12 | |
xah | autrijus: is there a way to move back? | 03:14 | |
autrijus: in .xul | 03:15 | ||
autrijus | xah: PageUp | ||
xah | thx | ||
Eclipse supports haskell? | 03:22 | ||
Epix | hmm.. pugs wont apt-get | 03:25 | |
This installation run will require temporarily removing the essential package e2fsprogs due to a Conflicts/Pre-Depends loop. This is often bad, but if you really want to do it, activate the APT::Force-LoopBreak option. | |||
autrijus | Epix: I have no idea what it means | 03:29 | |
xah: yes, eclipsefp.sf.net | |||
Epix | And, i cannot get rid of e2fsprogs, apt warns me that its important and i shouldnt touch or im in deep poop | ||
autrijus | you can give up and build from source instead | ||
svn co svn.openfoundry.org/pugs (or download from a CPAN near you: search.cpan.org/dist/Perl6-Pugs/) | 03:30 | ||
you'll need to apt-get install ghc (>=6.4) I think | |||
xah | ho my god that larry poem is long. | 03:38 | |
and it has been quality | |||
autrijus | the VB talk got the Best Lightning Talk award by popular vote-by-clapping :D | 03:51 | |
xah | autrijus: which book or online material you recommend for learning haskell? | 03:55 | |
autrijus | xah: svn.openfoundry.org/pugs/READTHEM | 04:01 | |
xah | autrijus: thanks for the link. But is there one book or one online tutorial you recommend? | 04:02 | |
autrijus | hm... one book | 04:03 | |
xah | (i'm familiar with haskell books and resources) | ||
autrijus | definitely www.cs.nott.ac.uk/~gmh/book.html | ||
one online tutorial... that would be mine ;) | |||
xah | autrijus: gosh... don't have ppt. ... | 04:09 | |
autrijus | keynote can open it no? | 04:10 | |
xah | ok, they have some in pdf. | ||
autrijus | also openoffice.org impress | ||
cool | |||
xah | ah... will try to download OpenOffice | ||
it can read ppt? | |||
autrijus | yup | ||
and save too | |||
xah | thx | ||
autrijus | and convert them to pdf | ||
autrijus praises openoffice for sanity | |||
xah | btw, really great work you've done. | 04:11 | |
wolverian | I hate openofif | ||
xah | great poems too. | ||
wolverian | er. whatever. :) too tired | ||
autrijus | heh thanks... I didn't do them all; I merely started some part of it :) | ||
xah | autrijus: it'd be nice if the poems also available as a html page, | ||
autrijus | wolverian: yeah, but it kept me from rebooting to win32 | ||
xah | so that people can read. (and with author attributions) | ||
autrijus | xah: svn.openfoundry.org/pugs/docs/talks...ariner.txt | 04:12 | |
it's part of pugs source tree | |||
xah | autrijus: html better, as .txt don't get high ranking on google | ||
i noticed. | |||
autrijus: you've abroad? | 04:13 | ||
been. | |||
you've been abroad? | |||
autrijus: i think i read somewhere that implies you don't leave taiwan? | 04:15 | ||
autrijus | xah: eh? I won't stay much in taiwan anymore :) | 04:16 | |
so you might read it backwards | |||
xah | autrijus: maybe off topic... where'd you be going? | ||
autrijus | xah: it's no secret... .il, .de, .pt, maybe .es, maybe .at again, then possibly .uk; .ca possible too | 04:19 | |
xah | lol. but that's great! | ||
all the countries want you. | |||
ummm i see no .us ? :) | 04:20 | ||
autrijus | boycotting them. | ||
xah | lol. good deed. | ||
autrijus | actually just the current administraion. :) we'll see if it gets better in the next one... | 04:24 | |
obra | what's in .pt? | 04:29 | |
autrijus | some workshop | 04:30 | |
ingy_ | hi autrijus | 04:43 | |
autrijus | ingy_: hey | 04:44 | |
how's .tw? | |||
obra | heh | ||
ingy_ | autrijus: it's a really nice place. you should check it out | 04:46 | |
maybe some day | |||
hcchien | ingy_: what are you hacking now? | 04:50 | |
autrijus | ingy_: cool | 04:52 | |
whiteg | hcchien: you should just come here and see all the stickers on the wall | 04:59 | |
hcchien: then you will know what he and gugod are hacking on | 05:00 | ||
autrijus | mmm ingy and his stickers | 05:01 | |
autrijus is still preparing pugs talk... going to be on air in 30 mins | |||
# pugscode.org/osdc/combined-2.jpg | 05:03 | ||
stevan | autrijus++ # Evolve or die; | 05:52 | |
GeJ | servus | 07:08 | |
gaal | morning! | 07:36 | |
r0nny | morning gaal | 07:49 | |
nothingmuch | hola gaal | 07:50 | |
autrijus | yo | 07:54 | |
gaal | heya :) | 08:00 | |
sooooo, i | |||
'm tryign to resume state re: pragmas | |||
I was blocked on the following: I need the parser to put some data on every node in the tree, data that the runtimes have access to. The Perl 5 patch that did this was simple, because the parser and the runtime are too chummy; we avoid preciesely this chumminess in pugs. | 08:04 | ||
I think we need something along the lines of expRule; instead of it returning Pos (mkPos pos1 pos2) (unwrap exp), it could return Prag pragmas Pos (mkPos pos1 pos2) (unwrap exp) | 08:07 | ||
I'm not sure however if expRule is applied exactly in the same places as a pragma opportunity would be | 08:08 | ||
also this implies that pragmatic state, in the parser, works like getPosition and setPosition; with updateParserState. Is that concerptually correct? | 08:10 | ||
So there's this pattern I'm not sure I understand fully, but which also seems a little fishy to me, this wrapping and unwrapping of Exps with (say) Pos. In expRule there's that unwrap, which would stip off any pragmatic state, but also other state that uses this decoration. Does this scale? | 08:15 | ||
autrijus | nope. | 08:23 | |
it's Very Bad Idea (tm) | |||
gaal | so what's the better approach? | 08:34 | |
and: how do we define what constitutes a pragma point? | |||
i.e., what "statements" need a pragma list? | |||
Is it a good idea to follow the monadic getPosition and store the current pragma list in the parser state? That way (if I'm not mistaken) blocks/scopes can do | 08:45 | ||
prePrag <- getPragmas ; ruleWhateverBlock ; setPosition prePrag --modulo syntax etc. | 08:46 | ||
err | 08:47 | ||
setPragmas prePrag, of course. | |||
(Interesting: setPosition is only called in one place, Token.hs:484. The rest of the time positions are just constrtucted and never mutated.) | 08:50 | ||
oh, duh, that code in Token handles #line, which of course blatantly changes the position. | 08:51 | ||
ok, I'm thinking back to your "Ann" suggestion, autrijus, which was supposed to unify Cxt, Pos, and Prag annotations IIRC. should this be a union or a full record? ie Cxt Cxt | Pos Pos | Prag Prag or MkAnn { cxt :: Cxt, pos :: Pos, prag :: [Prag] } ? | 09:01 | ||
dduncan | question: is "pugs -c Foo.pm" the same as "pugs -e "require Foo;" ... or do they have different symantecs? ... | 09:05 | |
I only want the code to compile, but under the situation I'm in, I have to do it within a -e, so that I can first execute a use-lib | |||
the code I wrote seems to work, but I was wondering if there might be symantics issues | 09:06 | ||
fyi, the code is: find blib6/lib -name '*.pm' -exec ./pugs -e "@*INC.unshift('blib6/lib'); say 'require \'{}\';'; require '{}';" ';' | |||
that was modified from something autrijus wrote yesterday | |||
gaal | they are different because -c Foo.pm compiles the module itself, not the state of having loaded the module. For example, %INC would not be set. | 09:09 | |
and if the module is sensitive to its caller, it may do different things depending on whether it's used or run. | 09:10 | ||
dduncan | do you know of a way to add 'lib' items when using -c with Pugs? | 09:11 | |
gaal | if you're familiar with Java, consider that a class may have an explicit entry point that's only called when the class is invoked directly; it's possible to get the same semantics in perl with the if (!caller) pattern | ||
(that's the p5 spelling) | |||
dduncan | all I wanted was -c with an added arg to specify more search dirs ... so that any 'use' statements in one module work to find others | ||
this -e thing was a workaround because I didn't know one | 09:12 | ||
gaal | there is a -I cmdline arg... | ||
I think it even works :-) | |||
dduncan | will check ... | 09:13 | |
gaal | under the hood it does something very similar to -e, too :) | ||
btw, be careful of shell portability when doing these things, and of possible paths with whitespace. :-( | 09:14 | ||
dduncan | the search path is a constant ... its just 'blib6/lib' | 09:15 | |
I'm just trying to find which part of the pugs docs lists its command line options | 09:16 | ||
gaal | pugs::run | ||
oh. -I isn't implemented. | 09:17 | ||
wanna do that? Pugs.hs. | |||
dduncan | yes, I just saw that | 09:18 | |
it said it wasn't implemented on purpose due to perl 5 | 09:19 | ||
anyway, I'll commit what I did before, which does what I want (detect compile errors), and someone can improve it if they want | |||
gaal | dduncan: "it wasn't implemented on purpose due to perl 5": ??? | 09:22 | |
dduncan | I'll quote: ... | ||
=item C<-l>, C<-d>, and C<-w> ... are ignored for compatibility with Perl 5. | |||
so due to perl 5, they aren't done | 09:23 | ||
gaal | that's -l, ell, not -I, aiiiiiii. | ||
-I is not implemented because nobody did it yet :-) | |||
dduncan | did you say aiiii? | 09:24 | |
I thought you said elll ... | |||
gaal | -w is ignored because warnings will be on by default | ||
dduncan | which made sense at the time... | ||
gaal | -l because with &say it's less attractive, or less needed | ||
-d, I bet, WILL be implemented... sometime. :-) | 09:25 | ||
dduncan | anyway, I added util/make-test-p6-compile.sh ... | ||
gaal | cool | ||
dduncan | it was to help isolate /ext failures faster | ||
gaal | nice; how do you envision its use in the smoke process? | 09:26 | |
dduncan | it is a subset of what make test/smoke does | ||
while the others recompile a .pm for every .t that includes it, or includes a .pm that includes it ... | |||
the one I committed goes to the .pm directly, greatly reducing the duplicate warnings spat out due to the same module not compiling | 09:27 | ||
ideally it would be built in to the make process, so one could say 'make compile-test' but I haven't the tuits to do that | 09:28 | ||
gaal | good. what's the typical usage pattern? do it before running make smoke? | ||
dduncan | so you just invoke it directly after 'make', instead of 'make smoke' | ||
then when all the errors reported are gone, you do a make smoke to just check runtime errors | |||
the basic idea is that the new script brings attention to the low hanging fruit ... syntax errors | 09:29 | ||
so they can be dealt with early, leaving the smoke reports for harder stuff | |||
gaal | does this compile one huge blob with everything? or each .pm separately (with its deps)? to be correct it should probably do something in the middle. | ||
dduncan | in my case ... | ||
this being a shell script, it reinvokes pugs separately for each .pm | 09:30 | ||
so no huge blog | |||
blob | |||
there is still the isolation that you get with make smoke etc | 09:31 | ||
gaal | huge blob would be wrong; but *every* .pm may do the wrong thing too when we have platform-dependent stuff. | ||
but this is probably good enough for now :) | |||
dduncan | well, this was meant to be a quick and dirty thing anyway | ||
gaal | right. dduncan++ | ||
dduncan | fyi, the whole script is a one liner, and there are a bunch of comments | 09:32 | |
now that using this is making the task a bit easier, I was going to go through the perl 6 code in /ext and fix syntax errors | 09:33 | ||
a lot of the ones I see now are due to the named argument declarations not being updated when pugs was ... some were but some weren't | 09:34 | ||
10:01
kanru2 is now known as kanru
|
|||
dduncan | have to investigate, but it appears Pugs doesn't parse the new way to call private methods, such as $self!method | 10:16 | |
autrijus | no, it doesn't. is there a test? | 10:19 | |
dduncan | looking for one | ||
autrijus | t/oo/method/* doesn't ocntain one | ||
dduncan | but it does seem to parse declarations of private methods ... I think | 10:20 | |
perlbot seems to be down ... haven't seen commit reports in awhile | |||
though it is connected | |||
?eval class Foo { method :bar () { say 'hello'; } } | 10:23 | ||
10:23
evalbot_8081 is now known as evalbot_8085
|
|||
evalbot_8085 | Error: unexpected "{" expecting term postfix, operator, ":", ",", postfix conditional, postfix loop, postfix iteration, ";" or "}" | 10:23 | |
autrijus | dduncan: yes, "my method" has always been working iirc" | ||
dduncan | ?eval class Foo { method bar () { say 'hello'; } } | ||
evalbot_8085 | undef | ||
kane_ waves at autrijus | |||
autrijus | kane_: yo! | ||
dduncan | anyway, I'm going through ext now ... already committed (locally) replacements of :foo with my foo | 10:24 | |
autrijus | kane_: M::I and M::AI is going to 1)suck less and 2)getting some JIB love | ||
dduncan | also some ?$arg with $arg? | ||
metaperl | stevan: ping? | ||
dduncan | okay, two more commits pushed | 10:34 | |
some remaining /ext failures are due to $self!method not compiling yet, and others I'm not yet sure what the problem is ... libwww-perl being an example of the latter | 10:35 | ||
autrijus | k, I can take a look tomorrow | 10:53 | |
fglock_ | autrijus: re my compiling problems yesterday: the problem happens with named rules: | 11:04 | |
autrijus | ah | ||
that explains it | |||
got a onelineer? | |||
fglock_ | pugs -Cpil1-perl5 -e ' rule ww { \w+ }; ' - &rx_ is compiled as a macro | ||
pugs -Cpil1-perl5 -e ' rule { \w+ }; ' - compiles as a sub | |||
&rx_ is defined in Prelude | 11:05 | ||
anonymous rules work | 11:06 | ||
autrijus | confirmed. fixing | ||
fglock_ | thanks! I was crazy trying to find out the problem | 11:07 | |
bbiab & | 11:15 | ||
xunxin | Does anyone know why pugs spends so much time on loading Prelude? It's really a pain to run even a "hello, world" p6 program. | 11:55 | |
autrijus | xunxin: did you use precompiled prelude? | 11:56 | |
xunxin | no, but I want to know how to recomile it. | ||
Can I find any instructions on Pugs doc? | 11:57 | ||
autrijus | look at config.yml | ||
there should be a "precompiled_prelude: true" | |||
xunxin | ah, thanks, autrijus! | 11:58 | |
BTW, recent Pugs revision broke on Win32. :=) | |||
autrijus | oh? what's the error? | 12:00 | |
xunxin | hm, it seems to me "cd .." failed on nmake. | ||
It can builds setup.exe successfully, but failed on the command "cd ..". | 12:01 | ||
autrijus | can you nopaste a log? | 12:05 | |
sial.org/pbot/perl6 | |||
xunxin | autrijus, I'm happy to provide such detailed output some time later, but now, because this is my friend's machine. sorry. | 12:06 | |
but not now. | 12:07 | ||
gaal | someone mentioned having to patch the makefile to do cd ..\.., but I don't remember who or where. | ||
or why that was necessary :( | |||
autrijus | xunxin: ok, that's fine | ||
I'll try win32 later | |||
xunxin | okay | ||
fglock | how can I recompile just the Prelude? | 12:35 | |
'mv ./src/Pugs/PreludePC.hs ./src/Pugs/PreludePC.hs.bak' seems to work | 12:40 | ||
autrijus | sure, or touch src/perl6/Prelude.pm | 12:45 | |
I need to leave strategicdat aoffice now... I'll check back tomorrow morning | |||
in, oh, 8 hours | |||
autrijus waves & | |||
fglock | bye | ||
autrijus | much better docs: svn.openfoundry.org/modinstall/trun...Install.pm | 12:47 | |
& | |||
Alias++ | |||
13:06
nnunley_ is now known as nnunley
|
|||
kane-xs | hmm.. p6 use syntax deemed insufficient :( | 13:27 | |
seen rafl | 13:35 | ||
rafl | kane-xs: I've seen rafl 0 seconds ago (saying: kane-xs: I've seen rafl 0 seconds ago). | 13:44 | |
kane-xs | argh.. the recursion, it hurts! | 13:45 | |
rafl: i just pushed a new S22 that points out what pugs needs to do to support jibs... i noticed the Repository section was still in 'past rantings' -- i think it deserves a nice spot in the doc :) | 13:46 | ||
rafl pulls | 13:49 | ||
kane-xs watches perl hate him | 13:52 | ||
hm, a -d test fails in a script, i run it manualyl and it succeeds.. absolute path.. hmmm | 13:54 | ||
d'oh, code in wrong order | 13:55 | ||
rafl | Use ACME::Palindrome and the order of the chars in a word doesn't matter anymore. | 13:57 | |
kane-xs: Hm, the repo stuff is still in Past Rantings/Notes/Etc | |||
13:58
bradb_ is now known as bradb
|
|||
kane-xs | rafl: that was my point :) i think you've fleshed it out enough to make it a 'proper' section | 13:58 | |
rafl | kane-xs: Oh, OK. You said that you pushed a new version. Thought that included that change. | 13:59 | |
kane-xs: Doing that now. | |||
kane-xs | rafl: no, i pushed a section on 'what pugs needs to do' | ||
when i scroled though it i noticed the repo stuff still being in the 'notes' stage | |||
rafl | Hm, where should it go? | 14:00 | |
kane-xs | a =head1 above the pugs stuf i'd say | ||
around line 608 or so | 14:01 | ||
rafl | Well, during writing JIB::Repository I noticed that the current layout isn't that good. I'm going to revise it a bit. | 14:03 | |
kane-xs | prototyping++ # you learn things | ||
what turned out to be not so good? | |||
btw, alternatives work again in JIB:: now.. just writing tests | |||
rafl | Can't remember. Something was "ugly". | 14:04 | |
kane-xs | btw, does svn support an 'mv' with keeping history and so on? | 14:05 | |
in case we want to rename some stuff | |||
nnunley | kane-xs Yes. | 14:06 | |
svn mv <file> works. | |||
rafl | kane-xs: svk as well. | ||
kane-xs | yay | 14:07 | |
rafl | kane-xs: Actually I want to be able to group dists by all meta information that is available. | ||
kane-xs: author, distname and language by default. | |||
clkao | but it will be a painful thing when doing merge that should bring the rename. luckily svk does it right. | 14:08 | |
rafl | kane-xs: But I'm not sure how to reflect that in a repository layout. | ||
kane-xs: Any hints? | |||
kane-xs | rafl: you suggested categories as directories, and a file with the contents | 14:10 | |
rafl: that sounded good -- did that not work out? | |||
rafl | So we have thins like dists/languages/perl.gz and dists/languages/perl/kane.gz? | 14:11 | |
kane-xs: But is kane a module or an author? | |||
kane-xs | good point -- that means either policy or disambiguate | 14:12 | |
if you want to catogorize by modules too (which seems prudent), splitting that out makes sense | |||
rafl | kane-xs: So we would have dists/languages/perl/authors/kane.gz and dists/languages/perl/modules/kane.gz - not that nice in some way. | ||
kane-xs | rafl: symlinks can do a lot here | ||
as languages/perl/modules would be the same as modules/perl/ | |||
for example | |||
rafl | Actually it would be modules/language/perl | 14:13 | |
kane-xs | brb | 14:14 | |
rafl: right.. or whatever we should link to for 'convenience' | 14:23 | ||
rafl: but there's little stopping us to link to long names for now, and abbreviate as needed... enve if it looks overly verbose now, there's no ambiguity, which is Good | |||
nothingmuch | www.critticall.com/ | 14:56 | |
stevan | metaperl: pong | 15:23 | |
william_firstdev | can I invite someone here to be a section administrator of a IT forum setup by some Chinese guy? | 16:53 | |
clkao | autrijus: i did some very evil thing | 17:25 | |
which might enable pugs js backend to use perl5cpan | |||
fglock wonders why PIL2 is so verbose 'PLit { pLit = PVal { pVal = VStr "hello" } }' | 17:32 | ||
Limbic_Region | clkao - s/evil/evil but clever/ | 17:50 | |
jdv79 | Limbic_Region, how goes? | 18:01 | |
Limbic_Region | getting ready for trip to the Philippines on Sunday - so well but extremely busy | 18:07 | |
you? | |||
jdv79 | not bad, thanks | 18:11 | |
that's a trip. | |||
Limbic_Region | I have just given up trying to be productive or participate in any meaningful way to a lot of projects | 18:13 | |
I still try and stay informed so that if the time arives when I actually have free time - I don't have to spend the time relearning everything | |||
chip | seen autrijus | 19:47 | |
r0nny | i got a problem with a ctor | 20:13 | |
i call $.arrt=Foo::Bar.new; in a BUILD submethod, and instead of creating the object it saves the reference of the new method | 20:14 | ||
anyone ? | 20:18 | ||
anyone there ? | 21:12 | ||
pmurias | I'am :) | 21:13 | |
r0nny | hmm | 21:15 | |
i got a problem with a ctor | |||
i call $.arrt=Foo::Bar.new; in a BUILD submethod, and instead of creating the object it saves the reference of the new method | 21:16 | ||
using a pugs pulled from svn about 10 minutes ago | |||
pmurias | i'm not familiar with pugs internals so i can't help you much :( | 21:20 | |
did it work with previous revisions? | |||
r0nny | pmurias: yes - it did | 21:23 | |
pmurias: maybe it broke casue they are changing to a new version of something | |||
clkao | what's the javascript equivalent for *@data when calling function? | 23:19 |