Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-09-15

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:06 hamad_k_o has quit IRC (Read error: 110 (Connection timed out))
00:08 renormalist who writes currently into the journal entries in pugs/docs/journal? Everyone who did sth? I want to mention some progress in emacs cperl6-mode ...
00:09 rafl renormalist: Yes, just journal what you did.
00:10 renormalist k, thx
00:14 stevan renormalist: the journal is written by @autrijus
00:14 stevan which is.. the collective #perl6
00:15 stevan if you have a commiter bit, you are a member,.. if you dont have a committer bit, just ask for one :)
00:16 * nothingmuch ponders whether to detabify and commit Blondie to pugs, or to keep it tabified and separate
00:16 nothingmuch having tried to edit with spaces today i'm surer than ever that I will never be happy with them =/
00:17 stevan intersperse tabs and spaces
00:17 stevan mix it up...
00:17 stevan go crazy
00:17 nothingmuch dduncan might tell me off
00:19 stevan I think you can hold your own,........ stand tall nothingmuch !!!
00:19 stevan defend your right to use a whitespace character(s) of your choosing
00:19 * stevan is bored and just stirring up trouble
00:27 luqui today's conference call meeting notes are online: http://use.perl.org/~luqui/journal
00:28 luqui I should be doing this every week.  If they don't come out some wednesday, pester me
00:31 nothingmuch luqui++ # thanks
00:31 stevan Yuval gets the nod from larry :)
00:31 nothingmuch where?
00:31 nothingmuch oh! woot!
00:31 stevan read the summary
00:31 nothingmuch what was it that I was saying?
00:31 stevan your like famous and shit
00:32 stevan luqui: who is Jesse?
00:32 stevan obra?
00:33 luqui yes
00:33 luqui nothingmuch, some of your optimization stuff
00:34 nothingmuch under perl -ne what is the name of the current file?
00:34 nothingmuch ah
00:34 larsen has quit IRC ("later")
00:34 luqui nothingmuch, $ARGV?
00:34 nothingmuch yes, that's it
00:35 nothingmuch duh
00:35 evalbot_7009 has quit IRC (Remote closed the connection)
00:36 evalbot_7010 has joined #perl6
00:40 dduncan since I was mentioned ... if your text editor is any good, it is easy to configure it so using spaces is equal to or more easy than using tab characters
00:40 dduncan nothing wrong with hitting the tab key ... it should just insert spaces
00:40 dduncan unless your file type actually cares about the difference ... most don't
00:41 dduncan the point with the spaces thing isn't to force a coding style on someone
00:41 dduncan rather, its that when anyone writes something, it appears the same to other people as to them
00:42 dduncan and its easy to ensure that if it prints or copies into an email without wrapping for you, it will for other people as well
00:42 luqui except that some people like 8-space (or 2-space) tabs
00:42 luqui but I can't stand them
00:42 dduncan well, do you like 4 then?
00:43 luqui yeah
00:43 luqui but those other people don't
00:43 dduncan a lot of people do, and for the rest, its a happy medium
00:43 nothingmuch dduncan: my only grudge with spaces is that in a tabbed file when I click in the whitespace to the left of some text and type a tab i get one more indent level, and if i type delete I get one less
00:43 nothingmuch with spaces I have chaos
00:43 luqui anyway... I guess I kinda wanted to say this to damian...
00:44 dduncan easy enough for people with bad eyesight to see that there exist indents, and room enough to have many indent levels
00:44 luqui the "correct" tab setting is "it doesn't matter"
00:44 joepurl has joined #perl6
00:44 luqui what matters is getting code in there, and writing it well
00:44 nothingmuch people who can't see 4 spaces sure as hell can't tell apart one bit of perl from another
00:44 nothingmuch if 4 is not enough white perl is probably just a dodgy mess of black
00:44 luqui (or rainbow if you use vim :-)
00:45 nothingmuch yes
00:45 * nothingmuch does
00:45 dduncan 4 spaces is relatively easy to see, its the 2 spaces that is hard to see
00:45 nothingmuch 2 spaces is such a silly indentation
00:45 luqui 2 spaces works for languages where you have to indent really deep often
00:45 dduncan 4 is a happy medium that is easy enough to see and has space for many indent levels
00:45 luqui which is none of them...
00:45 luqui (Java sometimes makes you go pretty deep)
00:46 renormalist 2 spaces is useful, when u try to keep within 80cols limit
00:46 luqui 4 spaces is fine in an 80 column limit
00:46 dduncan I've found I haven't had to indent more than 6-7 levels inside any function; usually I don't go beyond 3-4 levels
00:46 luqui you just need to abstract to the left of your screen more
00:46 luqui I consider it a feature :-)
00:46 brentdax has joined #perl6
00:46 rafl Is the built process currently broken? (r7009)
00:46 nothingmuch 5 is the silliest i've seen though
00:46 dduncan as it is, 4 spaces is the recommended size
00:46 coral once i ran into a 2MB file at 8 spaces that shrunk to 400K at 1 space
00:46 luqui dduncan, recommended by who?
00:46 coral numbers estimates
00:47 stevan if you are indenting more than 2-3 levels, you need to refactor, IMHO that is
00:47 dduncan recommended by Damian, and recorded in the Pugs documentation
00:47 luqui stevan, right, agreed :-)_
00:47 stevan so left side should really never be an issue
00:47 luqui ahh.  screw Damian.  Have you seen his code?
00:47 luqui anyway...
00:47 * stevan luqui is still bitter over the "MMD thing"
00:47 dduncan that book is a compilation of many people; Damian is just the compiler
00:47 luqui like I was saying, style isn't important; it's the code itself.  So I'm going to shut up.
00:48 luqui stevan, no, I'm still bitter after finding bugs in Parse::RecDescent and trying to fix them
00:48 stevan luqui: style does become important with multiple developers
00:48 dduncan my main point is that, within each file, one should be consistent
00:48 stevan dduncan: consistency is hard in a project like pugs
00:48 luqui stevan, hmm, I guess I can see that.  Can you give me a good "because" though?
00:48 stevan I give you credit for trying to bring it here
00:49 nothingmuch stevan: i'm also bitter.. Class::Delegation was *NOT* readable
00:49 stevan luqui: it is more important in non-OSS situations
00:49 stevan at $work
00:49 luqui stevan, how so? (/me has never worked in a strict non-OSS situation)
00:49 dduncan if you want to judge someone by their code, you should mainly look at their newest code, not stuff from 10 years ago etc
00:49 rantanplan_ has quit IRC (Read error: 110 (Connection timed out))
00:49 nothingmuch how would one detabify a source tree in place?
00:50 dduncan people improve over time, including me
00:50 luqui except for that Java job I had over the summer with the project manager who didn't trust version control so had very strict policies on bug free code and I ended up doing basically nothing as a result
00:50 stevan if you hire someone new,.. they should be able to read the code and "get" it without having to figure out which developer wrote which bit, etc
00:50 dduncan nothingmuch, "search and replace"
00:50 nothingmuch hah
00:50 stevan consistent style helps that
00:50 nothingmuch dduncan: eech
00:50 nothingmuch find | xargs perl -pi.bak -MText::Tabs -e '...'
00:50 dduncan or, perltidy
00:50 stevan *cough* unix snob *cough*
00:51 stevan Command-Shift-F
00:51 stevan search and repleace over a project
00:51 dduncan "search and replace" does the grunt work, but I look at it while doing so in case there are any funny things for manual correction
00:51 stevan then click the "use regexp' checkbox
00:51 luqui dduncan, newest code, like Getopt::Euclid?
00:51 luqui go take a look :-)
00:51 dduncan that function also has a "replace all", where you can do it file-wide in one click ... or with some editors, source tree wide in one click
00:52 dduncan use regexp is useful for non trivial things
00:52 dduncan I've used it many times
00:53 luqui stevan, I don't really get it.  I can read code whether they use cuddled ifs or not...
00:53 dduncan the point is, detabbing or entabbing can be a mostly automated task, just one or two commands to redo the whole file
00:53 nothingmuch damian's fuinctions are too big
00:53 luqui (I should rephrase, I *can't* read code whether or not they use cuddled ifs, because I'm not a very good reader)
00:53 stevan luqui: but you are luqui
00:53 nothingmuch my guess at Getopt::Euclid::import is around 150 lines
00:53 luqui look at convert_to_regex
00:53 stevan luqui: it's all about saving the $$ for the boss
00:53 luqui I guess so
00:54 * luqui doesn't want to be a commercial programmer :-(
00:54 nothingmuch dduncan: i don't trust perl tidy
00:54 dduncan I have to go outside and gather fruit while its still daylight, so will backtrack IRC then
00:54 stevan luqui: its not so bad when you get to set the rules ;)
00:54 dduncan nothingmuch, I've never used perltidy, but will be doing so tonight
00:54 luqui dduncan, be careful
00:54 luqui and watch your aligned assignments begone
00:54 dduncan of course, I'll go over the result very closely to confirm all's still right with the world
00:54 * nothingmuch was happy with expand... only problem is that i forgot to set tabstop to 8
00:55 nothingmuch so i retabbed, and then detabbed at 4
00:55 dduncan now, how easy was that?
00:55 nothingmuch find . -type f | xargs perl -pi.bak -MText::Tabs -e '$tabstops = 4; $_ = expand($_)'
00:55 luqui nothingmuch, there's also stuff you can do with vim to make it delete over four spaces at a time like tabs do
00:55 nothingmuch easy
00:55 luqui (only on alignments)
00:55 nothingmuch but it's annoying to edit
00:55 dduncan luqui, I've little used aligned assignments until now, but I'll be doing more of that after I perltidy
00:56 * stevan has just fallen in love with "local"
00:56 nothingmuch luqui: i can't have that mess
00:56 luqui stevan, how come?
00:56 nothingmuch it makes me confused about what's really in the file
00:56 nothingmuch stevan: what local?
00:56 luqui nothingmuch, come to think of it, I don't like it much either
00:56 luqui it's never correct about how much I want to indent...
00:56 stevan luqui: I just realized I can use it to rebind $?SELF and $?CLASS
00:56 luqui yumck
00:56 luqui :-)
00:56 stevan and remove a bunch of code
00:56 stevan and other not-so-nice bits in the metamodel
00:56 nothingmuch stevan++; # yes, local is very nice if used correctly
00:57 stevan shaved a couple seconds off the test run already
00:57 * luqui has only used it once, to override a predefined data structure in PPI
00:57 stevan local++
00:57 pasteling "nothingmuch" at 82.81.247.180 pasted "i need to teach svk about boring files" (6 lines, 175B) at http://sial.org/pbot/13111
00:57 nothingmuch hah
00:57 stevan luqui: this is probably the first time I have ever used it in 3 1/2 years of perl programming
00:57 * nothingmuch uses it quite often to do evil stuff
00:57 luqui :-p
00:58 nothingmuch how would I make svk forget all those files really quickly?
00:58 stevan revert?
00:58 nothingmuch yup
00:58 stevan thats svn talk ,... but I assume it works in svk
00:58 nothingmuch thanks
00:58 * stevan just started using svk himself
00:59 nothingmuch okay, checking in
00:59 stevan what?
01:00 nothingmuch Blondie
01:01 nothingmuch blammo
01:02 nothingmuch svk is working really hard =/
01:03 * rafl can't get svnbot to join #perl6 again. :-(
01:03 * stevan happily removed ~75 LOC and praises local once more
01:03 nothingmuch que es head rev?
01:03 nothingmuch oh nevermind, it finished
01:04 rafl No, the revision that worked for the last weeks. I don't know the exact revision..
01:04 rafl It connects, but it doesn't receive commands.
01:04 * nothingmuch actually meant "what is the current head revision" ;-)
01:05 nothingmuch http://svn.openfoundry.org/pugs/perl5/Blondie/
01:05 rafl Oh :-)
01:05 nothingmuch it's even slightly documented
01:05 nothingmuch as for tomorrow: http://search.cpan.org/~ingy/Inlin​e-0.44/C/C-Cookbook.pod#Evaling_C
01:05 nothingmuch i will have a go at compiling down to C
01:06 evalbot_7010 has quit IRC (Remote closed the connection)
01:06 evalbot_7012 has joined #perl6
01:06 renormalist has quit IRC ("using sirc version 2.211+KSIRC/1.3.11")
01:11 evalbot_7012 has quit IRC (Remote closed the connection)
01:11 evalbot_7013 has joined #perl6
01:28 brentdax has quit IRC (Read error: 110 (Connection timed out))
01:32 elmex has quit IRC ("gn8")
01:37 sleepster is now known as typester
01:44 rafl Is there something like Data::Dumper available for pugs/perl6 now?
01:45 luqui .perl
01:46 rafl Yes, of course. duh..
01:47 evalbot_7013 has quit IRC (Remote closed the connection)
01:47 evalbot_7014 has joined #perl6
01:47 rafl Someone should work on an XML::SAX implementation. That would be cool..
01:56 brentdax has joined #perl6
02:02 * luqui doesn't know what XML::SAX is
02:08 rafl luqui: http://search.cpan.org/~mse​rgeant/XML-SAX-0.12/SAX.pm
02:18 Juerd has quit IRC (Remote closed the connection)
02:18 Juerd has joined #perl6
02:25 jroc has joined #perl6
02:35 jroc has quit IRC ("Leaving")
02:45 rafl_ has joined #perl6
02:50 rafl__ has joined #perl6
02:50 rafl has quit IRC (Read error: 110 (Connection timed out))
02:52 nothingmuch has quit IRC (Read error: 113 (No route to host))
03:05 rafl has joined #perl6
03:05 rafl_ has quit IRC (Read error: 110 (Connection timed out))
03:17 rafl__ has quit IRC (Read error: 110 (Connection timed out))
03:26 rafl has quit IRC (Read error: 110 (Connection timed out))
03:47 Amnesiac has quit IRC ("Leaving")
03:56 chriskk has joined #perl6
03:56 xinming_BeiJing has joined #perl6
03:57 xinming_BeiJing hmm, anyone here can help me figuring out a problem related on network please? Or just give me a clue on where to ask...
03:57 buu I WILL MOCK YOU WITH EXCESSIVE SCORN AND DERISIION
03:57 Supaplex and I'll just fill in the balance
03:58 xinming_BeiJing ...
03:58 buu SPELLED CORRECTLY.
04:01 jp-autark has quit IRC (Read error: 104 (Connection reset by peer))
04:06 Supaplex problem solved!
04:06 buu Excellent.
04:09 evalbot_7014 has quit IRC (Remote closed the connection)
04:09 evalbot_7015 has joined #perl6
04:10 xinming_BeiJing hmm, so, anyone here can give me a suggestion on how to "test" the NIC is ok???
04:11 xinming_BeiJing This is Laptop I bought about 3 days ago... I want to know if the problem is caused by the bad "NIC"...
04:11 xinming_BeiJing Please help. :'(
04:11 buu No.
04:12 chriskk how do you install a CPAN  module such as CSV without terminal access?
04:12 buu Pray to jesus.
04:12 chriskk I'm trying to set something up on a shared hosting provider
04:13 chriskk buu: did that already
04:13 buu Sacrifice a goat?
04:13 chriskk hehe, not yet
04:14 dudley chriskk: you might want to ask in #perl
04:14 chriskk doh
04:14 chriskk thanks
04:23 xinming_BeiJing has quit IRC (Remote closed the connection)
04:23 xinming_BeiJing has joined #perl6
04:28 yinjieh has quit IRC (Read error: 104 (Connection reset by peer))
04:31 yinjieh has joined #perl6
04:52 webmind- has quit IRC (Remote closed the connection)
04:52 chriskk has quit IRC ()
04:57 webmind- has joined #perl6
05:01 nothingmuch has joined #perl6
05:06 xinming has quit IRC (Connection timed out)
05:08 xinming has joined #perl6
05:10 wilx` has joined #perl6
05:11 wilx has quit IRC (Read error: 104 (Connection reset by peer))
05:20 evalbot_7015 has quit IRC (Remote closed the connection)
05:20 evalbot_7016 has joined #perl6
05:25 SM_ax has joined #perl6
05:31 dudley has quit IRC ()
05:34 Aankhen`` has joined #perl6
05:44 spinclad ?eval my $x; undefine(\$x); $x.perl
05:44 evalbot_7016 Error: Can't modify constant item: VRef <Scalar>
05:44 spinclad ?eval my $x; undefine($x); $x.perl
05:44 evalbot_7016 '\\undef'
05:45 spinclad ?eval my Int $x; undefine($x); $x.perl
05:45 evalbot_7016 '\\undef'
05:45 davidra has joined #perl6
05:45 davidra is now known as jp-autark
05:45 spinclad ?eval my Int $x = 0; undefine($x); $x.perl
05:45 evalbot_7016 '\\undef'
05:51 penk has left
05:52 dduncan has quit IRC ()
05:54 nothingmuch has quit IRC (Read error: 113 (No route to host))
06:13 nothingmuch has joined #perl6
06:13 * luqui goes to bed
06:18 yinjieh_ has joined #perl6
06:18 nothingmuch ciao luqui
06:18 xinming_BeiJing has quit IRC (Read error: 104 (Connection reset by peer))
06:20 yinjieh has quit IRC (Read error: 110 (Connection timed out))
06:21 brentdax Is it reasonable to say that Perl 6 has (or "might have") the richest object system since CLOS?
06:25 saorge has quit IRC (Read error: 113 (No route to host))
06:27 justatheory has joined #perl6
06:28 justatheory has quit IRC (Client Quit)
06:30 GeJ has joined #perl6
06:30 Aankh|Clone has joined #perl6
06:33 Khisanth has quit IRC (Read error: 110 (Connection timed out))
06:34 Khisanth has joined #perl6
06:40 Detonite has joined #perl6
06:41 Detonite Ah. There we are.
06:47 nothingmuch hi!
06:47 nothingmuch welcome aboard
06:47 Detonite Hey [nothingmuch] :)
06:48 Detonite Oops, used to the brackets.
06:48 nothingmuch first step is '$svn_client = "svk" || "svn"; system($svn_client, "co", "http://svn.openfoundry.org/pugs");'
06:48 Detonite I will probably be lurking here a lot to see what's going on
06:49 Aankhen`` has quit IRC (Read error: 110 (Connection timed out))
06:50 joepurl has quit IRC ("Lost terminal")
06:50 joepurl has joined #perl6
07:05 larsen has joined #perl6
07:05 Lopo_ has joined #perl6
07:07 Lopo has quit IRC (Read error: 110 (Connection timed out))
07:07 Lopo_ is now known as Lopo
07:16 * Detonite thinks he gets it (finally)
07:19 Detonite has quit IRC ("Trillian (http://www.ceruleanstudios.com")
07:20 iblechbot has joined #perl6
07:24 Detonite has joined #perl6
07:32 evalbot_7016 has quit IRC (Remote closed the connection)
07:32 evalbot_7017 has joined #perl6
07:32 Detonite Gah, I hope I didn't break anything.
07:36 dada has joined #perl6
07:36 integral @eval "hope so"
07:37 integral ?eval "hope so"
07:37 evalbot_7017 'hope so'
07:37 * Detonite hides
07:39 Aankh|Clone is now known as Aankhen``
07:42 Detonite Can someone verify that?
07:42 GeJ Detonite: what was the r7017 about?
07:43 Detonite GeJ : I don't know, I didn't invoke it.
07:44 GeJ seems like you added a bunch of files
07:45 Detonite Yeah, that's what I was afraid of.
07:45 Detonite I don't know how they got there, my attempt was to get a copy of what was there.
07:45 Detonite I must've misunderstood the user manual.
07:46 GeJ Maybe someone can revert your commit if you don't feel like removing the files yourself
07:46 Detonite Let's see, I created a folder, made it into a repository, authenticated and imported.
07:47 Detonite GeJ : I'd love to remove them, but at this point I'm not so sure as to how, I might break something else ;)
07:47 GeJ I ain't no svn expert but from what I can see it's only about new files and directories
07:47 GeJ for your information : http://rt.openfoundry.org/Foundry/Project/​Source/index.html/pugs/revision/?rev=7017
07:48 GeJ those are all the files and dirs you created in the repo
07:48 Detonite Yes, I see them.
07:49 Detonite They should be gone now.
07:50 Detonite Right. I'm staying the heck out.
07:51 gaal has joined #perl6
07:51 GeJ looks good. Anyway, I think it's a pretty lame way to get "Detonite++"'s if you ask me ;)
07:51 gaal morning!
07:51 GeJ morning gaal!
07:52 Detonite GeJ : Can you elaborate? I'm not following.
07:52 gaal how do I get at the current parser state from a Prim?
07:53 evalbot_7017 has quit IRC (Remote closed the connection)
07:53 GeJ Well, after each commit in the repo, there's a bot claiming: "commiter++ | commit message.... ".
07:53 evalbot_7018 has joined #perl6
07:53 gaal ie what's the pugs equivalent to perl5's PL_compiling?
07:53 Detonite Ah. Well, it wasn't intended. Apologies for the trouble.
07:54 GeJ I can understand that you want the girls and the money from the fame of being part of pugs, but creating bogus files and then removing them just to get two "++" in the commit list. Well, you won't get any girls like this, son! ;)
07:54 Detonite Rats.
07:55 Detonite I'll just get coffee then and figure out what I did wrong.
07:55 Detonite Thanks for the help.
08:03 brentdax Detonite: If it makes you feel any better, when I first switched to SVK I accidentally checked in a copy of the entire source tree in a new subdirectory of the repo.  autrijus deleted it for me.
08:04 Detonite Eek
08:05 Detonite I didn't even expect to have the ability to modify anything.
08:05 brentdax It looks like you checked in the files making up your SVN repo...
08:06 Detonite I thought so, yeah.
08:06 brentdax If you gave it a login, you would be able to add stuff.
08:06 brentdax (So that's what an FSFS repo looks like...interesting.)
08:06 Detonite I thought I removed them?
08:07 brentdax You did, but if I ask to look at revision 7017 specifically I can still see them.  Nothing's ever really deleted from a Subversion repository.
08:07 Detonite I figured. Okay.
08:08 nothingmuch has quit IRC (Read error: 110 (Connection timed out))
08:08 Detonite I am going to try to checkout now.
08:09 gaal any lambdaheads about?
08:12 integral hmm?
08:13 gaal hey. i'm implementing lexical pragmas, and there's a nice interaction i need between perl code and the parser for it to work.
08:14 gaal from a Prim (that only ever gets called in a BEGIN block), how do i influence something in the praser?
08:14 gaal *parser
08:15 integral hmm, I have no idea.  You probably need to look at how BEGIN blocks, and sub's themselves are implemented
08:15 Detonite Um, I'd like to make sure of something...
08:16 xinming has quit IRC (Read error: 110 (Connection timed out))
08:16 Detonite According to the manual (TortoiseSVN) it says that, if I want to obtain a local copy, I should check out. Ok. So I created a folder, and checked out. Now I am unsure if anyone would experience negative sideeffects because of that? I don't trust this one bit.
08:17 integral people shouldn't :-/  A checkout just writes the current versions of the files into a directory
08:17 xinming has joined #perl6
08:17 gaal code in BEGIN doesn't influence the parser state much, although it can somehow communicate with it: if you do BEGIN { exit } the parser knows it oughta terminate.
08:18 gaal hmm, maybe i indeed should do something like that -
08:18 Detonite integral : Ok. What would be the preferenced way of browsing around?
08:18 integral gaal: I think it uses unsafePerformIO to lift the Eval monad into the parser
08:18 integral Detonite: umm, checking out should be no problem
08:18 gaal integral, can you help me understand how the VControl thing works?
08:18 Detonite Ok. Load off my mind. I was afraid I had accidentally locked the current version repository or something.
08:19 integral gaal: I don't know anything about VControl, sorry
08:19 gaal seen autrijus
08:19 gaal seen iblech
08:19 gaal bots are out? :(
08:19 gaal thanks, integral!
08:20 gaal okay maybe you can help me just figure this thing out:
08:20 gaal Parser.hs, line ~921
08:20 gaal possiblyExit
08:21 gaal how come its argument is (Val (VControl (ControlExit exit))) in the case you want to exit?
08:21 integral the unsafeEvalExp is the key
08:21 rafl has joined #perl6
08:21 gaal oh, i get *that* bit: from the parser TO Eval
08:21 gaal it's the other direction i don't understand :)
08:21 gaal because this:
08:21 integral (Val (VControl (ControlExit exit))) must be the syntax tree produced by a parse for exit
08:21 gaal BEGIN { 2+4; exit }
08:21 gaal also works
08:22 gaal but possiblyExit isn't run on every node, is it?
08:22 integral hmm, no, and it's not recursive either
08:22 gaal it doesn't look like it is - it looks like it's runon the result of the BEGIN block
08:22 gaal whihc of course would be wrong
08:22 integral I think it's put whereever something might exit, per statement, maybe
08:23 gaal but pugs does behave correctly.
08:24 SM_ax has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
08:24 SM_ax has joined #perl6
08:24 gaal the only caller of that function is ruleClosureTrait, and i don't see where it iterates over statements
08:26 integral hmm, well it's run on the result of checkForIOLeak
08:26 integral hrm
08:27 gaal oh i think i maybe sorta understand. it's run on the whole block
08:28 gaal and op1Exit stops the execution and returns a VControl . ControlExit
08:28 integral ah
08:28 gaal with some continuation voodoo :)
08:28 gaal so the signalling is with a return value that's out of band for regular perl returns
08:29 gaal which is clever, but not useful to me, because i don't need to be signalled, i need to be called immediately i think.
08:31 gaal this is a transgressive feature!
08:41 gaal it'd be easier to write if "use" were separated into "apply pragma" and "load module" keywords; and "apply pragma" could only install one value at a time.
08:42 gaal because then the rule for pragma could just install the reduction of the value returned by the pragma init hook.
09:03 Detonite_ has joined #perl6
09:20 Detonite has quit IRC (Read error: 110 (Connection timed out))
09:23 dk has joined #perl6
09:27 joepurl has quit IRC (Remote closed the connection)
09:41 nothingmuch has joined #perl6
09:42 nothingmuch can anyone translate the latest mail from openfoundry?
09:42 Detonite_ Heh, yeah, I wondered what it meant too. It looks like some kind of contest.
09:57 scook0 has joined #perl6
10:03 dk has quit IRC (Read error: 104 (Connection reset by peer))
10:29 xinming has quit IRC (Read error: 104 (Connection reset by peer))
10:48 xinming has joined #perl6
11:21 iblechbot has quit IRC (Read error: 110 (Connection timed out))
11:25 gaal does anyone have a link to brentdax's email about lessons learned from Kontent? I've misplaced it
11:29 nothingmuch ingy: ping
11:40 nothingmuch http://www.vidarholen.net/contents/wordcount/
11:44 gaal "A word is counted if it appears in any context, even if part of another word": lame. didn't they hear of \b?
11:45 wolverian BTW, MS's .NET regexes are apparently really close to Perl's. that's pretty nice. I haven't seen any difference yet, in fact, except for named captures.
11:45 wolverian anyway, have to go now to get some coffee. :)
11:53 Limbic_Region has joined #perl6
11:55 gaal no doubt they adapted PCRE?
12:06 Limbic_Region cool luqui started a journal and has put like - stuff in it
12:18 kolibrie has joined #perl6
12:20 rantanplan_ has joined #perl6
12:27 iblechbot has joined #perl6
12:48 Juerd gaal: PCRE is GPL, is it not?
12:49 Juerd Oh, it has its own license
12:50 gaal it's BSDish.
12:50 Juerd Yea
12:51 gaal oh, interesting: Google contributed c++ wrapper code to it.
12:51 gaal Yay, no more compilation errors on my machine. Replacing the CPU helped :-)
12:51 Detonite_ That's some drastic measures :)
12:52 gaal Yeah, GHC was really harsh :)
12:52 Detonite_ Dunked in a heavier CPU while you were at it?
12:53 gaal How warm is it okay for a cpu to be? Maybe the fan sucks.
12:53 Juerd Depends on the cpu type
12:53 gaal Nope, it was under warranty. It's not a bad CPU
12:53 Detonite_ Eh, 60 degrees centegrade is acceptable AFAIK... I wouldn't make it much higher.
12:53 gaal Pentium 4 Prescott 3GHz
12:53 Detonite_ But that's personal pref.
12:53 gaal it's under 50 now.
12:53 Juerd gaal: Should easily be able to go up to 70 or even 80.
12:54 Detonite_ You should be fine.
12:54 gaal good, next time i make clean i'll see if it rises :)
12:54 gaal does windows call HLT?
12:55 gaal wow, with ghc working it goes to 62.
12:58 gaal I'm giving a talk about p6 today intended for p5 programmers. what's your favorite "this code looks better in p6" example?
12:58 Jooon has left
12:59 * nothingmuch makes some lame attempts at statically tyyping a Blondie AST for the PIR and C runtimes
12:59 Detonite_ Eh, I dunno, I just got here :S but any chance that talk can be read or streamed somewhere?
12:59 nothingmuch i intend to make the thunk side of each app return the context it enforces (This trickles all the way down to the prims - everything else is pass through)
13:00 Juerd gaal: 62 should still work well
13:00 nothingmuch when the rvalue type of an app param is != the lvalue type of the thunk it applies to, an App( Coerce(... ), RValue ) is put instead of the RValue
13:00 Juerd gaal: Do note that CPU temperature isn't the only important thing. Very often, chipsets get overheated
13:00 Juerd gaal: They're active at the same moments, so it often looks like a CPU problem.
13:01 nothingmuch higher order functions are not yet taken into account though
13:01 gaal ACK.
13:01 Detonite_ SYN
13:02 gaal Detonite_, don't think so. Also the talk isn't going to be in English :)
13:02 gaal sorry :)
13:02 Detonite_ What language will it be given in?
13:02 Juerd gaal: But you know both languages, *hint*
13:02 gaal Hebrew, as this is for our local Israel.pm meeting
13:02 Detonite_ Ah, that would be difficult.
13:03 * Detonite_ inquires for translation possibilities
13:03 gaal heh :) well, the talk isn't advanced: it's targeted at coders who might be scared of learning a new language
13:04 gaal also i tend not to put the brunt of my stuff in the slides
13:04 * Detonite_ waves. Exactly! over here :)
13:04 gaal but we'll see
13:04 gaal Detonite: come to YAPC::Israel :)
13:05 Detonite_ I hope to make it to YAPC::EU , Israel will be somewhat more complicated to attend to :) But good luck with that talk.
13:05 gaal I haven't decided what I'll be talking about there yet, but this kind of thing is one possibility
13:05 gaal also, P6 for managers (we're looking into inviting "the industry"
13:05 gaal )
13:05 Detonite_ Heck, Haskell tried to fry my poor brain as it is :)
13:05 nothingmuch oh, i see how it can work
13:06 nothingmuch type object does Eq
13:06 nothingmuch if it's != a coercion node is inserted
13:06 nothingmuch coercion can only happen if the type is naive
13:06 nothingmuch naive types are for data
13:06 nothingmuch complex types are for functions
13:12 elmex has joined #perl6
13:13 Forth has joined #perl6
13:13 Qiang has joined #perl6
13:14 gaal ?eval my %h = <1 2 3 4>; for %h.kv -> $k, $v is rw { $v *= 1.11 }
13:14 evalbot_7018 Error: Can't modify constant item: VStr "2"
13:14 gaal can't i alias into the hash?
13:16 gaal that looks like a bug to me.
13:25 Juerd Sure does
13:26 Juerd ?eval my %h = 1..4; for %h { .value *= 1.11 } %h.perl
13:26 evalbot_7018 Error: Cannot cast into Array: VRef <Hash>
13:26 Juerd ?eval my %h = 1..4; for %h { .value *= 1.11 }
13:26 evalbot_7018 Error: Cannot cast into Array: VRef <Hash>
13:26 Juerd Array?
13:26 Juerd What array.
13:26 Juerd There's no array there.
13:27 Juerd ?eval my %h = 1..4; %h.perl
13:27 evalbot_7018 '{(\'1\' => 2), (\'3\' => 4)}'
13:27 Juerd ?eval my %h = 1..4; %h.pairs
13:27 evalbot_7018 (\('1', 2), \('3', 4))
13:28 Juerd ?eval my %h = 1..4; list %h
13:28 evalbot_7018 {('1' => 2), ('3' => 4)}
13:28 Juerd Weird inconsistenc representation of pairs, but otherwise it looks sane enough
13:28 Juerd ?eval my %h = 1..4; for %h.pairs { .value *= 1.11 }
13:28 evalbot_7018 Error: Can't modify constant item: VInt 2
13:28 Juerd ?eval my %h = 1..4; for list %h { .value *= 1.11 }
13:28 evalbot_7018 Error:  unexpected "f" expecting ";", statements or end of input reserved word
13:28 Juerd Anyway
13:29 nothingmuch has quit IRC (Connection timed out)
13:29 Juerd It's not just .kv that doesn't return aliases
13:29 Juerd ?eval my %h = 1..4; for %h.values { $_ *= 1.11 }
13:29 evalbot_7018 Error: Can't modify constant item: VInt 2
13:32 Detonite_ ?eval print "1";
13:32 evalbot_7018 1bool::true
13:34 Aankhen`` has quit IRC (Connection timed out)
13:34 gaal so, bug, yes?
13:35 gaal pugsbugsing.
13:38 sri__ has quit IRC (Remote closed the connection)
13:38 gaal ?eval my %h = 1..4; for %h.values -> $v is rw { $v += 1 }
13:38 evalbot_7018 Error: Can't modify constant item: VInt 2
13:42 fglock has joined #perl6
13:42 evalbot_7018 has quit IRC (Remote closed the connection)
13:43 evalbot_7019 has joined #perl6
13:43 sri__ has joined #perl6
13:48 sri__ has quit IRC (Remote closed the connection)
13:49 sri__ has joined #perl6
13:50 Juerd gaal: The default is "-> $_ is rw"
13:50 Juerd (Unfortunately.)
13:52 gaal out of compatibility concerns no doubt.
13:52 Juerd Sort of
13:52 Juerd It should be "<-> $_", which would be the same
13:52 Juerd But much easier to explain
13:53 Juerd It's easier to explain that <-> is the default and that $_ is the default, than to explain that -> is the default, and that $_ is the default, and that the default is "is rw", but only when applied on the default as default, and not even on the default when explicitly mentioned.
13:54 gaal heh
13:54 Detonite_ Aieee
13:54 Juerd Besides, for @foo -> $foo is rw, $bar is rw, $baz is rw, $quux is rw { ... } sucks
13:54 Juerd When compared to for @foo <-> $foo, $bar, $baz, $quux { ... }
13:55 elmex has quit IRC ("leaving")
13:55 gaal hmm, that's special syntax just for 'is rw'. why not an "areall" trait-applier?
13:55 gaal but: i must finish my talk :)
13:59 Juerd "is rw" is so common that it deserves special syntax.
13:59 Juerd In this specific form
14:01 scook0 has quit IRC ("Leaving")
14:08 sri__ has quit IRC (Remote closed the connection)
14:09 nnunley has joined #perl6
14:10 Forth has quit IRC ("leaving")
14:12 gaal if I have submethod BUILD { $class_data++ }, the usual instance initialization isn't hurt, right?
14:18 evalbot_7019 has quit IRC (Remote closed the connection)
14:18 evalbot_7020 has joined #perl6
14:19 SM_ax has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
14:31 sri__ has joined #perl6
14:35 metaperl Juerd: ping?
14:37 dudley has joined #perl6
14:38 dudley Is the perl.org Pugs repo down?
14:38 dudley I just noticed that I haven't gotten RSS updates for the last few commits
14:41 dudley The repo is up, but it's about 5 revisions behind
14:44 dudley I miss svnbot, too. I'm way too lazy to do an 'svk log' every 15 minutes.
14:46 Khisanth your irc client does not have scripting capabilities? :)
14:50 fglock has left "Fui embora"
14:51 dudley Khisanth: Well, it does, but I try to avoid AppleScript if I can. :-)
14:52 Juerd metaperl: pong
14:52 Khisanth hrm I could probably directly use the SVN bindings in the script
14:55 Detonite_ has left
14:57 joepurl has joined #perl6
14:58 dudley It's based on irssi, so I'm sure there's a way to use Perl, too.
15:00 G2 has joined #perl6
15:00 dudley has quit IRC ()
15:01 dudley has joined #perl6
15:04 Juerd metaperl: ping :)
15:07 G2 has quit IRC ("oops")
15:11 xinming has quit IRC (Read error: 110 (Connection timed out))
15:13 xinming has joined #perl6
15:26 bd_ has quit IRC (" ")
15:38 dudley has quit IRC ()
15:43 Aankhen`` has joined #perl6
15:52 brentdax has quit IRC (Read error: 110 (Connection timed out))
15:54 saorge has joined #perl6
15:54 saorge has quit IRC (Read error: 104 (Connection reset by peer))
15:54 saorge has joined #perl6
15:54 saorge has quit IRC (Client Quit)
15:55 saorge has joined #perl6
15:55 saorge has quit IRC (Client Quit)
15:57 fglock has joined #perl6
16:01 saorge has joined #perl6
16:05 TheMaaaa has joined #perl6
16:05 dudley has joined #perl6
16:11 fglock what's the right syntax for (1...).map:( $x, $y ){ $x+$y }
16:13 svnbot6 has joined #perl6
16:13 svnbot6 r7018 | Detonite++ | Removed file/folder
16:13 svnbot6 r7018 | Detonite++ | Accidental add
16:13 svnbot6 r7019 | gaal++ | pugsbug test for hash value being readonly even in aliases
16:13 svnbot6 r7020 | fglock++ | * journal update - added "Blondie" and an explanation of cperl6-mode
16:18 xinming has quit IRC (Read error: 110 (Connection timed out))
16:18 svnbot6 r7021 | iblech++ | * Usual svn props.
16:18 svnbot6 r7021 | iblech++ | * t/operators/filetest.t: Extremely minor cosmetical fixes.
16:19 xinming has joined #perl6
16:20 evalbot_7020 has quit IRC (Remote closed the connection)
16:20 evalbot_7021 has joined #perl6
16:28 dada has quit IRC ("Ya la meta ilegamos cantando o no ilega ninguno")
16:32 elmex has joined #perl6
16:37 saorge has quit IRC ("Leaving")
16:39 dduncan has joined #perl6
16:43 ods15 has quit IRC ("Changing server")
16:43 ods15 has joined #perl6
16:55 xinming has quit IRC (Connection timed out)
16:57 xinming has joined #perl6
17:01 nnunley has quit IRC ("This computer has gone to sleep")
17:06 evalbot_7021 has quit IRC (Remote closed the connection)
17:06 svnbot6 r7022 | iblech++ | * t/pugsbugs/value_alias_readonly.t: Added more tests.
17:06 svnbot6 r7022 | iblech++ | * t/builtins/arrays_and_hashes/{pairs,kv}.t: Added tests that .pairs and .kv
17:06 svnbot6 r7022 | iblech++ |   returns aliases, similar to what gaal has done with .values.
17:06 svnbot6 r7022 | iblech++ | * PIL2JS: Prelude::JS::Keyed: Fixed .values and .kv to return aliases.
17:06 svnbot6 r7022 | iblech++ | * docs/journal/2005-09-15.kwid: Noted this in the journal.
17:06 evalbot_7022 has joined #perl6
17:07 penk has joined #perl6
17:10 SM_ax has joined #perl6
17:10 SM_ax has left
17:14 vigilante has quit IRC (Read error: 104 (Connection reset by peer))
17:15 justatheory has joined #perl6
17:16 evalbot_7022 has quit IRC (Remote closed the connection)
17:16 evalbot_7023 has joined #perl6
17:18 svnbot6 r7023 | iblech++ | * t/builtins/arrays/slice.t: Added tests for binding array slices
17:18 svnbot6 r7023 | iblech++ |   (@array[1,2] := ($foo, $bar)).
17:18 svnbot6 r7023 | iblech++ | * t/builtins/hashes/slice.t: Added tests for binding hash  slices
17:18 svnbot6 r7023 | iblech++ |   (%hash<a b>  := ($foo, $bar)).
17:31 Amnesiac has joined #perl6
17:46 SM_a1 has joined #perl6
17:47 vcv- has quit IRC (Read error: 104 (Connection reset by peer))
17:48 vcv- has joined #perl6
17:50 nnunley has joined #perl6
17:50 SM_a1 has left
18:07 Detonite has joined #perl6
18:09 hexmode has quit IRC (Remote closed the connection)
18:10 hexmode has joined #perl6
18:20 Aankh|Clone has joined #perl6
18:21 rantanplan_ has quit IRC (Remote closed the connection)
18:25 nnunley2 has joined #perl6
18:34 sapper has joined #perl6
18:35 nnunley has quit IRC (Read error: 110 (Connection timed out))
18:39 Aankhen`` has quit IRC (Read error: 110 (Connection timed out))
18:51 nothingmuch has joined #perl6
19:00 beppu has joined #perl6
19:02 * Aankh|Clone goes to sleep.
19:02 Aankh|Clone G'night.
19:02 Aankh|Clone has quit IRC ("Quote: "All generalizations sucks (including this one)" [Time wasted online: 42mins 17secs]")
19:19 justatheory has quit IRC ()
19:27 GoCooL has joined #perl6
19:41 Detonite has quit IRC (Read error: 110 (Connection timed out))
19:50 rantanplan_ has joined #perl6
19:54 Amnesiac has quit IRC ("Leaving")
20:01 wilx` has quit IRC (Read error: 104 (Connection reset by peer))
20:01 wilx has joined #perl6
20:14 nnunley3 has joined #perl6
20:23 nnunley2 has quit IRC (Read error: 111 (Connection refused))
20:31 Limbic_Region has quit IRC ("tiuq\")
20:32 justatheory has joined #perl6
20:35 SamB has quit IRC (Connection timed out)
20:44 SamB has joined #perl6
20:59 maaaa has joined #perl6
20:59 TheMaaaa has quit IRC (Read error: 104 (Connection reset by peer))
20:59 maaaa is now known as TheMaaaa
20:59 TheMaaaa has quit IRC (Client Quit)
21:00 gaal evening
21:01 fglock hi gaal
21:01 gaal hey fglock!
21:02 gaal maybe you have an idea about my parser backdoor?
21:03 fglock ?
21:03 gaal what i need is in the backlog, but to summarize: i need to influence the AST as I am building it, from Perl code that runs effectively in BEGIN -- that is, in an init hook of a moduel
21:03 gaal module
21:04 fglock I'm looking in the backlog
21:05 gaal i know how it can be done in the c implementation of perl5 (effectively, a global pointer to the parser's data), but not here.
21:08 fglock gaal: I'm probably not the right person to answer this - but I think BEGIN { 2+4; exit } will not be executed during the parsing stage - is this what you mean?
21:09 gaal i eventually figured out the BEGIN { exit } case
21:09 gaal it isn't what i want
21:09 mindsuck_ has joined #perl6
21:10 gaal do you know how "use" works in perl5? (not meant to offend if this is obvious to you - many lambdaheads here)
21:10 fglock ok
21:11 gaal so think of a module that isn't just a module with import hooks: it's a pragma
21:11 gaal code1; use pragma; code2
21:11 mindsuck_ Anyone knows where to get kwid2pod? I would like to compile this documentation: http://perlcabal.org/~nothingmuch/harrorth/
21:11 gaal code2 might behave differently than code1, because the pragma influences the interpreter
21:12 gaal the feature i'm working on is to make the effect of this lexical, not dynamic or global
21:13 gaal the parser parses code1 (but doesn't execute it), then loads and parses the content of pragma, *and then runs its &import*, and then parses code2, and finally runs code1 and code2
21:14 gaal the idea is to change something in the parser from within &pragma::import, so that when it goes back to parse code2, it knows something it didn't previously know.
21:15 gaal (and to make the scope of this lexical, so that code1; { use SomePragma } code2 is *effectively* a noop  --- but i know how to do that already)
21:15 fglock gaal: it would be possible to influence the behaviour after the AST - there will be the optimizer, and the runtime
21:16 gaal well, that isn't necessarily enough: consider use strict
21:16 gaal you might conceivably want to generate different AST
21:17 gaal or throw a compile error just because a pragma was in effect.
21:18 gaal so i want to implement a Pugs::Internals::install_pragma_value (that may be called only at compile time), that tells the parser something about the pragma's data.
21:19 fglock you would be able to implement "use strict" in Prelude (for example)
21:19 gaal (btw the design for this is all MJD's: http://www.xray.mpe.mpg.de/mailing-lis​ts/perl5-porters/2003-09/msg00112.html )
21:20 integral my only thought was to have a global mutable cell, and during execution of BEGIN you add all the activated pragmas to it, and then once you've run the BEGIN, you get the contents of the cell, and those are used to build the Pragma node in the AST
21:21 gaal integral: okay, how do i do that? :)
21:21 integral s/global mutable cell/TVar/. No idea, but...
21:21 integral during a BEGIN have access to some $?INTERPRETER object with methods to do stuff like add a pragma to the context that the BEGIN itself is in
21:22 integral that interpreter could also give you access to the lexical pad that's being built, and things
21:23 gaal how?
21:23 gaal i mean, sure, i want that
21:23 gaal how do i make it?
21:24 integral hmm, add some state into the Eval monad to hold the stuff, and then just modify BEGIN to collect it I guess
21:24 integral hmm, but Eval hides STM I think, so a TVar would work
21:26 xinming has quit IRC (Read error: 110 (Connection timed out))
21:27 gaal so it's just add a member to Eval, and add a Prim that asks it?
21:27 integral should be I think
21:28 iblechbot has quit IRC (Success)
21:28 gaal and the code that runs BEGIN, after the actual run
21:28 gaal possiblyExit =<< unsafeEvalExp (checkForIOLeak fun)
21:29 gaal does, err, getRuleEnv ?
21:29 integral hmm, not sure, I think unsafeEvalExp might need another variant which returns what the Eval has collected as the pragmas
21:30 gaal oh, can it be as simple as returning a list rather than just "Val val"?
21:31 gaal (Pugs.Parser.Unsafe:47)
21:32 integral pair? (Val val, [Pragma]) maybe
21:32 gaal okay, cool. i'll also grep around for how to use TVars. thanks
21:33 jeh_ has joined #perl6
21:33 sapper has quit IRC (Read error: 104 (Connection reset by peer))
21:33 mindsuck_ Anyone knows where to get kwid2pod? I would like to compile this documentation: http://perlcabal.org/~nothingmuch/harrorth/
21:36 fglock mindsuck_: sorry, no
21:36 mindsuck_ :(
21:40 justatheory has quit IRC ()
21:45 * fglock wonders if 'state $?STRICT is begin(1)' makes sense or is even valid syntax
21:46 justatheory has joined #perl6
21:46 fglock time to leave
21:46 fglock has left "Fui embora"
21:49 kolibrie has quit IRC ("leaving")
22:00 hexmode has quit IRC (Remote closed the connection)
22:09 GoCooL i've a quick question - perl6 is the next version of perl, parrot is the virtual machine that produces the perl byte code, pugs - i'm not sure what it is and the perl6 compiler is written in haskel, right?, please correct me if i'm wrong
22:10 gaal parrot *runs* the bytecode produced by perl, but other than that, all correct.
22:10 GoCooL the perl6 compiler produces the perl byte code then i guess and what is pugs?
22:11 integral and pugs isn't "the" perl6 compiler at the moment.  It's just "a" perl6 compiler (the only one, but...)
22:16 GoCooL so if pugs is a perl6 compiler that produces the byte code, do i always have to convert the byte/object code to an executable (like C, C++) before running them? in other words would i not be able to run a perl6 script directly like so - './perl6_script.pl'
22:18 GoCooL ?
22:19 dduncan I'm now using perltidy for the first time; however, given certain issues with it, I'm thinking of using it mainly in advisory mode ... it is run as usual, creating a copy of the input file with a .tdy extension; I then diff the files and manually make (or copy and paste) the changes that I like ... but in the process, I also figure out how to configure perltidy or tweak my file so that running perltidy produces the result I want
22:22 dduncan this all refers to my own programs of course ... I'm not doing this with other peoples'
22:23 integral GoCooL: it's very similar to the Java and python and haskell models.  You can of course just have the bytecode in memory and interpret directly from that
22:23 integral and all the parts can be compiled into one binary
22:27 GoCooL thanks, that sort of makes sense, any links that maybe explains this entire process in detail?
22:30 integral hmm, I think there's a pretty picture...
22:30 integral hmm, can't find it though
22:31 * integral &
22:32 dudley GoCooL:  http://www.pugscode.org/ima​ges/simple-compilation.png
22:32 dudley There's the pretty picture
22:34 GoCooL sweet, thanks, i'll mess with it before i get more questions!
22:35 dudley GoCooL: I had to lurk for about a month before I started to get an idea of what was going on :)
22:38 GoCooL makes me feel a little better because the picture apart from being pretty, to be honest does not make much sense as of now, but i'll investigate more
22:43 dudley GoCooL:  I had a hard time until I realized that Pugs, Perl 6, and Parrot are not really different faces of the same, but three entirely different projects.
22:48 GoCooL so is Pugs a Perl6 compiler or interpreter?, godddd my head is reeling with confusion!
22:48 dudley GoCooL: both.
22:50 dudley Pugs compiles Perl 6 code to an intermediate form called PIL
22:51 dudley which can then be interpreted by one of the various backends.
22:52 dudley I tend to think the distinction between compiler and interpreter is pretty artificial anyway, but that's a different conversation altogether.
22:52 dudley :)
22:54 dudley But one of the backends is the Pugs backend, which (like the compiler) is written in haskell.
22:55 gaal are you familiar with how java does it?
22:55 gaal think of perl as a jre that's actually a jdk
22:55 gaal so that you can compile more code as you go
22:56 gaal this is actually true for perl5 as well - you can do "eval" after all
22:57 gaal but you can see that the jre and the javac don't have to be the same OS process, and there's no immediate reason why they should be written in the same language
22:57 gaal a compiler, purely, is just a function from one string (source code) to another (object code, in x86, bytecode, whatever)
22:58 gaal though in dynamic languages you can access the compiler from the runtime.
22:58 gaal bbl
22:59 GoCooL 'access the compiler from the runtime' - that is achieved, as u mentioned, by eval, right?
23:00 GoCooL so from what is said here and also the docs, i gather that
23:02 GoCooL PIL is the intermediate code produced by the parser called the Abstract Sytax Tree
23:02 GoCooL is that right or am i wayyyyyy off?
23:05 GoCooL and the AST is then processed by the compiler into the object/byte code
23:06 GoCooL so if that were true, pugs does the equivalent of the parser and the compiler
23:06 GoCooL i wonder i'm making any sense at all
23:11 dudley You've pretty much got the idea.
23:11 GoCooL ok
23:12 dudley pugs does the whole thing, parser, compiler, and interpreter
23:14 jeh_ has quit IRC ("Leaving")
23:16 GoCooL has quit IRC ("Leaving")
23:18 metaperl has quit IRC ("KVIrc 3.2.0 'Realia'")
23:28 joepurl has quit IRC (Read error: 110 (Connection timed out))
23:33 verejeff has joined #perl6
23:33 verejeff has left
23:36 nothingmuch has quit IRC (Read error: 113 (No route to host))
23:43 * luqui is willing to work on MetaModel.hs and MetaModel.scala now (more the former than the latter; I have to learn Scala better)
23:44 dudley cool!
23:45 dudley I'm learning Scala better by playing with the metamodel :)
23:45 dudley but it's a lot more fun to port Haskell->Scala than Perl5->Scala
23:46 luqui really?
23:46 luqui is the metamodel really that perl5ey?
23:46 dudley I'm just not a perl5 programmer
23:46 luqui ahh
23:47 luqui where is the most recent metamodel?
23:48 dudley perl5/Perl6-Metamodel2.0
23:48 dudley That's the one stevan's working on right now
23:48 luqui it's... um... teeny
23:48 luqui no it's not
23:49 luqui it's just in a bunch of .pl files.  wtf?
23:49 dudley You kind of have to look through it to get it.
23:50 dudley It's a sequential bootstrapping process, and at the end you get a metamodel
23:50 * luqui likes the .pl names
23:50 dudley Yeah, me too. Guess who came up with that...
23:51 luqui you?  autrijus?
23:51 dudley autrijus sketched it out in src/PIL/MetaModel.hs
23:51 luqui ahh
23:51 dudley Causing a run on the gnosticism page on wikipedia, I'm sure
23:52 dudley (I know I had to look them up)
23:53 ajs has quit IRC (Read error: 110 (Connection timed out))

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo