Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-03-08

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:02 jisom joined perl6
00:07 pasteling "putter" at 66.30.119.55 pasted "fglock: this works..." (6 lines, 123B) at http://sial.org/pbot/16206
00:19 Shachaf joined perl6
00:22 mako132_ joined perl6
00:23 TimToady fglock: syntax "rule word rx:perl5{^([_[:alnum:]]+)}" is not legal because :foo{x} interprets {x} as a closure or hash argument to :foo.
00:24 vborja joined perl6
00:25 TimToady (also you can't combing "rule" and "rx" like that.  A rule requires a block.)
00:39 putter rule word :perl5 {^([_[:alnum:]]+)}  ?
00:42 TimToady That's fine.
00:44 TimToady Except we also changed it to :P5...  But in any event it doesn't
00:44 TimToady take effect till inside the {...}.
00:44 Juerd TimToady: Is there a specific reason for having both rx and rule?
00:45 TimToady A rule is supposed to look like a declaration in void context, and
00:45 TimToady rx// is supposed to look like a quote-like thingie.
00:45 TimToady the rx form lets you pick delimiters.
00:46 Juerd Why could the rule form not let one pick delimiters?
00:46 TimToady The rule form doesn't...
00:46 Juerd Note by the way that I like the syntax, but couldn't answer this question when someone asked me today :)
00:46 TimToady I dunno--we don't let people pick their delimiters on sub {...} and
00:46 TimToady such...
00:47 Juerd Because those are code, and code is always in { } :)
00:47 TimToady A rule is just a method declaration till you get inside the {...}.
00:47 Juerd I see
00:47 TimToady Except we also use :foo instead of "is foo".
00:47 TimToady It's not terribly consistent...
00:48 Juerd We could have :foo to mean is foo for methods too, perhaps, for consistency
00:48 TimToady I think that could only lead to great ugliness...
00:48 Juerd No uglier than in rules :)
00:48 TimToady The only reason we allow it on rules is to look like rx//
00:49 Juerd It's the same syntax :)
00:49 Juerd But... isn't the point of rule to look *different* than rx?
00:49 Juerd Otherwise I really don't get it :)
00:50 TimToady I'd be more inclined to allow "is P5" on a rule than allow :rw on a method...
00:50 Juerd Hmm; I see
00:50 TimToady But as I say, it's not terribly consistent...
00:51 * Juerd files this under aesthetics :)
00:51 Juerd An underused folder in Perl anyway...
00:51 TimToady More like anaesthetics... :-)
00:51 Juerd I try to use the positive words ;)
00:53 Juerd Have you seen the Coverity report, by the way? Perl scores quite well :)
00:53 TimToady Whazzat?
00:53 TimToady Is that the security thing just mentioned on /.?
00:54 Juerd Coverity is some closed source lint-like security analysis tool; Probably as a marketing trick, they ran open source projects through it, including Perl.
00:54 Juerd Probably; I haven't seen Slashdot.
00:54 Juerd An overview of the results is posted at http://scan.coverity.com/
00:54 TimToady Yes, official name is "Open Source Hardening Project" by Coverity.
00:55 jisom they don't give a perl version
00:55 Juerd I never remember such names if they don't have cute acronyms
00:55 Juerd jisom: 7
00:55 jisom 5.7.0?
00:56 Juerd jisom: 7.4.2
00:57 wolverian meh, I can't believe xmms would have that few defects. it's obviously crap. :)
00:57 jisom there's a perl 7.4.2?
00:57 Juerd wolverian: That's what they get for forgetting to focus on usability :)
00:57 jisom think that openssl has 66....
00:58 Juerd jisom: Didn't you know that Perl 6 was obsolete? ;)
00:58 jisom well, it is like four years old?
00:58 Juerd jisom: Depends on when you start counting
00:58 jisom 0
00:58 Juerd When.
00:58 jisom like a normal person
00:59 jisom oh
01:00 jisom it'd be nice if they did this kind of report for windows, osx, linux, freebsd, openbsd, etc....see how they compare, I hope the DoD can keep a secret
01:00 jisom well, DHS
01:00 TimToady What's an "Outstanding Defect Report"?
01:01 Juerd TimToady: Well written, I'd say :)
01:01 jisom something their heuristics say is a bug most likely
01:02 jisom like a compiler warning :)
01:02 TimToady or passing a null-terminated string to a syscall expecting a null-terminated string.  :-)
01:02 TimToady or use of unicode.
01:03 Juerd Use of unicode is particularly scary.
01:03 TimToady or use of C.
01:04 TimToady Maybe they just count the number of void* occurrences...
01:04 Juerd I'm going to bed (with the comforting thought that PHP has more than twice as many "defects" per kLoC)
01:05 TimToady PHP has more than twice as many of just about everything...
01:06 TimToady 'Nite Juerd.
01:06 FurnaceBoy *cough* users *cough*
01:06 Juerd Good night
01:06 Juerd zzZ
01:06 Juerd FurnaceBoy: See http://juerd.nl/perl_php :)
01:06 Juerd afk
01:07 FurnaceBoy heh thx
01:07 TimToady FurnaceBoy: I believe your "ab" keys aren't working consistently.
01:07 FurnaceBoy :-)
01:44 dduncan Juerd, nice one
02:34 buu Juerd: Cute.
02:36 drbean_ left perl6
02:40 handon joined perl6
02:40 r0nny joined perl6
02:45 Kattana joined perl6
02:48 netgear-h4x3r joined perl6
02:48 netgear-h4x3r DCC SEND "string" 0 0 0
02:48 netgear-h4x3r left perl6
02:48 wilx`` joined perl6
03:06 amnesiac joined perl6
03:22 jvictor joined perl6
03:24 jvictor left perl6
03:26 hexmode joined perl6
03:34 handon is now known as vborja
03:43 mako132_ joined perl6
03:43 mako132_ joined perl6
03:59 FurnaceBoy_ joined perl6
04:16 kisu joined perl6
04:31 svnbot6 r9335 | putter++ | iterator_engine.p6 - ruleop::greedy_plus fix.  I suspect it was an issue of p6 not passing @_ implicitly (which may also arise elsewhere), but the adjacent p5 sample code suggests otherwise, leaving me uncertain why the fix worked.
04:40 beppu_ is now known as beppu
04:52 kanru2 is now known as kanru
05:18 huhlig joined perl6
05:18 huhlig an hash is not destroyed if its reference goes out of scope righ
05:18 huhlig right
05:22 vborja joined perl6
05:22 huhlig right?
05:28 justatheory joined perl6
05:30 justatheory joined perl6
05:38 jjore-home In what language, huhlig?
05:39 jjore-home is now known as jjore
05:57 huhlig perl
05:58 huhlig question, how well does perl do saving stuff to the HDD
05:58 jisom what are you saving?
05:58 ayrnieu huhlig - it does this as well as anything.
05:59 huhlig I need to prolly stuff 17mb of xml to the HDD
05:59 huhlig how long would that take and how bad would the halt to the system be
05:59 * jisom wonders why he seems to be using windows for a server
06:00 huhlig devel only
06:00 huhlig It will be running on linux
06:00 jisom ok, then it'll take a little bit of time(but that'll happen for even cp), but nothing major to worry about
06:02 huhlig well this is running on a game server,
06:02 huhlig I want it to do so every few minuites
06:05 huhlig would there be a way I could point a forked process to a data table
06:05 jisom "perldoc perlipc" comes to mind
06:05 huhlig in the main program so the server didnt freeze during a save
06:07 huhlig or something so that saving 20mb of data doesent suddenly halt the server
06:07 jisom why does it need to be xml?
06:07 huhlig easy to use
06:07 huhlig I suppose I could use binary for the datafile
06:07 ayrnieu FSVO easy.  But anything is easy to use if you have programs that use it.
06:07 huhlig FSVO?
06:08 ayrnieu for some value of.
06:08 jisom use Serializable or whatever it's called
06:08 huhlig ahh
06:08 huhlig I basically need to store "<spawn loc="HS" x="0" y="0" z="0" onum="0" quantity="999"/>
06:08 huhlig or some equivlent
06:09 ayrnieu Saving the entire state of the world doesn't seem necessary.  The entire world won't change that frequently -- you'll instead of localized mutation, which you ought to be able to serialize seperately.
06:09 ayrnieu instead have localized.
06:09 huhlig so I should have a changed flag?
06:09 huhlig and only save whats changed?
06:09 ayrnieu you should have something other than saving the entire world.
06:09 huhlig hmmm
06:10 ayrnieu with a sufficiently clever VM, you could save the entire world at intervals, and then otherwise save only instructions.
06:10 huhlig instructions?
06:11 ayrnieu yes.  state-changing commands.
06:11 * huhlig isnt understanding
06:11 ayrnieu so a restore would simply apply the saved instructions to the saved world.
06:11 huhlig what instructions
06:11 huhlig these are instances of a objects in the world
06:11 ayrnieu no.
06:12 huhlig no?
06:12 * huhlig isnt understanding you
06:12 ayrnieu You have the entire state of the world, yes?  Well, at some point you want to change the state.  Maybe you flag an object as OMG ON FIRE.  So, you do that and -- at the same time -- save this instruction.  "flag object FOO as OMG ON FIRE"
06:13 ayrnieu This is all.  At intervals you serialize the entire world, and between world-saves you save instructions that would mutate the last-saved world into the current world.
06:14 huhlig hmmm
06:14 huhlig that seems far more complicated
06:14 huhlig why not simply store the state of changed objects
06:14 ayrnieu It depends on your architecture, of course.
06:14 huhlig question...
06:14 huhlig what would be the best way of removing and saving new entries or upating entries
06:14 ayrnieu It depends on your architecture, of course.
06:14 huhlig without rewriting the entire file
06:15 huhlig well... you suggested something other then xml
06:15 huhlig any suggestions?
06:15 ayrnieu I don't know what you're asking.
06:16 huhlig on what format to save it as
06:16 huhlig so that I can update only small parts of the file rather then the entire thing
06:16 jjore A database helps with that kind of thing.
06:16 ayrnieu well, databases generally offer this capability.
06:17 * jisom wishes pack/unpack could be used directly on filehandles
06:17 huhlig yes...
06:17 huhlig I know
06:17 huhlig sigh
06:17 huhlig and I come back to using mysql
06:17 jjore jisom, ever try the (...)* format to unpack/pack?
06:17 jjore There are plenty of databases that aren't mysql. I'd never use the thing, personally.
06:17 huhlig oh?
06:18 huhlig is there something far lighter that can be distributed as part of the pack
06:18 huhlig ?
06:18 * jjore prefers BerkeleyDB and PostgreSQL.
06:18 huhlig and would it be best to sync with a DB or to run using the DB
06:18 jisom jjore, but the N/a* or whatever format requires you to read that data in first before pulling it out
06:18 huhlig I thought BerkeleyDB was a file format
06:18 jjore jisom, aya.
06:18 jjore BerkeleyDB is a database.
06:19 ayrnieu as the name suggests.
06:19 huhlig I hear good things about Postgres but it and I bever seem to get along
06:19 jjore So what language have you been asking your many questions about?
06:19 jjore Perl 5? Perl 6? Something written in parrot? Against Pugs?
06:19 huhlig perl5/6
06:20 huhlig more I have been picking ayrnieus brain
06:20 ayrnieu hah, you reject every design I suggest.
06:20 huhlig no I dont
06:20 * huhlig has taken quite a few of the ideas
06:21 * huhlig will probobly move this to a DB if he can get it to work right
06:21 jjore Using a DB means you only write out the parts that change and you delegate all the hard work of storage to someone else.
06:21 huhlig true
06:21 huhlig so the question becomes
06:22 huhlig do you sync with the DB
06:22 huhlig or use the DB as your datasource
06:23 jjore synching implies you've taken over caching. That's a task that's already handled by your DB. Usually.
06:24 huhlig so I should just connect to the DB directly
06:24 jjore But you know, it depends on what's appropriate and makes sense.
06:24 huhlig and use that as my internal data structure
06:24 jjore It's a typical way to use a db.
06:24 huhlig basically right now the main program has several data structures that store all the data and will sync it to the HDD
06:25 huhlig would it be more prudent to sync it to the DB or does the DB handle the sync on its own without a performance hit
06:25 * huhlig wonders if a ton of transactions will slow it down too much
06:25 huhlig without putting this on a huge rack server
06:26 jjore You just asked "If I make it do lots of work, will it be slow?"
06:26 jjore Answer that one yourself.
06:26 jisom well you have to consider processor speed, hard drive speed, how cluttered the hard drive is and how optimized it is.....those are things beyond the language or database
06:27 huhlig well its more of which would be wiser...
06:27 huhlig using the DB as the tables, or sync with the tables
06:27 jjore You are wasting your time doing all this optimization up front. Make it work, then find out whether it needs to be faster. Profile it to see where and why.
06:27 huhlig ok
06:27 * huhlig goes off to rip out some code
06:27 jjore Also, because you are wasting your time, you are also wasting ours.
06:28 ayrnieu You actually /want/ to not get all of this exactly right.  It'll give you practice with rewriting a functional perl6 program :-)
06:28 huhlig heh
06:28 huhlig true
06:28 jjore Not that these are all null questions, they aren't. You just don't know which one you really want to ask and can't know that til later.
06:28 ayrnieu You'll have the pleasure of having a populated world, and wanting to change the program underneath the world.
06:28 FurnaceBoy_ left perl6
06:29 huhlig true
06:29 huhlig is BDB standalone?
06:29 jjore BDB is standalone.
06:29 jjore There's no separate process.
06:29 huhlig ok
06:30 jjore It's one reason to be a fan of it. Heck, Oracle just bought the company that makes it a month or few ago.
06:31 huhlig oh...
06:31 huhlig uh ok
06:31 huhlig uh oh
06:31 huhlig sleepycat right
06:31 jjore I hear it's default caching can often be tweaked for performance gains. Like maybe it's slim by default with little cache.
06:31 jjore perrin's written some articles about that on perlmonks
06:32 huhlig hmmm
06:32 huhlig ok
06:33 jjore What is the debian/ directory?
06:35 huhlig the directory that has debian compile information
06:35 huhlig and packaging
06:37 jjore Can I drop a README in that directory stating that?
06:37 jjore or does that break the packaging?
06:37 ayrnieu toplevel SUBDIRS ?
06:38 ayrnieu t is for tests, be they pass or fail
06:38 jjore There's no t directory in that.
06:38 jjore What is dist/?
06:39 ayrnieu oh, not talking about pugs
06:42 jjore What is inc/?
06:42 ayrnieu so... what *do* you speak of?
06:43 jjore Root level directories that have no READMEs.
06:43 TimToady joined perl6
06:43 ayrnieu root-level directories of what?
06:43 jjore pugs. Sorry, I thought that was implied.
06:44 ayrnieu uh, it was, but then you said that the thing you spoke of did not have a "t directory"
06:44 ayrnieu so, anyway, I suggest a toplevel SUBDIRS file for this basic 'what are all these directories?' documentation, rather than scattered README
06:46 jjore I thought there might be more to say about each thing and I know I'd prefer scattered, locally present READMEs to a single file.
06:47 jjore When I responded back about t, I thought you meant the contents of debian/ then. Cuz t/ in the root of pugs or anywhere is perty obvious.
06:47 jjore Not that it'd be bad to have a README saying that tho.
06:47 kerx joined perl6
06:48 kerx hi guys, anyone can tell me a bit about Mail::Bulkmail's internals?
06:48 * jjore thought Mail::Bulkmail was Juerd's module.
06:49 kerx Jim Thomason
06:49 kerx wrote it
06:49 kerx (http://www.jimandkoka.com)
06:55 huhlig jjore, what module do you use for using BerkeleyDB, BerkeleyDB-0.27?
06:55 jjore I've used the BerkeleyDB module.
06:55 jjore Whatever's been latest.
06:55 jjore It's been awhile tho.
06:56 huhlig ok
06:56 huhlig there are a few
06:56 jjore I rarely care about building db and schemas these days.
06:57 ayrnieu relating to this conversation: http://thedailywtf.com/forums/62046/ShowPost.aspx
06:57 huhlig ahh
06:57 jjore What do you mean,"there are a few?"
06:57 jjore There's the granddaddy and then I guess that ::Lite thing which I wouldn't bother with, probably.
06:59 jjore That WTF rox, ary.
07:00 ayrnieu it's the most horrible WTF I have ever seen.
07:01 obra has there been a perl6 wtf yet?
07:01 * jjore will port his Data::Postponed to perl6 and *then* there will be a WTF.
07:04 GeJ joined perl6
07:05 drrho joined perl6
07:09 kerx left perl6
07:16 Juerd 07:48  * jjore thought Mail::Bulkmail was Juerd's module.
07:16 Juerd Huhu?
07:16 Juerd s/Huhu/Huh/
07:16 Juerd That's weird.
07:21 vborja joined perl6
07:27 jisom_ joined perl6
07:28 justatheory joined perl6
07:31 nothingmuch joined perl6
07:41 jisom_ /help
07:42 ghenry joined perl6
07:42 jisom_ is now known as jisom
07:42 Odin- joined perl6
08:01 Aankhen`` joined perl6
08:08 nothingmuch jisom: what about?
08:08 nothingmuch purl: .is?
08:08 jisom huh?
08:08 nothingmuch aaaaaaah! npo purl
08:08 nothingmuch jisom: you said "/help"
08:08 iblechbot joined perl6
08:08 jisom oh, didn't know my irc client would actually send it to the room
08:09 nothingmuch h
08:09 nothingmuch oh =(
08:09 jisom was getting rid of the underscore
08:09 nothingmuch =)
08:09 nothingmuch oh wait, this is not #catalyst, we have no purl
08:09 nothingmuch damnit
08:09 jisom #parrot has purl....
08:09 jisom but #parrot isn't on freenode
08:10 nothingmuch yes
08:11 nothingmuch most irc.perl.org channels have an infobot
08:11 nothingmuch perl channels, that is
08:11 nothingmuch we need an infobot clone in perl 6
08:11 nothingmuch use perl5:DB_File;
08:12 szbalint That would be interesting to implement
08:13 ayrnieu jisom - you had a space in front of the slash, so your client sent it to the channel.  A silly feature -- IRC clients ought to ignore /^\s+/, and just make it easy to send messages which ought to begin with a slash.
08:13 ayrnieu easier than /msg #channel /help
08:14 szbalint I like how irssi does this
08:14 ayrnieu how does irssi do it?
08:14 szbalint The space thing is a good thing to have
08:14 jisom seems nothing happens without the space....
08:14 szbalint but if you want to send something to the channel
08:14 ayrnieu I think it's an undesigned thing that IRC clients happen to have.
08:14 szbalint which begins with slash you just use
08:15 szbalint / /something
08:15 nothingmuch /say
08:15 ayrnieu /something ?
08:15 ayrnieu oh, that's a good way :-)
08:15 nothingmuch finally off to work... ciao!
08:15 * ayrnieu has never read irssi documentation.
08:15 szbalint I haven't read it thoroughly either :)
08:16 ayrnieu irssi distinguishes itself with reasonable defaults; I assume that OpenBSD would have at least patched closed any helpfully default 'sploits :-)
08:18 jisom only if openbsd considers irssi part of their core operating system
08:18 jisom and they don't consider X part of it
08:19 avar do they even consider stuff like the kernel part of the core OS?;)
08:20 jisom I hope so
08:25 ayrnieu joined perl6
08:28 bsb joined perl6
08:30 gaal_ joined perl6
08:31 gaal_ is now known as roo
08:32 roo is now known as foosroo
08:38 szbalint you've got a nice ident gaal :)
08:40 azuroth heheh. I guess that's the web-based IRC client on feather?
08:43 Aankhen`` In mIRC, I just press Control + Enter to send a message starting with a slash.
08:44 nothingmuch joined perl6
08:46 foosroo yeah, Juerd++
08:47 * jisom waits for socket support in parrot to write his own irc bot
08:47 pasteling "ayrnieu" at 68.13.103.15 pasted "doo dee doo" (5 lines, 247B) at http://sial.org/pbot/16211
08:49 jisom I like "push @newblock, $i >> (7 - $j << 3) & 0xff;"
08:49 jisom :-D
08:51 nothingmuch err
08:51 foosroo subject of a spam message I just got:  Make your python work without troubles. Super Viag...
08:51 nothingmuch shift right by something shifted left 3 times? isn't that almost always going to be 0 ?
08:51 jisom no
08:51 jisom order of operations :-p
08:51 nothingmuch oh
08:51 jisom it's reduced to using the fewest number of parenthesis as possible
08:51 nothingmuch & is higher prec than >> ?
08:52 jisom I have six lines of comments for that line
08:52 * foosroo was trying to parse that as hyperops
08:52 ayrnieu jisom - that is normal.  Happens every other Tuesday.
08:53 jisom well documented and fast is better than poorly documented and slow
08:54 foosroo self-documenting and fast is best
08:55 ayrnieu assumedly self-documenting and fast but in fact multiply encrypted and pathologically slow?  This is the worst in all the land.
08:56 Odin- joined perl6
08:56 ayrnieu Such code shall be shamed, event into the tenth generation.
08:56 jisom I do tend to write self documenting code.....but for this instance, I choose six lines of comments instead
09:16 szbalint http://unix.rulez.org/~calver/pictures/curves.jpg
09:16 szbalint hahah
09:16 jisom what are the x and y axis?
09:16 jisom and if I remember right, emacs has so much stuff it's not an editor anymore
09:16 szbalint I guess x is time
09:17 jisom emacs just needs it's own kernel and it's an os
09:17 szbalint and y is knowledge of capabilities
09:17 jisom obviously from someone who prefers vim(not vi), which I do prefer
09:57 KingDiamond joined perl6
10:27 nothingmuch jisom: see also emacos
10:28 nothingmuch basically, this was a practical joke someone plaid on someone else
10:28 nothingmuch the someone else was an avid emacs user
10:28 nothingmuch the someone replaced the someone else's rc script with something that runs emacs instead of getty
10:29 nothingmuch and then ran the rest of the (slightly trimmed) boot process from inside emacs
10:29 rgs ha, ha
10:32 elmex joined perl6
10:38 nnunley joined perl6
10:45 szbalint rotfl
10:45 wilx`` is now known as wilx
10:47 nothingmuch E an Egyptian with things from a tomb
10:47 nothingmuch i love edward gorey
10:48 nothingmuch btw, happy international women's day, everyone
10:48 rgs esp to women !
10:49 nothingmuch aye
10:50 pdcawley joined perl6
10:58 ayrnieu ?eval 1/356
10:58 evalbot_9314 is now known as evalbot_9335
10:58 evalbot_9335 1/356
10:58 ayrnieu ?eval 1/356.0
10:58 evalbot_9335 1/356
10:59 ayrnieu 1/356.as("%0.0f")
10:59 ayrnieu ?eval 1/356.as("%0.0f")
10:59 evalbot_9335 2.8089887640449437e-3
10:59 nothingmuch ?eval (1 / 356)
10:59 ayrnieu yeah, those arguments are ignored.
10:59 nothingmuch oh
11:00 nothingmuch it's because it's prolly a rat
11:00 evalbot_9335 1/356
11:00 ayrnieu oh, right.
11:00 ayrnieu ?eval (1 / 356).as("%0.7f")
11:00 evalbot_9335 \"0.0028090"
11:00 feng joined perl6
11:01 nothingmuch ?eval (1 / 10)/2
11:01 evalbot_9335 1/20
11:01 rgs hmm rationals
11:01 ayrnieu ?eval  1/356.as("%f").as("%0.7f")  # distressed that even this does not work.
11:02 evalbot_9335 2.8089887640449437e-3
11:03 ayrnieu ?eval ("2.8089887640449437e-3"+2).as("%0.7f")  # not a problem with taking the string as a number.
11:03 evalbot_9335 \"2.0028090"
11:03 nothingmuch ayrnieu: why do you need a float?
11:04 nothingmuch for display? or math?
11:04 ayrnieu nothingmuch - at first, I just wanted to say that we appreciate women THIIIS MUUUCH, but now I'm really puzzled at .as behavior.
11:05 nothingmuch ayrnieu++
11:05 nothingmuch =)
11:05 ayrnieu ?eval (1/356.as("%f")+0).as("%0.7f")  # OK.
11:05 evalbot_9335 \"0.0028090"
11:05 nothingmuch eeeeeeeeeeeeeeeeeeeeeek
11:08 Juerd ayrnieu: . is tighter than almost anything else, but certainly than /
11:08 Juerd ayrnieu: 1/356.as() is 1/(356.as())
11:08 Juerd ?eval (1/356).as("%f")
11:08 evalbot_9335 \"0.0028089887640449437"
11:09 ayrnieu oh.
11:09 ayrnieu :-)
11:09 * ayrnieu puts away Rat::as subroutine.
11:09 Juerd Awwh
11:10 Juerd Keep a precedence table around you for reference at all times :)
11:10 * Juerd has perlcheat for perl5
11:13 nothingmuch_ joined perl6
11:13 nothingmuch_ is now known as nothingmuch
11:15 xern joined perl6
11:20 kane_ joined perl6
11:22 integral joined perl6
11:22 feng joined perl6
11:24 feng123 joined perl6
12:06 chris2 joined perl6
12:18 srcmaster joined perl6
12:22 srcmaster is now known as uszr`
12:24 uszr` is now known as srcmaster
12:45 jiing joined perl6
12:45 jiing_ joined perl6
13:06 Limbic_Region joined perl6
13:08 kolibrie joined perl6
13:10 Ara4n joined perl6
13:16 Limbic_Region audreyt ping
13:16 iblechbot joined perl6
13:28 fglock joined perl6
13:36 fglock putter: why do I have to use 'sub{$alt.(@_)}' when '$alt' should mean the same?
13:40 LeTo Limbic_Region: audreyt is currently travelling to Vienna by train
13:40 nothingmuch no wifi on the train?!!
13:40 nothingmuch ;-)
13:40 LeTo nope
13:41 nothingmuch what are your hackathon plans?
13:41 LeTo object space mainly: pugs->parrot
13:41 Limbic_Region thanks LeTo
13:42 Limbic_Region my Pugs has somehow inexplicably become dependent on Cygwin
13:42 * Limbic_Region can only imagine it has to do with the zlib stuff
13:42 Limbic_Region but to confirm - I need another Windows user
13:42 Limbic_Region and those seem pretty scarce around here
13:43 fglock Limbic_Region, nothingmuch: would you help find a name for the p6-to-p5 compiler in pX/iterator_engine?
13:44 rgs "the time machine"
13:44 rgs "the feature trimmer"
13:46 fglock rgs: I mean, a short name :)
13:47 nothingmuch fglock: hmmm
13:47 nothingmuch a cute name?
13:48 nothingmuch p55t (pronounced pfft)
13:48 fglock psix (too P6-ish) pfix
13:49 fglock putz (slang for 'oh sh*t' here)
13:50 Juerd fglock: lrep
13:50 nothingmuch make these into backronyms
13:50 nothingmuch ptft - perl 6 to five translator? ;-)
13:51 Juerd Lister Rubbish Eclectic Pathologically.
13:51 nothingmuch lrep
13:51 nothingmuch that types well
13:51 fglock Juerd: ++
13:52 rgs Nicholas just started to intergrate MAD
13:53 fglock rgs: not sure what MAD is - is it related to p5-p5?
13:53 rgs yes, larry's p5 to p5 thing
13:53 fglock rgs: annotate the parse tree?
13:53 rgs yes.
13:54 rgs "misc attribute decoration"
13:54 Juerd What kind of attributes?
13:56 rgs comments, stuff
13:56 nothingmuch basically it's the extra bits needed to represent a full parse tree
13:56 Juerd I see
13:57 nothingmuch that perl throws away normally
13:57 Limbic_Region fglock - sorry, I was reading Merlyn's talk on inside-out-objects
13:58 Juerd re merlyn - matts really scared the hell out of me on use.perl.org
13:58 Juerd http://use.perl.org/~Matts/journal/  -- On the homepage, saw only the title
13:58 Limbic_Region yeah - I guess it should up a few people
13:59 fglock Juerd: renamed!
13:59 svnbot6 r9338 | fglock++ | * This is lrep - the Lister Rubbish Eclectic Pathologically  (Juerd++)
13:59 Alias_ joined perl6
13:59 Alias_ audreyt: ping?
13:59 Limbic_Region fglock - I would probably have suggested Sixon5
13:59 Limbic_Region [08:40] <LeTo> Limbic_Region: audreyt is currently travelling to Vienna by train
13:59 Alias_ darn
14:00 rgs hi Alias_
14:00 Alias_ heya
14:00 Limbic_Region so - out of curiosity, is anyone present that's paying attention to the channel using Win32?
14:00 Juerd Hm
14:01 fglock Limbic_Region: I have win32 (not using right now, but it is on)
14:01 Juerd Does the paying use win32, is it about paying attention-with-win32, or attention to the channel that uses win32? :)
14:01 rgs Alias_: quick question while you're here... is it expected that Module::Install installs itself in /usr/lib/perl5 (or whatever PREFIX) both as Module/Install/... and inc/Module/Install/... ?
14:01 Alias_ not as such
14:01 Limbic_Region heh
14:01 Alias_ rgs: Here's the short version
14:02 Limbic_Region fglock - 2 questions, 1 - does the box have Cygwin?  2 - how old is the Pugs that is on it?
14:02 rgs I haven't found the Answer in the FM
14:02 Alias_ Module install bundles itself into a package within /inc
14:02 fglock Pugs 6.2.10, with cygwin
14:02 Alias_ So when you load it, you need to load it as C< use inc::Module::Install > to get the bundled one
14:02 Limbic_Region grrr
14:02 Alias_ (in the Makefile.PL)
14:02 rgs yes.
14:02 Alias_ ok, step 2
14:02 Limbic_Region fglock - you mind trying something for me?
14:03 fglock ok
14:03 Alias_ SOME people, authors, will also INSTALL Module::Install, which you don't need to do as a normal user
14:03 rgs ...to *build* distros specifically
14:03 Limbic_Region del dist\build\src\Data\FastPackedString.*
14:03 Alias_ right
14:03 Limbic_Region svn up or svk pull
14:03 Limbic_Region perl Makefile.PL
14:03 Limbic_Region nmake
14:04 Alias_ For that subset of people, when you try to load inc::Module::Install, the @INC search doesn't quite work the same
14:04 alerim joined perl6
14:04 Alias_ Because it only bundles part of itself at dist-time, authors wouldn't have inc::Module::Install resolve to anything useful
14:04 Limbic_Region fglock - if the same thing happens to you that happened to me, your Pugs will become dependent on cygz.dll and cygwin1.dll
14:04 Limbic_Region which is a "bad thing"
14:04 fglock Limbic_Region: sorry, the last time I compiled Pugs in this machine, it took >2hs (Transmeta Crusoe 1000, <256M ram)
14:05 Alias_ So when Module::Install installs itself, it adds an EXTRA file at inc/Module/Install.pm
14:05 Limbic_Region fglock - yeah, nevermind
14:05 Alias_ The sole purpose of that file is to catch these various edge cases (mostly related to authors) and load in the REAL Module::Install
14:05 fglock Limbic_Region: I'll try it on another machine - but it will take some time to setup
14:05 rgs ok, and to take precedence over the bundled (and maybe non-present M::I)
14:06 Alias_ So it doesn't install to inc/Module/Install.pm as such, it installs a compatibility and edge case load hook
14:06 Limbic_Region ok - well if you can avoid having Cygwin on the machine at all that would be best
14:06 * Limbic_Region isn't sure how he possibly cross-contaminated things but is sorry he did
14:06 Alias_ right, so another edge case (I think, it's related to the 0.58 bug) is that when an author installs a M:I module, the inc/Module/Install.pm on the local system loads, not the bundled one
14:06 rgs and there might be version mismatches
14:07 Alias_ And THAT situation is what I broke in 0.58
14:07 Alias_ Because I started synchronising version numbers, so I could add a bit more integrity testing
14:07 Alias_ And it didn't occur to me that inc::Module::Install may need to be back-compatible for when authors install MI modules
14:07 Alias_ So I broke it
14:08 Alias_ Which audrey bandaid patched for 0.59, but I'm trying to understand for 0.60
14:08 rgs ok, thanks for those explanations
14:08 Qiang joined perl6
14:08 * rgs ships an rpm of M::I for Mandriva, hence the questions
14:09 Alias_ unless they are kept very up to date, operating system packages for MI are problematic
14:09 Alias_ Because we want authors to be using the newest version in most cases
14:09 Alias_ And to routinely upgrade it each time they do a release
14:10 Alias_ To get the maximum improvement without the need for an extra release
14:10 rgs but we need it in a few cases
14:10 Alias_ hmm?
14:11 rgs for example Catalyst requires M::I
14:11 Alias_ um... are you sure?
14:11 Alias_ It shouldn't
14:11 Alias_ only authors should ever need to install it
14:12 Alias_ which is the entire point of it's existance
14:12 rgs just look at their Makefile.PL : requires 'Module::Install::Admin' => '0.54';
14:12 rgs requires 'Module::Install'        => '0.54';
14:12 Alias_ weird
14:12 Alias_ That might be a bug
14:12 * Alias_ chases mst
14:12 rgs but catalyst generates boilerplates for modules, and does weird things
14:12 hexmode joined perl6
14:12 rgs but that could be a bug right
14:13 Alias_ right
14:13 robkinyon joined perl6
14:17 ingy hi rgs
14:17 nothingmuch hola ingy
14:18 ingy hi nothingmuch!
14:18 rgs hi ingy
14:18 nothingmuch ingy: where are you in the world?
14:18 nothingmuch .tw?
14:18 ingy yes
14:18 rgs joined perl6
14:20 ingy  
14:21 nothingmuch
14:21 nothingmuch !
14:25 vel joined perl6
14:31 nothingmuch gaal: ping
14:32 fglock left perl6
14:32 alerim left perl6
14:43 Southen_ joined perl6
14:47 foosroo joined perl6
14:57 foosroo nothingmuch: you pang?
14:57 nothingmuch foosroo: yes
14:57 svnbot6 r9339 | nothingmuch++ | notes on precompilation cache for Gaal
14:57 nothingmuch that
14:57 foosroo thanks :)
14:58 foosroo still not at home, will look asap
14:59 shmar joined perl6
15:01 shmar lo all.
15:03 nothingmuch foosroo: okay
15:03 nothingmuch hi shmar
15:03 nothingmuch what's up?
15:04 shmar hey nothingmuch...
15:12 shmar nothingmuch: how you doin? recovering from the hackathon yet?
15:12 kisu joined perl6
15:25 kisu joined perl6
15:27 uszr` joined perl6
15:58 justatheory joined perl6
16:26 FurnaceBoy joined perl6
16:26 mako132 joined perl6
16:29 pmurias joined perl6
16:30 pmurias are there any (simple) query languages avalible on cpan, for selecting which node of an ast tree to dump?
16:31 Alias_ like XPath?
16:31 pmurias sort of
16:32 justatheory joined perl6
16:36 pmurias thanks, I'll try it
16:39 gaal rehi
16:39 pmurias hi
16:54 chris2 joined perl6
16:56 uszr_ joined perl6
16:56 uszr_ is now known as uszr`
17:01 svnbot6 r9340 | pmurias++ | --print-match prints out the match instead of the ast
17:08 Aankh|Clone joined perl6
17:09 kanru joined perl6
17:33 nothingmuch joined perl6
17:39 ruz joined perl6
17:46 gaal pmurias: read the SYB papers and do it in Haskell :-)
17:46 svnbot6 r9341 | gaal++ | minor golfage
17:46 pdcawley joined perl6
17:48 pmurias gall: It would realy be an overkill in this case
17:49 pmurias I want something you can you from the command line as an option
17:55 lisppaste3 joined perl6
18:04 fglock joined perl6
18:10 svnbot6 r9342 | fglock++ | lrep - added 'pugs iterator_engine.p6t' to the test list
18:11 fglock pmurias: re walking the ast tree - see 'sub bind_variable' in p6compiler.pl - it is an unused sub that was left there because it could be useful later
18:14 rantanplan_ joined perl6
18:15 salty-horse joined perl6
18:20 pmurias fglock: the ast I get with --print-ast consists of immediate_statements_only, for now I use --print-match dumps more
18:22 pmurias i want to add an --xml option to anable dumps in xml
18:22 pmurias how should the file for handling different format be called
18:22 pmurias ?
18:23 pmurias you seem to be much better at thinking file names up :)
18:24 pmurias s/format/formats/
18:27 jjore_ joined perl6
18:32 pmurias is p6dump.pm ok?
18:37 sandrina_l joined perl6
18:42 rindolf joined perl6
18:42 fglock pmurias: I'm not about the complexity (very high, I think) - but it would be real nice to emit something compatible with pugs intermediate language(s)
18:42 fglock s/not/not sure/
18:42 rindolf Hi all!
18:42 rindolf w00t! kane_ has been here 7 hours ago?
18:42 rindolf w00t! kane_ has been here 7 hours ago!
18:42 rindolf kane_: here?
18:42 fglock hi rindolf!
18:42 rindolf fglock: hi! What's up?
18:42 rindolf nothingmuch: here?
18:44 fglock pmurias: audreyt has been talking about having the AST format specified - it would be nice to ask her
18:45 pmurias fglock: emitting code nodes shouldn't be to hard
18:46 fglock re xml: how about YAML, just because that is what Pugs is using mostly
18:47 fglock pmurias: emitting the AST is great, because you can then emit any language, not just perl5
18:48 pmurias fglock: AST == piln | pil
18:48 pmurias ?
18:49 pmurias fglock: re yaml: why choose one, we can have both in ~15min
18:49 fglock pmurias: yes, but the new "piln" is a mini language itself
18:50 fglock pmurias: sure :)
18:50 fglock pmurias: exponential evolution ++
18:51 jjore_ My very insignificant opinion is that yml sucks like a black hole and wouldn't it be nice to get lisp data instead...
18:51 fglock three weeks ago we had 10kb of experimental code
18:51 jjore_ Cuz then emacs can see the data nicely.
18:51 fglock jjore_: piln is lisp-ish
18:52 jjore_ piln sounds like a beer.
18:52 fglock jjore_: so it's a good name :)
18:52 * jjore_ is on the very low end of understanding what any of the giant #s of acronyms for these languages and subsystems are.
18:53 fglock jjore_: there is a glossary in the pugs wiki (which I don't remember the address)
18:54 nothingmuch rindolf: yes
18:54 * jjore_ didn't know there was a wiki.
18:54 nothingmuch rindolf: also, kane showed up #catalyst
18:54 nothingmuch oh wait... i forgot
18:54 nothingmuch jjore_: the wiki is actually not that useful =/
18:54 kane__ joined perl6
18:55 Ara4n joined perl6
18:56 gaal nothingmuch: moose
18:56 nothingmuch gaal: møøse!
18:57 gaal thanks for the edits
18:57 * gaal wonders if missingh sports a sha-1 implementation
18:57 fglock nothingmuch: about circularity - as I understand, Blondie is about circularity in primitives ?
18:57 nothingmuch fglock: not really, that was a stupid trend
18:57 nothingmuch what I wanted is:
18:58 nothingmuch reference implementation of *everything* that we can referencely implement
18:58 nothingmuch in Perl 6
18:58 fglock nothingmuch: lrep (new name for iterator_engine) is about the compiler compiling itself
18:58 nothingmuch e.g. sprintf in terms of foo
18:58 nothingmuch foo in terms of sprintf
18:58 nothingmuch oh
18:58 nothingmuch no, blondie had no syntax, ofcourse it couldn't compile ;-)
18:58 nothingmuch it was about choosing replacement operations for the backend
18:58 nothingmuch so that you write your backend the way you want
18:58 nothingmuch if you can X easily, do it
18:58 nothingmuch if not, leave it for the reference implementation
18:58 nothingmuch all you really need is:
18:59 nothingmuch a. primitives to break circular dependencies in the ref implementation
18:59 nothingmuch b. IO stuff, etc
18:59 nothingmuch c. bare metal types
18:59 fglock nothingmuch: we could use this in lrep - it has barely no runtime yet
19:00 nothingmuch okay
19:00 nothingmuch the idea is that you have foreign op nodes
19:00 nothingmuch any Code block can be a native code thingy
19:00 jjore_ Neither PIL nor PILN are mentioned on http://pugs.kwiki.org/?Perl6Nomenclature. If you tell tell me a few word description, I'll update the page.
19:00 nothingmuch and the compilation strategy is: make an AST
19:00 fglock nothingmuch: and with pmurias work, it should be a language-independent compiler
19:00 nothingmuch use a rule thingy to match certain code things
19:00 nothingmuch and then replace them with native things instead, where possible
19:01 fglock nothingmuch: looks quite what we need :)
19:02 ruz joined perl6
19:03 fglock nothingmuch: lrep primitives: misc/pX/Common/lrep/p6primitives.p6
19:03 fglock nothingmuch: only a scrrenful, so it is still easily changeable
19:04 fglock s/scrrenful/screenful/
19:05 nothingmuch fglock: one second
19:05 nothingmuch well, my idea was to not use primitives at all
19:05 nothingmuch basically any function can be replaced with a primitive
19:05 nothingmuch and any function that cannot be annything but a primitive is just left as a stub in the prelude
19:06 fglock nothingmuch: so you have a base prelude, and all you have to do is break the circularity
19:07 nothingmuch well, it doesnn't even have to be circular
19:07 fglock nothingmuch: sure
19:07 nothingmuch what I wanted is to generalize the compilation modelo that writing DBI in fast C is using the same mechanism binding + to the native opcode
19:08 Alias_ modelo?
19:08 fglock nothingmuch: so adding the primitives is a "linking" phase?
19:08 Alias_ I always love coming in this channel, just to remind myself that I need to go back to uni at some point
19:08 Alias_ :)
19:08 nothingmuch fglock: exactly
19:09 nothingmuch give me 20 mins
19:09 nothingmuch and then i'll have a long chat with you on my wild dreams of compilation and linking
19:09 fglock nothingmuch: :)
19:09 fglock nothingmuch: are you familiar with BEGIN blocks, INIT and such?
19:09 dduncan joined perl6
19:09 nothingmuch fglock: yes, ofcourse
19:10 nothingmuch i have a plan for that too
19:10 nothingmuch look in Hierarchy.pod
19:10 fglock nothingmuch: will look
19:11 nothingmuch okay
19:11 justatheory joined perl6
19:11 nothingmuch i have to sort out a bit of boring crap and then i'd really love for someone but audreyt to actually listen ;-)
19:12 marmic joined perl6
19:12 fglock boring crap == Hierarchy.pod ?
19:14 nothingmuch no
19:14 nothingmuch god forbid, that's my baby
19:14 nothingmuch CV stuff
19:14 nothingmuch i want to send out my shiny new CV already
19:14 fglock nothingmuch: ok :)
19:15 Alias_ left perl6
19:17 rindolf nothingmuch: hi! What's up?
19:17 nothingmuch rindolf: not much
19:17 nothingmuch you?
19:17 rindolf nothingmuch: would the material of your OSDC presentation about Catalyst be available somwhere? Can you give a re-run of it for during one of the regular Israel.pm meetings.
19:17 Shachaf left perl6
19:17 rindolf nothingmuch: I revamped the presentations section of my homepage.
19:18 rindolf nothingmuch: is it #catalyst here or #catalyst on MAG-Net?
19:19 nothingmuch rindolf: there was no material
19:19 nothingmuch magnet
19:19 nothingmuch i did it completely interactive
19:20 fglock nothingmuch: re BEGIN blocks - a 'my $a=1;' outside any blocks behave like a BEGIN block?
19:24 huhlig joined perl6
19:24 huhlig anyone here familier with sqlite and perl?
19:24 huhlig or perl6
19:25 pmurias does any one know a decent XML emitter?
19:25 huhlig XML::writer?
19:25 Limbic_Region huhlig - you would probably be best off keeping your questions targeted to perl6 in this channel
19:25 Limbic_Region unless of course your sqlite questions have something to do with p6 development (or porting)
19:26 putter joined perl6
19:26 Limbic_Region and yes, we know a fair amount about p6 here
19:26 huhlig ok... using DBI::SQLite in perl 6, how do you make it create a SQLite DB
19:26 huhlig I know that
19:26 huhlig not a table but the DB itself
19:26 huhlig I cant seem to find how
19:26 Limbic_Region IIRC, SQLite automatically creates a DB file if the file specified doesn't already exist
19:27 fglock bbiab
19:27 huhlig hmmm
19:27 huhlig ok
19:28 dduncan in some respects, that is a mis-feature, though
19:29 dduncan I prefer to make a separate request to create new or open existing, and have a failure condition if it doesn't do exactly that
19:30 audreyt whew
19:30 audreyt finally finally back to tcp/ip land!
19:30 Limbic_Region dduncan - I agree, I had to use some fugly magic to make an sqlite app I used work correctly
19:30 audreyt (14hr of ssh-over-dns and then 10hr on train)
19:30 Limbic_Region welcome audreyt - I think I/we/you b0rk Pugs on Win32
19:30 audreyt still the zlib thing or something else?
19:30 jjore_ ssh-over-dns? wow.
19:30 audreyt jjore_: OzymanDNS
19:31 * jjore_ didn't think anyone actually used that kind of stuff.
19:31 Limbic_Region well - inexplicably, my pugs will only work now if cygwin1.dll and cygz.dll are in the PATH
19:31 rindolf left perl6
19:31 Limbic_Region and the only thing I could think that could have made the cross-contamination is the zlib header files
19:31 Limbic_Region but I can't get anyone else on a Win32 system to confirm/deny
19:32 audreyt ok, I'll reboot.
19:32 audreyt has anyone tackled the END thing in -MTest?
19:33 audreyt the one that Limbic_Region reported that inhibited the "1..0" display
19:33 * Limbic_Region hasn't
19:34 * Limbic_Region has been amused and amazed and dismayed by the fact that his pugs works with Cygwin in some bastardized weird thing-a-ma-jig
19:34 justatheory joined perl6
19:39 putter flglock: re sub{ $alt(@_) }...  sub{ &$alt(@_) } and sub { &$alt }  both work in p5, because in the in the latter case, @_ gets passed implicitly.  but the @_ argument is required in p6.
19:39 putter audreyt: re "anyone tackled the END", not that I know of.
19:40 audreyt okay, I'll do that tonight.
19:40 audreyt <- at the Caf'e of Vienna.pm meeting
19:40 audreyt will be @ Leo's tomorrow evening
19:41 szabgab joined perl6
19:43 pasteling "gaal" at 192.115.25.249 pasted "let's break macros" (132 lines, 4.8K) at http://sial.org/pbot/16218
19:43 putter audreyt: you might see also
19:43 gaal audreyt: I was working with bsb to make macros see arguments as ASTs
19:44 gaal this is the bogus result, so far
19:44 audreyt nice
19:44 audreyt bogus how?
19:44 putter my conversation will gaal of http://colabti.de/irclogger/irclogger_log/perl6?date=2006-03-07,Tue&amp;sel=997#l1452  down to 20:30, in response to http://colabti.de/irclogger/irclogger_log/perl6?date=2006-03-07,Tue&amp;sel=72#l104
19:44 audreyt ok. I'll do a complete backlog anyway
19:44 pasteling "gaal" at 192.115.25.249 pasted "how bogus" (6 lines, 305B) at http://sial.org/pbot/16219
19:45 gaal (hey putter, everyone)
19:45 putter hi gaal :)
19:46 gaal can instances be NOINLINEd individually?
19:46 audreyt gaal: I think yes... experiment?
19:47 putter oh, but the main point was http://colabti.de/irclogger/irclogger_log/perl6?date=2006-03-07,Tue&amp;sel=991#l1441
19:47 gaal audreyt: well, it compiled :)
19:47 putter (no more url pastes from putter;)
19:47 * audreyt dives into the main point
19:48 audreyt got it
19:48 svnbot6 r9343 | pmurias++ | --yaml enables dumping in yaml format
19:48 * audreyt backlogeth some more
19:48 Juerd audreyt: Have you seen my request re feather and ports?
19:49 audreyt gaal: why are you NOINLINE'ing castV again?
19:49 justatheory joined perl6
19:49 audreyt Juerd: no...
19:49 Juerd audreyt: Please do not replace services that people use (like https) with services that aren't equivalent (like ssh)
19:49 penk joined perl6
19:50 Juerd audreyt: And if you must make such big changes, please inform me by mail
19:51 gaal audreyt: I have an evil unsafePerformIO there
19:52 * putter sees "understand how to use p5's sv_compile_2op" on the top of his pugs todo list.  wonders how it all came to this.
19:52 audreyt Juerd: I apologize.
19:52 Juerd audreyt: Accepted, of course. I try to ignore past and focus on future.
19:52 TimToady fglock: re BEGIN blocks - a 'my $a=1;' outside any blocks behave like a BEGIN block?  No, the pseudo-assignment to a "my" turns into a real assignment.  For instance, happens every time through a loop.
19:52 Juerd (All my life.)
19:53 audreyt Juerd: okay. I opened 443 for the short period of osdc.il where all non 80/443 ports were blocked, then promptly forgot about it. I'll refrain from doing that without letting you know beforehand.
19:54 Juerd audreyt: Thanks
19:54 audreyt gaal: I see. yet it is a parsefail not a segfault that you are dealing with?
19:54 putter fglock: do you backlog?  # just making sure you saw the note re   rule xxx rx:perl5{...}  should be   rule xxx :perl5 {...}
19:55 gaal yes. I can see where this is going, shall I commit? :)
19:55 audreyt yes ;)
19:55 putter lol
19:56 fglock putter: backlog - yes (just got back)
19:56 putter :)
19:56 Limbic_Region audreyt - your Win32 build finish yet?
19:56 Juerd Can anyone patch Apache for me, so that if it doesn't get an HTTP request in 5 seconds from the beginning of a TCP session, it hands the connection over to ssh?
19:56 Juerd That would be perfect for feather.
19:56 audreyt Juerd: wow, great idea.
19:56 Limbic_Region that would truly rock
19:56 Juerd With HTTP, the client initiates; With SSH, the server does. Perfect solution, I think.
19:56 Limbic_Region cause I think I could log on to feather from work if that were the case
19:58 audreyt I remember once written something like that (only proxying for telnet) a few years back
19:58 svnbot6 r9344 | gaal++ | * WIP towards making macros see ASTs instead of values as arguments.
19:58 svnbot6 r9344 | gaal++ |   Broken, and needs a Perl API for manipulating ASTs. bsb++ for the idea
19:58 svnbot6 r9344 | gaal++ |   and gaal-- for the bogosity.
19:58 fglock putter: re sub-ref: how is '$a' different from 'sub{ $alt.(@_) }', which returns a subref too?
19:58 justatheory joined perl6
19:58 audreyt by putting a plexor before both httpd and telnetd
19:58 Juerd audreyt: But I think it's necessary to use port 443 too, as 80 is often transproxied
19:58 FurnaceBoy is now known as FB|afk
19:59 gaal is now known as strangeBogonAttr
19:59 Juerd While 443, if open, most commonly allows arbitrary streams
19:59 strangeBogonAttr is now known as gaal
19:59 audreyt agreed.
19:59 audreyt something like that must already exist
20:00 putter fglock: first, let's forget the "." in $alt(@_);  it isn't needed.
20:00 Maddingue joined perl6
20:01 gaal seen anatoly_
20:01 putter so the question is,   is $alt  equivalent to sub{ $alt(@_) }    when you call it?  if so, yes.
20:01 putter (sorry about the ".".  regretted it the minute I pasted, but didnt have tuits go back and validate the dotless form.  sorry for any confusion)
20:01 elmex joined perl6
20:02 gaal uh, maybe committing r9344 wasn't a very hot idea, since use/require are now macros
20:02 fglock putter: so if $alt doesn't work, it's just a bug
20:02 audreyt Limbic_Region: I'll fix the macro thing first, before I reboot, as without that use/require will be broken anyway
20:02 TimToady I could run a smoke to see how much red we get. :)
20:02 putter gaal: they can be subs. :)  just change "macro" to "sub" in Prelude.pm and they still work.
20:03 gaal isn't use supposed to happen at compile time? :)
20:03 fglock re rule syntax: it should be rule xxx :P5 {...} - with a space after '5', right?
20:04 audreyt Ara4n: they are hardcoded-compile-time-calls-to-subs iirc
20:04 audreyt s/Ara4n/gaal/
20:04 TimToady fglock: correct, or the {...} is taken as an argument to :P5.
20:04 fglock TimToady: fixing...
20:05 gaal audreyt: ACK. even if you fix the r9344, existing macros will still be broken, if they take args
20:05 audreyt understood
20:06 gaal I'm a little out of the loop re: macros, do we know how manipulating ASTs from Perl should look like?
20:06 svnbot6 r9345 | fglock++ | iterator_engine.p6 - $alt(@_) - without dot
20:07 Limbic_Region audreyt - ok, chances are you have enough memory on your machine not to need several hours to compile - I will be around for the next 1.5 hours to bounce stuff off if you need me
20:07 audreyt gaal: no, that's an ::API thing as well
20:07 * Limbic_Region is seriously hoping that it is a local problem only
20:07 audreyt Limbic_Region: roger.
20:09 jjore_ Juerd: there's a nice article about doing that front-end switcher stuff in not-released-yet Perl Hacks book.
20:10 Juerd jjore_: TBH, I'm looking for someone to do the work; I think I could do it myself, but I severely lack tuits.
20:10 jjore_ It's in O'Reilly's Rought Cuts. Suppsedly.
20:10 audreyt ok, food is here, and battery is suboptimal. I'll bbiab
20:10 Juerd jjore_: But thank you for the pointer
20:10 * jjore_ suggests it as a ready place to steal some working code fro.
20:11 Juerd It doesn't stop at code
20:11 Juerd It needs to be tested, and it will fail the first few times, which requires debugging, etc
20:11 putter fglock: re $alt, if I understand the code, you are trying to basically set up a circular call.  ie, $alt = f($alt);  Until laziness works, you can't do that.  the sub{$alt} is delaying the $alt lookup.
20:12 fglock putter: ok
20:15 putter gaal: yes, and I haven't tested it to be sure, but I suspect the Parser.hs games, which provide for use/require parsing in the absence of a macro "is parsed(/some regexp or other/)", also get you compile time.  maybe.
20:15 svnbot6 r9346 | fglock++ | lrep: fixed 'rule :P5'
20:15 fglock pmurias: 'Can't locate p6dump.pm'
20:15 fglock pmurias: avn add?
20:15 fglock s/avn/svn/
20:22 gaal putter: yeah, you must be right
20:24 FB|afk is now known as FurnaceBoy
20:24 putter TimToady: could I borrow you for a reality check?  I have the PL_regcompp / execp  regexp engine intercept hooked into an alternate re engine written in p5 subs.  And it's happily working/failing/segfaulting it's way through the p5 t/op/ test files.  Next step is to get (??{...}) working.  The only way of doing that which I know of is what the current
20:24 nothingmuch fglock: back, sorry
20:25 fglock nothingmuch: pong
20:25 FurnaceBoy is now known as FB|afk
20:25 nothingmuch fglock: soooooooooo
20:25 putter engine does, sv_compile_2op.  Which trips personal warning flags.  I'm not sure how to ask this...  "is this still sane?"
20:25 nothingmuch did you see the slides for the perl 6 compilation talk?
20:25 fglock nothingmuch: link?
20:26 nothingmuch what browser are you using?
20:26 TimToady putter: it's not clear it was ever entirely sane...
20:26 nothingmuch you can have either the nice, pretty slides
20:26 putter lol
20:26 nothingmuch or the ones that don't kill firefox ;-)
20:27 fglock nothingmuch: Firefox
20:28 putter TimToady: no way comes to mind to get access to lexical variables without "getting down in the mud" with sv_compile_2op-ish op code creation?
20:28 putter (other than source filters of course)
20:29 * putter crosses his fingers and hopes for a B::SeeLexicalEnvironment  cpan module...;)
20:29 putter ah well
20:29 nothingmuch fglock: http://nothingmuch.woobling.org/perl6_comp/slides/
20:29 nothingmuch putter: PadWalker?
20:30 * putter looks...
20:31 fglock nothingmuch: thanks - reading
20:31 TimToady That was always the major problem with (?{}) and (??{})--they both escape partway from their lexical scope without giving you a true closure.  Someone was going to fix that once...
20:32 jjore_ Someone ws still saying they'd fix it as recent as a month ago.
20:32 nothingmuch TimToady: i've heard of several such brave souls going to fix that
20:32 nothingmuch ofcourse, it was always in future tense
20:33 TimToady I looked at it a couple of years ago and decided it would be Hard.
20:33 KingDiamond joined perl6
20:35 putter my blessings upon you all.
20:37 putter I'm going to attempt some workarounds first, before descending into the muck.  (and your link, and random words which triggered ideas... yay;)
20:38 putter thank you.
20:38 nothingmuch yay!
20:39 jjore_ putter, you could probably do some simple B::XPath on the linked in optree to get the lexicals and their names.
20:40 jjore_ You have to get chromatic to put B::XPath on CPAN tho.
20:40 putter jjore_: my thanks
20:40 svnbot6 r9348 | pmurias++ | added p6dump.pm (forgot in the last commit)
20:41 TimToady putter: you might also be able to get away with slapping an extra "sub {...}" around the code and then dereffing at the right place.
20:41 nothingmuch code examples in perlembed
20:42 jjore_ Or ask robin to let PadWalker be given a root.
20:42 jjore_ maybe it does already.
20:42 TimToady (assuming you have to go as far as to modify sv_compile_2op...)
20:42 fglock re: self hosting Perl6 - what would be the minimal requirements ? (broad question isn't it?)
20:43 nothingmuch well
20:43 nothingmuch parser
20:43 nothingmuch linker
20:43 nothingmuch emitter stuff
20:44 nothingmuch definition of ASTs
20:44 nothingmuch ability to embed VM inside parser/linker/emitter stuff
20:44 nothingmuch in order to run macros/grammar extensions/whatever
20:45 fglock nothingmuch: can lrep be it? It can be made self-hosting in a few days
20:54 TimToady if so, you could rename it to perlrep and have it be a palindrome. :-)
20:55 fglock TimToady: sure :)
20:55 nothingmuch fglock: hopefully =)
20:56 fglock cool - we've got a new milestone to get to
20:56 nothingmuch what I'm most concerned about is correct semantics
20:56 nothingmuch pugs is a fast bootstrap thing, and it's fun for it
20:56 nothingmuch but every time we "correct" things
20:57 nothingmuch (separate compilation, cached compilation, add macros, lexical imports...) someone hits a wall
20:57 nothingmuch it's easy to fix, due to haskell's nature
20:57 nothingmuch (well, it's not frustrating to fix, at least ;-)
20:58 nothingmuch but i think we have already learned a lot, and that Px should try to skip onto 3rd system phase
20:58 nothingmuch the main point of this is that we want the separate phases to be as modular and reusable as possible
20:58 nothingmuch so that we can use the parser as a module in an editor with Perl support
20:58 nothingmuch and just skip macro support if we have no evaluator
20:58 putter indeed more thanks for suggestions.  a simple eval_pv from inside PIL_regcompp regrettably does not bind up properly.  so off to further exploration...
20:59 fglock nothingmuch: please note that I don't have that experience - I've only worked at the run time so far, so I need lots of help
20:59 nothingmuch use the evaluator *or* emitter/vm backend to run macros, etc
20:59 nothingmuch okay
20:59 nothingmuch keep note of this rant?
20:59 nothingmuch another key concept is information preserval
21:00 nothingmuch if we alternate between tree translation layers, and tree processing layers things should stay pretty clean, in my experience
21:00 putter nothingmuch: re easy/non-frustrating to fix... *quiet mumble of dissent*
21:00 nothingmuch but if we try to short circuit things, like stuff some optimizations into the wrong stage... actually, ask TimToady about this stuff =)
21:01 nothingmuch ask him how he would like the perl 6 to perl 7 translator to be written
21:05 fglock nothingmuch: is there something written about the experience with separating roles in the compiler - specific to what has been learning with Pugs?
21:06 nothingmuch fglock: not really
21:06 nothingmuch except my own rants and experimentations
21:07 nothingmuch also, remember pesky things like type annotations
21:07 nothingmuch they are hard to glue on post-factum
21:09 whiteg_ joined perl6
21:11 fglock re lrep - it is small enough to be easy to be made self-host; as it grows, it may get more difficult - if some lambdafolk could reality check it, maybe?
21:12 * fglock thinks he could have been learning Haskell instead
21:13 nothingmuch fglock: please describe it's arch
21:13 fglock sorry, I'm not aware of the Haskell tools, I think they must be really impressive
21:14 fglock nothingmuch: there is a match-engine, which handles alternation, backtracking and such
21:14 nothingmuch is it a compiler or evaluator?
21:14 fglock sorry?
21:15 Muable joined perl6
21:16 nothingmuch fglock: does it run prel 6?
21:16 nothingmuch or does it parse perl 6 and emit perl 5?
21:17 fglock nothingmuch: it parses Perl6 and emits Perl5
21:17 nothingmuch okay
21:17 nothingmuch so the match engine is written in...?
21:17 fglock nothingmuch: but it can eval the code it generates, of course
21:17 nothingmuch does it also have a perl 6 in perl 6 evaluator?
21:18 fglock we have 2 versions of the match engine - the original is written in p5, and there is another that will be used by the self-hosted compiler, which is written in p6
21:19 nothingmuch okay
21:19 nothingmuch what does it parse into?
21:19 fglock the Grammar is almost 100% written in Perl6 - there is no bootstrapping code (it uses the previous compiled Grammar)
21:20 fglock the Grammar generates nodes which are 1 element hashes, like { node => [ content ] }
21:20 nothingmuch okay
21:20 fglock but that's because the Grammar says so - it could be anything
21:20 nothingmuch i know =)
21:21 fglock last, there is the emitter, which just... emits
21:21 robkinyon joined perl6
21:21 nothingmuch okay
21:21 nothingmuch what's your objective?
21:22 fglock nothingmuch: the objective is "to write a rule engine" - but it has grown a little out of control :)
21:22 nothingmuch aha
21:23 nothingmuch would you like to restate your objective?
21:23 nothingmuch i think my previous advice might be missing your plans
21:23 fglock sure
21:23 nothingmuch i thgouth you were aiming for:
21:23 nothingmuch alpha version of *The* canonical Perl 6 system ;-)
21:25 stevan_ joined perl6
21:25 nothingmuch oh no! it's him!
21:25 azuroth oh no, it's DEVO
21:26 fglock nothingmuch: what's your advice?
21:26 nothingmuch basically:
21:26 nothingmuch (now that I know more details):
21:26 nothingmuch make the parse tree more "knowlegable"
21:26 nothingmuch i.e. every node is an object
21:26 nothingmuch with some convenient introspection methods
21:26 nothingmuch and the ability to traverse it's children
21:26 nothingmuch kind of like HTML::Element
21:27 nothingmuch but more "well typed"
21:27 nothingmuch make sure it represents the syntax level well
21:27 nothingmuch then compile it into an AST level thing
21:28 nothingmuch that represents what the program does, not how it's written
21:28 nothingmuch with all due respect to PIL, PIL^N, and so forth, i actually think that OCaml is the best target so far
21:28 nothingmuch it's functional, it's OO, it's well typed
21:29 nothingmuch if we make an AST inspired by OCaml's intermediate language, i think we have much to gain
21:29 nothingmuch (including a potentially very cool backend VM - the OCaml compiler toolchain ;-)
21:29 nothingmuch make sure you have the hooks to convert to this AST during parsing
21:30 nothingmuch and then to run this AST with a generic "run it" api, to evaluate macros and stuff
21:30 nothingmuch as for the "run it" api:
21:30 nothingmuch the next logical step is an evaluator for this language
21:30 nothingmuch that's usually pretty easy to write
21:30 nothingmuch if you make it correct and simple
21:30 nothingmuch (doesn't have to be fast)
21:30 nothingmuch then convert to an AST that's closer to the target language
21:30 nothingmuch as part of the emitter
21:31 nothingmuch and have the emitter serialize that as whatever bytecode/sourcecode format the target language is
21:31 nothingmuch make sure emitters are pluggable
21:31 nothingmuch runners are pluggable
21:31 nothingmuch etc etc
21:31 nothingmuch also take care of linkage during parsing, and linkage during compilation, and linkage during emission, and linkage during runtime
21:31 nothingmuch each of these for a distinct reason:
21:31 nothingmuch parsing: load new grammar thingies
21:31 Limbic_Region audreyt - I am out for the evening - please /msg me at the Monastery to let me know your results
21:32 nothingmuch run macros
21:32 nothingmuch compilation:
21:32 nothingmuch pluggable transformations that are not really on the macro level
21:32 nothingmuch like 'use optimizer', and pluggable runloops in Perl 5
21:32 nothingmuch emission: we need to know how to respect the backend's preference WRT linking
21:33 nothingmuch runtime: we need to also resolve symbols at runtime, in a generic way
21:33 nothingmuch also think of prebound targets
21:33 nothingmuch (static linking)
21:33 nothingmuch *phew*
21:33 nothingmuch (you better still be listening ;-)
21:34 fglock nothingmuch: still here
21:34 FB|afk so what are you waiting for? :)
21:34 nothingmuch FB|afk: well, i have to quit my job
21:34 nothingmuch that's why i'm writing my CV
21:34 FB|afk ic
21:34 nothingmuch so that i can scale down to part time
21:34 nothingmuch and have more time/energy for fun
21:34 nothingmuch ;-)
21:35 jjore_ joined perl6
21:35 fglock nothingmuch: the modularization can be made in p5 land (easy) or p6 land (during or after self-hosting)
21:35 nothingmuch now, the next step:
21:36 nothingmuch think of it as a perl 6 program
21:36 nothingmuch don't worry about self hosting yet
21:36 nothingmuch run it using pugs
21:36 nothingmuch whatever pugs we have so far
21:36 nothingmuch i.e. don't optimize for small size, optimize for good code
21:36 nothingmuch and then when it's implemented far enough make it self hosting
21:37 nothingmuch otherwise keeping the self hosting stuff up to date might turn out to be a PITA
21:37 nothingmuch the next step in our fun monologue is what funky tools we have
21:37 FB|afk agree 100% with 'correct first, fast later'
21:37 nothingmuch "make it work, make it work right, make it work fast"
21:38 fglock nothingmuch: the self hosting grammar we have so far is very nice to work with - it doesn't need anything special to be kept self-hosting - it just "is"
21:38 nothingmuch fglock: the grammar is a small small subset, sadly
21:38 nothingmuch OO is probably the most difficult part
21:38 nothingmuch and we will need both OO and higher order functions to write a proper compiler
21:39 nothingmuch in addition to the grammar stuff
21:39 fglock nothingmuch: we have the tools stevan has been working on
21:39 nothingmuch i doubt that can self host very easily
21:39 nothingmuch perl 5 tools?
21:39 nothingmuch yes, they make perl 5 an easier target backend, but it's still a long way from self hosting
21:40 nothingmuch all i'm saying is: if the reason you're using hash nodes is because you don't have OO implemented in pX, then it's not the right reason IMHO
21:40 nothingmuch but i could be wrong
21:40 nothingmuch after all, most of my compiler projects were left unfinished, after i realized that what I set out to learn has been learned
21:40 justatheory joined perl6
21:40 nothingmuch buut this is something different, this is a practical project, not a learning project
21:41 nothingmuch so take my advice with a grain of salt
21:41 fglock nothingmuch: basic OO is easy to implement (no multiple inheritance, etc) - if we can self-host with the metamodel, better yet
21:42 nothingmuch again, i'm not opposed to self hosting at all
21:42 nothingmuch i think it's very valuable
21:43 nothingmuch but since perl 6 is a big languauge, limiting the compiler written in Perl 6 to the subset of the language that's currently implemented by itself is a pretty tight restriction
21:43 fglock re reason for no OO - premature optimization (sorry)
21:43 sapper joined perl6
21:44 Ara4n joined perl6
21:44 nothingmuch so
21:44 nothingmuch what do you think?
21:44 nothingmuch am I full of shit?
21:45 nothingmuch or does this make sense?
21:45 fglock nothingmuch: that's the bootstrap cycle - it can evolve by writing more things using itself - this needs more architecture skills than currently available, but I think it is already possible
21:45 nothingmuch yes, but you're forgetting one HUGE deduction
21:45 nothingmuch you can cheat
21:45 nothingmuch because you have pugs
21:45 nothingmuch which gives you a ton of Perl 6 features that actually work
21:46 nothingmuch including not-so-simple stuff, like proper IO and system calls, pretty complete value and container operations
21:46 nothingmuch (strings, numbers, arrays, hashes, reference semantics, etc)
21:46 nothingmuch a fairly working OO system
21:46 nothingmuch with multimethods
21:47 nothingmuch some of these things are the reason why we didn't write Perl 6 in Perl 5
21:47 nothingmuch you almost need them to easily develop a compilation system
21:48 fglock nothingmuch: please note that I've tried it before
21:48 nothingmuch okay
21:48 fglock but there were some problems in that I couldn't extend Pugs by using Perl6
21:48 nothingmuch ofcourseu
21:49 fglock writing from scratch, however crazy, makes for a very flexible result
21:49 nothingmuch but i still think bootstrapping from nothing is harder than bootstrapping from the perl 6 that pugs gives us
21:52 fglock how about: have a bootstrapped thing so that you have a working prototype of the bootstrapping process
21:52 fglock bbiab
21:52 nothingmuch well, sure, i agree with that
21:52 nothingmuch but i don't think it's easy as a begining point
21:53 nothingmuch if you can pull it off, please do
21:53 svnbot6 r9349 | pmurias++ | --yaml dumped in favor of --format name
21:53 svnbot6 r9349 | pmurias++ | p6dump.pm refactored
21:54 pmurias nothingmuch: some think can be in perl5 until lrep is matured enough
21:54 pmurias s/think/things/
21:55 nothingmuch yes
21:55 nothingmuch i'm jjust pointing out the alternatives
21:55 nothingmuch some things can be in perl 6 until it's mature enough
21:55 nothingmuch instead of rewriting them as perl 6 once it is mature enough, we run them with pugs until they're mature enough
21:55 nothingmuch i think that's less work
21:56 nothingmuch and makes it backend-agnostic project
21:56 nothingmuch which is a very important part of organic growth
21:56 nothingmuch if people come to rely on perl 5 as a backend then it's easier to cheat and make yuck yucky code
21:56 pmurias the most crazy alternative would be to make a limited perl5 frontend :)
21:56 nothingmuch ?
21:56 nothingmuch explain that please
21:58 pmurias basicly make lrep a perl6 *and* perl5 compiler
21:58 mauke_ joined perl6
21:59 mauke_ is now known as mauke
21:59 nothingmuch eep
21:59 nothingmuch that's... err... hard
21:59 * nothingmuch believes in easily attainable goals for short term rewards
22:00 pmurias it would test grammars to *the* limits :)
22:00 pmurias and lrep is writen using only a subset of perl5
22:00 nothingmuch that would suck
22:01 nothingmuch the second thing
22:01 nothingmuch because perl 5 is not good enough for writing heavyweight compilers
22:01 pmurias the second thing meaning?
22:02 nothingmuch writing lrep in the intersection of perl 5 and perl 6
22:02 pmurias used the present tense on purpose :)
22:02 nothingmuch oh
22:02 nothingmuch ouch
22:02 pmurias np
22:03 nothingmuch toying with blondie tought me a lot of what perl 5 is not good enough for
22:03 nothingmuch too much language tax for these things
22:04 Maddingue_ joined perl6
22:04 pmurias anyway I'm mostly the grow-sidways guy
22:06 pmurias fglock pushes the design futher I refactor a bit and add optional deps
22:06 nothingmuch could you expand on that sideways metaphor?
22:06 nothingmuch i am interepreting it in ~3 separate ways =)
22:07 pmurias Imagine a tower
22:08 pmurias moving things to perl6,adding macros and achiving other goals is making it higher
22:10 pmurias adding stuff like options,code cleanup,better debugging support is making the compiler stronger eq. the tower wider
22:11 pmurias understood?
22:13 PerlJam I wonder what sources of information they used for http://www.eweek.com/article2/0,1895,1932126,00.asp
22:14 pmurias nothingmuch: got to go to sleep now, thank you for your design proposal
22:15 pmurias nothingmuch++ #for good design
22:16 nothingmuch sorry, back
22:18 putter one thing I haven't seen mentioned yet is flexibility and rapid development.  we still don't have a p6 implementation of rules on pugs, nor any on perl5.  just getting an ast for a p6 regex is impossible on both platforms.  let alone p6 parse trees.  in just a few days, fglock etal has gotten close to providing a rules implementation on both p5 and p6.
22:19 fglock back
22:20 putter I also note that things like having rules take simple arguments, which might be easily done in lrep, are not even plausible objectives on pugs or pge (or the non-existant p5 engine).
22:22 nothingmuch putter: yes, i agree about that
22:22 nothingmuch that's a very good point for px
22:22 nothingmuch but i think it's slightly orthogonal
22:23 nothingmuch if it provides this, it still doesn't have to self host
22:24 fglock nothingmuch: re orthogonal: we already have the infrastructure to implement lrep-for-pugs (putter++)
22:24 nothingmuch define lrep-for-pugs?
22:25 nothingmuch i'll try to rephrase
22:25 fglock so writing the compiler in Pugs would not be a problem
22:25 nothingmuch i think making lrep run on pugs is more important than making lrep run on lrep
22:25 fglock lrep is being rewritten in p6
22:27 fglock re "more important" - does it make it a plan? I mean, does it help Pugs to self-host?
22:27 fglock there are other rules backends being written for p6, right?
22:27 * putter is simply delighted by progress/un-wedge-itude + volunteers + excitement.
22:28 SamB joined perl6
22:28 fglock "un-wedge-itude" ?
22:29 putter (un-wedged-itude - the state of not being wedged, aka, stuck, aka unmoving;)
22:29 * jjore_ thinks that the action of not receiving a wedgie.
22:30 nothingmuch that's an anti action
22:30 nothingmuch jjore_++
22:32 jjore_ It means you can walk up behind someone, yell "Atomic Unwedgie" and then avoid giving them a wedgie.
22:33 nothingmuch you mean in front of someone
22:33 nothingmuch this reminds me of the "i'm rubber and you're glue" protocol for insult mutual recursion
22:33 nothingmuch and the "order of magnitude" protocol
22:34 nothingmuch which always you to add any number of one thousands or infinities to your conjecture's adhesiveness
22:34 nothingmuch thus subsuming the rubbery properties of your oponent
22:34 jjore_ I think as llng as you're not giving the person a wedgie you can be anywhere but tradition dictates you're behind theo ther person.
22:34 nothingmuch wow
22:34 nothingmuch kids are stupid
22:34 * putter probably would have punted the "better perl5 support for p6 stuff" effort if not for flgock's activity.  hmm... wouldn't be staring at p5 opcodes...  fglock!%$#@!!
22:34 nothingmuch oh
22:34 nothingmuch i thought it was making sure you aren't getting a wedgy
22:34 nothingmuch like, you are walking in front of someone
22:35 nothingmuch and then you yell "atomic unwedgie" and they can't give you one
22:35 fglock re un-wedged-itude: nothingmuch - if we can learn from past "good" decisions, we can just move on
22:36 fglock we should try to reuse good decisions
22:36 putter (or cut and paste them)
22:37 nothingmuch fglock: yes, i agree
22:37 nothingmuch that's why i brain dumped
22:37 nothingmuch because I learned a lot from harroth and blondie
22:37 fglock or "can we redo Pugs in P6"?
22:37 nothingmuch i don't think we want to reimplement pugs in perl 6
22:37 nothingmuch we want something better
22:38 nothingmuch avoid ssome of the traps that are setting pugs back
22:38 nothingmuch also, our priority is different:
22:38 nothingmuch high quality
22:38 nothingmuch vs. fast turnaround
22:38 putter (btw, http://foldoc.org/?wedged )
22:38 nothingmuch putter: yes
22:38 nothingmuch that's what happens in a wedgie
22:38 nothingmuch the underwear is wedged in the receiver's butt crack
22:42 putter hmm... the high quality need is not entirely clear to me.   low quality but capable of reasonably easy continuous development would be just fine with me.  pugs's difficulty isnt optimization for rapid development rather than high turnaround.  it's that you can spend a day attempting something very simple, and fail.
22:42 theorbtwo joined perl6
22:42 FB|afk is now known as FurnaceBoy
22:42 putter err, s/high turnaround/high quality/
22:43 nothingmuch well
22:43 nothingmuch IMO the reason pugs has that trait is that some parts were not very well thought out in advance
22:43 nothingmuch because pugs is optimized for being written fast
22:44 nothingmuch which is unfortunately not good for being maintained fast
22:44 nothingmuch (although we're paying surprisingly little for what we're gaining in terms of new features)
22:45 nothingmuch if we optimize this implementation to be simple, and correct, flexible and readable (== high quality by my standards) i think we will have more to gain
22:45 fglock "this implementation" == current Pugs?
22:47 nothingmuch no
22:47 nothingmuch the canonical Perl 6 system
22:47 nothingmuch potentially what lrep is starting
22:48 putter a "simple, correct, flexible and readable" _anything_ associated with p6 (spec, parser, runtime, etc), would be a very nice thing.  there's just the minor matter of bootstrapping...
22:48 nothingmuch so, we go back to my argument, which you may or may not agree with
22:48 nothingmuch that this is important enough that we should rely on pugs as a bootstrap platform
22:49 nothingmuch instead of self-hosting-from-scratch
22:49 nothingmuch or nearly scratch
22:51 fglock how about a pluggable compiler core - is this possible? (no implementation, only the plug-in infrastructure)
22:52 fglock written in p6
22:52 fglock it would be potentially slow, if the implementation is not done right
22:53 nothingmuch err, what do you mean?
22:53 nothingmuch fuck slow (for now)
22:53 m joined perl6
22:53 putter I consider it an open question. (re rely)  Building on pugs has costs as well as benefits.  And for whatever one is doing, one has to weigh those.  Eg, the edit-compile-test cycle time is much more attractive on p5 than p6.  So for subprojects which can otherwise be done on both, p5 wins.  Similarly for the stability of the object system.   I think
22:54 fglock design an API for p6 internals, so that people can work in the modules
22:54 putter I think the "we bootstrap on pugs" is too simplistic.  We are bootstrapping on pugs.hs and parrot and pge and pcre and ...
22:54 fglock I mean, p6 compiler internals
22:54 nothingmuch i think the smartest thing is if we have two bootstraps
22:54 nothingmuch obviously we have different priorities
22:54 nothingmuch i'm planning on starting something similar too
22:54 nothingmuch but....
22:54 putter The question is does potential new component foo strategically or tactically help us in making progress.
22:54 nothingmuch the twist is that we should aim to share code
22:55 nothingmuch and ideas
22:55 nothingmuch does that make sense?
22:56 putter In some ways our recent lack of motion helps clarify the question.  It's less a matter of which of several currently fruitful avenues do we persue, than a matter of anything that gets us moving and attracts people resources is good.
22:56 nothingmuch yes, i agree
22:56 nothingmuch but i think we've had one screwup along the way:
22:56 nothingmuch too much code is getting thrown away
22:57 nothingmuch so much effort was invested in PIL
22:57 nothingmuch despite the fact that it's considered to be an almost dead project lately
22:58 fglock nothingmuch: it was a pioneer - it was needed because that was the best thing to do at that time
22:58 * putter somewhat regrets spiking pilrun (hmm... to show _you_ I think, that it was possible), and thus starting us down a pil-based backend path.
22:58 nothingmuch yes, i agree
22:58 * stevan_ blames putter, always has... always will :P
22:58 nothingmuch it was important
22:58 stevan_ is now known as stevan
22:59 putter sigh
22:59 nothingmuch it's just that we should invest a little more in future proofing because of our so limited resources
22:59 * fglock doesn't regret showing that lazy arrays were possible
22:59 nothingmuch there's no contradiction
22:59 putter though I'm still not clear on why pil didnt continue to incrementally evolve.
22:59 * stevan doesn't regret all his (mostly throwaway) code either :)
22:59 nothingmuch neither do i
22:59 nothingmuch in fact, that's my specialty
22:59 putter And there's the counter argument,
23:00 nothingmuch but there's no contradiction
23:00 nothingmuch i'm not saying "don't write code for learning"
23:00 nothingmuch i'm saying "also think about whether or not this code can be directly useful in the Perl 6 system, not just indirectly"
23:00 stevan putter: PILN withered mostly because neither audreyt or I could pay any attention to it for a bit,.. and it was too undocumented
23:00 putter audreyt would have cut back on pugs work last year regardless.  so maybe the backend stuff kept people interested and learning at a time when things might otherwise have become quite quiet.
23:00 nothingmuch we're beating around the bush a lot
23:00 nothingmuch a whole lot
23:00 nothingmuch and we're learning much from this
23:00 amnesiac joined perl6
23:01 nothingmuch but we have to get around to actually doing the "real thing" at some point
23:01 jjore_ PIL is dead?! dang. I only learned of it uh... last night.
23:01 nothingmuch hehe
23:01 stevan PIL is dead,.. long live PIL!
23:01 nothingmuch i thought PIL is dead because it didn't map objects well enough and that's why PILN was born
23:01 integral "we"?   if we don't, the TPF folks will implement perl6 anyway;  and if we meander more, we might learn more
23:01 nothingmuch which is also dying for... err... i forget
23:02 stevan integral: yes, that is correct
23:02 nothingmuch integral: uh, okay
23:02 stevan nothingmuch: it is dying because it is undocumented and I (and audreyt) are short on time
23:02 nothingmuch again, this is just what i've resolved to try to do with my own code
23:02 nothingmuch and i'm sharing this new resolution with you
23:02 nothingmuch in the hopes that you might agree
23:02 jjore_ Where does PIL fall into the categories on http://pugs.kwiki.org/?Perl6Nomenclature?
23:03 * stevan missed the resolution part?
23:03 jjore_ Drat. It's on there.
23:03 jjore_ I thought it wasn't
23:03 jjore_ sorry, ignore that.
23:03 stevan jjore: PIL (v1) is different from PILN and PIL2 (which does not exist yet)
23:04 nothingmuch see, for example WRT PIL and stuff
23:04 * putter too has become very conscious lately of "I dont want to spend time debugging code which is about to be thrown away!".
23:04 nothingmuch since PIL has not yet materialized, and there are projects to help materialize it properly
23:04 nothingmuch but the parts that need PIL to work are stuck until it's ready
23:04 nothingmuch i'd like to start them anyway
23:04 stevan in OCaml?
23:05 nothingmuch but instead of planning to throw them away when PIL is ready, i'm guessing that PIL2 will be close enough to OCaml that targetting OCaml might be a smart move
23:05 stevan chromatic will pitch a fit about that one :P
23:05 nothingmuch (one example)
23:05 nothingmuch yes
23:05 nothingmuch something about javascript running the scheme core of Perl 6
23:05 * fglock goes port lrep to OCaml
23:05 nothingmuch heh
23:06 jjore_ What's lrep?
23:06 nothingmuch jjore_: you'll learn when you reach level 931
23:06 fglock reverse 'perl'
23:06 * stevan breaks out the SNOBOL manual and starts on Perl 6 metamodel 3.0
23:06 nothingmuch SNOBOL started OO, right?
23:06 stevan no, CLU
23:06 stevan I got a CLU manual too
23:06 nothingmuch CLU??
23:06 jjore_ yah, I get that it's scalar( reverse 'perl' ) but that's just the name.
23:06 stevan read your history books boy!
23:07 nothingmuch jjore_: i'm not 100% sure what it is yet
23:07 nothingmuch or rather, what it's going to be
23:07 nothingmuch it's fglock's project
23:07 nothingmuch and it implements a basic rule engine
23:07 stevan SNOBOL is the text-processing language,.. kinda like Perl but uglier and 20 years ago
23:07 nothingmuch and a parse tree
23:07 nothingmuch and a grammar for Perl 6
23:07 integral stevan: Perl is almost 20 years ago now :)
23:07 nothingmuch and an emitter for Perl 5
23:07 stevan integral: true :)
23:07 nothingmuch 20 + 20?
23:07 jjore_ So lrep is another pugs?
23:08 nothingmuch jjore_: that's what we're trying to decide
23:08 nothingmuch =)
23:08 stevan nothingmuch: CLU was one of the first languages to use ADTs and module systems in a very OO way
23:08 stevan it also gave us the keyword 'yeild' IIRC
23:08 integral hmm, has any of these things to date reimplemented Pugs.Parser, or have they all been working from pugs parse trees?
23:08 nothingmuch aahh! liskov! fear!
23:09 integral stevan: that's almost as bad as "referer"
23:09 stevan Referer Madness!!!!
23:10 nothingmuch integral: fglock's approach is to replace the pugs.parser code with a grammar for Perl 6 written in Perl 6 rules
23:10 nothingmuch btw, have you considered making it emit Pugs ASTs?
23:10 nothingmuch that way you could abuse Pugs to get PIL output
23:10 nothingmuch and all the pretty backends
23:10 nothingmuch or the pugs evaluator
23:11 stevan what about the YAML stuff
23:11 stevan that audreyt and gaal were working on,..
23:11 nothingmuch that's basically that
23:11 * FurnaceBoy composes a limerick involving yaml and camel
23:11 nothingmuch FurnaceBoy: we have a wrapper to sing that limerick: mc parsec (stands for monadic combinator)
23:11 * FurnaceBoy slaps forehead
23:12 nothingmuch stevan: so anyway...
23:12 nothingmuch they added a cache feature
23:12 nothingmuch that allows pugs to dump parse trees as YAML
23:12 nothingmuch and then load YAML instead of reparsing the perl 6 code
23:12 stevan yes
23:12 fglock nothingmuch: re Pugs ASTs - pmurias is working on that...
23:12 nothingmuch yay!
23:12 nothingmuch pmurias++
23:12 stevan so can't fglock's thing target YAML?
23:13 nothingmuch that's exactly what he said pmurias is doing ;-)
23:13 nothingmuch YAML is the serialization format
23:13 jjore_ Everytime you parse a YAML document, baby Jebus cries.
23:13 nothingmuch jjore_: not with Syck
23:13 stevan it only kills kittens
23:13 jjore_ Ok, s/parse/write/
23:14 nothingmuch jjore_: not with Syck
23:14 nothingmuch ;-)
23:14 jjore_ Always.
23:14 jjore_ Forever and ever.
23:14 nothingmuch we have this funky preprocessor called DriFtT or something like that
23:14 nothingmuch which takes haskell data type declarations
23:14 jjore_ YAML is the format of extreme pain.
23:14 nothingmuch and writes uus YAML emitter thingies for them
23:14 jjore_ Which I suppose... makes us all masochists.
23:14 * stevan suggests XML then :P
23:15 * jjore_ finds XML less painful than YAML. So uh... yeah.
23:15 fglock stevan: XML is already there (today), afaik
23:15 * jjore_ is just gawking.
23:15 nothingmuch eek!
23:15 nothingmuch no awk!
23:15 jjore_ for the moment.
23:15 nothingmuch awk bad!~
23:15 nothingmuch even gnu awk
23:15 integral not as a CodeGen backend.  You probably just need something modelled along the lines of the YAML backend
23:16 nothingmuch integral: who are you replying to?
23:16 integral hmm, appears to be fglock
23:16 nothingmuch ah
23:16 nothingmuch yes, that's simple to write, theoretically
23:17 nothingmuch i think something much cooler to write would be a packed output backend
23:17 nothingmuch similar to the bittorrent serialization format
23:17 nothingmuch it's very fast to dump/load
23:17 nothingmuch but completely uneditable
23:17 nothingmuch (which is OK for caches)
23:17 stevan then I can run p6 code from someone elses laptop??
23:18 fglock integral: "CodeGen backend" ?
23:18 integral fglock: the things that you pass to -C.  Parse-YAML for example
23:18 nothingmuch http://search.cpan.org/~giulienk/Convert-Bencode_XS-0.04/lib/Convert/Bencode_XS.pm
23:19 macli joined perl6
23:22 * putter hears "hey, we have something which is working... so let's throw it away and do something different without thinking about whether we need to, or about whether the different will actually work..." ;)
23:22 fglock integral: do you mean, YAML should be used internally by the compiler (sorry, I didn't understand)
23:22 nothingmuch i didn't say we should
23:22 nothingmuch i just said cooler
23:22 nothingmuch ;-)
23:22 putter lol
23:23 integral fglock: oh, no, this was just in response to the XML comments.  That even though DrIFT does it, there's not a pugs backend for it atm.
23:23 nothingmuch when I say "cool" there's a 99% chance I won't implement it ;-)
23:23 putter :)
23:23 fglock integral: ok
23:24 putter aerospace engineering has the great line that a paper airplane can always outfly a metal one.
23:24 nothingmuch yes, but it's a matter of scale
23:24 putter (where paper airplane == proposal or unimplemented design)
23:25 nothingmuch oh
23:25 nothingmuch =)
23:26 nothingmuch ooh ooh! i got my dr. mcninja tshirt today
23:26 nothingmuch i'm so much cooler than any of you
23:26 putter lol
23:26 putter and, err, what is a dr. mcninja tshirt?
23:26 fglock nothingmuch: ooooooh
23:26 nothingmuch putter: http://www.drmcninja.com/
23:26 nothingmuch start with archives
23:27 nothingmuch dr mcninja vs. mcdonnalds is not as nice as the first "official" episode
23:27 nothingmuch and the second one relies on background info
23:30 nothingmuch BOY! Have you been LUMBERJACKING?!
23:32 putter ah, yes. Meet The Doctor And His Friendly Staff is much funnier than the McVsMc.
23:32 putter back to work...
23:33 nothingmuch no!!!!!!!
23:33 nothingmuch dr. mcninja! dr. mcninja!
23:35 putter oh, to all who helped with lexical capture - I misunderstood my tests - the very simple approach, eval_pv inside PL_regcompp, did indeed capture.  woot.  PadWalker works too.  many thanks for your help.  I might well be loosing and punting if not for it.
23:35 whiteg_ is now known as whiteg
23:36 * nothingmuch goes to sleep
23:36 fglock me too
23:37 putter contagion!!!!!
23:38 fglock left perl6
23:52 Limbic_Region joined perl6

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

Perl 6 | Reference Documentation | Rakudo