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