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