Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-13

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:00 audreyt stevan: hey! wow, it's like an eternity since we last talked :)
00:00 stevan audreyt: I know :)
00:00 stevan like ships passing in the night
00:00 stevan audreyt: I submitted a talk for YAPC::NA on Moose,..
00:01 stevan if they accept it, you will have to help me write it 5 minutes before I have to give it :)
00:01 audreyt that's fine
00:01 audreyt my takahashi-fu has improved considerably
00:01 audreyt gugod showed me the way
00:02 audreyt (by generating 200+ JIT slides on the same day as his talk)
00:02 stevan I definitely plan on using takahashi
00:02 audreyt get sporx then: http://svn.kwiki.org/ingy/Sporx/
00:02 TimToady have we got past {{#foo|bar}} yet?
00:02 stevan already did :)
00:03 audreyt TimToady: yes... it's now
00:03 audreyt $_ = $__.color('chunk');
00:03 audreyt and arbitrary inline javascript
00:04 audreyt er, I mean .color(/(chunk)/g)
00:04 audreyt also bullets autohighlight, etc
00:05 LeTo XP - just the notebook and you - use Inline::Shower;
00:05 audreyt or just open up IRC and stream each line into slides
00:06 audreyt collaborative slidemaking
00:08 TimToady you need to virtualize time somehow.
00:09 ingy morning!
00:09 TimToady slide Myslide is tighter(Yourslide)...
00:09 TimToady slide ordering by surreal precedence.
00:10 ingy gugod came up with a *new* presentation method yesterday
00:10 ingy cooler than sporkahashi
00:10 ingy slowcat!
00:10 ingy XD
00:11 audreyt so just max out your screen font
00:11 audreyt and start "cat"?
00:11 ingy it's a perl script
00:11 ingy like figlet meets cat
00:12 ingy hmmm, jwz wrote it
00:12 ingy funny
00:13 * ingy is off to the doctor
00:15 TimToady don't let the doctor cat your figlet
00:15 svnbot6 r9921 | audreyt++ | * Prim.hs: TimToady likes accurate (and preferably precise)
00:15 svnbot6 r9921 | audreyt++ |   error messages, so calling system() etc under safe mode
00:15 svnbot6 r9921 | audreyt++ |   now generates (capturable) concrete errors, instead of
00:15 svnbot6 r9921 | audreyt++ |   null bindings resulting in "&system not found".
00:16 TimToady ?eval system q/perl -le '(my $a) = 42; print $a'/;
00:16 evalbot_9920 Error: No such method in class Str: "&system"
00:16 * audreyt points to '9920'
00:17 TimToady sorry, itchy trigger finger...
00:17 audreyt np :)
00:18 TimToady but what I reall want is...
00:18 TimToady ?eval (my $a) = 42;
00:18 evalbot_9920 Error: Undeclared variable: "$a"
00:19 audreyt *nod* before the GPR, there is really no my-expression form
00:19 TimToady understand you have a weekend scheduled.
00:19 audreyt and only my-statement form
00:19 audreyt ?eval system q/perl -le '(my $a) = 42; print $a'/;
00:19 evalbot_9920 Error: No such method in class Str: "&system"
00:20 TimToady another thing we need to think about is the fact that "my @foo = 1,2,3" doesn't do the same thing as "@foo = 1,2,3".
00:20 * TimToady points to 9920...
00:20 audreyt sorry, itchy trigger finger...
00:20 lichtkind gd night
00:21 TimToady dream sweets!
00:22 audreyt TimToady: well, assignment is one level above listfix ,
00:22 audreyt that always strikes me as odd
00:22 TimToady at one point there was a proposal to make list assignment into a list operator.
00:23 clkao audreyt: oh, so i meant to ask you about slurpy scalars.
00:23 clkao i don't quite get it. how is it different from normal scalar?
00:23 audreyt clkao: a slurpy scalar in param position?
00:23 clkao *nod*
00:23 audreyt it's just a slurpy array that consumes only the head
00:23 audreyt and leave the tail alone
00:23 audreyt (*$x, *$y, *@z) = 1..10;
00:24 audreyt $x and $y will be 1 and 2
00:24 clkao ($x, $y, *@z) wouldn't do the same thing?
00:24 audreyt nope
00:24 clkao oh ok.
00:24 clkao unless it's something like *(1..10)
00:24 clkao ?
00:24 audreyt right
00:24 clkao ach so
00:24 audreyt 1..10 is a single object now
00:24 audreyt unless it's flattened by context
00:24 clkao so it needs to tweak the incoming args to be bound. *doh*
00:24 audreyt yup
00:25 clkao ok. will attempt to fix that
00:25 TimToady but ($x, $y, *@z) = provides a list context to the right
00:25 audreyt danke
00:25 TimToady did you mean :=?
00:25 audreyt sigh, I mean :=
00:25 TimToady okay
00:25 audreyt it's not even legal to write =
00:25 TimToady not to a *
00:25 audreyt because *$x in lvalue doesn't mean anything :)
00:25 TimToady that's probably a good parsefail
00:26 audreyt well, it's not any more severe than
00:26 audreyt +$x = 8;
00:26 audreyt so maybe compile time error
00:26 audreyt but probably parseok
00:41 lichtkind joined perl6
00:41 lichtkind ?eval 'a' ~< 'b';
00:41 evalbot_9920 is now known as evalbot_9921
00:41 evalbot_9921 "a"
00:42 lichtkind ?eval 'a' lt 'b';
00:42 evalbot_9921 bool::true
00:42 lichtkind ?eval 'a' ~> 'b';
00:42 evalbot_9921 "a"
00:43 audreyt ?eval system q/perl -le '(my $a) = 42; print $a'/;
00:43 evalbot_9921 Error: Unsafe function 'system' called under safe mode
00:43 audreyt :))
00:43 lichtkind ?eval 'a' ~< 2;
00:44 audreyt TimToady: making list assignment a listop would make = unsignaturable
00:44 evalbot_9921 "\d[132]"
00:44 audreyt or greatly expand the signature's ability to affect parsing
00:44 audreyt since no common proto would exist between list= and scalar=
00:44 lichtkind ?eval 'a' ~< 'a';
00:44 evalbot_9921 "a"
00:45 Grrrr joined perl6
00:46 avar ?eval 10 +< 12
00:46 avar will lt be deprecated in fabor of +< ?;)
00:46 evalbot_9921 40960
00:46 avar favor
00:46 avar mm, doe somethjing else, apperently
00:46 avar *does something
00:47 audreyt and different things should still look different
00:47 lichtkind ?eval 1 +< 1;
00:47 audreyt 'a' .LT. 'b' # this makes your program really different
00:47 evalbot_9921 2
00:47 lichtkind ?eval 1 ~< 1;
00:48 evalbot_9921 "b"
00:49 lichtkind ?eval 1 ~< 2;
00:49 evalbot_9921 "\d[196]"
00:50 lichtkind stand \d for ascii?
00:50 lichtkind or decimal?
00:50 audreyt dec
00:50 lichtkind thx
00:51 lichtkind ?eval 2 ~< 1;
00:51 evalbot_9921 "d"
00:52 lichtkind ?eval 'd' ~< 1;
00:52 evalbot_9921 "\d[200]"
00:54 wolverian joined perl6
00:58 webmind joined perl6
00:59 audreyt hm, dankogai wrote in his blog about referential transparency and web 2.0... I've never thought of these two together
00:59 audreyt (and also how the GET/POST separation is the value/monad^Waction separation)
01:00 audreyt too bad babelfish is of little help this time
01:03 clkao i thought you are secretly learning japanese
01:05 audreyt don't believe rumours
01:06 audreyt I'm not learning japanese, secretly or not...
01:08 clkao but it's another language that you can steal stuff from.  no wait.. it's probably done already
01:14 ko1_away is now known as ko1_
01:19 frederico joined perl6
01:48 oylenshpeegul joined perl6
01:59 justatheory joined perl6
02:42 david_ joined perl6
02:43 DesreveR joined perl6
03:00 kcwu joined perl6
03:17 svnbot6 r9922 | fglock++ | PCR - added a test, and a bug workaround
03:20 fglock joined perl6
03:39 svnbot6 r9923 | fglock++ | PG-P6 - more failing tests
03:50 svnbot6 r9924 | Darren_Duncan++ | ext/Rosetta/ : updated comments on docs/OSCON2006SessionProposal.txt to say it wasn't approved
03:58 fglock left perl6
04:09 f0rth_ joined perl6
05:10 xinming joined perl6
05:16 justatheory joined perl6
05:27 Toaster joined perl6
05:27 jabbot joined perl6
05:53 q[uri] joined perl6
06:08 dduncan fyi, the OSCON 2006 web site was updated during the last few hours to include the schedule
06:09 dduncan its at http://conferences.oreillynet.com/os2006/ as usual
06:09 dduncan I will probably go, but will defer the decision until June or so
07:03 Aankhen`` joined perl6
07:11 f0rth joined perl6
07:20 nnunley joined perl6
07:35 lisppaste3 joined perl6
07:40 f0rth joined perl6
07:43 ghenry joined perl6
08:01 drrho joined perl6
08:10 ko1_ is now known as ko1_away
08:12 bb3 joined perl6
08:13 bb3 left perl6
08:44 nnunley joined perl6
08:47 broquaint joined perl6
09:06 david_ joined perl6
09:09 elmex joined perl6
09:15 chris2 joined perl6
09:44 KingDiamond joined perl6
09:45 dakkar joined perl6
09:57 rmoriz joined perl6
10:01 tifo joined perl6
10:45 marmic joined perl6
10:59 * dakkar is away: pranzo
10:59 mako132_ joined perl6
10:59 * dakkar is away: pranzo
11:04 nnunley_ joined perl6
11:13 lichtkind joined perl6
11:13 lichtkind is there still a defined ?
11:14 lypie joined perl6
11:17 spinclad lichtkind: ys
11:17 spinclad yes
11:17 lichtkind thanks
11:20 audreyt it's now always a method though, I think
11:21 audreyt defined($x,); # should probably fail
11:21 audreyt defined($x) # works, as it's just $x.defined
11:21 lypie audreyt: heya. no blog entries lately? :(
11:21 * lypie hasn't been around much and so depends purely on teh blog
11:22 audreyt lypie: see my comment on the last entry
11:22 lypie hehe
11:22 audreyt summary: was singularitied, but seems to be recovering now, so probably this weekend
11:22 lypie audreyt: look forward to it :)
11:22 audreyt thanks :)
11:22 audreyt (bbiab)
11:24 KingDiamond joined perl6
11:25 mako132 joined perl6
11:38 tifo quit
11:40 bsb joined perl6
11:52 elmex joined perl6
12:00 kolibrie joined perl6
12:02 tziku joined perl6
12:02 tziku how cai i put random here: if($in=~/433(.*)/){print $raw2 "echo SOMETHINGRANDOM"} ?
12:06 theorbtwo tziku: 1) Your question makes no sense.  2) You should be asking it on #perl.
12:11 Limbic_Region joined perl6
12:31 * dakkar is back (gone 01:31:11)
12:32 PolettiX joined perl6
12:40 KingDiamond joined perl6
12:47 wilx joined perl6
12:55 gaal best footnote ever: "[1] DOM means brain dead in Dutch."
12:55 gaal # http://research.microsoft.com/~emeijer/Papers/ICFP06.pdf
13:07 lypie gaal: hehe
13:11 SamB joined perl6
13:32 nothingmuch joined perl6
13:40 nothingmuch is text/x-json the "sane" content type for json?
13:40 nothingmuch or text/javascript+json
13:40 nothingmuch or application/json?
13:42 lypie text/javascript
13:42 nothingmuch oi vey, wrong channel i guess =)
13:42 nothingmuch but thanks
13:54 justatheory joined perl6
13:57 * dakkar is away: prova
13:57 * dakkar is back (gone 00:00:10)
14:02 lichtkind sorry i wasnt able to figure out that ~< does
14:03 dakkar string compare? i.e. is it the new way of spelling 'lt' ?
14:03 audreyt no...
14:03 * dakkar guesses wildly
14:04 audreyt it's << originally
14:04 dakkar bit-wise shift left...
14:04 audreyt but for strings
14:04 dakkar char-wise shift left??
14:05 * dakkar is too sleepy to figure it out
14:05 audreyt yes
14:05 audreyt 'abc' ~< 3
14:05 audreyt ?eval 'abc' ~< 3
14:05 audreyt not saying it's anything near useful
14:05 evalbot_9921 is now known as evalbot_9924
14:05 evalbot_9924 "\d[8]\d[16]\d[24]"
14:05 dakkar wut?
14:06 dakkar ?eval "\d[1]\d[2]\d[4]' ~< 1
14:06 dakkar ?eval "\d[1]\d[2]\d[4]" ~< 1
14:06 evalbot_9924 Error:  unexpected "'" expecting block, "\\", "$/", "$", "$!" or "\""
14:06 audreyt "\d[1]\d[2]\d[4]" ~< 1
14:06 evalbot_9924 "\d[2]\d[4]\d[8]"
14:06 * dakkar is too sleepy to type coherently
14:06 audreyt but you get the idea
14:07 dakkar ok, that last one almost made sense
14:07 dakkar why ~< instead of ~<< ? and << is the same as +< ?
14:07 dakkar I should really re-read all the updated synopses
14:08 audreyt well, that part is very stable
14:08 audreyt for >3 years I think
14:08 audreyt there is no << operator anymore
14:08 dakkar oh, so I read and forgot...
14:08 audreyt it's just +<
14:08 dakkar ok, it makes sense
14:09 lichtkind thanks but i still wondering for what i would need that
14:09 audreyt though arguably the char-wise shift should operate on unicode
14:09 audreyt instead of overflow
14:10 dakkar that is, multiply by a power of 2 each codepoint value...
14:10 dakkar I anctually expected 'abc' ~< 1 == 'abc\d[0]'
14:10 lichtkind yes that what im wanted to say
14:10 lichtkind and in the list mr toady mentioned that +< should behave loke power of to even to real number
14:11 lichtkind im not vertain if thats an good idea
14:11 dakkar how is the 'bitwise and' op spelt?
14:11 dakkar !& or +& ?
14:11 lichtkind ?&
14:11 dakkar ow
14:11 lichtkind oh no
14:11 lichtkind bitwise and
14:12 lichtkind +&
14:12 dakkar ?eval 2 +& 3
14:12 evalbot_9924 2
14:12 dakkar ok, so +< really does what I should expect
14:12 * dakkar updates his expectations
14:13 dakkar ?eval '0' ~& '1'
14:13 lichtkind but dakkar do your really think if its a good thing to behave +< like **2 to numbers like 1.1?
14:13 evalbot_9924 "0"
14:13 dakkar ?eval '1' ~& '2'
14:13 evalbot_9924 "0"
14:13 lichtkind ?eval 'a' ~& 'b'
14:14 evalbot_9924 "`"
14:14 lichtkind wtf
14:14 lichtkind ?eval 'a' ~& 'a'
14:14 dakkar ?eval chr(97 +& 98)
14:14 evalbot_9924 "a"
14:14 evalbot_9924 "`"
14:14 lichtkind ?eval 'a' ~& 'ab'
14:15 dakkar ok, +& works the same way as +& (today)
14:15 lichtkind thx
14:15 evalbot_9924 "a"
14:15 dakkar s:1st/\+/~/
14:15 lichtkind ?eval 'b' ~& 'ab'
14:15 evalbot_9924 "`"
14:15 * dakkar sits twiddling his bits
14:16 lypie hehe
14:19 jserv-- joined perl6
14:25 frederico joined perl6
14:34 svnbot6 r9925 | audreyt++ | * string-wise bit operations, such as ~< ~> ~| etc, now operates
14:34 svnbot6 r9925 | audreyt++ |   on 32-bit codepoints instead of 8-bit bytepoints.
14:34 svnbot6 r9925 | audreyt++ |   (not sure - maybe 21-bit codepoints?)
14:35 dakkar the "width" of a codepoint is ill-defined... ISO10646 says 32 bits, Unicode says a bit less than 21, but more than 20...
14:35 q[uri]_ joined perl6
14:40 theorbtwo I don't think it actually matters.
14:40 dakkar theorbtwo: what? having a char-wise op? I'm leaning in that direction...
14:43 theorbtwo No, what the width of a character is, in bytes.
14:44 Southen joined perl6
14:44 dakkar oh. so what should '\d[32768]' ~< 1 be?
14:44 dakkar (assuming the question is not purely accademical...)
14:45 theorbtwo "\d[65536]"
14:45 theorbtwo (Assuming you meant double-quotes.)
14:45 dakkar yes, double quotes, sorry
14:46 dakkar going on in that spirit, you'd end up with numbers that are not characters (valid codepoints)...
14:46 dakkar hey!
14:46 theorbtwo And?
14:46 Qiang joined perl6
14:46 dakkar now that I think about it... most codepoints are not characters (unassigned)
14:46 theorbtwo Exactly.
14:47 dakkar so what is the meaning of the char-wise operators?
14:47 theorbtwo BTW, a codepoint should be able to go up to at least 0x10FFFF, IIRC.
14:47 dakkar theorbtwo: yes, that's what I meant by «a bit less than 21 bits»
14:47 theorbtwo Ah, right.
14:48 dakkar of course, I miscountedh ;-)
14:48 theorbtwo Well, the meaning is something like join '', map {$_<<$b} split //, $a
14:49 theorbtwo The /use/ I'm less sure of.
14:49 theorbtwo BTW, that's perl5 code.  I'm not quite up to thinking in perl6.
14:50 dakkar I've been trying to think of a use, too, without much success... but I'm slow today
14:53 theorbtwo BTW, I don't much like +< and ~< as names -- they look like nummy and stringy versions of <, which they aren't... even though we do /have/ nummy and stringy versions of <.
14:53 theorbtwo I'd prefer +<< and ~<<, which look like nummy and stringy versions of <<, which they are (even though we don't have << anymore).
14:53 dakkar that's exactly the reason I didn't recognize them at first glance
15:16 diotalevi say, is there any support for variable width bytes? Bytes that aren't always 8 bits?
15:17 PerlJam diotalevi: what do you mean by "support"?
15:18 dakkar diotalevi: working on some old IBM mainframes?
15:46 turrepurre joined perl6
15:49 pmurias joined perl6
15:49 pmurias hi
15:53 pmurias bought PBP today, and can't wait to apply it to somebody else's code :)
15:54 pmurias is there a way to brake the inside-out objects encapsulation?
16:04 nnunley_ is now known as nnunley
16:10 Juerd pmurias: Why, is it still too fast for you?
16:13 svnbot6 r9926 | pmurias++ | partial svn propset on PGP6
16:16 svnbot6 r9927 | pmurias++ | line endings are now conistent
16:17 pmurias before i use them in my code, i want to be sure that users can brake the encapsulation if such need arises
16:17 PerlJam And Juerd's joke is lost upon pmurias
16:19 Juerd :|
16:19 PerlJam pmurias: As I understand inside-out objects, the data are stored in lexical vars scoped to the file that contains the "class" definition.  If you mean that you would like users to be able to modify these lexicals directly should the need arise, the answer is no.
16:20 PerlJam (unless they're actually modifying the file where you define them)
16:20 lypie left perl6
16:21 Juerd There are tricks to get to lexicals and mess with them
16:21 theorbtwo Before thinking of applying perl best pratices, read the forward, espcially the bit where he explains that they aren't right for everybody, that they are supposed to be starting points for discussion, not orders from on high.
16:21 theorbtwo Inside-out objects are the part that he got horribly wrong.
16:21 theorbtwo Other then that, it seems like a good book.
16:21 PerlJam Juerd: yeah, but it's better to pretend that lexicals are inviolate
16:22 Juerd IOO are harder to use, less efficient, and their benefits are tiny.
16:22 PerlJam theorbtwo: horribly wrong how?
16:22 theorbtwo What Juerd said.
16:22 PerlJam Juerd: DC's implementation is less efficient, but it's not the only way.
16:23 Juerd PerlJam: Each way will be less efficient
16:23 PerlJam I guess you could argue that using lexicals in general, makes it less efficient.
16:23 Juerd It generally involves many more hash lookups
16:23 PerlJam The benefits aren't tiny to some people.  Those people would use IOO  :)
16:24 pmurias what is IOO?
16:24 Juerd The benefits are mostly in one's mind, I think.
16:24 Juerd pmurias: Inside Out Objects
16:24 * theorbtwo thinks the benifit mostly isn't.
16:24 theorbtwo Breaking encapsulation is a very useful thing, sometimes.
16:25 theorbtwo Data::Dump::Streamer comes to mind.
16:25 PerlJam Juerd: that's actually a good way to put it--the benefits of IOO are benefits to the mind of the implementor.
16:25 PerlJam Juerd: they have some small peace of mind knowing that their data are "safe"  :)
16:26 Juerd PerlJam: Sure
16:26 pmurias i sometimes brake encapsulationto work around bugs in obscure modules
16:26 theorbtwo PadWalker
16:26 theorbtwo "break", BTW.
16:26 Juerd PerlJam: But I'd prefer my data to be "unsafe", so that other (smarter) people can do stuff with my code that I never thought of.
16:26 * nothingmuch reiterates the encapsulation is good for cleanliness, not steility
16:26 PerlJam Juerd: indeed.
16:26 nothingmuch mantra
16:26 Juerd theorbtwo: Awwh. You brake the fun!
16:27 nothingmuch e.g. private attrs should be accessible from the outside, but not by their short name
16:27 PerlJam Juerd: If there's one hard lesson I've learned in my life is that I don't know everything (despite my assertions to the contrary when I was a teenager :-)
16:27 nothingmuch the short private name is there so that people can conveniently write code and not get things mashed up in ways they didn't mean
16:27 bronze joined perl6
16:27 nothingmuch that is one of the things I really owe the perl community
16:28 nothingmuch especially perlmonks.org
16:28 bronze jabbot: re: your pastebin script: jabbott: read the man page for "test"  look for the relational operators
16:28 jabbot bronze: Why are you concerned over my pastebin script: jabbott: read the man page for "test" look for the relational operators?
16:28 nothingmuch it helped me realize that I don't know everything despite what people at school and stuff kept telling me
16:28 Juerd Perl and its community are very clear about it: no, you do not know everything there is to know about Perl.
16:28 bronze left perl6
16:28 Juerd And that's why PHP-minded people can never use Perl :)
16:28 nothingmuch btw, for the record that's idiotic
16:28 Juerd They're used to being treated like geniuses
16:29 bronze joined perl6
16:29 nothingmuch telling someone they're very talented and special and foo and whatever when they're 6 makes them into arrogant tards
16:29 nothingmuch and they have to learn how to stop being that the hard way
16:29 Juerd nothingmuch: Yep, and when they realise the contrary while still in school, it can severely mentally hurt them.
16:29 Juerd Or so I found out.
16:30 nothingmuch i realized school was mostly a sham pretty early on
16:30 Juerd The harsh and painful realisation that intelligence tests are NOT a useful indication.
16:30 nothingmuch i don't think i gained anything "technical" from school
16:30 nothingmuch except for the cinema classes
16:30 * Juerd waits as he sees tar backup his homedir
16:30 nothingmuch and possibly grade school material that i no longer remember learning
16:31 Juerd My harddrive is, er, full of random nullbytes.
16:31 nothingmuch but the social aspect of it is important
16:31 nothingmuch null bytes aren't so random =)
16:31 Juerd So here ends my first time of using xfs.
16:31 Juerd nothingmuch: They said that about undef too, in the Perl 5 age.
16:33 nothingmuch i use reiserfs because it had good while-mounted resize tools and the ability to shrink
16:33 nothingmuch i don't know what the current status is
16:33 Juerd I'm going to try reiser again in my next installation (tonight or tomorrow)
16:34 theorbtwo I've had major fs corruption not apparently linked to a horrible-shape drive with reiser.
16:34 theorbtwo I've moved to ext3 and am happy with it.
16:34 Juerd Tried it years ago, it screwed up all my data within a month, and I zeroed my filesystem singing "Dag, Sinterklaasje".
16:34 cjdavl joined perl6
16:34 Juerd theorbtwo: How long was that ago?
16:35 theorbtwo Several years, probably.
16:35 Juerd Problem with ext3 for me is that this hard drive is horribly slow, so I can use all extra performance I can get
16:35 Juerd (1.8")
16:35 theorbtwo Ah.
16:36 bronze left perl6
16:36 pmurias if one wanted to push encapsulation to the extreme one could boobytrap your object so that it calls system('rm -fr ~') when used outside the official api :)
16:36 nothingmuch i've been happy with ext3 for a long time
16:36 nothingmuch resierfs won't be faster than ext3 in my experience
16:36 nothingmuch nor will xfs - it's optimized for big fast disks, on fat servers
16:42 Juerd nothingmuch: It will, noticeably, on slow drives.
16:42 Juerd nothingmuch: Especially at startup, when many small files are read
16:43 Juerd nothingmuch: And as this is a laptop, it boots much more often than most other linux systems
16:43 Juerd I just wish there was a way to layout files efficiently according to use during bootup
16:43 Juerd (physically)
16:43 Juerd As seek time is bad on a slow drive.
16:44 nothingmuch Juerd: don't you have suspend?
16:44 wolverian readahead?
16:44 nothingmuch my laptop has good uptime
16:44 nothingmuch 10 days is ~average
16:44 Juerd nothingmuch: I do, but it uses 1% battery every 15 minutes.
16:44 Juerd nothingmuch: And I tend to forget to charge it over night
16:45 nothingmuch IN SLEEP MODE?!
16:45 nothingmuch ouch!
16:45 Juerd Yep. Small 4 cell battery.
16:45 nothingmuch fair enough =)
16:47 xinming hmm, In my experience, xfs needs you to use xfs_check & xfs_repair manually, if It is shutdown abnormally.
16:48 xinming reiserfs crashed 1 time while I use debian, And ext3 creashed many times(I can't remember) when I use Red Hat... :-)
16:51 xinming now, I stick with gentoo, and use xfs. yesterday, the power-line here is cut for maintance while I was sleeping.... And after the abnormally shutdown, My laptop locked 3 times... I think It's all about filesystem, So I run xfs_check & xfs_repair, and the problem is gnome... But lost my bookmarks in firefox.
16:51 xinming s/gnome/gone/
16:51 Juerd I lost lots of system files. No sign of data file corruption yet, fortunately.
16:51 Juerd But this box barely runs anymore
16:51 TimToady I've never had a speck of trouble with ext3
16:51 Juerd So it needs a reinstall
16:52 Juerd TimToady: I have, but that's not my reason for not using it here.
16:52 Juerd TimToady: This is a small and slow 1.8" disk, and ext3 is very slow on such a thing.
16:52 TimToady Juerd: I've seen patches for the "chew up battery while sleeping" problem, at least for some kinds of laptop
16:52 Juerd TimToady: So have I, but not yet for this model :)
16:52 Juerd I'm sure that when one is available, someone will post it on thinkwiki.org
16:53 Juerd Which is a GREAT resource for anyone owning a thinkpad, by the way.
16:53 TimToady as in thinkpad?
16:53 * PerlJam looks
16:53 TimToady then there's definitely a patch for it.
16:53 TimToady I didn't need it on my machine, fortunately.
16:54 Juerd TimToady: If there's a patch, it's well hidden, or my Google-fu sucks :0
16:54 Juerd :)
16:55 TimToady Juerd: it *is* on thinkwiki: http://www.thinkwiki.org/wiki/Problem_with_high_power_drain_in_ACPI_sleep
16:55 TimToady google is your friend (today)
16:56 TimToady i searched for "thinkpad battery drain suspend"
16:56 TimToady and it was the top entry
16:57 TimToady I shoulda felt lucky, but I never do. :-)
16:57 PerlJam Ah ... there's one thing I've been curious about ... "Problem with hard drive clicking"
16:57 TimToady clicking? weird
16:58 Juerd TimToady: It doesn't list my model, the X41
16:58 Juerd And my laptop has no Radeon chip :)
16:58 PerlJam yeah, I'll be reading a webpage or something (no disk activity) and it will make this sound like something moving then click.
16:58 TimToady then obviously *someone* didn't edit the wiki entry who should have. ;)
16:58 TimToady probably the heads seeking.
16:59 Juerd TimToady: Well, the solutions mentioned there don't work
16:59 TimToady Juerd: they have a diagnostic program that is more diagnostic than a mere list of models.
16:59 Juerd TimToady: There is no radeon chip, and the display is properly powered off
16:59 PerlJam according to the webpage, it's head parking
16:59 xinming TimToady: Do you use a Linux mobile cell phone?  hmm, Why I ask this is because I want to see a phone which uses Linux, and hopefully, I can compile parrot on it. :-P
16:59 PerlJam I had a Dell laptop that would click all of the time, I wonder if it was the same thing
17:00 Juerd PerlJam: Almost all thinkpads have clicking harddrives; however, not in all of them it's a good sign ;)
17:00 TimToady well, it's not powering off something it should.  You could try randomly shutting down drivers in your suspend script, I suppose.
17:00 PerlJam xinming: Nokia 770 runs linux, though it's not a cell  phone.
17:00 Juerd TimToady: I'll try that script when my box runs grep again :)
17:00 TimToady the clicking probably depends on the acoustic coupling between the drive and the laptop more than anything.
17:01 TimToady you can emulate grep with Perl. :)
17:01 theorbtwo I've had a couple drives (2.5") that actually have labels on them that says rattling is OK.
17:01 Juerd TimToady: perl doesn't work either
17:01 gantrixx joined perl6
17:01 TimToady perl 6?
17:01 Juerd TimToady: Heh
17:01 gantrixx hi all, it's been a while since I was in this group
17:01 TimToady I hear you can compile it down to javascript...
17:02 gantrixx how is the perl6 development coming along
17:02 xinming I have motorola a1200, I have to complain that the phone's hardware is really poor excpet the view of the phone. :-/
17:02 PerlJam gantrixx: slowly but surely.
17:02 TimToady we're busy bootstrapping.
17:02 Juerd TimToady: Heh; not even that will be of much use. I'm lucky I can run mount and tar.
17:02 gantrixx how much longer before we can expect to see Perl6 in a Linux distro or ActiveState Perl6?
17:02 PerlJam gantrixx: caveat lector though because I can never judge speed too well.
17:02 TimToady I'd suggest Knoppix...
17:02 theorbtwo Oh, TimToady, did you see my comment on ~< and +< looking like variants of <?
17:03 PerlJam ActiveState perl6?  That's years and years and years away I think.
17:03 xinming gantrixx: hmm, I'd tell you, maybe 2 years. :-)
17:03 theorbtwo I'd suggest debian.
17:03 PerlJam not to worry though, we'll have perl6 on windows before activestate does :)
17:03 theorbtwo sudo apt-get install pugs
17:03 theorbtwo Reading package lists... Done
17:03 theorbtwo Building dependency tree... Done
17:03 theorbtwo pugs is already the newest version.
17:03 Juerd TimToady: So would I, if tar didn't work :)
17:03 Juerd theorbtwo: Eh
17:03 gantrixx that's too bad.  Perl will continue to loose market share to Python in the mean time
17:03 Juerd theorbtwo: That doesn't quite work well without grep and perl :)
17:03 PerlJam gantrixx: What is this market share of which perl is losing?
17:04 xinming Debian is the best for most circumstance, But It's not good for someone who wish to compile their system themselves. :-)
17:04 PerlJam gantrixx: (i.e. what market?)
17:04 gantrixx look at what languages applications are being written in
17:04 TimToady gantrixx: we knew that we'd lose market share going in.  We chose to take a short term hit in order to achieve a long term gain.
17:04 gantrixx corporations aren't looking for Perl programmers much anymore
17:04 Juerd gantrixx: Market share is relevant if you SELL your products :)
17:04 gantrixx they want python programmers
17:04 PerlJam gantrixx: python and php and ruby and perl
17:04 Juerd gantrixx: You're looking for the wrong corporations, then.
17:04 theorbtwo Er, I was answering the question of how long it'd be until we saw a linux distro with perl6.
17:05 Juerd theorbtwo: Ohh
17:05 xinming gantrixx: Perl has it's own ability to hold people ignore python. :-P
17:05 gantrixx it's all php and python these days
17:05 TimToady nah, the real competitor is ruby
17:05 gantrixx well if I'm writting my own applications, I use perl, but when someone hires me, they don't ask for perl anymore
17:05 TimToady they will
17:05 PerlJam gantrixx: where are you?
17:05 Juerd TimToady: Python and Ruby, I think.
17:06 gantrixx General Dynamics, Intel, Google
17:06 xinming gantrixx: could you please google "why php sucks" ? :-)
17:06 gantrixx personally, I don't see a need for php
17:06 TimToady google has always been a python shop
17:06 gantrixx mod_perl is just fine
17:06 Juerd gantrixx: If it's your job you fear, who not just learn Python and Ruby?
17:06 gantrixx redhat is a python shop too
17:06 Juerd Google runs a lot of Perl too
17:06 TimToady but it was more an accident of when they were started than anything
17:07 gantrixx I do know program in python
17:07 * Juerd can't stand python
17:07 * xinming doesn't like python either. :-)
17:07 TimToady we'll just write a python to perl 6 converter, and then we'll be set.
17:07 theorbtwo I do see a fair bit of Java; I wonder if we aren't thinking enough about runloops and GUIs.
17:07 Juerd Python feels like bureaucracy.
17:07 gantrixx in fact, at one company, they have asked me to come back and add some features to a system I created for them in Perl, but they want the new code in python
17:08 TimToady python formatting is not suitable for a unicode world.
17:08 theorbtwo Did you inform them of how stupid that was?
17:08 xinming gantrixx: you can say, python sucks. then rewrite the program in perl 5 again. :-)
17:08 gantrixx I've tried to argue the case, but you can only fight so many religious battles
17:08 Juerd theorbtwo: We probably aren't. Many of us aren't very GUI minded.
17:08 gantrixx I actually had General Dynamics sold on doing some stuff in Perl6, but it's not ready yet
17:09 Juerd theorbtwo: Or interactivity minded at all
17:09 theorbtwo gantrixx: I wouldn't make that a religious battle.  The simple busniess case is that mixing languages is hard, so don't do it unless you have to.
17:09 theorbtwo Juerd: Yeah, I'm not either.
17:09 xinming gantrixx: You have to know, if perl 6 is out, the day when it is officially released...  perl 6 will be the language which changes the world and rocks again like perl 5 does. :-)
17:09 Juerd "the day"
17:09 gantrixx xinming: let's hope
17:10 Juerd I think that by that time, we will want to spread the release over a few days
17:10 KingDiamond joined perl6
17:10 Juerd After so much time, we need a huge party.
17:10 theorbtwo We've got some funky coro and whatsit and the other stuff in, which I can't claim to really understand.
17:10 gantrixx but Perl6 is seeming to become more like the mozilla project.  Grand promises with no finish line in site.  It is hard to keep people excited and eventually they just loose hope
17:10 theorbtwo I think we need some sort of more-or-less easy-to-use thing, like POE, on top of it.
17:10 Juerd theorbtwo: I'd want xmath's Task framework, that he never finished :(
17:10 gantrixx and even when mozilla was finally released, it was less than what the public expected
17:11 TimToady if we start at the international data line and stretch it out, we can get 48 or so hours out of one day...
17:11 PerlJam gantrixx: the developers are still excited.
17:11 gantrixx it wasn't until firefox that it really caught on
17:11 Juerd theorbtwo: Which made much of the coro-ish stuff fully transparent and automatic
17:11 gantrixx PerlJam: are developers all that matter?
17:11 PerlJam gantrixx: to get a working perl6, yes :)
17:11 Juerd TimToady: "Perl 6.0.0, GMT edition"
17:12 gantrixx PerlJam: development is pointless if no one uses it.  development is only part of the issue
17:12 gantrixx sort of like ogg-theora
17:12 Juerd gantrixx: Mozilla had very different problems
17:12 PerlJam gantrixx: If it's useful, people will use it.
17:12 pmurias the best thing for me about perl6 is that you can get a commit bit easily
17:13 TimToady gantrixx: you're mixing up present tense with future tense.
17:13 Juerd gantrixx: And it's aimed at end users, who need marketing and such before they even know about a program.
17:13 PerlJam pmurias: well now, don't confuse pugs with perl6  :)
17:13 xinming gantrixx: but It is in opensource world. if something is really good, then people will use it
17:13 gantrixx sometimes, if you build it, they still don't come
17:14 TimToady gantrixx: won't happen here
17:14 xinming gantrixx: people work here is not for money, they just want to make their "product" the best... and that's all.
17:14 Juerd gantrixx: Not really. Good projects with documentation and working installation are always used.
17:14 kolibrie xinming: and have fun
17:14 PerlJam But, I agree that perl6 needs some marketing but in the form of "killer apps"  (note the plural, because I believe there will be multiple killer apps that make perl6 "it")
17:14 gantrixx I agree with you.  As a purist engineer, I like perfection, and releasing something when it is ready
17:14 Juerd PerlJam: Agreed.
17:14 xinming so, I don't think anyone can tell you the official release date.
17:14 xinming kolibrie: yes
17:14 gantrixx but from a marketing perspective that doesn't always work
17:15 theorbtwo I think pugs had the potential to be the firefox of the perl6 world.
17:15 TimToady I'd like to release on Perl's 20th birthday, but that still gives us some time to polish it up.
17:15 Juerd PerlJam: We need clones for MediaWiki, Slashcode, RT, a good web forum, and a web email app.
17:15 Juerd PerlJam: You'll note that they're all web stuff. It's because that's what most people see.
17:15 PerlJam TimToady: that would be cool.  (but I want perl6 sooner! ;-)
17:16 gantrixx ok, guys, I didn't come here to ruffle feathers.  I'm just giving you feedback on what the industry is thinking/saying
17:16 PerlJam Juerd: yep.
17:16 PerlJam gantrixx: the problem is that I don't believe you :)
17:16 PerlJam gantrixx: my slice of "industry" paints a different picture.
17:16 gantrixx I find it harder and harder to sell Perl5 (or 6) to clients
17:16 TimToady people love bandwagons.  We'll be giving them one shortly.
17:16 Juerd gantrixx: Then sell other stuff.
17:16 gantrixx I have to
17:16 Juerd gantrixx: Sell, for example, programs, instead of code.
17:16 PerlJam gantrixx: Generally I don't sell perl, I sell product.
17:17 PerlJam Juerd++ exactly!
17:17 gantrixx That's why I'm becoming more involved in development with Python
17:17 gantrixx I don't sell Perl either, but I create systems using Perl/Python
17:17 xinming gantrixx: I'd bet, that python will become like perl 6 when it's 3.0 release... :-)
17:17 gantrixx I also don't understand why PHP is so popular
17:18 PerlJam gantrixx: because it's ubiquitous and easy.
17:18 gantrixx mod_perl or mod_python are just as good
17:18 Juerd gantrixx: PHP is popular because it does a few things very well that no other "language" has done well.
17:18 rw-rw-r-- Suck?
17:18 Juerd mod_perl isn't quite just as good.
17:18 gantrixx well we need a mod_perl6 too
17:18 xinming gantrixx: because what people need is just make other something to see and there is no need to care about the quality of the product.... and then sell it like M$ does...
17:18 theorbtwo mod_perl has sandboxing issues.
17:18 Juerd The *language* PHP sucks. The *Apache module* mod_php rocks.
17:18 xinming gantrixx: mod_parrot is enough.
17:19 gantrixx is there a mod_parrot?
17:19 pmurias yes
17:19 gantrixx I didn't know about that
17:19 Juerd Perl can't quickly create or reset an interpreter.
17:19 theorbtwo You can't do shared hosting without jumping through hoops, or your customers will be able to take each-other's sites down.
17:19 xinming gantrixx: still under develoopement. :-)
17:19 kattana_ php is just really easy, you can set apache and php up in 10 minutes and write whatever and open the page and it just works.
17:19 Juerd When doing hundreds of hits per second, that becomes a problem.
17:19 gantrixx My personal feelings are that you don't need anything more than C++ and Perl
17:20 Juerd mod_perl doesn't have to create an interpreter for each hit; it has one ready, but that one has been used already, and that means it cannot be used for the market that PHP got: bulk hosting
17:20 gantrixx but then again I don't write a lot of gui apps either.  some are saying mono or java should be included in there
17:20 nothingmuch mod_perl's problems with bulk hosting is just about sandboxing
17:20 gantrixx I personally don't like java
17:20 Juerd A hard SIGKILL after processing a hit helps for security, and the result is still much faster than CGI, but it can't compete with PHP.
17:20 nothingmuch mod_perl exposes too much apache guts for that
17:20 nothingmuch but fcgi tends to solve that, i think
17:20 Juerd nothingmuch: It's not JUST that.
17:21 gantrixx ok, guys,  I have to go.  I'll check back with you in a couple months
17:21 gantrixx left perl6
17:21 nothingmuch if every mod perl handler was it's own perl instance(s) then maybe it'll be better
17:21 xinming gantrixx: I don't like java either.. I just like $ @ %...
17:21 zgh joined perl6
17:21 Juerd nothingmuch: It would, but that's way too slow to be seriously considered by a bulk hoster.
17:21 Juerd For dedicated web servers, mod_perl is perfectly usable.
17:21 nothingmuch what does php do?
17:22 nothingmuch simply load fast? ;-)
17:22 Juerd nothingmuch: PHP simply loads fast, yes.
17:22 pmurias it's a much simpler language
17:22 nothingmuch that's due to the fact that they have no modules =)
17:22 Juerd It has a very light weight interpreter, with very little state to initialize.
17:22 nothingmuch small .cgi scripts are also fast ;-)
17:22 nothingmuch seriously though
17:22 nothingmuch big performance trouble comes from modules in Perl land
17:22 Juerd Small .cgi scripts are also bad.
17:22 nothingmuch we are just too tempted to use them
17:22 Juerd nothingmuch: No, modules are not at all the big problem.
17:23 nothingmuch a typical webapp framework takes 2-3 seconds to start up
17:23 Juerd nothingmuch: OO modules can be, but that's not why mod_perl isn't used by bulk hosters.
17:23 elmex joined perl6
17:23 nothingmuch a typical small .cgi takes about .1
17:23 Juerd nothingmuch: .1 is still too much for bulk.
17:23 nothingmuch true
17:23 PerlJam Well, when parrot is embedded in every web server and every web browser we will have won  ;)
17:23 rw-rw-r-- My issue with php is twofold: lack of type definition/existence checking, and insane subroutine naming conventions.
17:24 * obra loves the fastcgi
17:24 nothingmuch my grudges continue
17:24 nothingmuch no lexical scope
17:24 nothingmuch bad builtin functions
17:24 PerlJam (because perl6 will have all of the same advantages as php)
17:24 nothingmuch no modules (Everything is rolled into php itself
17:24 Juerd PerlJam: I doubt it. I doubt that with all these features, OO and other runtime stuff can be made extremely fast without training programmers to do special stuff.
17:24 nothingmuch i mean, please... imap support in the interpreter?)
17:24 nothingmuch this nastiness continues
17:24 Juerd rw-rw-r--: My issues with PHP are many, many more than two.
17:24 nothingmuch it was just not made to scale, for code
17:24 rw-rw-r-- nothingmuch: lexical scope *does* exist, it's just not sane. :P
17:24 nothingmuch lexical scopes are by definition sane, and have only one true way of being done
17:24 Juerd rw-rw-r--: PHP does not have lexical scope. It has function local scope.
17:25 nothingmuch if it's not that, it's not really lexical
17:25 Juerd rw-rw-r--: That's not the same thing.
17:25 xinming Juerd: there is an article about "why php sucks compared with perl" :-)
17:25 rw-rw-r-- I suppose.  I stand (sit) corrected.
17:25 Juerd xinming: Where, tnx.nl/php?
17:25 nothingmuch xinming: one article?
17:25 rw-rw-r-- s/lexical//
17:25 pmurias a php backend could be a solution to its abiguity
17:25 Juerd Ooooh
17:25 Juerd A PHP... backend...
17:25 Juerd It's actually interesting.
17:26 xinming Juerd: yes
17:26 Juerd I don't think you can do it efficiently, but it's interesting.
17:26 Juerd (It has no anonymous functions...)
17:26 Juerd xinming: Wanna meet the author?
17:26 pmurias why would it be any worse than a javascript one?
17:26 xinming Juerd: You?
17:26 theorbtwo Juerd: If you're translating to PHP, the lack of anony functions isn't a problem -- just generate names for them.
17:26 Juerd pmurias: Javascript has anonymous functions, closures, and arrays.
17:26 Juerd pmurias: PHP does not
17:26 Juerd xinming: Yea
17:27 Juerd theorbtwo: Oh, it has a function to generate named anonymous functions :)
17:27 obra c'mon. just add every opcode PIL^n needs as a PHP primitive
17:27 PerlJam Juerd: you can fake it with inspired uses of PHP classes.
17:27 * xinming hugs Juerd.
17:27 pmurias sorry, didn't know it's *that* primitive
17:27 obra "or just get them to embed php"
17:27 Juerd pmurias: IT is...
17:27 Juerd s/IT/It/
17:27 pmurias s/It/it/
17:27 Juerd obra: Embedding PHP is hard, I've heard
17:28 obra er. I meant to type parrot
17:29 PerlJam obra: embedding parrot in php shouldn't be that hard.  They seem to have a propensity for embedding things as part of the language.
17:29 Juerd Why isn't this USB hard drive faster?
17:29 obra right
17:29 Juerd Why isn't tar faster?
17:29 Juerd Why... argh.anohuehe
17:30 pmurias regarding embedding we could write a wrapper for parrot to emulate the lua embbeding api
17:31 Juerd Oh, hey, it's done
17:32 lichtkind ?eval 'aa' ~< 1;
17:32 Juerd rafl: Unless you call me on my mobile phone within 15 minutes, the backup you made onto my laptop will be removed :)
17:32 evalbot_9924 is now known as evalbot_9927
17:32 evalbot_9927 "\d[194]\d[194]"
17:32 Juerd afk  # getting food at McDonald's
17:33 Juerd rafl: Oh, and that's +31619184989, not the number I used during the geektour
17:33 Juerd afk
17:33 lichtkind ?eval 'aa' ~< 'a';
17:33 evalbot_9927 "aa"
17:34 Cyrup joined perl6
17:34 lichtkind ?eval 'ab' +< 'b';
17:34 evalbot_9927 0
17:34 TimToady the shift operators always take a numeric value on the right.
17:35 lichtkind ah thanks
17:35 TimToady you just did 0 +< 0
17:35 lichtkind ?eval 'ab' +< 2;
17:35 TimToady that 0 +< 2
17:35 evalbot_9927 0
17:35 lichtkind but i meant ?eval 'ab' ~< 2;
17:35 lichtkind was a typo
17:35 lichtkind ?eval 'ab' ~< 2;
17:35 evalbot_9927 "\d[132]\d[136]"
17:36 TimToady the interesting question is, when do you carry to the next byte/char/whatever
17:36 lichtkind yes
17:36 lichtkind but before i wanted to ask you
17:36 theorbtwo TimToady: Yeah.  I'd prefer it just use 8-bit bytes.
17:37 TimToady The ~< operator should behave differently on strings of constant width chars than on variable width chars, if it does the latter at all...
17:37 lichtkind your answer acordung to the number shifting of real number, i was really  scared first time i read it
17:38 theorbtwo I like that real numbers shift properly; otherwise you'd have to worry about what your numbers end up being.
17:38 TimToady C programmers use a << 1 to multiply by 2 all the time.
17:38 theorbtwo (If you end up with 2.0 or 2/1 instead of 2, for some reason, you don't want to die, just DTRT.)
17:38 lichtkind tim i know i did asembler
17:38 lichtkind tim toady but with real numbers it seems really out of the way for me
17:39 TimToady the idea is that the behavior of reals is a superset of the behavior of integers, and that if you convert back to integer you get the same thing as if you'd converted to integer in the first place.
17:40 TimToady you just throw away the fractional parts lazily.
17:40 theorbtwo I'm not so sure that 2.1 << 1 should be 4.2 and not 4, but I don't see where it could possibly be considered a bad thing.
17:41 lichtkind tim toady that sprang into my mind in first second but maybe im here with guido but i wasnt shure if its a good thing too allow such things :)
17:41 TimToady I'm sure the situation won't arise frequently in practice, because you naturally tend not to feed anything but integers to a shift operator.
17:41 TimToady even if they happen to be represented as real integers.
17:42 lichtkind and if you downshift you make sqareroots?
17:42 theorbtwo No, you divide by 2.
17:42 TimToady I much prefer to ask "why not?" than "why?"
17:42 theorbtwo Er, powers of two.
17:42 xinming TimToady: hmm, why will you ever write the perl 5 in C instead of perl 5 itself? Impossible at that time? or, Because C is faster?
17:43 theorbtwo BTW, while we're at it, is $x +<< -2 equal to $x +>> 2?
17:44 lichtkind ?eval 'ab' ~< 'b';
17:44 evalbot_9927 "ab"
17:44 theorbtwo ?eval 42 +< -1
17:44 TimToady Because I never thought of Perl as a language for writing compilers in until Perl 6.
17:44 evalbot_9927 21
17:44 theorbtwo Oh.  OK then.
17:44 theorbtwo ?eval 42 +>> 2
17:45 evalbot_9927 Error:  unexpected ">" expecting "#" or term
17:45 theorbtwo ?eval 42 +> 2
17:45 evalbot_9927 10
17:45 theorbtwo Ah, good.
17:45 theorbtwo ?eval 42.0 +> 2
17:45 lichtkind yes theorbtwo divide i was a bit sleeping
17:45 evalbot_9927 10
17:45 lichtkind ?eval 'a' ~< 1;
17:46 theorbtwo Wonderful.
17:46 evalbot_9927 "\d[194]"
17:46 lichtkind shodlnt it be 10, 5?
17:46 lichtkind err 10.5
17:47 theorbtwo Hm, can I be arsed to make pugs use "\x[c2]" for that?
17:47 theorbtwo lichtkind: I should certianly hope not.
17:47 theorbtwo I use >> a lot in ways that would be disturbed by that.
17:48 TimToady the implicit truncation semantics of >> is sometimes useful.
17:48 lichtkind theorbtwo but thats exactly the thing im talking now with larry
17:48 TimToady I'm fine with leaving it that way.  the real speculation was just that.
17:48 lichtkind theorbtwo i understood larry that  2.2 +< 1 = 4.4
17:49 TimToady "speculation"
17:49 lichtkind misunderstood?
17:50 TimToady you can't "understand" something that is indeterminate if understanding implies determinacy
17:50 theorbtwo I think the rule is that you truncate on right-shift, but not on left-shift.
17:50 theorbtwo However, he's not really decided.
17:50 theorbtwo I'd prefer it be as I just stated.
17:50 PerlJam laziness++
17:51 theorbtwo I often translate "the type is in the top two bits of the byte" to $type = $byte >> 5;
17:52 theorbtwo If it didn't translate, it'd have to be $type = 3 & ($byte >> 5)
17:52 theorbtwo Not a big difference, but it's a pro, and I haven't heard a con.
17:52 PerlJam (though throwing away the fractional parts lazily could surprise people when they're looking for 1.2 +< 4 to be 16 rather than 17.6)
17:53 theorbtwo PerlJam: But does anybody care?
17:53 TimToady I think if people really want multiplication they know where to find it.  Please bury my speculation before it starts to stink worse.
17:54 PerlJam theorbtwo: don't know. I'm not shifty enough to care :)
17:54 TimToady the question is what to do with shift on bounded integers like bytes/characters
17:54 lichtkind ?eval 'a' ~< 'a';
17:54 TimToady with a byte string, it would be obvious--treat the whole thing like a large binary number.
17:55 evalbot_9927 "a"
17:55 PerlJam lichtkind: the RHS is *always* a number.
17:55 lichtkind ok
17:55 lichtkind ?eval 'a' ~< 5;
17:55 evalbot_9927 " "
17:56 theorbtwo Right, but we don't (presently) have such a thing as a byte string, and it seems like a PITA to introduce it over this.
17:56 TimToady with a pure utf8 string *without* unicode semantics, you could treat the string as a list of separate integers, and not overflow till about 64 bits.
17:56 lichtkind ?eval 'a' ~< 3;
17:56 evalbot_9927 "\d[8]"
17:56 TimToady if we don't have byte strings, we're hosed.
17:56 * theorbtwo wonders what the current behavor is.
17:57 theorbtwo (That's unimportant, I was just being curious.
17:57 TimToady strings are defined to have a minimum and a maximum abstraction level, and byte strings are just strings that max out at the byte abstraction level.
17:57 theorbtwo Ah, sorry.
17:57 lichtkind ?eval 'z' ~< 1;
17:57 evalbot_9927 "\d[244]"
17:58 theorbtwo I'm not sure I see a use case for making the default abstraction level of stringy shifts anything other then bytes.
17:58 PerlJam theorbtwo: I think I agree.
17:58 TimToady s/bytes/fixed-width integers/
17:59 theorbtwo I actually did mean bytes, but I suppose if we're working with a string that's been explicitly marked as using something else, I wouldn't disagree.
17:59 theorbtwo Then again, I'm not sure I've /ever/ used stringy shift.
17:59 lichtkind ?eval 'b' ~< 1;
17:59 PerlJam theorbtwo: any time I think something like that though, I always wonder if I'm suffering a lack of imagination though.
17:59 TimToady bytes are just uint8
17:59 evalbot_9927 "\d[196]"
18:00 TimToady um, you haven't.  Perl 5 doesn't support stringy shift, last I knew.
18:00 theorbtwo Oh.
18:00 theorbtwo That might explain it.
18:00 TimToady :)
18:01 PerlJam Or maybe shift "knows" enough about the string to shift the right things,  bytes, characters, whatever  (not usually bits iow)
18:02 theorbtwo Come to think of it, I wrote an algo that could have used stringy shift the other month.
18:02 TimToady considering it's MMD dispatched, that probably just falls out of it.
18:03 TimToady yes, one can envision uses for it, which is why it's odd that it never made it into 5.
18:03 PerlJam yes, I suppose so
18:03 theorbtwo But strings have a whole range of possible abstraction levels, none of them "current", don't they?
18:03 TimToady I guess everyone just uses a pack/unpack of bitstrings instead...
18:03 TimToady or does weird things with vec().
18:03 PerlJam TimToady: indeed.  I've used pack/unpack quite a bit
18:03 FurnaceBoy joined perl6
18:04 theorbtwo I do wierd things with shift and unpack, on some strange bit-oriented formats.
18:04 TimToady use bytes; and such still set the current desired abstraction level for at least some operators, I expect.
18:04 theorbtwo (Digital video stuff.)
18:05 TimToady one could view it as an additional MMD filter.
18:05 TimToady lexically scoped MMD filters.  there's a concept....
18:06 pmurias TimToady: have you ever considered possesive quantifiers for rules?
18:06 TimToady not so far off of lexically scoped protos, I think.
18:07 bsb left perl6
18:07 TimToady how would that be different from possesives for anything else?  It's just a name search...
18:08 TimToady though admittedly the call syntax doesn't distinguish SMD from MMD forms.
18:08 TimToady and the arguments of rules tend to be the same as each other.
18:09 TimToady but certainly there are cases where "my rule" should take precedence over a global rule.
18:09 TimToady the question is when do you look for rules in the current grammar?
18:09 TimToady I think you do
18:10 TimToady SMD in the current grammar for a rule of that name, then failover to looking out the lexical scopes, then global.
18:10 KingDiamond joined perl6
18:10 TimToady if you're not in a grammar, you just get the normal sub scoping.
18:11 TimToady that is to say, a rule is basically called as SMD and fails over to MMD.
18:11 TimToady is that what you were asking?
18:13 ruz joined perl6
18:13 TimToady $continuation = temp goto work;
18:14 xinming TimToady: hmm, I have some question about pX project. Pugs can run many program which are written perl 6, And I ever asked, why not improve pugs rule support, and then, make it perl 6 self-hosting? but the answer is, what pugs finished now is the half, and another half still not finished. then, what's that?
18:16 TimToady obviously, pugs has done the first 80%, and what it hasn't done is the second 80%.
18:16 TimToady really &
18:17 pmurias sorru,didn't relise you were answering my question, possesive quanitifiers eq. ?+ *+ ++ are like greedy quantifiers, mut they never give up a partial amount of what they've been able to match
18:17 xinming what second 80% is.
18:18 pmurias quoting "Mastering Regular Expressions"
18:19 pmurias s/sorru/sorry
18:20 pmurias xinming: the 20% of perl6 missing from pugs takes 80% of the time needed to implement perl6
18:21 xinming pmurias: hmm, that's why I don't understand. :-/
18:21 pmurias you mean why or what?
18:22 xinming what
18:23 pmurias all the realy scary/cool stuff: meta-model, runtime grammar modification
18:23 pmurias is really hard to implement, but not used much
18:25 lichtkind ?eval 2..11:by(2);
18:25 evalbot_9927 Error:  unexpected ":" expecting "_", fraction, exponent, term postfix, "#", operator, "does", "but", "is", "^till", "till^", "^..^", "till", "..^", "<=>", "^..", "cmp", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:25 pmurias regarding pX, it's ready for contribution now
18:25 lichtkind ?eval 2 .. 11 : by(2);
18:25 evalbot_9927 Error:  unexpected ":" expecting "#", operator, "does", "but", "is", "^till", "till^", "^..^", "till", "..^", "<=>", "^..", "cmp", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:26 Juerd re
18:26 lichtkind ?eval 2 .. 11;
18:26 Juerd Hm, tar finished before the kubuntu iso download did
18:26 evalbot_9927 (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
18:26 lichtkind did i something wrong or by() just not implemented
18:27 lichtkind ?eval 2 .. 11:by(2);
18:27 evalbot_9927 Error:  unexpected ":" expecting "_", fraction, exponent, term postfix, "#", operator, "does", "but", "is", "^till", "till^", "^..^", "till", "..^", "<=>", "^..", "cmp", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:27 lichtkind ?eval 2 .. 10:by(2);
18:27 Juerd pmurias: I think runtime grammar modification WILL be used much.
18:27 evalbot_9927 Error:  unexpected ":" expecting "_", fraction, exponent, term postfix, "#", operator, "does", "but", "is", "^till", "till^", "^..^", "till", "..^", "<=>", "^..", "cmp", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input
18:28 pmurias Juerd: propably TOO much, but not by the java/php sort of guys
18:28 Juerd True
18:29 pmurias i think perl will be to complicated for a lot of people
18:29 Juerd Though those "sort of guys", when they (want to) learn more, usually also get to use the highly dynamic features.
18:29 Juerd It already is.
18:30 xinming pmurias: exactly.
18:30 xinming pmurias: the context...
18:30 Juerd But without that, would it be Perl?
18:30 xinming pmurias: and the hash kv access in perl 5
18:31 xinming eg: %h = ( abc => 3 ); why should %h changed to $h to access the value. :-)
18:31 pmurias people make most of the learning barriers for themself
18:32 Juerd xinming: The sigil change isn't HARD. It only looks hard. Those who try, ALL succeed.
18:32 Juerd xinming: So I wouldn't call this "too complicated"
18:32 pmurias i found it highly logical when i learned perl5
18:32 Juerd I didn't, until I understood context :)
18:33 Juerd Context isn't emphasized enough in beginners documentation
18:33 xinming Juerd: yes, I know, But the problem is, most people will think, I'm using a hash. :-)   It's not a problem for me... :-)
18:34 pmurias learnig perl 2nd edition was an exelent learning start
18:34 pmurias s/excelent/excelent/
18:35 pmurias it unix centricity is also very cool
18:36 theorbtwo I find the sigils in perl5 annoying now that I get perl6's.
18:36 theorbtwo Perl6's sigils are very sinsical.
18:37 theorbtwo Er, sensical.
18:38 xinming where can I found the "freak" picture of perl 6? I mean It's like camel, But with parrot, and wings...
18:38 FurnaceBoy is now known as FurnaceGhost
18:38 Juerd I didn't learn Perl by reading books, but when I read the books later, I didn't think I'd have liked the llama and camel
18:39 Juerd Beginning Perl is probably more suited for someone like me
18:40 wolverian BP helped me. mostly I just read perldocs, though.
18:42 xinming anyone here has the url of that img please? :-/
18:43 theorbtwo Google images, perl6 cover
18:44 xinming I read the book, <<learn perl in 24 hours>> in a day... and then try to program in perl... and at last, I found. perl is the perfect... and after that, I try to learn everything relates perl.
18:45 Juerd If Perl would be perfect, we wouldn't be here :)
18:45 xinming I will buy the [http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/fun/p6_cover.png] book. :-)
18:45 FurnaceGhost is now known as FurnaceBoy_
18:45 Juerd That ghost turned into a boy. Scary.
18:46 pmurias i learned perl when i was 13, wanting to learn games programming :)
18:48 xinming Juerd: Before I read Synopsis of perl 6, IMO, perl 5 is the perfect... I like the way it does, and I ever wish to learn python. But I really don't like the language which forces the layout of statements.
18:48 Juerd Heh. And then you saw the source of Frozen Bubble and gave up?
18:48 pmurias wrote a game in python eventually
18:48 xinming I ever thought Frozen Bubble is written in C++. :-)
18:50 xinming And after I read the Synopsis... I find what perl 5 lacks...
18:50 pmurias bought a book about c++ to learn opengl, saw it was crap, and lent it away
18:50 xinming And BTW, perl 5 OO isn't good in use... But It is really a good point for understanding what OO is. :-)
18:52 xinming I ever thought, C can't do OO programming. But after learnt OO in perl 5, I know I'm wrong. :-)
18:52 pmurias learned OO from a small booklet about Java i got together with Programming Perl, then i read the camel and wished to program in Java no more
18:53 wilx joined perl6
18:53 PerlJam I find it weird that people learn OOP from perl/java/python and I don't know why.
18:53 PerlJam I guess it's because I learned OOP from cfront (then C++) and smalltalk
18:54 xinming hmm, Does the author of image [http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/fun/p6_cover.png] hate perl?
18:54 Juerd PerlJam: I learned to *use* it with VB, but found writing OO classes terribly confusing - too abstract
18:55 PerlJam xinming: that is a reasonable assumption.
18:55 xinming I have to say, the image is really creative... :-P
18:55 Juerd PerlJam: Perl's primitive approach made me finally understand OO. I needed to know how it could be implemented, even though there are many ways to do so.
18:55 pmurias PJ: perl was my first language(little LOGO experience before :), so i didn't have much choice
18:56 xinming Juerd: That's what I thought... I ever wish to understand the oo in C++, Because most people say It's C with OO support...
18:56 xinming But failed... but after I "bless" a lot... God sends me info... :-)
18:56 PerlJam Juerd: you are like me then I guess.  I'm always curious about how things work.
18:57 Juerd PerlJam: But without that, can you use the tool?
18:57 Juerd I'm not good at using tools I don't understand.
18:57 xinming Neither do I....
18:57 PerlJam Juerd: do I have to mention PHP here? ;-)
18:57 PerlJam people are *always* using tools they don't understand.
18:58 Juerd PerlJam: Don't use my PHP knowledge against me. I'm not good at using PHP, if that's what you wanted to say.
18:58 pmurias xinming: don't take offence I ever wish if not valid english, use I wish or I sometimes wish
18:58 PerlJam pmurias: hey, he got the idea across just fine  :-)
18:59 xinming ...
18:59 Juerd across the fence?
18:59 xinming hmm, I think he meant about the line.... `But failed... but after I "bless" a lot... God sends me info... :-)`
19:00 xinming s/But failed... but/But failed.../
19:00 PerlJam Juerd: across the chasm between brains.
19:00 xinming pmurias: OOps... thanks...
19:00 xinming pmurias: I sometimes wish... :-)
19:01 Juerd PerlJam: No, I meant fence, as in not fense.
19:02 Juerd This is so not a good channel for making fun of speling mistakes and typos :)
19:03 FurnaceBoy_ yep, it's indefensible
19:05 pmurias joined perl6
19:07 xinming hmm, any gentoo user here?
19:07 pmurias me
19:08 xinming pmurias: hmm, considering write a dev-lang/pugs-svn ebuild? :-P
19:09 pmurias Juerd: according to the dictionary offense is the usual american spelling of offence
19:10 vel joined perl6
19:10 pmurias note that i'm dyslexic and a horribly lousy typist
19:11 xinming what does dyslexic mean? :-/
19:11 xinming pmurias: It's right to point out my mistake... As this will prevent me from making the same mistake again. ;-)
19:11 xinming pmurias: thanks
19:12 KingDiamond joined perl6
19:13 pmurias dyslexia is a difficulty with reading and writing because you are unable to seee the difference between the shapes of letter - longman contemporay dictionary of english
19:14 pmurias it is hugly overdiagnosed in Poland
19:14 TimToady as opposed to lysdexia, which is a Greek with a broken right hand.
19:14 ruz joined perl6
19:15 pmurias you know Greek?
19:15 TimToady classical
19:16 larsen joined perl6
19:21 TimToady audreyt: I wonder if we might have a "no greedy" pragma that tags every quantifier with :, then require *? or *+ where you want eager or greedy matches.
19:24 TimToady smacks of /m /s syndrome though.  Maybe grammars just default to 'no greedy'.  Or rules vs rx// maybe?
19:24 PerlJam "tags every quantifier with :"  ??
19:25 TimToady just the bare + * and ?.  Makes non-backtracking the default, in other words.
19:25 TimToady most grammars don't generally want backtracking most of the time.
19:26 TimToady so it'd be convenient to just say \d+ to mean that, instead of having to say \d+: everywhere.
19:26 PerlJam oh
19:26 TimToady it could be an adverbial, too
19:26 TimToady but then every rule in the grammar would be tagged that way.
19:26 xinming PerlJam: did pugs r9927 needs ghc 6.4.1? or ghc 6.4 is just fine?
19:27 pmurias i see know how ':' replace posessive quantifiers, IMHO though they look better
19:27 TimToady I'm thinking that optimizing rule {...} for grammars and rx|m|s for non-grammars might be the right place to differentiate
19:27 TimToady it was already a bit odd that rules and rx were so much alike, and this would make them less alike.
19:28 PerlJam xinming: dunno
19:28 xinming PerlJam: what version of ghc is on your system?
19:29 PerlJam xinming: 6.4.1
19:30 xinming src/Pugs/Prim.hs:210:13:
19:30 xinming    No instance for (Value [Word32])
19:30 xinming      arising from use of `op1Cast' at src/Pugs/Prim.hs:210:13-19
19:30 xinming    Probable fix: add an instance declaration for (Value [Word32])
19:30 xinming    In the definition of `op1': op1 "~^" = op1Cast (VStr . (mapStr complement))
19:30 xinming Build failed: 256 at util/build_pugs.pl line 103.
19:30 xinming make: *** [pugs] Error 2
19:30 xinming This is what I get, I just check my ghc, It is also 6.4.1
19:31 pmurias Jurd: would it be ok to use feather for (very) low volume personal mail?
19:31 pmurias s/Jurd/Juerd/
19:35 nothingmuch pmurias: if you'd like an account i can give you @woobling.org
19:35 nothingmuch for any volume
19:35 PerlJam perl people are so generous
19:35 weinig|out is now known as weinig
19:36 TimToady pathlogically generous
19:36 TimToady s/path/patho/
19:38 xinming I'd rather use gmail for storing temporialy files. :-P
19:38 TimToady the problem with just saying "rules don't backtrack by default" is that there are constructs that are not quantifers that "backtrack"
19:38 TimToady [aa|a|b] for instance, "backtracks" to the next alternative.
19:39 pmurias nothingmuch: thanks, i would like to ,I don't have realiable mail now exept feather
19:39 TimToady I don't mind disabling that backtracking too, but then how do your write the backtracking when you want it?
19:39 TimToady *you
19:39 TimToady [aa|a|b]**{1}+ or some such?
19:40 TimToady or maybe [aa|a|b]:+ would do
19:40 PerlJam maybe "quantifiers in rules don't backtrack by default"
19:40 TimToady and *+ would maybe be short for *:+
19:40 TimToady but it's the principle of the thing.
19:40 TimToady one-pass grammars are easy to optimize, and usually what yo uwant.
19:41 TimToady [aa|a|b] is just doing the longest token rule.
19:41 TimToady you don't want it to look at "a" if "aa" fails.
19:42 TimToady likewise <@alternatives> or <%tokens>
19:43 TimToady also, it's just more efficient when you know you don't have to generate the continuations.
19:43 TimToady hmm, something to be said for making the non-quantifier form look like the quantified form.
19:44 TimToady that'd give us [aa|a|b]:*+ which implies that, er, [aa|a|b]:*? would search right to left? hm...
19:45 TimToady <@alts>:*+ vs <@alts>:+
19:45 TimToady hmm
19:45 TimToady I don't really see much use for directionality in the non-quantifier forms.
19:46 cognominal TimToady:  related to you non backtracking quantifiers... is this possible to have a  'commit' trait that makes a rule behave like in a LALR engine?
19:46 lichtkind i there still the posibility to write things lige ... if ...;
19:46 xinming ?eval [+][1,2,3]
19:46 evalbot_9927 [1, 2, 3]
19:46 TimToady you mean besides <commit> that we already have?
19:46 cognominal yes
19:47 pmurias does a*:a match aaa
19:47 pmurias ?
19:47 cognominal it would means that every subrule commits
19:47 TimToady never
19:47 TimToady the a* gobbles all the a's, and the : prevents backtracking
19:47 TimToady I'm proposing that a*a have the same behavior in a rule.
19:48 TimToady and you'd have to say a*+a to get the greedy backtrack, and a*?a to get the eager backtrack.
19:48 TimToady (just in rules, not in rx/)
19:48 pmurias so possesive quantifiers would be the default right?
19:48 TimToady in rules
19:49 theorbtwo I thought rules were just a little bit of extra syntax on rx//.
19:49 lichtkind ?eval say 'yes' if 1;
19:49 evalbot_9927 OUTPUT[yes ] bool::true
19:49 theorbtwo ... like our &foo = sub {...} vs sub foo {...}
19:49 TimToady I'm proposing to add justification to the distinction
19:50 TimToady much like we distinguised -M to use age in days rather than mod time in seconds
19:50 theorbtwo I'm not sure what the point is.  What's wrong with backtracing?
19:50 TimToady if you're gonna add another way to do it, you should try to make it as different as possible.
19:50 TimToady in a parser you don't usually want it.
19:51 cognominal too slow...
19:51 theorbtwo Ah, thanks, cog.
19:52 TimToady it's usually bad policy to have your parser guessing about what you mean on the basis of a parse failure sometime in the "lookahead" code when that lookahead is potentially unbounded.
19:52 TimToady that's why I don't like it that this works:
19:52 TimToady ?eval 1<2
19:52 evalbot_9927 bool::true
19:53 * theorbtwo does like it that that works.
19:53 TimToady when this doesn't:
19:53 TimToady ?eval 1<2                                                    >
19:53 evalbot_9927 \undef
19:53 PerlJam TimToady: so ... what about extirpating the other way to do it instead and twiddle backtracking via adverbial modifiers?
19:54 theorbtwo There should be a way to do it from the inside, too.
19:54 pmurias a way to apply adverbial modifiers to all rules in a grammar would be handy
19:54 TimToady adverbs tend to be the wrong solution to policies that want to apply to large sets of rules
19:55 TimToady either it should be a pragma in a lexical scope, or differentiate rules from rx in their defaults
19:55 theorbtwo TimToady: Nothing wrong with making it both.
19:55 TimToady as long as we give it a consistent name on the different scales.
19:55 theorbtwo :nobacktrace on the rule, or no backtrace; at the top of the grammar.
19:56 TimToady s/trace/track/
19:56 theorbtwo Er, right.
19:57 TimToady but we don't use :nomumble productively anywhere else.
19:57 theorbtwo ...or do neither and put :s where you want them in the rule.
19:57 TimToady it's usually :mumble(0)
19:57 theorbtwo I suppose so.
19:58 TimToady the more likely pragmatic form is "use rule :mumble"
19:58 theorbtwo I'd like a way to say "backtracking is OK here" inside a regex, but I suppose it doesn't make much sense to do so.
19:58 TimToady on the theory that the pragmas that apply to a particular keyword just just be "use keyword stuff"
19:58 TimToady "use open :foo" for instance
19:58 Cyrup left perl6
19:58 theorbtwo IWFM.
20:00 TimToady "use use :GLOBAL" and now all your uses import into GLOBAL.  :-)
20:01 TimToady rule :rx { ... } or { [ :rx \d* ] } maybe
20:02 TimToady rx:rule/\d*/ being possesive
20:03 TimToady there's also probably some whitespace matching differences between rules and rx
20:04 TimToady we thought about having a whitespace automatcher every time you call a token from a rule, and otherwise whitespace disallowed.
20:04 TimToady rx// would presumably not do that either.
20:04 PerlJam :w on rules by default would be nice.
20:05 TimToady except :w is not quite right when calling one rule from another, or one token from another.
20:05 TimToady which is why we were thinking about pegging it to the rule/token transition (in both directions, to handle both leading and trailing ws)
20:06 PerlJam well, now that you mention these things, it seems to make *much* more sense to have both rule{} and rx{} where rules are where you hang the nice defaults off of.
20:06 TimToady :w probably doesn't hurt when calling rule/rule, though, unless you really want to make sure the whitespace can be attached to the surrounding tokens, rather than higher up in the syntax tree.
20:07 TimToady but token/token calls almost certainly doesn't want :w
20:07 TimToady that's why I mentioned them. :)
20:08 PerlJam I know, I'm just confirming that you're doing a good job as language designer  :)
20:08 PerlJam s/good/excellent/ even
20:10 TimToady Yeah, I'm living proof that even slow-thinking people can look good if they think long enough.  :)
20:11 TimToady tokens are more like rules in that they don't want to backtrack by default, but they're more rx in not wanting autowhitespace matching
20:11 theorbtwo Hm.  This whole discussion is rubbing me the wrong way, but most parsers I've written have more to do with bitshifts then regexes, so perhaps I should just stay out of it.
20:11 PerlJam well, it helps if you think about the right things. :)
20:11 PerlJam theorbtwo: what's wrong in your mind?
20:11 * Odin- thought looking good didn't have much to do with whatever thinking went on under the bonnet...
20:11 theorbtwo I think if you want whitespace matching, you know where to find <ws>.
20:11 TimToady to2: can you figger out why it's rubbing you the wrong way?
20:12 theorbtwo It seems like you're saying "well, I've got these two syntaxes, I should make them more different", where I'd say "I should make them closer", or "they're different enough".
20:13 theorbtwo Also, "I don't like 1<2 doing the right thing, and 1<2                        > not, so let's build it into all parsers made with the language".
20:13 PerlJam theorbtwo: which is better?   rule thingy { <ws> <ident> <ws> <ass> <ws> <expr> <ws> }  or rule { <ident> <ass> <expr> }  ?  (insert quantifiers as appropriate)
20:13 TimToady I think the proper attitude here is, I've got two distinct use cases, and each wants different defaults.  Let's pick the right defaults for both cases.
20:14 pmurias why do people use ident instead of id
20:14 pmurias ?
20:14 theorbtwo But why not just put the <ws> in the <ident> and <ass>?
20:14 TimToady 'cus most computer programmers think of id as a number?
20:15 PerlJam theorbtwo: maybe you don't *always* want <ident> to gobble whitespace?
20:15 TimToady because you want to be able to define a token that uses <ident> without allowing whitespace.
20:15 TimToady for example, \$ <ident>
20:16 TimToady that's why you really want to peg it to the rule/token boundary without either the rules or the tokens having to worry about it.
20:16 theorbtwo Hm.
20:16 * pmurias tells himself to stop mistaking ident with indent
20:16 TimToady that's essentially defining the boundary between a lexer and a parser.
20:16 TimToady yeah, well, I get tired of power outrages.
20:16 xinming ?eval int 3.4
20:16 evalbot_9927 3
20:18 PerlJam theorbtwo: now, you could say that you could just define two forms of <ident>, one that eats whitespace and one that doesn't.  But that pushes some complexity on the programmer, and why do that if our language can handle it for us?
20:18 TimToady so your typical lexer gobbles space upon entry, then looks for $ followed by an ident.
20:19 TimToady I've always wondered why most compilers had a separate lexer, and we tried to run it with rules all the way down, but this whitespace thing seems to be one of the reasons to have a separate lexer.
20:20 TimToady it generalizes out the "use whitespace to separate tokens that would otherwise be confused" rule into one spot
20:20 TimToady rather than scattering <ws> all over the place.
20:21 TimToady so I'm thinking a token is just a special kind of rule that optionally matches <ws> fore and aft when called from a rule.
20:21 TimToady or maybe the fore/aft policy is specified elsewhere.
20:22 TimToady or maybe it's just fore, and a token should look aft explicitly if it really needs the lookahead.
20:22 TimToady funny, fore and after are backwards for a boat.  You look behind aft, and look ahead fore...
20:22 TimToady so maybe I should avoid those terms.
20:23 PerlJam TimToady: so ...  token foo { ... }   rather than rule foo { ... }  ?  (or have I stepped one step too far :)
20:23 TimToady no, that was the proposal a couple of months ago, but it has languished.
20:23 PerlJam Then rule an rx start to look very similar again.
20:24 theorbtwo rule :toxen {...}, rule :lex {...}
20:24 TimToady but if rules also auto : their quantifiers, then token can still be a special rule, and I'm happier
20:24 TimToady except rx wants auto backtracking, and token doesn't
20:24 theorbtwo Er, token.
20:25 * theorbtwo can't do phonex today.
20:25 PerlJam theorbtwo: sure, but our fearless language designer is trying to save the hapless programmer from RSI
20:26 TimToady I think we probably end up with all of rx/rule/token as keywords, and also :rx/:rule/:token for policies internally to any of the others.
20:26 PerlJam TimToady: for some reason having 3 variations on the theme bothers me more than just 2
20:26 TimToady you think everything should be a binary decision?
20:26 TimToady so everything should come in powers of 2 somehow?  :)
20:26 PerlJam no, that's just what my gut feels right now.
20:27 TimToady Hmm, well, I often pay attention to my guts, so I can't tell you not to pay attention to yours.
20:27 theorbtwo My gut says name them all rx, like sub foo {} vs sub {}, and make them properties.
20:27 PerlJam theorbtwo: rx is definitely the wrong name to choose if you're going to do that.
20:28 cognominal continuing on my idea on autocommit subrules, I would have push a fourth keyword: lalr
20:28 PerlJam Besides, rules are already special kinds of sub, so we're already able to do that :)
20:28 theorbtwo lalr is too technical.
20:28 PerlJam cognominal: and :ll($n)  too?  ;)
20:29 cognominal :)
20:29 TimToady that would almost certainly want to be attached to the grammar, not the rules.
20:29 cognominal can't we mix? I am not sure.
20:30 TimToady you can certainly mix different style of parser as long as each subparser knows exactly where it's supposed to stop.
20:30 cognominal I just want to fold Parse::Yapp into the rule/grammar scheme :)
20:30 TimToady we already do that with operator precedence vs top-down for Perl 6.
20:31 TimToady It does mean that sometimes you want to parameterize your bottom-up parser with "stoppers"
20:31 PerlJam sounds like a funny form of cut in a way
20:31 TimToady especially when they would otherwise be mis-recognized as operators
20:33 TimToady other bottom-up strategies can also be mixed in as long as you make sure you're in a consistent state at the boundaries.  You don't want the parsers fighting over reducing the same chunk of text differently.
20:34 PerlJam Unless you do (in a parallel fashion)
20:34 TimToady PerlJam, sure, all the backtracking control ops are forms of cut, if you're thinking Prolog.
20:34 cognominal quantum parsing in constant time :)
20:35 TimToady well, speaking of guts, I'm about 1.5 hours overdue for lunch.
20:35 TimToady so, bbiab &
20:38 pmurias cut spoiled the most fun part of Prolog, that you could use predicates as to way functions: p(in,Out) and p(Out,in)
20:54 * PerlJam wishes someone was awake enough to implement the rule and token semantics just mentioned :)
21:11 mj41_ joined perl6
21:12 PolettiX joined perl6
21:15 pmurias anyone else here wants YAML emiting from Smart::Comments?
21:30 FurnaceBoy joined perl6
21:34 penk joined perl6
21:37 svnbot6 r9928 | pmurias++ | perl6.pl now shows an example containing an if
21:37 svnbot6 r9928 | pmurias++ | emit is a sketch of the new perl5 emitter
21:41 Mago joined perl6
21:47 Gothmog_ joined perl6
21:50 KingDiamond joined perl6
21:50 TimToady audreyt: looks like r9925 broke the build.
21:51 Limbic_Region joined perl6
22:00 frederico joined perl6
22:15 larsen_ joined perl6
22:21 larsen__ joined perl6
22:24 svnbot6 r9929 | lwall++ | Regressed r9925, which broke build.
22:27 lichtkind joined perl6
22:30 lichtkind ?eval die 'haha';
22:30 evalbot_9927 is now known as evalbot_9928
22:30 evalbot_9928 Error: haha
22:30 lichtkind thanks evalbot is no evilbot
22:48 TimToady ?eval "a" ~< 4
22:48 evalbot_9928 is now known as evalbot_9929
22:48 evalbot_9929 "\d[16]"
22:49 TimToady ?eval "aa" ~< 4
22:49 evalbot_9929 "\d[16]\d[16]"
22:49 TimToady ?eval "aa" ~< 8
22:49 evalbot_9929 "\d[0]\d[0]"
22:49 TreyHarris TimToady: can you remember the linguistics term for the "boggle" reaction listeners have when there's syntactic ambiguity but not semantic ambiguity?  i'm blanking.
22:51 TimToady not offhand
22:51 TimToady garden path is when you hit a semantic wall and have to reanalyze
22:51 TimToady "the old man picked up his glasses and filled them with sherry" is a classic.
22:51 TreyHarris "I'd like you to meet my mother, Roseanne Barr and President Bush"
22:52 TreyHarris "time flies like an arrow; time mosquitos like a bullet."  "time flies like an arrow--assuming you can find an arrow to teach you how to time them"
22:52 marmic_ joined perl6
22:53 merlyn time flies like an arrow.  Fruit flies like bananas.
22:56 Gothmog_ joined perl6
22:56 FurnaceBoy joined perl6
22:56 PolettiX joined perl6
22:56 jserv-- joined perl6
22:56 rmoriz joined perl6
22:56 broquaint joined perl6
22:56 jabbot joined perl6
22:56 Toaster joined perl6
22:56 xinming joined perl6
22:56 kcwu joined perl6
22:56 DesreveR joined perl6
22:56 webmind joined perl6
22:56 wolverian joined perl6
22:56 Grrrr joined perl6
22:56 Khisanth joined perl6
22:56 feng joined perl6
22:56 kanru joined perl6
22:56 weinig joined perl6
22:56 hexmode joined perl6
22:56 TimToady joined perl6
22:56 ko1_away joined perl6
22:56 PerlJam joined perl6
22:56 oozy joined perl6
22:56 revdiablo joined perl6
22:56 avar joined perl6
22:56 cognominal joined perl6
22:56 avarab_ joined perl6
22:56 Frances joined perl6
22:56 p5evalbot joined perl6
22:56 rashakil joined perl6
22:56 hcchien joined perl6
22:56 hlen joined perl6
22:56 arcady joined perl6
22:56 pdcawley_ joined perl6
22:56 kane__ joined perl6
22:56 ayrnieu joined perl6
22:56 knewt joined perl6
22:56 integral joined perl6
22:56 diotalevi joined perl6
22:56 meppl joined perl6
22:56 masak joined perl6
22:56 jiing_ joined perl6
22:56 rw-rw-r-- joined perl6
22:56 LCamel joined perl6
22:56 cookys joined perl6
22:56 orafu joined perl6
22:56 Maddingue joined perl6
22:56 pjcj joined perl6
22:56 gugod joined perl6
22:56 ingy joined perl6
22:56 sri_ joined perl6
22:56 locksy joined perl6
22:56 miyagawa joined perl6
22:56 TreyHarris joined perl6
22:56 xerox_ joined perl6
22:56 qwacky joined perl6
22:56 perlbot joined perl6
22:56 obra joined perl6
22:56 marmic_ joined perl6
22:56 marmic_ is now known as marmic
22:56 turrepurre_ joined perl6
22:59 ko1_away0 joined perl6
23:04 turrepurre joined perl6
23:04 marmic joined perl6
23:04 Gothmog_ joined perl6
23:04 FurnaceBoy joined perl6
23:04 PolettiX joined perl6
23:04 jserv-- joined perl6
23:04 rmoriz joined perl6
23:04 broquaint joined perl6
23:04 jabbot joined perl6
23:04 Toaster joined perl6
23:04 xinming joined perl6
23:04 kcwu joined perl6
23:04 DesreveR joined perl6
23:04 webmind joined perl6
23:04 wolverian joined perl6
23:04 Grrrr joined perl6
23:04 Khisanth joined perl6
23:04 feng joined perl6
23:04 kanru joined perl6
23:04 weinig joined perl6
23:04 hexmode joined perl6
23:04 TimToady joined perl6
23:04 ko1_away joined perl6
23:04 PerlJam joined perl6
23:04 oozy joined perl6
23:04 revdiablo joined perl6
23:04 avar joined perl6
23:04 cognominal joined perl6
23:04 avarab_ joined perl6
23:04 Frances joined perl6
23:04 p5evalbot joined perl6
23:04 rashakil joined perl6
23:04 hcchien joined perl6
23:04 hlen joined perl6
23:04 pdcawley_ joined perl6
23:04 kane__ joined perl6
23:04 ayrnieu joined perl6
23:04 knewt joined perl6
23:04 integral joined perl6
23:04 diotalevi joined perl6
23:04 meppl joined perl6
23:04 masak joined perl6
23:04 jiing_ joined perl6
23:04 rw-rw-r-- joined perl6
23:04 LCamel joined perl6
23:04 cookys joined perl6
23:04 orafu joined perl6
23:04 Maddingue joined perl6
23:04 pjcj joined perl6
23:04 gugod joined perl6
23:04 ingy joined perl6
23:04 sri_ joined perl6
23:04 locksy joined perl6
23:04 miyagawa joined perl6
23:04 TreyHarris joined perl6
23:04 xerox_ joined perl6
23:04 qwacky joined perl6
23:04 perlbot joined perl6
23:04 obra joined perl6
23:09 justatheory joined perl6
23:09 Khisanth joined perl6
23:09 marmic joined perl6
23:09 Gothmog_ joined perl6
23:09 FurnaceBoy_ joined perl6
23:09 PolettiX joined perl6
23:09 jserv-- joined perl6
23:09 rmoriz joined perl6
23:09 broquaint joined perl6
23:09 jabbot joined perl6
23:09 Toaster joined perl6
23:09 xinming joined perl6
23:09 kcwu joined perl6
23:09 DesreveR joined perl6
23:09 webmind joined perl6
23:09 wolverian joined perl6
23:09 Grrrr joined perl6
23:09 feng joined perl6
23:09 kanru joined perl6
23:09 weinig joined perl6
23:09 hexmode joined perl6
23:09 TimToady joined perl6
23:09 PerlJam joined perl6
23:09 oozy joined perl6
23:09 revdiablo joined perl6
23:09 avar joined perl6
23:09 cognominal joined perl6
23:09 avarab_ joined perl6
23:09 Frances joined perl6
23:09 p5evalbot joined perl6
23:09 rashakil joined perl6
23:09 hcchien joined perl6
23:09 hlen joined perl6
23:09 pdcawley_ joined perl6
23:09 kane__ joined perl6
23:09 ayrnieu joined perl6
23:09 knewt joined perl6
23:09 integral joined perl6
23:09 diotalevi joined perl6
23:09 meppl joined perl6
23:09 masak joined perl6
23:09 jiing_ joined perl6
23:09 rw-rw-r-- joined perl6
23:09 LCamel joined perl6
23:09 cookys joined perl6
23:09 orafu joined perl6
23:09 Maddingue joined perl6
23:09 pjcj joined perl6
23:09 gugod joined perl6
23:09 ingy joined perl6
23:09 sri_ joined perl6
23:09 locksy joined perl6
23:09 miyagawa joined perl6
23:09 TreyHarris joined perl6
23:09 xerox_ joined perl6
23:09 qwacky joined perl6
23:09 perlbot joined perl6
23:09 obra joined perl6
23:09 lichtkind joined perl6
23:09 lichtkind ?eval (2|3) == all(2|3|5|7);
23:10 LordArthas[home] joined perl6
23:10 LordArthas[home] left perl6
23:11 lichtkind ?eval 6;
23:13 lichtkind joined perl6
23:14 lichtkind ?eval (2|3) == all(2|3|5|7);
23:18 lichtkind can anybody hear me?
23:18 TimToady I hear you, but evalbot doesn't seem to
23:19 TimToady maybe the netsplit knocked it out, or something
23:19 lichtkind ok i got message about a disconnection of amercan and european servers
23:20 TimToady but things such as svnbot rejoined, so I don't think we're detached from Asia.
23:20 Juerd evalbot_9929 is still here.
23:20 lichtkind TimToady maybe time to give you kudos your writings really inspired me, you have fans that even can program here
23:20 Juerd And it runs on feather, which is in Europe
23:21 Odin- What about the freenode server it connects to?
23:21 lichtkind maybe the junctions were too much
23:21 TimToady any idea why lichtkind's evals didn't do anything?
23:21 Juerd TimToady: No clue at all...
23:21 TimToady thanks, lichtkind.
23:21 Juerd I don't know if evalbot has logs or anything
23:21 theorbtwo -HUP it?
23:22 Juerd theorbtwo: I don't know if it will respond well to that
23:22 TimToady ?eval 1
23:22 Juerd OTOH, it doesn't respond at all now...
23:22 lichtkind maybe the first junction let him crash
23:23 Juerd Hm.
23:23 Juerd lichtkind: it, not him.
23:23 lichtkind juerd the bot is in german male
23:23 Juerd I know
23:24 Odin- Aber hier spricht man nicht Deutsch! :p
23:24 Juerd Odin-: Aber jawohl!
23:25 theorbtwo Ah, but would you call a young woman "he", because it's der Maidchen?
23:25 lichtkind really not bad  odin
23:25 Juerd theorbtwo: Das
23:25 lichtkind das mädchen
23:25 theorbtwo Blast.
23:25 theorbtwo My German is horrible.
23:25 Juerd theorbtwo: der
23:25 theorbtwo ...that's part of why I moved here.
23:26 Juerd Moved where?
23:26 lichtkind czech is worse :)
23:26 Odin- lichtkind: How so?
23:26 theorbtwo England.  They speak English here... mostly.
23:26 Juerd theorbtwo: Interesting concept
23:26 azuroth hmm. any idea what a .daa is?
23:26 Odin- theorbtwo: Oh, like "tally ho, chap" and suchlike?
23:27 lichtkind Odin czech is my mother tongue its very nice but difficult but maybe worst ist hungarian
23:27 * Juerd knows 1 czech word
23:28 lichtkind pivo
23:28 lichtkind :)
23:28 lichtkind :) .) :)
23:28 Juerd No
23:28 Odin- lichtkind: "Worst" in what way?
23:28 Juerd lichtkind: pozor :)
23:28 lichtkind odin most complicated
23:29 Juerd lichtkind: Remembered it from a HUGE sign saying only that, a few meters before the road, eh, ended.
23:29 lichtkind juerd like pozor vlak ?? pivo means beer
23:29 Juerd pozor like achtung
23:29 lichtkind yes
23:29 Juerd I don't drink beer.
23:29 Odin- lichtkind: Finnish! :p
23:29 Juerd Odin-: It was originally called Funnish
23:29 lichtkind finish is the same lang family as hungarian
23:30 Juerd Odin-: But you know the Finnish, always doing funny things with vowels.
23:30 Odin- Juerd: The language of weirdity!
23:30 wolverian we like the smiley faces: ö
23:30 Juerd wolverian: That's not smiley, that's getting ready for receiving head-ey.
23:30 lichtkind we too
23:30 wolverian Juerd, true.
23:30 Odin- ... I actually said "Finnish sounds funny" to a finn. Next I knew, he'd CTCPd me a heavy-metal album sung entirely in finnish.
23:30 Odin- That's just plain *weird*.
23:30 wolverian DCCed
23:31 Juerd wolverian: And the other person goes like :þ
23:31 Odin- Errr.
23:31 Odin- Yes. Why'd I confuse those?
23:31 * Odin- slaps self.
23:31 wolverian Juerd, only if they speak old english
23:31 Juerd wolverian: What happens next is hard to express in ASCII
23:31 Odin- wolverian: Ellegar íslensku!
23:31 wolverian Odin-, no.
23:31 Odin- (Or icelandic, for translation.)
23:32 Juerd DCC involves CTCP
23:32 * Odin- uses þ daily. :p
23:32 Juerd Odin-: .is?
23:32 Odin- Juerd: Yes.
23:32 Juerd (If not, your hostname is lying)
23:33 Juerd Odin-: You also still use đ and æ, right? (I'm not sure if the đ glyph is the correct one.)
23:33 Odin- ð, yes.
23:33 Juerd Used to be compose,d,-
23:33 Odin- æ also, but that's also shared by the other nordic languages.
23:33 Juerd But that creates đ
23:33 Odin- :)
23:33 Juerd eh, -d, not d-
23:33 Juerd Uppercase is correct, though: Đ (iirc)
23:34 lichtkind TimToady i began with perl with an open source project because it feels good, cozy,(the auro not a special syntax) hope that sounds not too toady
23:34 Juerd What's toady in that context?
23:34 Juerd (And I can't imagine that "Tim" would mind toadiness)
23:35 theorbtwo Brown-noser.
23:35 Odin- avar: Shouldn't we abolish Æ? :>
23:35 Juerd Odin-: Of course.
23:35 lichtkind yes juerd
23:35 Juerd Odin-: Replace ð with d, æ with ae, þ with th
23:36 nothingmuch joined perl6
23:36 theorbtwo Hmm, I should think Tim would think that you aren't being Hubirific enough.
23:36 Odin- Juerd: Kinda like the English, when they figured that'd be easier than casting new letters for the movable type? :>
23:36 Juerd Odin-: :)
23:36 Odin- AEvar. Hrhrh. :>
23:37 azuroth :x
23:37 Juerd Oh!
23:37 Juerd ð is now compose,d,h
23:37 Juerd Ð is different from Đ even
23:37 Odin- That's more appropriate, I suppose.
23:37 Juerd (compose,D,H and compose,-,D)
23:38 Juerd They look annoyingly alike to be different :(
23:38 Odin- Indeed.
23:38 theorbtwo Unicode is full of strange choices like that, but it's still the best we've got.
23:38 wolverian hm, ð is altgr+d here, without compose. nice.
23:39 * Odin- just presses the button marker "Ð".
23:39 Odin- :D
23:40 Juerd ëèéēêĕěė  # Surely the world is better off with much fewer variants?
23:41 theorbtwo Juerd: That's not even all of them.
23:41 theorbtwo There's languages that use multiples of them on one letter.
23:42 Juerd Jūērd looks neat though
23:42 Juerd theorbtwo: Eek.
23:42 theorbtwo Oh, and transliterated sanscrit uses a dot below on some letters, though I don't know if e is one of them.
23:44 theorbtwo There are 26 precomposed forms of e plus accents known to my copy of the 'unicode' command.
23:45 theorbtwo U+1EC5 LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE for example.
23:45 Juerd Yea, I see them in my compose file
23:45 Juerd Fortunately my font doesn't render them.
23:45 lichtkind ?eval 1;
23:47 theorbtwo It really should decompose them into e plus combining accents, and render them that way.
23:50 lichtkind gnight
23:55 TimToady pugs just ate my cpu and disk for the last 25 minutes
23:56 TimToady trying to run t/general/atoms.t
23:56 TimToady I wonder if that's what happened to the evalbot.
23:58 Khisanth that is not the only CPU pugs has eaten :)
23:59 theorbtwo Mmmm, CPU.
23:59 theorbtwo Yummy.

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

Perl 6 | Reference Documentation | Rakudo