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. |
|||
00:06
particle_ joined
00:08
ruoso joined
|
|||
audreyt | ?eval 1 | 00:10 | |
evalbot_10080 | 1 | ||
particle_ | phew :) | ||
Toaster | well, that's something :D | ||
. o O ( ship it! :D ) | |||
KingDillyDilly | eval aa=1 doesn't work with p5evalbot, so I I would be surprised if that didn't work. | 00:11 | |
Not that I'd expect outpot, but it returns an error | 00:15 | ||
Damn High School typing teacher told me I type too slow and to allow myself to make more mistakes. Bitch. | 00:21 | ||
00:30
FurnaceBoy_ is now known as quaintlittlefoll,
quaintlittlefoll is now known as quaintfoller
00:32
quaintfoller is now known as QuaintBoy
|
|||
QuaintBoy | you shouldn't have listened | 00:34 | |
KingDillyDilly | And I type mostly with two fingers not anyway. And faster than then. | 00:35 | |
meppl | gute nacht | 00:38 | |
svnbot6 | r10081 | particle++ | test junctions in boolean context | ||
audreyt goes back fixing the parser breakage | |||
00:47
flounder99 joined
00:56
flounder99 joined
|
|||
clkao | audreyt: are the capture stuff implemented? | 00:58 | |
audreyt | clkao: nope, that's the next thing todo after fixing parser | ||
was thinking maybe Data::Bind can be the 0th implementation | |||
clkao | *nod* | ||
00:58
KingDillyDilly left
|
|||
clkao | i am thinking maybe i'd create capture templates in compile time, and feed in those which are not static arguments | 00:59 | |
that also allows can-bind check | |||
audreyt | that makes a lot of sense | 01:00 | |
clkao | but i am ill today so i might be talking bollocks | ||
audreyt | aww | ||
caught cold? | |||
clkao | no. stomach. but feel better after applying @garlic | ||
does what i am thinking apply to non-perl5 backend? | 01:01 | ||
01:01
frederico joined
|
|||
audreyt | define "static" | 01:03 | |
clkao | 1, 'colour' | ||
constants | |||
audreyt | oh ok | 01:04 | |
at runtime, the capture looks like | 01:07 | ||
data Capture = MkCapture { inv :: Maybe Val , args :: Seq Args } | |||
data Args = MkArgs { pos :: Seq Val , nam :: Map Str Val } | |||
at compile time, because we allow f(1, 2, 3, *$x), the "args" form has to be | 01:09 | ||
Seq (Args, Maybe Exp) | |||
that is, each sequence potentially have an unevaluated "$x" which we don't know yet whether will be expanded to named or positionals | |||
clkao | right. but we know in compile time if such $x is going to happen for this capture | 01:10 | |
audreyt | yes, hence the Maybe | ||
if it's Nothing, then it's trivially a constant capture | 01:11 | ||
or at least known-slots capture | |||
clkao . o O (Module::Compile::PPI) | |||
audreyt | see /topic | ||
clkao | *nod* | ||
is there already ppi-based module::compile yet? | |||
audreyt | no, I think Module::Compile::Squish is attractive | 01:12 | |
or rather, Module::Optimize::Squish | 01:13 | ||
(ingy has been talking about semantically-nonaltering M::C be under M::O namespace) | |||
01:13
amnesiac joined
|
|||
audreyt | (functionally it'sthe same) | 01:13 | |
clkao | mm. | ||
i think i need something like that before i can play more with data::bind | |||
it's just too annoying to type the verbose capture | |||
audreyt | what's stopping you from using att handlr? | 01:14 | |
clkao | [\1, \3], { foo => \"bar" } | ||
signature is fine | |||
it's the invoking bit | |||
audreyt | ah ok | ||
well, for constants you can omit the \ | 01:15 | ||
if you do anotther line of checking | |||
and for lvalues you can use helpers, probably | |||
posi($x, $y, $z) | |||
where posi has signature of | 01:16 | ||
sub posi (;\$\$\$\$\$\$) | |||
but I agree a Perl6::Bind -like srcfilt is a must | |||
what about just take Perl6::Bind and let it use Filter::Simple::Compile? | |||
svnbot6 | r10082 | lwall++ | Assignment test tweaks due to design rot. | 01:17 | |
r10081 | particle++ | test junctions in boolean context | |||
clkao | i shall investigate | 01:18 | |
buu | I want a sane formatting engine =[ | 01:19 | |
particle_ | interesting that a later commit is reported earlier by svnbot6 | 01:23 | |
i guess larry gets top billing :) | 01:24 | ||
TimToady | various things rise to the top. | ||
QuaintBoy chuckles | |||
particle_ | lol | ||
01:35
Quell joined
|
|||
audreyt | mm, pugs is rejected by google SoC | 01:46 | |
buu | =[ | ||
audreyt | but haskell.org is accepted | ||
buu | Why? | ||
jsiracusa | I think I just heard Larry refer to audreyt as "he" in the Israel(?) perl presentation thing | ||
audreyt | buu: there's no reason cited | ||
buu | Bummer. | ||
audreyt | jsiracusa: yeah, at 1st day :) he changed the pronoun on the 2nd | ||
jsiracusa | it's hard! | ||
audreyt | I understand | 01:47 | |
took me ten years :) | |||
jsiracusa | and he's only known you for a short time | ||
my friend I'v eknown since 4th grade is now a she | |||
and damned if I can't keep myself from saying "he" | |||
anyway, it wa sa nice talk. too short tho | |||
TimToady | jsiracusa: yes, I'm confused on gender issues. :) | ||
jsiracusa | that's one linguistic thing I'm glad hasn't made it to Perl yet | 01:48 | |
"No no, hashes are feminine!" | |||
TimToady | now there's an idea... | ||
self.primp; | |||
particle_ | if you want gender, use latin, not perl | 01:49 | |
jsiracusa | I was thinking more like nƩ vs neƩ where operators needs to be spelled slightly differently depending on the gender of the operand(s) | ||
if you build it, Damian will write the grammar module | 01:50 | ||
QuaintBoy | heh, and don't forget singular/plural | ||
particle_ | we already have that, it's called context :) | ||
~ vs + | |||
TimToady | hashes are very relational... | ||
jsiracusa | we coudl go all Ruby on Rails and demand that array and hash names be plural | 01:51 | |
@apple; # syntax error! | |||
particle_ | sure, now internationalize that rule :) | 01:52 | |
jsiracusa | the date on that talk was feburay, it seems | ||
so I imagine a lot has changed since then | |||
TimToady | in indoeuropean languages, the abstract things are feminine. I guess that means we usually capitalize feminine nouns in Perl 6... | 01:53 | |
seems properly respectful, and antipatriarchal... | |||
oh, wait... | 01:54 | ||
particle_ thinks @Larry is a good example | 01:55 | ||
audreyt | "numbers are from mars, strings from venus" | 01:56 | |
TimToady | must...resist...that...straight...line... | 01:57 | |
jsiracusa | objects are from uranus? | 01:58 | |
audreyt | vegans are from vega? | ||
jsiracusa | better hurry up... | 02:00 | |
www.acm.org/crossroads/xrds7-5/bison.html | |||
particle_ sings, "the sun is a mass of incandencent gas..." | |||
audreyt | TimToady: in perl5 | 02:02 | |
1x4 | |||
is legal | |||
following a strict reading of <ws> makes it illegal in p6 | |||
(currently pugs has it legal) | |||
jsiracusa | well, consider 0x4 | 02:03 | |
audreyt | 0x is longer token | ||
TimToady | "a great big nuclear furnace..." | ||
audreyt | so that's safe | ||
jsiracusa | still seems odd | 02:04 | |
02:04
QuaintBoy is now known as FurnaceBoy
|
|||
TimToady | I think it's probably okay to illegalify that. | 02:05 | |
audreyt | k | 02:06 | |
YetAnotherEric | could pugs be under TPF for SoC? | ||
audreyt | YetAnotherEric: sure, last year we have brentdax's perl6-wiki | 02:07 | |
Kontent | |||
FurnaceBoy | "and that's the fastest speed there is..." | ||
audreyt | though it builds on pugs rather than become part of pugs, it has proved very useful | ||
TimToady: is symbolic prefix followed by postcircum paren the same as function call? i.e. +(3, :by(4)) | 02:11 | ||
is it operating on a Seq or on a normal arglist Capture? | |||
TimToady | looks more like a function to me, I guess. | 02:13 | |
audreyt | good | ||
audreyt kills another special case | |||
TimToady | but + (3, :by(4)) would be the other thing. | ||
audreyt | sure. | ||
but so would be | |||
int (3, :by(4)) | |||
buu | So are you saying it's now possible to write lisp natively in perl? | 02:14 | |
audreyt | it's been possible since perl5... | ||
buu | eval: (+ 4, 5) | ||
p5evalbot | buu: Return: 5 | ||
buu | er | ||
Well, ok, it doesn't error but it doesn't work either. | |||
?eval (+ 4, 5) | |||
02:14
evalbot_10080 is now known as evalbot_10082
|
|||
evalbot_10082 | Can't exec "./pugs": No such file or directory at examples/network/evalbot//evalhelper.p5 line 46. | 02:14 | |
buu | grah | ||
audreyt | two evalbots are running | 02:15 | |
and overridding each other's flags | |||
I've killed one. a sec | |||
buu | Weird | ||
audreyt | but to answer your question, | ||
this is about +(4,5) | |||
not (+ 4 5) | 02:16 | ||
buu | So that won't work? | ||
audreyt | not without a sufficiently redefined macro for circumfix () | ||
?eval 1 | |||
buu | But in perl, foo(4,5) is almost the same as (foo 4,5) | ||
evalbot_10082 | 1 | ||
buu | So logically.. | ||
?eval (+1) | |||
evalbot_10082 | 1 | ||
audreyt | er no, it's the same only if foo is listop | 02:17 | |
by default it's syntax error , perl5 | |||
eval: (foo 4, 5) | |||
p5evalbot | audreyt: Error: syntax error at (eval 111) line 1, near "foo 4" Number found where operator expected at (eval 111) line 1, near "foo 4" (Do you need to predeclare foo?) | ||
buu | audreyt: You missed the comma.. | ||
Er, wait | |||
audreyt | what comma? :) | ||
buu | Never mind. That is an interesting error.. | 02:18 | |
eval: sub foo { } (foo 4,5) | |||
p5evalbot | buu: Return: | ||
buu | It's just tellin you foo isn't found, at least in p5.. | ||
audreyt | eval: (int 4, 5) | 02:19 | |
p5evalbot | audreyt: Return: 5 | ||
audreyt | in any case... by default, (foo 4,5) is a listop in perl6, so would work as well | ||
but (foo 4 5) not | 02:20 | ||
buu | audreyt: So what about + 4, 5? | ||
audreyt | + is defined to take one arg | ||
buu | Er, it is? | ||
audreyt | eval: sub foo ($) {} (foo 4, 5) | ||
p5evalbot | audreyt: Return: 5 | ||
buu | Then how does +(4,5) work? | ||
avar | evalbot_10082: sub { "hello, world" } () | ||
arg | |||
audreyt | buu: I imagine it will indeed fail | 02:21 | |
buu | audreyt: I see. What is this :by(4) bit then? | ||
audreyt | it's a named argument that + may not handle either | ||
but .. would handle it | |||
buu | I see. | ||
audreyt | 1..10:by(2) | ||
avar | is sub { "x" } () and &{ sub { "x" } } () the same as in p5? | ||
eval: sub { "hello, world" } () | 02:22 | ||
p5evalbot | avar: Error: syntax error at (eval 111) line 1, near "} (" | ||
avar | eval: &{sub { "hello, world" }} () | ||
p5evalbot | avar: Return: hello, world | ||
audreyt | avar: the first form works (but you'll have to appent the () closer to the }) | ||
the second form doesn't work, as there's no reference anymore... | |||
avar | eval: &{ sub { "x" } } () | 02:23 | |
p5evalbot | avar: Return: x | ||
avar | audreyt: it does work.. | ||
or do I misunderstand? | |||
audreyt | avar: sorry, was talking about p6 | ||
?eval ->{3}() | 02:24 | ||
avar | arg, I thought that was the p6 evalbot | ||
audreyt | ?eval &{->{3}}() | ||
evalbot_10082 | 3 | ||
audreyt | the latter is a bug :) | ||
avar | ?eval &{ ->{"spoo"}} () | 02:25 | |
evalbot_10082 | "spoo" | ||
avar | ?eval &{ ->{"spoo"} } () | ||
evalbot_10082 | "spoo" | ||
avar | ?eval &{ ->{ q{spoo} } } () | 02:26 | |
evalbot_10082 | "spoo" | ||
avar | I like this bug;) | ||
audreyt | yeah, too bad it's going away :) | ||
(it was written before the tokyo refactoring that made &() a normal prefix and dropped the &{...} special form ) | |||
avar | I say we hold street riots in protest. | ||
ah, so it's just &( ->{ q{spoo} } ) ? | 02:27 | ||
audreyt | I wonder why you'd want to write &{} to mean noop | ||
no, it's just | |||
->{q{spoo}} | |||
there is no need for &{} anywhere anymore... | |||
avar | Yes, but the thing is not the dereference, but the "()", whether you can create a subroutine on-the-fly *and* provide an argument list to it | 02:28 | |
buu | Of course.. | ||
avar | ?eval &{ ->{ shift @_ } } ("boo") | ||
evalbot_10082 | Error: Undeclared variable: "@_" | 02:29 | |
avar | mm | ||
audreyt | let me finish the parser unbreakage first.. | ||
avar | audreyt: I'm wondering if it's specced to do that.. | ||
02:31
nirgle joined
|
|||
audreyt | avar: the @_? it is | 02:32 | |
only subroutines take *@_ upon omission of param list | |||
02:33
reZo joined,
avar left,
avar joined
|
|||
avar | argh | 02:33 | |
audreyt: No I mean whether ->{ shift @_ } ("boo") did the same thing as sub something { shift @_ }; something("boo"); | 02:35 | ||
02:40
shachaf joined
02:50
mako132_ joined
|
|||
audreyt | avar: right, and the answer is now you'd have to say | 02:55 | |
->*@_{ @_ } | |||
however, I imagine | |||
sub{@_} | |||
still works | |||
buu | Oh my god. | 02:57 | |
I swear perl6 is a practical joke to get emoticons to compile. | |||
audreyt | I agree with that feeling. | ||
FurnaceBoy | it's called the eternal April 1 | ||
02:57
SamWise_ joined
|
|||
audreyt | emoticons are pretty powerful, though. A_AY | 02:57 | |
particle_ | and you thought perl5 looked like line noise... | 02:58 | |
FurnaceBoy | cheap shots... | 03:01 | |
03:04
weinig is now known as weinig|sleep
03:08
FurnaceBoy_ joined
03:10
justatheory joined
03:20
justatheory joined
03:21
FurnaceBoy_ is now known as FurlessBoy
03:30
jfoutz joined
03:44
reZo is now known as phpError
03:53
KingDiamond joined
04:27
jfoutz left
04:37
ZaphodBeeblebrox joined
04:44
avar joined
04:50
avar joined
04:54
q[uri] joined
05:12
Aankhen`` joined
|
|||
gaal | fe | 05:13 | |
audreyt | yo | ||
I think I repaired parser | 05:14 | ||
will check in in a bit | |||
but a general Rules->Parsec translation would be very useful | |||
gaal | whee | ||
audreyt | and I can use some brain tennis :) | ||
gaal | what are you doing in 24 hours? :( | 05:15 | |
audreyt | for the next 11 hrs, hack on pugs | ||
then, sleep | |||
then... probably okay to hack more, I think | |||
gaal | i'm off to $work now.. will pop by if i get a chance | 05:17 | |
audreyt | k | 05:20 | |
YetAnotherEric | audreyt, did you have an "ideas" page when you applied to be a SoC mentor org? | 05:21 | |
audreyt | no... just general items | 05:22 | |
* Bridge with underlying native objects in each of our runtimes | |||
* Improved reference implementations for Perl 6 subsystems | |||
* Porting compiler parts to Perl 6 for self-hosting | 05:23 | ||
* Documentation for Perl 6 and Pugs | |||
that's it | |||
YetAnotherEric is going to try pitching them vectorsection scratchcomputing.com/projects/vecto...hlist.html | |||
their mentor page sounds like they really want a pool of ideas | 05:25 | ||
but if pugs isn't "active and viable", I don't know what is :-( | |||
obra | YetAnotherEric: too late | 05:28 | |
they're closed for this year | |||
and they ran over budget on projects | |||
YetAnotherEric | eek! | 05:31 | |
audreyt | mm bazaar and monotone made the cut | 05:33 | |
YetAnotherEric | did they move the deadline yesterday? | ||
I was certain I looked at that yesterday and it said I had at least until the weekend | 05:34 | ||
ah well, every project needs a good wishlist | 05:35 | ||
obra | audreyt: they applied early | 05:36 | |
Looks like almost no projects were added after friday | |||
YetAnotherEric: that page hadn't been updated since thursday | |||
YetAnotherEric | do'h! it's a flaw in their html | 05:38 | |
must have submitted...by 08:00 Pacific Daylight Time May 1, 2006: | |||
YetAnotherEric kicks konqueror and self | 05:39 | ||
audreyt | firefox displays it the same too | 05:47 | |
05:53
Quell joined
05:57
nirgle left
06:18
f0rth joined
06:23
ghenry joined
06:50
marmic joined
06:51
iblechbot joined
07:02
autark joined
07:10
Frances joined
|
|||
svnbot6 | r10083 | audreyt++ | * Parser.hs refactoring into Rule engine, step #1: | 07:26 | |
r10083 | audreyt++ | - rulePrevClass field userstate to carry whether the | |||
r10083 | audreyt++ | previous character is \w, <ws>, or something else. | |||
r10083 | audreyt++ | This is needed to support <ws> and \b assertions. | |||
r10083 | audreyt++ | - Pure functions moved out to Parser/Util.hs. | |||
r10083 | audreyt++ | - Literals moved out to Parser/Literals.hs. | |||
r10083 | audreyt++ | - Pugs.Rule: hide the "token" primitive from parsec | |||
r10083 | audreyt++ | because we'll defined "rule", "token" and "regex" forms | |||
r10083 | audreyt++ | ourselves shortly. | |||
arcady | is Parser.hs one of those horrible files that takes half an hour and half a gig of memory to compile? | 07:34 | |
because refactoring that is really a wonderful idea | |||
07:36
elmex joined
|
|||
audreyt | yes. | 07:39 | |
and yes. | |||
AST.Internals and Parser.hs must die | 07:40 | ||
I mean, diet | |||
beppu | I'm checking out svn.openfoundry.org/pugs/ via svn right now, and I'm wondering if you tag releases (because I don't see the usual tags and branches directories). | 07:42 | |
audreyt | I stopped tagging around 6.2.0. | 07:43 | |
svn.perl.org/perl6/pugs/tags/ | |||
please use CPAN to see release tags | |||
tarballs, I mean | 07:44 | ||
beppu | is svn.perl.org official or is svn.openfoundry.org where I should be checking out from? | ||
07:44
r0nny joined,
dakkar joined
|
|||
audreyt | svn.perl.org is mirrored fro openfoundry | 07:44 | |
committers use openfoundry | |||
beppu | ok | ||
audreyt | noncommitters can use either | ||
beppu | cool, thanks. | ||
scw | audreyt: Hi, I'm totally out of date with pugs. However, what do you think I can do to restart hacking it? | 07:45 | |
audreyt | scw: oh, hi | 07:47 | |
scw: have you worked with Parser.hs before? | |||
scw | audreyt: Yes, I think. I've added some parsing rules, e.g. :key(val) | 07:48 | |
07:48
KingDiamond joined
|
|||
audreyt | right, you also added ??!!, if I'm not mistaken | 07:48 | |
scw | audreyt: I think I wrote an analysis but you added it :) | 07:49 | |
audreyt | I just copied the spec :) | ||
ok, then I can very much use your help | 07:50 | ||
scw | audreyt: so you are now refactoring Parser.hs and try to remove it? | ||
audreyt | yes, trying to port all of it into Rules syntax | ||
scw | Hmm, perl6 rule? | 07:51 | |
audreyt | yeah. basically, Parser.hs was hard to debug | ||
because each function did not keep track how/where it matched things | 07:52 | ||
so I'm adding this capability right now | |||
take a look at src/Pugs/Parser/Literal.hs | |||
scw | ouch, where's my svn repo? | 07:53 | |
audreyt | check it out again from svn.openfoundry.org/pugs/ ? | ||
scw | maybe ... | 07:54 | |
I haven't worked on it in the pass whole year.. | |||
ok, I've opened Literal.hs | 07:55 | ||
audreyt | ok | 07:59 | |
the idea is that yadaLiteral will look like | 08:00 | ||
RULE( yadaLiteral { | |||
$<sym> := [ <'...'> | <'???'> | <'!!!'> ] | 08:01 | ||
{ return App( | |||
Var( doYada( $<sym> ) ), | |||
Nothing, | |||
[ Val( VStr( $<sym> ~ ' - not yet implemented') ) ] | |||
) | |||
} | |||
} ) | |||
scw | totally the same as written in Haskell :) | ||
audreyt | right, in fact I'm probing ways for machine translation :) | ||
scw | So, we are now doing such things to *every* thing in Parser.hs ? | 08:02 | |
audreyt | incrementally | ||
starting from Literals | |||
and see how (and if) it works | |||
scw | how much have you done? | 08:03 | |
audreyt | I'm still working on the parsec support part | 08:05 | |
so, we can currently parse that rule above already | |||
but the mini-language inside production rules | 08:06 | ||
"{}" | |||
the { return ... } part | |||
we need to write a minimal parser for that | |||
if you prefer perl5, look at perl5/Pugs-Compiler-Rule | 08:07 | ||
08:08
Aragone is now known as Arathorn
|
|||
audreyt | as well as misc/pX/Common/Pugs-Compiler-Precedence/ | 08:08 | |
08:08
kane__ joined
|
|||
scw | audreyt: perl5/Pugs-Compiler-Rule is a parser for perl6 rule to what? | 08:10 | |
audreyt | scw: to Perl 5 data structure and emit back to Perl 5 code | ||
it's a rules runtime in Perl 5 | |||
see tests | |||
that's the stable version; dev version is under misc/pX/Common/Pugs-Compiler-Rule/ | |||
scw | ok, they place the parsed rule in memory | 08:12 | |
audreyt | yup | ||
GeJ | win 4 | ||
my bad... sorry... | 08:13 | ||
audreyt | the plan is to take that structure and instead of codegen to perl5, codegen to haskell | ||
but currently we are missing the shared-common-language part in {...} productino closures | |||
scw | perl 6 rule --(perl5)--> Haskell --(ghc)--> binary ? | ||
audreyt | yup. | 08:14 | |
though it can then bootstrap | |||
scw | but the statements in the rules ({ ... }) is in perl6 | ||
audreyt | right, so we don't use full perl6 | ||
scw | just a small part which we can translate to Haskell by perl 5 ? | 08:15 | |
audreyt | yes. | ||
scw | quite a .... clever way :p | ||
audreyt | hopefully not ironic :) | 08:16 | |
scw | of course not :) | ||
I was just thinking how will you get over the language gap | 08:17 | ||
audreyt | ok, so. | ||
Var: $<name> $0 | |||
Call: Foo( exp, exp... ) | |||
Bar | |||
Infix: ~ + | |||
Lit: [exp, exp] | |||
(exp, exp) | |||
123 | |||
'string' | |||
that's all | |||
actually, you can remove the (exp, exp) part, it's not used yet | 08:18 | ||
and distinguish between 'c' and "string" | |||
scw | that's all we can use in the production closure | ||
audreyt | I think that's all there is | ||
probably not the final form | |||
but good enough for literal productions for now | |||
can extend over time | |||
scw | ya | ||
most things should be able to be move to outer functions | 08:19 | ||
audreyt | exactly. | ||
scw | that's what gcc folks are doing | ||
they think there are too many c codes in the .y files :Q | |||
audreyt | so, your task, should you choose to accept it, is to use whatever the most expedient way to produce a parser for such a language, and emit Haskell code for it | 08:20 | |
scw | in perl 5, but using three languages at once :D | ||
audreyt | :D | ||
scw | so what I could do is adding a backend for Pugs::Compiler::Rule | 08:21 | |
which targets on Haskell | |||
audreyt | yes. | ||
you can assume the standard parsec combinators | 08:22 | ||
plus any assertions that you may need, I'll add to parsec | |||
(like \b and $ and ^) | |||
also, don't worry about backtracking | |||
because TimToady (that's larry wall here) recently ruled that "rules" never backtrack. | |||
scw | just like what I did when adding now language construction parsing rules | ||
audreyt | so we are back to LL() family with a few nonlinear zero-width assertions | 08:23 | |
yup | |||
scw | so, rules act more like Parsec than regex? | ||
that'll make the translation easier, then | 08:24 | ||
audreyt | indeed | ||
also rules can now return objects | |||
so that's the production part | |||
scw | built-in yacc! | 08:25 | |
audreyt | rule foo { | ||
| moose { return Moose(...) } | |||
| elk (blah) { return Blah(...) } | |||
} | |||
etc | |||
(the prefix-noop | is now legal) | |||
scw | the "elk" and "blah" are contest? | 08:26 | |
audreyt | elk is literal | ||
(blah) is capture (positional) | |||
scw | I saw the prefix-noop | on mailling list | ||
audreyt | so you can refer to it with | ||
{ return Blah($-1) } etc | |||
so, if you are going to commit into Pugs::Compiler::Rule or write a new Pugs::Grammar::MiniPerl6 | 08:27 | ||
scw | so, elkblah will match the second rule and $-1 eq 'blah' ? | ||
audreyt | please use the misc/pX/Common space for now | ||
scw | A seperated module I think | ||
audreyt | and we'll move to perl5/ once it stabilizes | ||
sure | |||
"elkblah" will _not_ match foo | 08:28 | ||
because "rule" is by default <ws> separated | |||
scw | the document Pugs::Compiler::Rule stated that it is just a front end | ||
audreyt | between non-closure productions | ||
so "elk blah" will match | |||
scw | oh ya, so "elk\tblah" will match? | ||
audreyt | yup | ||
to turn off the autotranslation from whitespace to <ws> | |||
use the "token foo" form | |||
which also does not backtrack | |||
in your emitter you can assume <ws> is always on | 08:29 | ||
for now | |||
we can deal with the "token"case later | |||
scw | I will ignore that part first | ||
audreyt | cool | ||
scw mkdir misc/pX/Common/Pugs-Compiler-MiniPerl6 | 08:31 | ||
audreyt | scw++ | 08:33 | |
08:34
pdcawley joined
|
|||
audreyt | once that's done, we just need Pugs::Emitter::Rule::Parsec | 08:34 | |
and then pX can share all grammars with Pugs/Parser.hs | |||
the miniperl6 parser spec can be ported into parrot as well -- and then all three implementations can share not only the grammar but also the production | 08:35 | ||
meanwhile I'll make sure that Parsec can support everything the rules part throws at it :) | 08:36 | ||
(and think about somewhat automated translation using Language.Haskell.Syntax introspection) | 08:37 | ||
audreyt finds the acm digital library very useful for brainstorming | 08:39 | ||
spinclad | o-tori-tan: i think i can start to cash in some of my accumulated tuits... i'd like to join in. | 08:40 | |
audreyt | wow :) | 08:41 | |
spinclad | i've got some reading knowledge of haskell now, but haven't dived into Pugs itself much yet... | ||
audreyt | cool... how's your C-fu? :) | 08:42 | |
spinclad | is there another piece that breaks off easily? C-fu: done a fair bunch in past lives | ||
also scheme | 08:43 | ||
perl5, and been following perl6 fairly closely the last year-and-a-half | 08:44 | ||
audreyt | *nod* there are several parallelizable parts that's all related to the share-a-common-grammar goal... | 08:45 | |
one is porting this | 08:46 | ||
svn.perl.org/parrot/branches/pge-p...PTable.pir | |||
to C | |||
because that's the layer where speed matters most | |||
and is also stable enough now | 08:47 | ||
spinclad | right, i remember you starting to work on that lately | ||
audreyt | you can find a skeleton in src/rules/optable.[ch] that defines the data structures | ||
but the code uses Judy, which triggers a week-only licensing, er, discussion | 08:48 | ||
but now Judy is okay if we place it under third-party/ | |||
08:48
lypie joined
|
|||
audreyt | so work on it can begin again (or if you are not happy with Judy, a simple hash table may do as well) | 08:48 | |
test suite is svn.perl.org/parrot/branches/pge-p...-optable.t | 08:49 | ||
svnbot6 | r10084 | Darren_Duncan++ | ext/Relation/ : renamed the Relation class attributes to 'heading' and 'body', other pod fixes | ||
audreyt | should be somewhat bite-sized | ||
my C-fu is extremely weak (I don't know C really, but I know some XS) | 08:50 | ||
so someone who actually know how to write C is welcome :) | |||
lypie | audreyt: no response from the ghc osx port maintainer unfortunately :( | ||
audreyt | (and you can ignore all the callbacks and just focus on the static parts) | ||
spinclad | glad to take a look. first i'll read up on Judy and your code, and come back with questions | 08:51 | |
Grrrr | please don't remove Judy, it's way too cool to be ignored | ||
audreyt | ok. let me finish checking in my last edits | ||
Grrrr: we're not ignoring it :) | 08:52 | ||
rather, took me quite some time to make sure we can 1)check it into the repo and 2)not get sued | |||
08:53
drrho joined
|
|||
Grrrr | Although, I think some time ago someone tried Judy with parrot, and Leo said it had leaks, but I am unsure what ever has come out of that | 08:54 | |
audreyt | yeah, it was in2003 | 09:02 | |
svnbot6 | r10085 | audreyt++ | * optable - checkin whatever left in my local branch | ||
audreyt | Elizabeth did the initial testing | 09:03 | |
but the leakage may not be coming from judy | |||
also, the JudyHS I plan to use | |||
is new in2004 | |||
so, well, :) | |||
09:03
ewilhelm_ joined
|
|||
audreyt | spinclad: feel free to shred those to pieces :) | 09:04 | |
09:07
spinclad_ joined
09:11
spinclad joined
09:12
spinclad left
09:15
spinclad_ is now known as spinclad
|
|||
spinclad | [please pardon my sudden leaving, ISP trouble i guess] | 09:16 | |
meppl | guten morgen | 09:17 | |
spinclad | good &turningearth | 09:19 | |
meppl | good morning spinclad | ||
spinclad | guten morgen auch dir | 09:20 | |
09:21
hugues23 joined
|
|||
spinclad | to bed, tuit in morning & | 09:29 | |
audreyt | spinclad++ # sweet dreams and sweeter tuits :) | 09:30 | |
spinclad | [i've installed debian's libjudydebian1 and libjudy-dev, they may be good for my local work] | 09:34 | |
[lost in ISP hiccup:] 04:57:26 < spinclad> ok, thanks for getting me pointed. i'll dig into it this afternoon | 09:35 | ||
audreyt | spinclad++ | ||
09:46
cdpruden joined
09:50
KingDiamond joined
09:55
qmole joined
|
|||
gaal | the fresh null-| syntax makes these rules look a lot like haskell guards :) | 10:16 | |
audreyt | true :) | 10:30 | |
gaal | another realization today: you know how when writing perl5 oneliners with -p you can't skip a line wiht "next" | 10:32 | |
because the print is in a continue block | |||
there's a workaround | |||
goto LINE | |||
(obscure perl5 knowledge)++ | |||
audreyt | nice | 10:33 | |
lypie | ooo | ||
ingy | hola | ||
audreyt | very nice | ||
gaal | I always used -n when I needed to possibly skip lines before, but I was rereading perlrun today... :) | ||
can sed do that? | 10:34 | ||
d or something probably | |||
audreyt | ooh, GHC 6.4.2 comes with modern Cabal | ||
they should've done that with 6.4.1 | |||
Grrrr | I tended to $_ = "" for line skip with -p | 10:35 | |
gaal | uh, they had packaging oopeses with 6.4.2 | ||
audreyt | that means the strange "ar" games and Syck unlinking is no longer neccessary | ||
gaal | I'm not sure if they plan on rolling a 6.4.3 or pretend they didn't happen | ||
accidentally put in precisely an old cabal | 10:36 | ||
audreyt | rofl! | ||
but the tarball has 1.1.4 | |||
which is new | |||
gaal | then they must have time-machined the tarball | 10:37 | |
audreyt | so maybe they silently updated the tarball | ||
lypie | ick | ||
gaal | frankly I don't envy their release process; a real preflight must take a day | 10:38 | |
audreyt | maybe they have really good machines with n-way CPUs ;) | 10:40 | |
(where n is large) | |||
gaal | but does ghc parallelize compilation well already? I thought there was still work on getting that right | 10:41 | |
but yeah, maybe this is why vista keeps running late | |||
audreyt | sure | 10:42 | |
it's very well known that they wrote vista to run on their machines a few years back | |||
everybody is happy | |||
months passed, then some day they realized on the avg people's PC it takes 15 minutes to boot | |||
so they rewrote most of the UI code. | |||
s/rewrote/rolled back/ | |||
theorbtwo | The divide between normal and fast is getting larger. Very much so in terms of video. | 10:43 | |
audreyt | sometimes I think if I had a slower laptop, pugs may take an entirely different development path... | ||
10:44
nnunley joined
|
|||
audreyt | ...and maybe a better one | 10:44 | |
gaal | perl -e '$pid = shift; while (kill 19, $pid) {sl(); kill 18, $pid; sl()} sub sl { sleep undef, undef, undef, 0.1 }' ghc_pid | 10:46 | |
# pugs development path improver one-liner for audreyt | 10:47 | ||
audreyt | heh | ||
after OSDC.il and seeing gaal's laptop | |||
I am already sufficiently motivated | |||
to refactor more and code-for-monolithic-featuresets less | 10:48 | ||
gaal | hey, we made good progress then; with some care I can actually 'make optimized' on that machine now. | ||
audreyt | yeah, but P.A.Internals and P.Parser are still painful | 10:49 | |
working on eliminating those now | |||
gaal: so, you have tuits? | |||
gaal | not really :( | ||
audreyt | aw :/ | ||
gaal | just blowing off some %stress{$work} | 10:50 | |
10:57
kane_ is now known as kane-xs
|
|||
dakkar is away: pranzo | 10:58 | ||
11:00
kanru joined
11:38
pdcawley joined,
stennie joined
11:41
stennie joined
11:50
xinming joined
12:08
kolibrie joined
12:13
KingDiamond joined
12:18
Limbic_Region joined
12:19
wilx joined
12:27
xinming joined
|
|||
dakkar is back (gone 01:30:46) | 12:29 | ||
12:41
weinig|sleep is now known as weinig
12:51
flounder99 joined
12:54
lisppaste3 joined
|
|||
gaal | Is there a way to type a function in Haskell that takes e.g. Just Just Just Just Just Just 42 and yields 42? And have it work on arbitrarily deep Maybes? I can't think of a way to type this. | 12:56 | |
gaal takes it to #haskell... | 12:58 | ||
scw | finally make Pugs::Compiler::Rule emit correct p5 code for matching 'rule foo{ moose { return 23 } }' | ||
gaal: look like what a monad does | 12:59 | ||
gaal | scw: unJust :: (Monad m) => m a -> a isn't right either | 13:00 | |
er, I mean instead of Maybe a -> a | |||
scw | gaal: no, I made a mistake | 13:01 | |
13:02
iblechbot joined
13:06
mako132_ joined
|
|||
xinming | gaal: mplus ? | 13:09 | |
13:10
lypie left
13:16
Qiang joined
|
|||
gaal | xinming: I was, in fact, looking at catMaybes and a more polymorphic version of it when I started thinking about it.. but I don't see how mplus helps with giving this function a type... | 13:18 | |
also, Just x `mplus` _ = Just x | 13:19 | ||
so this doesn't unwrap even one step (like fromJust would) | 13:20 | ||
xinming is also a newbie on haskell. :-) | 13:21 | ||
13:25
fglock joined
13:28
macroron joined
13:31
multic joined
|
|||
fglock | TimToady: re lazy list tests printing three elements: that was my fault - dumping the generators actually makes more sense | 13:31 | |
13:32
cdpruden joined
|
|||
Arathorn | so are pugs & lrep racing each other to get a rules-implementation of the perl6 grammar running? | 13:32 | |
fglock | those tests only run on the pugs perl5 backend | 13:33 | |
Arathorn: pugs, lrep and PGE are actually trying to develop it together :) | |||
nnunley | They're trying to surround the problem, and flush it out. | 13:37 | |
particle_ makes a perl6 call from the bushes | 13:38 | ||
nnunley | Just don't shoot any random bystanders. | ||
particle_ | if i do, i expect the victim to make a full apology | 13:39 | |
fglock | it's a moving target, you know | 13:40 | |
Arathorn nods :) | |||
13:40
particle_ is now known as DickCheney
|
|||
nnunley | Of course, it also would be that there's someone in the bushes holding a perl6 to release. | 13:40 | |
Arathorn | if you surround it, the chances of managing to hit someone on the opposite side is fairly high, i'd have thought... | ||
13:41
jserv-- joined
|
|||
fglock | each time we surround a part of it, that part starts moving faster | 13:41 | |
13:42
DickCheney is now known as particle_
|
|||
particle_ likens it to playing with magnets | 13:43 | ||
fglock | en.wikipedia.org/wiki/Surprise_factor | 13:44 | |
that's the fun of it | 13:45 | ||
13:46
aeon_ joined
13:47
ghenry joined
|
|||
audreyt | fglock: yo | 13:51 | |
fglock: thoughts on adapting P::C::Prec to accept PGE's _tok format? | |||
I think it makes better external documentation | |||
I mean svn.perl.org/parrot/trunk/languages..._optok.pge | |||
particle_ | let me know if you see any missing ops in that file | 13:52 | |
or anything else funny | 13:53 | ||
audreyt | yes I see missing ops in that file :) | ||
particle_ | it's heavily undertested now | ||
audreyt | it's missingterm-level $() @() *() %() | ||
13:54
Limbic_Region joined
|
|||
audreyt | "rand"/"sleep"/"abs" should be derived from source | 13:55 | |
particle_ | those are postcircumfix, yes (the first list) | ||
audreyt | -e -r -w -x is also prefix unary nullterm | ||
er, no, "$()" the three chars | |||
is a special term that means "$($/)" | |||
particle_ | ah, ok | 13:56 | |
audreyt | term level undef, undefine | ||
same as "undefined": lc, lcfisrt, uc, ucfirst | |||
not() and true() | |||
etc | 13:57 | ||
I think that table should only list symbolics | |||
fglock | audreyt: hi | ||
audreyt | the nameds needs to belong somewhere else, probably derived from S29 | ||
as the number is too large | |||
and they are all under the same prec level | |||
particle_ | agreed | ||
audreyt | but -w -r -x -e -z -s -f -d | 13:58 | |
fglock | it would be nice to have a perl5 version of PGE, instead of parse::Yapp - that would allow for easier sharing of ideas | ||
audreyt | are prefix nullterm and should be there | ||
fglock: you mean optable? | |||
the prec part | |||
merlyn | precedence is used only when deciding whether to reduce one way or the other on a reduce-reduce conflight | 13:59 | |
conflict | |||
or at least, that's the way I remember it coming from YACC | |||
fglock | the precedence parser - Parse::Yapp needs to recompile each time you change the precedence table | ||
merlyn | you can make the recompile lazy though, right? | ||
fglock | not a big problem, since the lexer can classify many ops into a single P::Y token | 14:00 | |
merlyn: sorry about the talk in Rio | |||
merlyn | well - perhaps I should have realized this from last time. :) | 14:01 | |
and from the problems with the social meeting the first time too | |||
nobody told me where the social meeting was happening until after it had started. :) | |||
audreyt | fglock: I cache it in parsec too | ||
merlyn | and then they realized "hey, where's randal?" | ||
audreyt | fglock: but I think src/rules/optable.[ch] is the way we should share | ||
fglock: spinclad says he'd look into it -- if you have C-fu or know someone who does | 14:02 | ||
that'd be great | |||
particle_ | looks like it's missing unary =, too | ||
audreyt | pmichaud said he'd be happy to see a C-based shared version | ||
as well | |||
so that's three votes :) | |||
merlyn: a precedence parser is neede in perl6 because perl6 allows you to | 14:03 | ||
Introduce New Precedence Level With User-defined Functions(!) | |||
with arbitrary fixity etc | |||
14:03
justatheory joined
|
|||
audreyt | so we can't use those offline parsing techniques | 14:03 | |
merlyn | I recognize the need | ||
audreyt | at least not without modifications | ||
it needs to resume itself after recompilation at the correct point | 14:04 | ||
fglock | I'm looking for SoC ideas - my current one is to finish implementing p6->p5, and then go back and refactor it | ||
audreyt | fglock: sure, TPF-as-mentor-organization should be able to recognize this value | 14:05 | |
fglock: another idea is a set of bulitin perl6 objects | 14:06 | ||
implemented in pure perl5 | |||
you'd need that for runtime anyway... | |||
fglock | that's cool - much like the old p5 runtime | ||
audreyt | yes | ||
but this time we have a much better idea | |||
particle_ | i don't see unary:= in the precedence section of S05 | ||
audreyt | I can actually explain in detail how Lists work | ||
and Arrays, etc | 14:07 | ||
unlike the last time around where we have to do a lot of guessworks with references | |||
(which is now dead. yay) | |||
particle_: never mind that then... it's under review anyway | 14:09 | ||
I prefer slurp($fh) and readline($fh) anyway :) | |||
particle_ | don't see -w -e etc either | ||
audreyt | that is ommission | ||
particle_ | which level are they? symbolic unary? | 14:12 | |
audreyt | sure | ||
I've added them | |||
as well as unary = | |||
to S03. thanks. | |||
particle_ | (matching docs & code)++ | 14:13 | |
audreyt | indeed! | ||
(multiple implementation)++ # I've been using Pugs.Parser.Operator for too long | |||
I forgot there is a table in S03 :p | |||
fglock | audreyt: just thinking aloud... , how about having each p6 object 'register' it's parsing rule somehow - such that when you implement Int you add a method/rule parse { \d+ {return ...} } and such | 14:17 | |
audreyt | fglock: excellent idea | ||
brilliant even | |||
fglock | '.parse' is the opposite of '.perl' | ||
audreyt | that means we can have alternate integers | 14:18 | |
but it cannot be .parse... it'd be dynamic | |||
we need static info | |||
szbalint | fglock: I currently like the DBI to Perl6 one... | ||
particle_ | okay, added to parrot/perl6, too | 14:19 | |
audreyt | class Int { macro term:<> is parsed(/-?\d+/) { P6AST::Lit::Int($/) } } | ||
and then export that macro | |||
and import it from GLOBAL | 14:20 | ||
or from prelude | |||
should do the job | |||
makes some sense? (has to be macro-returning-ast) | |||
otherwise you run into circularity | |||
otoh, there can be a special sugar | 14:21 | ||
class Int is parsed(/.../) { ... } | |||
that means the same thing and fetch to a "new from parse" method | |||
but that may be too convenient. | |||
fglock | 'term:' is a category - it can magically add the rule to %term (maybe) | 14:22 | |
pmichaud | lastlog pmichaud 10 | 14:24 | |
oops | |||
pmichaud searches for a slash | |||
audreyt | / | 14:25 | |
fglock: (specced) | |||
so, not maybe | |||
fglock | ok | ||
14:27
multic left
|
|||
audreyt | gaal: "make ghci" is about 3 times faster here | 14:33 | |
with GHC 6.4.2. | |||
and "make pugs" about 40% faster | |||
particle_ | hey pm, did you see audrey's suggestion of a different op file for named ops? | 14:34 | |
audreyt | pmichaud: there is a large number of named functions; those that happen to take 0 or 1 args ends up in the optable | 14:35 | |
pmichaud: I worry about optok being filled with 30+ such functions | 14:36 | ||
where it should really be derived from the parrot-side function signature | |||
also, user-defined "sub f ($x) {}" will go into unary slot as well | |||
so the builtins should probably use the same reflection capability | 14:37 | ||
particle_ looks over S29 | 14:38 | ||
audreyt | (since they translate to abs() calls, not prefix:<abs>() calls) | ||
particle_: scrol lto the bottom of | |||
svn.openfoundry.org/pugs/src/Pugs/Prim.hs | |||
easier for your eyes :) | |||
particle_ | nice | 14:39 | |
pmichaud | audreyt: I'm not too worried about optok being filled with functions, as long as it's not hundreds of them | ||
fglock | lunch & | 14:40 | |
audreyt | currently Pugs.Prim has 333 functions | ||
pmichaud | 333 unary functions? | ||
audreyt | counting unary ones | ||
the thing is that | |||
particle_ | pm: see audrey's link above | ||
audreyt | IO::print $x | ||
is also unary | |||
as is | 14:41 | ||
pmichaud | it's parsed as unary? | ||
audreyt | Object::clone $y | ||
pmichaud | i.e., if I do $x = IO::print $x + 3, does the + bind more or less tightly? | ||
audreyt | actually, it's arguably unspecced. | 14:42 | |
if it's hard, I guess we can just ignore :) | |||
pmichaud | I think that IO::print is a listop | ||
(I could be wrong there :-) | |||
audreyt | even if we know the signature statically? | ||
pmichaud | I remember this being discussed somewhere -- just a sec | 14:43 | |
audreyt | I can live with that... that is consistent in its way | ||
pmichaud | that's why I was thinking of "named unary" as being special somehow | ||
audreyt | though I'm quite sure that if you define an unary or nullnary in scope | 14:44 | |
that also has to be parsed like that | |||
perl5 does that, and TimToady confirmed it just this morning | |||
as for Qualified::Name, I think listop is fine :) | |||
pmichaud | yes, I was hoping that Qualified::Name would remain listop :-) | 14:46 | |
audreyt | I count 134 unary/nullary | ||
pmichaud | for the rest of the named unaries, I think we just put them in the opp and hope for the best :-) | ||
audreyt | 107 of which is named | ||
not including cat() from TimToady, which is currently in a superposition in a box of schrodinger | 14:47 | ||
pmichaud | PGE's opp currently divides the optokens based on the first character, so it's not as though the search is large | ||
audreyt | so, if you'd like to put 107 entries there, I just wonder if it'd make maint harder (separated "proto" with implementation) | 14:48 | |
but sure, we can certainly just import from pugs :) | |||
(but what about user-defined?) | |||
pmichaud | at some point I was expecting that the named unaries would actually come from the "sub" implementation | ||
i.e., not have a separate "proto" | |||
audreyt | yes, I think that's sane | ||
(and it's what pugs does) | |||
we used to special case the builtin ones | 14:49 | ||
doesn't scale | |||
pmichaud | I don't see a problem with putting protos into *_optok.pge for now, but eventually I'd expect it to be part of the library | ||
audreyt | ok | ||
particle_: feel free to import :) | |||
the format should be quite parsable | 14:50 | ||
14:50
chris2 joined
|
|||
pmichaud | I really intended the protos in *_optok.pge to be for those things that don't parse like "normal subs", or that have special codegen requirements | 14:50 | |
audreyt | indeed | ||
which is why I suggeste as *_subproto.pge | 14:51 | ||
or something | |||
pmichaud | ah | ||
audreyt | that holds these nameds | ||
that will become part of the sub space | |||
later | |||
pmichaud | excellent. Let's do that. But then let's not call them protos | ||
just put them in as sub xyz { ... } | |||
audreyt | aye | ||
pmichaud | well, sub prefix:xyz { ... } for now | ||
audreyt | so you need to parse minimum | ||
sub xyz ($) {...} | 14:52 | ||
sub xyz () {...} | |||
sub xyz ($?) { ... } | |||
three forms | |||
that is quite constrained | |||
particle_ | i'll commit grammar_sub.pge | ||
audreyt | k, that would be excellent | ||
particle_ | can this also be 'grammar Perl6::Grammar' ? | ||
pmichaud | particle_: yes | 14:53 | |
particle_ | excellent | ||
pmichaud | atm it's the same optable | ||
I'll be glad when I can merge my pge branch back into the trunk :-| | 14:54 | ||
svnbot6 | r10086 | audreyt++ | * Making Parsec into a Rules engine, part #2. | ||
r10086 | audreyt++ | The CharParser primitives ("satisfy" and "string") | |||
r10086 | audreyt++ | are moved into Types.hs so they can tweak <ws> state | |||
r10086 | audreyt++ | in the parser. | |||
particle_ | do i care about return value? | 14:55 | |
svnbot6 | r10087 | audreyt++ | * GHC 6.4.2 says we have redundant import. Let me commit | ||
r10087 | audreyt++ | and see if it breaks 6.4.1 on feather... | |||
audreyt | particle_: it used to be that you do | ||
particle_ | i think not | ||
audreyt | but now you don't, for parsing | ||
particle_ | great. one less field to convert | ||
audreyt | (the slice context rule has changed -- I mean, is changing) | ||
pmichaud | right, for parsing we don't care at the moment -- in the longer term we'll deal with it when we need it | 14:56 | |
particle_ wonders what *isn't* changing | |||
audreyt | it's not going to be called the Perl 6000 language. | ||
particle_ | some may call it PERL, though | ||
audreyt | or 6000000. | ||
pmichaud starts preparing his "Perl 6000" lightning talk :-) | |||
audreyt | though "Pugs 6283185" looks more impressive than "Python 3000"... | 14:57 | |
...but that's missing a dot | |||
clkao | PERL6K | 14:58 | |
sounds like a weapon | 14:59 | ||
audreyt | Ruby is already Babel-17 | ||
a brainwashing weapon | |||
according to Takahashi-san | |||
clkao | we need Reason-42 | 15:00 | |
particle_ | Perl NP - Complete Fun Edition | ||
gaal | is that r6283185? | ||
audreyt | that will take another 627 years | ||
so maybe not | |||
nnunley | clkao: Isn't that PERL6M? | 15:01 | |
clkao | ;) | ||
audreyt | PERL6Mi | ||
gaal | PERL MMMMMM | ||
particle_ | ooooo, iPerl | ||
clkao | guys, leave the name to the marketing people. now get back to work! | ||
audreyt | I'm still waiting for iPAN | ||
ok ok | |||
audreyt goes back hacking parsec | |||
nnunley | We have marketing people? | ||
audreyt | we used to have | 15:02 | |
particle_ | i thought we only had project managers | ||
particle_ wants a ponie | |||
audreyt | our current project manager is known for handing out ponies. | ||
particle_ | i wonder how perl5-on-pugs would look | 15:03 | |
audreyt | env PUGS_EMBED=perl5 | ||
particle_ | that would have been a great april fool's | ||
audreyt | but that is an actual build option... | ||
that lets you "use perl5:DBI;" | |||
particle_ | i know. the announcement, though. | 15:04 | |
audreyt | oh. heh. | ||
gaal | and in fact has been working since last april, no? | ||
audreyt | gaal: yeah | ||
except that it leaks | |||
but yeah. | |||
clkao | iirc it was may already | ||
audreyt | so, Perl 6 once had Coporate Relation manager and Public Relation manager | ||
but that was in 2001 :) | 15:05 | ||
(dickh and bdfoy, respectively) | |||
(this is from dconway's talk) | |||
particle_ | how should i refer to multi subs? eg atan($) and atan($$) | 15:07 | |
pmichaud | particle: my preference is for the *.pge file to look like it would look in perl | 15:08 | |
so, multi sub atan ($) ... | |||
audreyt | s/multi sub/multi/ | 15:11 | |
(always synonym) | |||
pmichaud | I don't think pgc recognizes plain "multi" at the moment, but that will be fixed soon | ||
audreyt | but there's no definition... and a multi without definition _is_ proto... | ||
so I guess proto is still technically correct | 15:12 | ||
more so than a multi | |||
pmichaud | oh yes | ||
go with proto then | |||
audreyt | (unless you are going to fill in inline pir there) | ||
particle_ | so, proto on the multi's and sub elsewhere? or should i just s/[sub|multi]/proto/g | 15:16 | |
eh, it can always be changed later | |||
audreyt | just proto for all | 15:18 | |
I think all toplevel is multi | |||
that's specced, even, iirc. | |||
particle_ | done | ||
audreyt | woot. | ||
particle_ | i'll look it over before commit | ||
15:23
lichtkind joined
|
|||
audreyt | whew, finally implemented dynamic <ws> | 15:28 | |
was surprisingly hard without a seekable input stream! | |||
particle_ | hrmm, i see fail_ (?Object), this looks funny | 15:30 | |
audreyt | please ignore | 15:32 | |
also ignore eval_* | |||
particle_ | ok | ||
ignore Pugs::* | 15:33 | ||
audreyt | anything with _ in it is probably indicator of internalness | ||
yeah, also ignored qualified | |||
they don't affect parsing | |||
particle_ | k | ||
15:33
ewilhelm_ is now known as YourNameHere
|
|||
particle_ | hrmm... there is only List::pop, tere is no pop. converting | 15:34 | |
same with truncate, round, floor, etc. i'll take care of those | 15:35 | ||
audreyt | oh | ||
there is another source :) | 15:36 | ||
src/perl6/Prelude.pm | |||
grep for "is builtin" | |||
to get that set of functions defined in perl6 itself | |||
particle_ | ...now she tells me ;) | ||
audreyt | sowwy :) | 15:37 | |
pugs> if %ENV{ 3 } { 4 } | |||
undef | |||
pugs> if %ENV { 3 } { 4 } | |||
4 | |||
whew. committing | |||
clkao | whitespace hurts my eyes | 15:38 | |
audreyt | me too | ||
at least it's consistent | |||
PerlJam | snowblindness? | ||
audreyt | I'll miss full backtracking | ||
but well, that era is now past us ;) | |||
particle_ | :panic | 15:39 | |
audreyt | ...which in the short term has 0 people signing up to implement.. | 15:40 | |
15:40
vel joined
15:43
beppu left
|
|||
pmichaud | yes, I'm not in any rush to implement :panic | 15:43 | |
svnbot6 | r10088 | audreyt++ | * Pugs: Implement <ws> for post-term, such that block-literal | ||
r10088 | audreyt++ | forms can be distinguished inside "if": | |||
r10088 | audreyt++ | pugs> if %ENV{ 3 } { 4 } | |||
r10088 | audreyt++ | undef | |||
r10088 | audreyt++ | pugs> if %ENV { 3 } { 4 } | |||
pmichaud | if someone needs to :panic, they can pay me for it :-) | ||
svnbot6 | r10088 | audreyt++ | 4 | ||
TimToady | I believe that in P5 -e et al. are named unary precedence, not symbolic. | ||
lichtkind | ?eval $a=3; $b=5; if $a < 5 {$b++} while $b < 12; | 15:45 | |
xinming | if %ENV { 3 } { 4 } <--- what does { 3 } do here? | ||
evalbot_10082 | Error: unexpected ";" expecting "_", fraction, exponent, term postfix, comment, operator, ">>=:=<<", ">>===<<", ">>!=<<", ">>!~<<", ">><=<<", ">>==<<", ">>>=<<", ">>eq<<", ">>ge<<", ">>gt<<", ">>le<<", ">>lt<<", ">>ne<<", ">>~~<<", ">><<<", ">>><<", "\187=:=\171", "\187===\171", "\187!=\171", "\187!~\171", "\187<=\171", "\187==\171", "\187>=\171", "\187eq\171", "\187ge\171", "\187gt\171", "\187le\171", "\187lt\171", "\187ne\171", "\187~~\171", "= | ||
dakkar | xinming: it's the 'then' branch of the 'if' | 15:47 | |
no, wait... I'm confused | 15:48 | ||
xinming | there isn't the keyword else... :-/ | ||
dakkar | that's why I'm confused ;-) | 15:49 | |
pmichaud | in if %ENV { 3 } the { 3 } is the "then" branch of the if, and the { 4 } is a syntax error | ||
sorry... | |||
dakkar | ?eval if %ENV { 3 } { 4 } | ||
pmichaud | in if %ENV { 3 } { 4 } the { 3 } is the "then" branch of the if, and the { 4 } is a syntax error | ||
evalbot_10082 | 4 | ||
lichtkind | is if $a < 5 {$b++} while $b < 12; valid perl6 ? | ||
dakkar | pmichaud: "will be" a syntax error? | ||
pmichaud | dakkar: according to spec, not necessarily what pugs has now :-) | 15:50 | |
audreyt | no, it's not syntax error | ||
dakkar | ?eval %ENV | ||
audreyt | it's just independent block | ||
pmichaud | it's not? | ||
audreyt | bare block after it | ||
evalbot_10082 | \undef | ||
pmichaud | I thought we had to have a semi there | ||
i.e., if %ENV { 3 } ; { 4 } | |||
audreyt | that's new | ||
perl5 doesn't have that | |||
and it's not specced as such... | |||
I'm okay with requiring it | 15:51 | ||
15:51
FurnaceBoy joined
|
|||
audreyt | but I don't see spec text that defeins this | 15:51 | |
pmichaud | I figure it's similar to | ||
PerlJam | pm: if the { 4 } is on the next line, it's a bare block still, right? | ||
pmichaud | Because subroutine declarations are expressions, not statements, this is now invalid: | ||
sub f { 3 } sub g { 3 } # two terms occur in a row | |||
(from S04) | |||
dakkar | there used to be something like Ā«if a closed-brace is the last thing in a line, it does not need a semicolonĀ» | ||
audreyt | indeed, but statement_control are still statements | ||
not expressions | |||
and if is in s_c | 15:52 | ||
I'm fine with requiring semis for s_c | |||
or making if an expression | |||
but the spec currently has neither | |||
dakkar | audreyt: not an expression, please... $a=if $b {1} else {2} ... | ||
audreyt | if 3 { 4 } if 5 { 6 } # so it's currently legal | ||
pmichaud | audreyt: you're correct :-) | ||
I misread | |||
audreyt | cool :) | ||
pmichaud | the spec currently explicitly allows it | ||
particle_ | how will proto exp(<this>) look? $?$? | ||
pmichaud | (again from S04) | 15:53 | |
Therefore | |||
if -e { say "exists" } { extra() } | |||
is always parsed as | |||
if (-e) { say "exists" }; { extra() } | |||
audreyt | yeah, I know, I wrote that :) | ||
pmichaud | nm | ||
audreyt | particle_: two-arg functions are, like, always parse as listop | ||
so don't worry about that in protos | |||
dakkar | I really don't like that... too easy to (while reading) interpolate an 'else' between the blocks... | ||
audreyt | dakkar: but p5 has that... | 15:54 | |
pmichaud | dakkar then don't write it :-). Or be sure to put the 'else' there. In this sense it's really not much different from C or other languages :-) | ||
audreyt | I mean, I'm okay with it, but I don't see a compelling reason to break | ||
dakkar | pmichaud: who said I like C? ;-))) | ||
p5 has that? /me blushes | |||
audreyt | :) | ||
eval: if (1) { 3 } { 5 } | 15:55 | ||
p5evalbot | audreyt: Return: 5 | ||
pmichaud thought "or other languages" might cover whatever dakkar likes. :-) | |||
dakkar | ok, so perl5 has that and I never noticed... still looks weird to me... | ||
audreyt | dakkar: I've learned more about perl5's syntax bug^Wfeatures in the last year | ||
than the past 10 years combined | 15:56 | ||
it's really quite heavy stuff. | |||
as in, drugged :) | |||
TimToady | Perl was invented on BSD, you know... | ||
audreyt | ahhhh. | ||
Arathorn | heh | ||
audreyt | that explained a lot | ||
<TimToady> I was either on to something, or something. | 15:57 | ||
<TimToady> I was either on to something, or on something. | |||
TimToady | I surely hope you can't quote everything I ever said... :/ | ||
audreyt | <TimToady> I surely hope you can't quote everything I ever said... :/ | ||
j/k; of course I can't :) | |||
pmichaud | afk for a while | 15:58 | |
gaal | wait, what's werd with if (1) { 3 } { 5 } => 5 ? | ||
audreyt | nothing | ||
gaal | it evaluates 3, and then enters a scope that evals to 5 | ||
audreyt | sure | ||
gaal | okay, sorry for butting in :) | 15:59 | |
15:59
KingDillyDilly joined
|
|||
dakkar | gaal: I was surprised to see 2 blocks one right after the other... then it came out it's correct perl5... | 15:59 | |
TimToady | BP probably specifies a semi or nl there, of course. | ||
gaal | dakkar: with newlines it'll be easy :) | ||
TimToady: BP == ? | |||
TimToady | doubtless Perl Critic carps about it | ||
dakkar | Best Practices? | ||
TimToady | best practices | ||
didn't want to say PBP 'cuz that's the book. | 16:00 | ||
gaal | why oh why? in tests for example it is very common to put blocks of stuff in scopes of their own | ||
TimToady | on the same line? | ||
gaal | ah, no. | ||
TimToady | without a semi? | ||
gaal | without the semi yes, but not on the same line. | ||
KingDillyDilly | S05 says "We now try to call them regex because they haven't been regular expressions for a long time." Does that mean I shouldn't call them regular expressions when referring to Perl 6 regexes? In that case, I'll remove the term "regular expressions" from the Perl 6 Wikipedia article. | 16:01 | |
gaal | { ok "moose" } \n { ok "elk" } # common enough | ||
I see your point though. | |||
s/though// | |||
16:02
YourNameHere is now known as YetAnotherEric
|
|||
TimToady | well, you can still call them "regular expressions" for an audience that is used to misusing the term anyway. How will they know what regex is short for otherwise? | 16:02 | |
dakkar | Ā«regexĀ» is short for Ā«this powerful things for munging textĀ» ;-) | 16:03 | |
KingDillyDilly | So, you're saying they shouldn't be called regular expressions, they should be called regexes, and that regexes stand for regular expressions. Don't think that makes sense. If they're not regular, don't even call them regular expressions. | 16:04 | |
I mean don't even call them regexes. | |||
TimToady | what makes you think that, linguistically speaking, a derivative has to mean exactly the same thing that it is derived from? Languages don't work that way. | 16:05 | |
dakkar | KingDillyDilly: I challenge you to find a better name ;-) | ||
gaal | you see them regularly in Perl code, and they are expressions, so what's not making sense? | ||
gaal ducks | |||
TimToady | That's what we call "the etymological fallacy" in linguistics... | ||
szbalint | perlcritic is interesting, most of the criticisms below 4 don't make too much sense though - at least that was my general idea after running it through my code. The ideas are generally not bad, just not applicable with a brick and mortar to all code. | 16:06 | |
theorbtwo | Oooh, I'll have to use that term the next time my sister gets all silly and Latin on me. | ||
KingDillyDilly | I'd call them regular expressions. I have a whole argument on Wikipedia about the "not regular" issue that's rambling, so I won't repeat it. | ||
dakkar | irregular expressions ;-) | ||
theorbtwo | szbalint: As the author says in the much-ignored prefix. | 16:07 | |
KingDillyDilly | "Extended regular expressions" is good. | ||
theorbtwo | That part should really be in chapter 0. | ||
It's a bit of a mouthfull, though. regexes will do just fine. | |||
TimToady | my sense of it is that we have the opportunity to coin a new term with a technical meaning of "something that used to be regular expressions but are extended" | ||
szbalint | theorbtwo: unfortunately I don't have the book, just the tool. I'll try to get it though from somewhere :) | ||
gaal | hmm, Perl has this doc format called POD, which is plain and kinda not new | ||
audreyt | reg-ex | ||
gaal ducks again | |||
<- duck typing | 16:08 | ||
16:08
r0nny joined
|
|||
dakkar | TimToady: syntexps? | 16:08 | |
TimToady | something commonly referred to needs a shorter name | ||
theorbtwo | ...just remember when reading formal lit that speaks about regular expressions, that they don't mean perl's regexes. | ||
TimToady | I think "regex" can become that term. | ||
audreyt | REGular expression EXtended | ||
TimToady | we already managed it with "hash" | ||
audreyt | TimToady: btw, Imight missed your answer for a question the other day | 16:09 | |
dakkar | TimToady: taking over the world, one word at a time? ;-) | ||
KingDillyDilly | But you'd need to take away the abbreviation of "regular expressions" as other languages use it, or else regex will have two meanings. | ||
audreyt | about whether % signifies unorderedness, or non-int-keyness | ||
TimToady | doesn't bother me | ||
I did answer that | |||
audreyt | ok, I'll dig the backlog | 16:10 | |
TimToady | actually, you asked about @ | ||
audreyt | right, the other way around | ||
TimToady | and [] | ||
[] forces int | |||
@ is about order | |||
audreyt | {} forces code | ||
% is about unorder | |||
TimToady | % is about relationship | ||
{} doesn't force anything. | |||
audreyt | it forces a scope :) | 16:11 | |
TimToady | shh | ||
audreyt | so there's nothing wron with, say, a trie | ||
@trie{'moose'} | |||
TimToady | if the { } role is supplied by the object, that's fine | ||
audreyt | to have ordered but indexed by non-int, underface | ||
okay, cool | 16:12 | ||
thanks :) | |||
TimToady | %trie{'moose'} also works | ||
just not ['moose'] | |||
KingDillyDilly | Perl regexes is fine. | ||
audreyt | unlike other popular scripting languages :) | ||
TimToady | optimizer allowed to assume .[] is always integer subscripts | ||
FurnaceBoy | lol@gaal | 16:13 | |
TimToady | and force Int context on anything immediately inside at compile time. | ||
audreyt | k | 16:14 | |
so I end up implementing <ws> (and \b) by remembering the charclass of the last char seen by parsec | |||
hopefully sane | |||
16:14
fglock joined
|
|||
audreyt | (trying to keep it LL(1) as much as I can manage) | 16:15 | |
lichtkind | if $a < 5 {$b++} while $b < 12; equals to loop {if $a < 5 {$b++}} while $b < 12; ? | ||
audreyt | lichtkind: statement_control allows no postfix, I think | 16:16 | |
lichtkind | audreyt but i think ive seen this anywhere in larrys talk i think , i look | 16:18 | |
audreyt | larry's talk - the OSDC.il one at least - has a few outdated examples :) | ||
TimToady | loop is special case | 16:19 | |
lichtkind | so my question is true ? | 16:20 | |
TimToady | no | 16:21 | |
16:21
hexmode joined
|
|||
TimToady | can't put statement modifier on a loop control. | 16:21 | |
s/loop/statement/ | |||
lichtkind | thanks | 16:22 | |
particle_ | statement control? | ||
TimToady | basically, we don't want people writing a huge control structure and then tweaking the whole thing with a "if $flag" at the end. | ||
FurnaceBoy | "when lawyers write programs" | 16:23 | |
TimToady | loop is an exception because the "loop" at the front tells you it's going to have some control elsewhere. | ||
particle_ | so loop can have next, etc inside, *and* a modifier afterwards? | 16:25 | |
that's a lot of rope | |||
KingDillyDilly | I'm thinking that the distinction between Perl regexes and other Perl code is that the regexes are more compact and symbol-based and always act on a string. Maybe the new name for regexes should reflect that. | 16:26 | |
particle_ | KingDillyDilly: but you're wrong. | ||
KingDillyDilly | Ok. Then nevermind. | ||
TimToady | particle_: any loop can have next inside. loop takes either (;;) at the front or while/until at the end. | 16:28 | |
audreyt | TimToady: re Ps/Pe. | ||
TimToady | yeah, I know, how do they match? | ||
audreyt | U+301D has two closing | ||
particle_ | tt: sure, i get it. a lot of rope can be useful :) | ||
audreyt | 301E and 301F | ||
in ascii gram: | 16:29 | ||
`` | |||
theorbtwo | Er, loop can take neither as well, right? | ||
audreyt | can be matched by | ||
'' | |||
or | |||
,, | |||
TimToady | right | ||
audreyt | it's the infamous one special case | ||
can we just take 301E? | |||
having to match 301F feels rather strange. | 16:30 | ||
TimToady | sure | ||
audreyt | thanks. | ||
TimToady | gotta take Lewis to school. | ||
back in a while & | |||
audreyt | enjoy :) | ||
KingDillyDilly | By symbol-based, I mean not words like the function names "say", "open", etc. Though I know the new modifiers can be words. | 16:32 | |
svnbot6 | r10089 | yiyihu++ | r10092@Laptop: xinming | 2006-04-27 00:34:28 +0800 | 16:38 | |
r10089 | yiyihu++ | docs/feather/index.html update, Added a link to download svk bootstrap files(parrot&pugs) for working offline. | |||
KingDillyDilly | Anyway, I sure hope documents like dev.perl.org/perl6/doc/design/syn/S05.html are meant for those developing Perl 6, not those developing with Perl 6. | ||
xinming | audreyt: how to remove the r10092@Laptop .+ line? | ||
audreyt | xinming: push --verbatim | 16:40 | |
xinming | svk++ audreyt++ | ||
audreyt | KingDillyDilly: sure. try svn.openfoundry.org/pugs/docs/Perl6/ | ||
KingDillyDilly: "Overview" and "Tutorial" are the space for "developing with" | 16:41 | ||
xinming | audreyt: by the way, why will svk mirror work so slow? svn co is much faster.... :-/ | ||
audreyt | xinming: because it takes all history with it | ||
xinming | audreyt: but the bandwidth only takes about 1~4k bytes. :-/ | 16:42 | |
KingDillyDilly | Thanks. Google didn't know that's what I meant when I searched for ":panic modifier" backtracking perl6 | ||
audreyt | KingDillyDilly: it only appeared, oh, 3 days ago | 16:43 | |
16:43
KingDiamond joined
|
|||
particle_ | perl6 development... faster than a google web spider | 16:44 | |
KingDillyDilly | Micro speed though. I need the complete product. | ||
particle_ | then help build it! | 16:45 | |
KingDillyDilly | Well, I don't really, but when it's done, I'll be fearing the demise of Perl 5. | ||
. o O Why does that sound familiar... | |||
audreyt | TimToady: I also nixed U+201A and U+201E. | ||
KingDillyDilly: that's ok, just keep staying around here and chat :) | 16:46 | ||
xinming | KingDillyDilly: I don't think so, as perl 5 can be used in perl 6 seamlessly... :-) | ||
particle_ | ...except for a memory leak ;) | ||
audreyt | ...we're fixing that by running natively on Perl5 :) | ||
"perl5 is just another virtual machine" | 16:47 | ||
KingDillyDilly | I don't know whether that's just hype or not, xinming. Sometimes it sounds like you can do ANYTHING with Perl 6. Use it to run other languages, etc. I'd feel like I'd need to learn it. | ||
xinming | audreyt: I was curious about the C lib wrapper in Perl 5, Will it still works seamlessly in perl 6? They are not pure perl 5. :-/ | 16:48 | |
audreyt | xinming: if we compile to perl5 | ||
as fglock is doing now | 16:49 | ||
then sure they just work seamlessly. | |||
if we embed perl5 interp | |||
like pugs is doing now | |||
it still works, except for some memory leaks | |||
if we port perl5 internals to parrot | |||
nothingmuch | uncyclopedia.org/wiki/Image:Perlforpreschool.jpg | ||
audreyt | like... well, someone who will do it in the future via ponie | ||
then it will work happily | |||
before that someone arrives, though, we need to make perl6 compelling enough | 16:50 | ||
xinming | KingDillyDilly: You'd know, that, In perl 6, You might be able to use python modules, lisp modules in perl 6. :-) Certainly, It needs someone to finish it... But even without other modules. It doesn't hurt much. As perl 6 can use perl 5 modules, and this is a promise... IMO. :-) | ||
audreyt | in order for $big_co to sponsor a huge thankless job that is ponie | ||
Limbic_Region | audreyt - given your recent affection for Judy arrays - would you recommend them over any other C hashing library if it only needs to hold 8 items or less | 16:51 | |
xinming | KingDillyDilly: hmm, and In my opinion, I believe other people will build the compiler for parrot. :-) | ||
audreyt | Limbic_Region: if you _know_ it's going to hold 8 items or less | ||
and you don't need ordering | |||
and the key size is stable | |||
like, <4k | |||
then nothing beats a hash. | |||
normal, simple, minimal hash | |||
xinming | audreyt: It seems there is nothing impossible in perl 6. :-) | 16:52 | |
Limbic_Region | ok - ordering was a nicety not a necessity | ||
thanks | |||
audreyt | xinming: solving the halting problem... | ||
fglock | audreyt: you said: "P6AST::Lit::Int($/)" - could it be more general like "P6AST::???::Object('Int',$/)" | ||
Limbic_Region | any recommendations on drop in hash libraries for C then? | ||
audreyt | Limbic_Region: I like judy's interface best | ||
particle_ | xinming: since perl6 will run on perl5, you can extend that backwards :) | ||
audreyt | as the hash constructor is just NULL | ||
16:52
azuroth joined,
mago_ joined
|
|||
Limbic_Region | ok - thanks | 16:53 | |
fglock | audreyt: or something like Int.ast($/) | ||
audreyt | but for 8 keys or less... unless you really want to max out speed or mem | ||
any hash can do | |||
Limbic_Region | well - I want to max out speed | ||
audreyt | fglock: the latter can work | ||
xinming | particle_: What I hope is that perl can have a baby in the future... :-) | ||
audreyt | Limbic_Region: oh. if you have a c++ compiler | 16:54 | |
Limbic_Region: then use google hash, sparse mode | |||
Limbic_Region | this particular program will likely not be finished before heat death of the universe unless I get lucky | ||
audreyt | it's BSD license | ||
scarily fast | |||
Limbic_Region doesn't speak C++ | |||
KingDillyDilly | I tried installing MSVN or whatever it's called for running C modules on Windows. Never found instructions. Finally someone said I need to learn C. I'll just remain skeptical until I see it works. | ||
audreyt | well then, cvs.alioth.debian.org/cgi-bin/cvswe...t=shootout | 16:55 | |
or any of the various sources would do | |||
Limbic_Region | ok - monopolized enough of your time | ||
thanks and I appreciate the input | |||
audreyt | np :) | ||
KingDillyDilly | Modules aren't my concern though. I need the CGI one because everyone scared me out of not using it. That's about it. I can even get by with LWP. (I write web apps) | 16:58 | |
azuroth | hullo | 16:59 | |
KingDillyDilly | (without LWP) | ||
17:00
ruoso joined
|
|||
azuroth | sorry for bothering you with nitpicks, and being in the wrong place, but S02 has a typo (s/unrecogized/unrecognized/) ... tried mailing p6l, but weird stuff happened | 17:00 | |
svnbot6 | r10090 | particle++ | formatting fixes (line wrap, trailing spaces, etc) | 17:02 | |
KingDillyDilly | Ok, here: change regex to extex (extended expressions). | 17:05 | |
fglock | audreyt: re SoC/runtime - this time it may be possible to write the classes in simplified perl6 and translate to p5 | 17:06 | |
KingDillyDilly | I don't like it, but there it is. | ||
17:06
nowhereman joined
|
|||
azuroth | from rules to regex to extex? *dies* | 17:06 | |
kolibrie parses that as extended TeX | |||
particle_ | xegex | 17:07 | |
ruoso | kolibrie++ hehe | ||
audreyt | azuroth: fixed. | ||
irc more useful than p6l to prompt commits :) | |||
azuroth | audreyt: thanks :-) was just niggling me a bit | 17:08 | |
audreyt | np | 17:09 | |
audreyt finds using full-width quotes in perl6 is addictive | 17:18 | ||
TimToady++ | |||
17:18
elmex joined
|
|||
xinming | audreyt: what does full-width quotes mean? | 17:18 | |
audreyt | xinming: in chinese terminal | 17:22 | |
they take two columns | |||
but count as one char | 17:23 | ||
xinming | audreyt: yes. I understand that. :-) | 17:25 | |
17:25
saorge joined
|
|||
xinming still doesn't understand full-width quotes means... :| But won't trouble audreyt ... | 17:27 | ||
theorbtwo | xinming: Normal western characters are narrower then normal far-eastern characters. Fullwidth chars are as wide. | 17:28 | |
...as I understand it. | |||
Since you actually speak a far-eastern language, you can probably correct me. | |||
nothingmuch | how are they used in perl 6? | ||
i think that's the main question | |||
theorbtwo | I think they're just accepted as a pair of bracketing characters. | 17:29 | |
audreyt | nothingmuch: they are used as valid q<> and #() brackets. | ||
and I just implemented them. committing | |||
theorbtwo | I think we should in general consider fullwidth chars as exactly equiv to their normalwidth cousins. | ||
(In code, not literals, obviously.) | 17:30 | ||
audreyt | #perl.tw is already talking about vertical written code. | ||
theorbtwo | In purticular, fullwidth yen, since it doesn't look like backslash. | ||
I have seen places where emails, etc, were in fullwidth, apparently accidentally. | |||
svnbot6 | r10091 | audreyt++ | * Pugs.Lexer: Accept all Ps/Pe and BidiMirroring pairs, as | 17:32 | |
r10091 | audreyt++ | defined in the freshly-tweaked-by-yours-truly S02, as | |||
r10091 | audreyt++ | valid quoting pairs. | |||
r10092 | audreyt++ | * Pugs.Lexer - merge Pugs.Rule.Token to handle all | 17:50 | ||
r10092 | audreyt++ | char codes correctly. The <ws> handling has made | |||
r10092 | audreyt++ | parsing ~30% slower again -- I'll see if I can find | |||
r10092 | audreyt++ | some clever way to fix that. | |||
17:52
DaGo joined
18:31
Arathorn is now known as Aragone
|
|||
Aragone | whee | 18:33 | |
Aragone just managed to work p6 rules into a discussion on VOIP routing tables | |||
audreyt | wow. | ||
how does that work? | |||
Aragone | where you need to mark up endpoint URIs into reusable named tokens rather than un-reusable positional capture groups | 18:34 | |
so that you have only one list of URI matching - used both for rewriting & routing based on the match | |||
audreyt | neat! | ||
Aragone | not sure how it could be actually implemented in practice, but i think i'm right in thinking that Rules offers the right class of solution | ||
(originally/currently, it's all p5 regexps, which is a bit of a shame as you have to separate URIs you route on from URIs you rewrite) | 18:35 | ||
anyway | |||
Aragone -> birthday frisbee | |||
audreyt | prolly does | ||
you can always prototype with Pugs::Compiler::Rule or with PGE :) | |||
18:41
stennie left
|
|||
TimToady | maybe PGE could be renamed ā | 18:42 | |
audreyt | particle_: you added listops there too to sub | 18:43 | |
.pge | |||
they don't affect parsing, so why? :) | |||
also, map(){...} is a bit wrong | |||
I'll fix | 18:44 | ||
but first I'll remove method-only forms | |||
particle_ | i got distracted by $work, sorry | ||
audreyt | TimToady: it's Bool::True nowadays? | ||
TimToady | yup | ||
particle_ | and see XXX: note :) | ||
TimToady | don't want people mistaking the value for the predicate | ||
particle_ | true | 18:45 | |
:) | |||
TimToady | sides, all enums are arguably setset types. | ||
*subset | |||
18:46
dduncan joined
|
|||
TimToady | and that gives an excuse to capitalize the days of the week etc. | 18:46 | |
interesting, the ā symbol contains all of P R I and X. | 18:47 | ||
audreyt | what? | ||
TimToady | the ā symbol should be an R with slash that resembles Rx | 18:48 | |
it stands for "prescription drugs", as in Regex is good for what ails you | 18:49 | ||
dduncan | I have some more questions on issues related to identity and comparisons | ||
but first, I read recently that distinct ref types are going away; is that true? | 18:50 | ||
TimToady | and rx// was originally a pun in the other direction. | ||
xinming | will this be a error? `if 1;` ? | ||
audreyt | TimToady: is that the new name for PGE, or a unicode equivalent for the rx{} quoter? | ||
dduncan: yes, that is true. | |||
TimToady | I was still brainstorming about PGE naming. | ||
audreyt | dduncan: mostly to cleanly support identity and comparisons. | ||
TimToady | not suggesting we change rx// | ||
audreyt | that is, @x === @x should Just Work | 18:51 | |
dduncan | in that case, dev.perl.org/perl6/doc/design/syn/S03.html seems to be out of date | ||
audreyt | instead of requiring \@x === \@x or some other silly exercise. | ||
dduncan | does that site reflect the current synopsis, or is there another site that does? | ||
theorbtwo | Don't you mean \@x == \@x ? | ||
18:51
davidfetter joined
|
|||
audreyt | I do mean ===. | 18:51 | |
dduncan: it does | |||
xinming | dduncan: svn co svn.perl.org/perl6/doc/trunk doc :-) | ||
audreyt | dduncan: a "reference" type is not the "ref" type | ||
TimToady | people *are* going to confuse them, though... | 18:52 | |
audreyt | it just means two objects that may have identical values | ||
but different .id | |||
theorbtwo | That should be up to the day. If that's not enough, svn.perl.org/perl6/doc/trunk/design/syn/S02.pod is up to the rightnow. | ||
TimToady | their "value" is their objectness, not their contents. | ||
audreyt | TimToady: yes. which is why I tried to say | ||
TimToady | should be up to the six hours now. | ||
audreyt | Immutable vs Mutable | ||
dduncan | I saw this in my version, but it may no longer be the case: Binary === tests type and value correspondence: for two value types, tests whether they are the same value (eg. 1 === 1); for two reference types, checks whether they have the same identity value. For reference types that do not define an identity, the reference itself is used (eg. it is not true that [1,2] === [1,2], but it is true that @a === @a). | 18:53 | |
xinming | will "if 1" legal? | ||
?eval if 1 | |||
evalbot_10082 | undef | ||
18:53
weinig is now known as weinig|away
|
|||
dduncan | my problem with that is that I think [1,2] === [1,2] should return true | 18:53 | |
audreyt | mm | ||
xinming: that is a recent bug :) | |||
thanks for reporting | 18:54 | ||
xinming | dduncan: No, === comparing the value(s) "slot" by "slot" | ||
audreyt | (no, it should be illegal.) | ||
xinming | audreyt: ;-) | ||
TimToady | dduncan: [...] constructs a mutable object | ||
audreyt | dduncan: [1,2] is sugar for Array.new() | ||
dduncan: you want | |||
(1,2) === (1,2) | |||
18:54
fglock left
|
|||
audreyt | which is indeed true. | 18:54 | |
theorbtwo | dduncan: my $a=[1,2]; my $b=[1,2]; Should $a===$b, even though $b.push(3), and $a !~ $b. | ||
spinclad | a | 18:55 | |
theorbtwo | s/\.$/?/ # I do that entirely too much. | ||
18:55
davidfetter left
|
|||
dduncan | what I want is that 2 things which are logically equal compare as being equal | 18:55 | |
TimToady | those are only illogically equal. | ||
for illogically equal, you have to use ~~ | 18:56 | ||
dduncan | eg, an array having just 2 integer elements of 1 and 2 is logically equal to another array having just 2 integer elements of 1 and 2 | ||
TimToady | ?eval [1,2] ~~ [1,2] | 18:57 | |
evalbot_10082 | bool::true | ||
theorbtwo | The problem is that ~~ doesn't always mean illogically equal, it means "matches". | ||
TimToady | and what's logical about that? | ||
theorbtwo | ?eval 1 ~~ 1..42 | ||
evalbot_10082 | bool::false | ||
audreyt | no Range objects currently. | ||
sorry :) | |||
dduncan | what I would like is for all Perl data types to be treated the same as far as what === does | 18:58 | |
TimToady | they are. | ||
dduncan | a user should be able to use === without knowing what kinds of variables or values are on each side | ||
audreyt | dduncan: what you really want, is maybe | ||
$x.perl eq $y.perl | 18:59 | ||
dduncan | mayhaps | ||
but I thought === was supposed to do that but without the stringify | |||
theorbtwo | It would be nice if there were some simpiler way to write that, but it should be ===. | ||
I think === is supposed to say "if I modify the thing on the left, does the thing on the right change too". | 19:00 | ||
audreyt | or, "if both sides are immutable, can they be used interchangeably" | ||
clearly we need ====. | |||
</ironic> | 19:01 | ||
dduncan | I thought === is supposed to say "are these 2 things logically equal, which includes being of the same data type and value, regardless of what the types of the 2 things are?" | ||
TimToady | what the heck does "logically" mean, and what does "value" mean? | ||
ruoso wonders which is the other possible type of equality if not "logical" | |||
TimToady | value has to mean something immutable. | 19:02 | |
the *only* thing immutable about a normal object is its .id | |||
particle_ | ruoso: binary equality | ||
audreyt | (well, and it's class) | ||
(so we take both) | |||
ruoso | particle_, isn't binary equality something with very specific uses? | 19:03 | |
theorbtwo | Of course, we can't assign an id to every real, and still have room left over to assign them for every object, so we need === instead of just $a.id == $b.id | ||
dduncan | if 2 things are of the same type/class and within that class' definition of equality they are equal, then === returns true | ||
ruoso | I'd expect a == b to be "logical equal" | ||
particle_ | ruoso, well it's different than logical equality | ||
TimToady | no guarantee that .id returns numbers... | ||
ruoso | particle_, :) | ||
theorbtwo | Logical equality is what ^^ does. | ||
...as in 'foo' ^^ 2 == Bool::True | 19:04 | ||
audreyt | .id returns primitive values, which can be arbitrarily long :) | ||
theorbtwo | We still don't have room, since memory is finite. | ||
audreyt | we don't have room for them to be portable across runs. | ||
inside a single run, we are probably fine. | |||
dduncan | the context I am thinking of is like with object hash keys | ||
TimToady | probably better to think of ids as more like strings than numbers | 19:05 | |
ruoso | Hmm... considering Int $a = 5; MyIntSubType $b = 5; what would $a == $b return? | ||
dduncan | eg, if you said %foo{[1,2]} = 42; | ||
theorbtwo | Should you compare them with eq, ==, or ~~? | ||
audreyt | ruoso: == coerce back to Int | ||
ruoso: but === would fail for sure. | |||
(you can't use them interchangeably) | |||
dduncan | then later I can say %foo.exists([1,2]) and it would return true | 19:06 | |
TimToady | dduncan: object arrays use === | ||
no. | |||
dduncan | an Array is an object, is it not? | ||
TimToady | but [1,2] is a different Array, we keep tellin' ya | ||
theorbtwo | Yes, but not all [1,2]s are created equal. | ||
audreyt | dduncan: what you can do is | ||
%foo{(1,2)} = 42; %foo.exists((1,2)) | 19:07 | ||
theorbtwo | p5evalbot: print [1,2], " != ", [1,2]; | ||
p5evalbot | theorbtwo: Sorry, I couldn't find a plugin that matched your command | ||
audreyt | eval: print [1,2], " != ", [1,2]; | 19:08 | |
p5evalbot | audreyt: ARRAY(0x8437220) != ARRAY(0x84374e4)Return: 1 | ||
19:09
FurnaceBoy is now known as FurnaceBot
|
|||
dduncan | so I can also say "$x = (1,2); $y = (1,2); %foo{$x} = 42; %foo.exists($y);" and have the latter return true? | 19:09 | |
audreyt | yes. | ||
definitely. | |||
dduncan | this still uses the (1,2), but that there is a named container | ||
audreyt | yup. | ||
that doesn't matter | |||
the exists() takes rvalue | |||
so it's pulled from the container | |||
ditto for {$x}= | 19:10 | ||
dduncan: the implementation to 6.28.0 (PIL^N) has revealed the perl5ish ref-type's inadequacy in handling situations like this | 19:11 | ||
dduncan: so we've stepped back and looked again at the situation | |||
now it's much easier to implement in pugs, and hopefully easier for you to write too once it's implemented | |||
dduncan | hopefully | ||
audreyt | in perl5 there's no easy way to do it either | 19:12 | |
TimToady | hey, at least you get Tuple back now. | ||
audreyt | you'll have to Data::Dumper() the thing and use that as key | ||
right, (1,2) is now Seq | |||
(which makes me happy) | |||
TimToady | 'course, now someone will think Seq is short for SQL... | 19:13 | |
dduncan | I'm not trying to immitate SQL | ||
SQL is flawed | |||
TimToady | we know your views on this already | 19:14 | |
dduncan | however, I would like to be able to immitate things that people use SQL for | ||
eg, search for something by its value | |||
such that 2 things which the programmer-user thinks are conceptually the same, and have the same declared data type, match in a search | 19:15 | ||
eg, they store a Foo object, and can then find it again using another Foo object that was created in the same way | |||
19:15
_bernhard joined
|
|||
KingDillyDilly does that make-sure-TimToady-sees thang TimToady: If you really want to coin an original term, change regex to extex (extended expressions) Trust me, I'm good at this. I coined the similie "looser than a rubber chicken in sweatpants." | 19:15 | ||
dduncan | either exactly or loosely what a multi-dimensional object hash does | 19:16 | |
xinming | audreyt: there is another bug. :-/ | ||
TimToady | it's really easy to turn your reference types into value types. Just define the .id for the type appropriately. | 19:17 | |
xinming | audreyt: dies_ok { if 1 }, 'test "if 1"'; <-- this will be syntax error... | ||
audreyt: one have to remove \, after { if 1 } <--- is this right? | 19:18 | ||
19:18
shachaf joined
|
|||
audreyt | fixed | 19:18 | |
xinming | audreyt: it seems we now have to write qq[ dies_ok { if 1 } 'test "if 1"'; ] | 19:19 | |
audreyt++ | |||
dduncan | well, thank you for your help; I'll see what I can do with it | ||
audreyt | np :) | 19:21 | |
svnbot6 | r10093 | audreyt++ | * xinming++ reported that our old backtrack-all kluge of allowing | 19:27 | |
r10093 | audreyt++ | if 3; | |||
r10093 | audreyt++ | does not work (and is not needed) at all under the new regime. | |||
r10093 | audreyt++ | Fixed that, as well as the (foo {block}, 3) syntax. | |||
audreyt | k, I need to sleep. | ||
$job tomorrow and it's 3:27am | |||
have fun :) | |||
audreyt waves & | |||
TimToady | waves& | ||
dduncan | good night | 19:28 | |
xinming | audreyt: good night. :-) | ||
19:30
justatheory joined
|
|||
svnbot6 | r10094 | yiyihu++ | Added a test case for 'if 1'. Should raise an error. | 19:33 | |
19:37
FurnaceBot is now known as FurnaceBoy
19:40
macroron joined
|
|||
KingDillyDilly | Just saw the term "pattern matching" in Wikipedia. Maybe Perl 6 regexes should be called patmats. | 19:41 | |
szbalint | I'm wondering who had something to do with the idea to rewrite DBI in Perl 6 from here :> | 19:44 | |
TimToady | is Perl 6 from here? :) | 19:46 | |
szbalint | Depends on what is "here", but I guess I ment #perl6 when I wrote 'here' | 19:48 | |
TimToady | It's still a rather ambiguous sentence. | 19:49 | |
do you mean "who...from here"? | |||
xinming | ... | ||
TimToady | or do you mean "rewrite...from here"? | ||
or "idea...from here" | |||
szbalint | Oh quit blasting me. :) My english is much better than your hungarian. :P | 19:50 | |
TimToady | true 'nuff. :) | ||
But I was just trying to find out what you mean, really. | |||
19:51
larsen joined
|
|||
TimToady | the study in ambiguity was really only a linguistic pursuit--nothing personal intended | 19:52 | |
szbalint | I was just trying to find out if someone from this channel suggested coming up with the idea (www.perl.org/advocacy/summerofcode/ideas.html) to rewrite the DBI module in Perl 6. | ||
TimToady | I always analyze everything for ambiguity that way... | ||
szbalint | *-coming up with the | ||
argh. Just don't mind my grammar please :\ | |||
TimToady | I don't know the answer to that, offhand... | 19:53 | |
I can tell you it probably wasn't dduncan. :) | |||
szbalint | haha | ||
I feel like attempting that challenge and it would have been convenient to talk with the person before submitting an application. | 19:54 | ||
KingDillyDilly | I edited Wikipedia's Perl 6 article again. I like to be exact. en.wikipedia.org/w/index.php?title=...d=49571884 | ||
dduncan | I did not write anything on the summerofcode page, about DBI or otherwise | ||
kolibrie | szbalint: someone mentioned something about DBI a few hours ago on #perl6 | 19:55 | |
szbalint | kolibrie: thanks. | ||
kolibrie | I know Tim Bunce was collecting ideas several months ago | ||
don't know how far he got | |||
dduncan | he has a mailing list specific to it | ||
its [email@hidden.address] | 19:56 | ||
szbalint | oh nice, thanks. | ||
szbalint reads the archives. | 19:58 | ||
20:01
justatheory joined
20:05
kpm joined
|
|||
spinclad | ā would be a good name for regexes | 20:08 | |
but | |||
it must be pronounced ā ! | |||
theorbtwo doesn't like it. | |||
compose, r, x doesn't work. | |||
(Nor does R, x.) | 20:09 | ||
KingDillyDilly | What character is that? Meant to be a square? | 20:10 | |
spinclad | not pronounce 'recipe' like the word it abbreviates, nor 'regex', nor polish 'rz' | ||
but ā . | |||
theorbtwo | KingDillyDilly: R with a / on the final stroke, as in perscription. | ||
spinclad | it's the Rx apothecary abbreviation | ||
KingDillyDilly | Ok. Don't see it in Game in IE. | 20:11 | |
I mean Gaim | |||
spinclad | well, there you are then | ||
'the sekrit sign -- only those in the know will know' | |||
20:13
dduncan left
|
|||
spinclad | (only those with a good unicode font can pronounce it.) | 20:14 | |
but for those with aged aged keyboards we will allow to spell it Rx. | 20:15 | ||
(even though it's not an x, it's a slash, as theorbtwo said.) | |||
(but compose R / didn't work either -- I've been cut-n-pasting) | 20:16 | ||
s {pronounce} {$1 ~ 'd'} | 20:18 | ||
nm | |||
KingDillyDilly | R<span style = "padding-left: -5px;">x</span> | ||
spinclad | not portable between fonts and font sizes | 20:19 | |
KingDillyDilly | so, em | ||
20:20
penk left
|
|||
ruoso still trying to figure out the compose sequence | 20:21 | ||
szbalint is still trying to figure out how to compose a sentence :) | 20:24 | ||
KingDillyDilly | Where do I find TimToady's speech/interview/whatever where he got Audrey's sex wrong? | 20:25 | |
20:25
DaGo joined
|
|||
nothingmuch | KingDillyDilly: larywallgetsaudreyssexwrong.com | 20:25 | |
theorbtwo | nm++ | ||
spinclad | please don't bother -- no need to propagate confusion | 20:26 | |
20:26
nail_ joined
|
|||
KingDillyDilly | I didn't need it for that. I figured he had something interesting or important to say. | 20:28 | |
20:29
SamB joined
|
|||
FurnaceBoy | spinclad, I don't think it's short for recipe, but actually 'remedy' | 20:30 | |
ruoso | ÅÅ | 20:32 | |
not yet | |||
spinclad | it's used in prescriptions as 'recipe', which is 'take' in latin | 20:34 | |
20:34
lichtkind joined
|
|||
FurnaceBoy | okay, maybe I'm mistaken | 20:34 | |
lichtkind | next and redo now only in for loops? | ||
TimToady | the unicode description is "ā 211E PRESCRIPTION TAKE | 20:35 | |
FurnaceBoy | I'd hate to propagate confusion on the point. | ||
FurnaceBoy now wonders where he got the idea... | |||
TimToady | lichtkind: what gives you that idea? | 20:36 | |
lichtkind | TimToady i have the feeling i read something like that in the synopsis | ||
but it seems unlogical | 20:37 | ||
TimToady | if you can find a misleading spot, we should fix it. | ||
20:38
FurnaceBoy_ joined
|
|||
TimToady | next and last can exit any "official" loop. | 20:38 | |
bare block is no longer official loop, but do block is. | |||
20:38
justatheory joined
|
|||
lichtkind | i will seek but first i want finish here chapter about control flow in this perl tutorial ... yes the do once loop :) | 20:39 | |
thanks | 20:40 | ||
20:40
fglock joined
20:45
beppu joined
|
|||
ruoso | ā... ha... Ctrl+Shift+(2,1,1,E) | 20:47 | |
not exactly as practical as it should be :) | 20:48 | ||
spinclad | not for me but i'm sure i have a unicode escape i could use somewhere here | 20:49 | |
(uxterm...) | |||
20:50
qu1j0t3 joined,
jsiracusa joined
|
|||
ruoso | gtk is nice enough to display the numbers while i write and then substitute it by the unicode char | 20:50 | |
wow | |||
20:51
KingDiamond joined
|
|||
spinclad .oO{wow?} | 20:51 | ||
TimToady | ā works, but displays where? | 20:52 | |
theorbtwo | It is indeed quite nice about it. | ||
It displays OK for me. | |||
ruoso | every utf-8 capable environment will display it | ||
TimToady | not mine, apparently... | 20:53 | |
theorbtwo | ā.perl ~~ ā/Inf/ | ||
ruoso | TimToady, which env are you using? | ||
theorbtwo | It'll display if your font has it, or on nice renderers if it can find another font that has it. | ||
KingDillyDilly | Maybe when there's a go in a scoped block in which there's no matching lable, and the lable exists in more than one other scoped block, there should be a warning. | 20:54 | |
ruoso | theorbtwo, that's what pango is all about (I think) | ||
TimToady | fedora core 5, gnome, scim | ||
KingDillyDilly | s/go/goto/ | ||
TimToady | maybe scim is suppressing it somehow | ||
ruoso | TimToady, it's weird... support for unicode is quite old in gnome | ||
theorbtwo | You think correctly, ruoso. | ||
lichtkind | TimToady sorry cant find it seems to be my fault | 20:55 | |
SamB | TimToady: you have good fonts? | 20:56 | |
ruoso | scim == smart common input method? | ||
20:56
fglock joined
|
|||
TimToady | good enough for most of Unicode. surely good enough for hexadecimal digits... | 20:56 | |
20:56
DaGo joined
|
|||
SamB | oh, that... | 20:57 | |
lichtkind | TimToady was completly my fault i just preassumed because in the perl6 book all examples where with for | ||
TimToady | np | ||
ruoso | if scim is about input, it'd be quite weird to cause rendering problems... | 20:58 | |
TimToady | well, don't sweat it. it *does* produce the character, even if I don't get intermediate feedback. | ||
ruoso | oh... got it... so you do see ā? | 20:59 | |
TimToady | yes, after I let up on ctrl/shift at the end. | ||
ruoso | ah... I understood it wasn't being rendered... | ||
so... that's probably scim fault | 21:00 | ||
TimToady | I wonder if it's just reserving judgement because of potential interference with some other ctrl/shift shortcut. | ||
ruoso | I think if scim is filtering the input, gtk will only receive the final character... so it won't render the intermediary info... | ||
21:00
qu1j0t3 is now known as FurnaceBoy
|
|||
TimToady | heh, vim has ^KRx for it. | 21:01 | |
ruoso | for gtk, it's like if you had a Huuuuuge keyboard | ||
TimToady | I don't even have a Windows key--it's a ThinkPad | 21:02 | |
that could also be forcing some mappings together. | |||
theorbtwo doesn't have a windows key either -- my keyboard is from 1990. | 21:03 | ||
ruoso wonders which key is used for compose... | |||
lichtkind | theorbtwo you have also an mythical IBM keyboard ? | ||
theorbtwo | Not so mythical. | 21:04 | |
I've had several at various points. | |||
lichtkind | but you know what i mean | ||
theorbtwo | They're decently easy to find used. | ||
Indeed I do. | |||
ruoso | that noisy click-click-for-every-keypress-keyup keyboard? | ||
FurnaceBoy | Model M | ||
theorbtwo | Yes, that's the one, ruoso, FurnaceBoy. | ||
FurnaceBoy | I own a few | ||
FurnaceBoy owns no keyboard with the detested MS key | |||
still findable on ebay | 21:05 | ||
lichtkind | theorbtwo i got mine as a present and afterward i learned that these old things a bit legandary, but i liked it before because its good finger trainig for piano players | 21:06 | |
ruoso always choose the most-silent-most-soft keyboard he can find | |||
theorbtwo accidentally hits c-s-w, becomes very glad he's running screen. | |||
21:08
rafl joined
|
|||
lichtkind | good nicht tonight | 21:17 | |
night | |||
KingDillyDilly | Reset's out, right? | 21:21 | |
TreyHarris | KingDillyDilly: are you "-Barry-" on Wikipedia? | 21:29 | |
KingDillyDilly | Yes | ||
(reset = www.ayni.com/perldoc/perl5.8.0/pod/...reset.html ) | 21:30 | ||
TreyHarris | I'm confused about this newest edit, specifically, changing, "Unlike most other languages, in which regular expressions are provided by a [[library (computer science)|library]], Perl has [[pattern matching]] facilities built-in to the language." to "Perl's regexes are provided by a [[library (computer science)|library]], unlike the regular expressions in most other languages." | ||
did Perl, and all the other languages in the world, flip-flop overnight? :-) | |||
spinclad | should be reverted | 21:31 | |
KingDillyDilly checks Wikipedia... | |||
TreyHarris | KingDillyDilly: well, you made the change, so I was just wondering what your thinking was there. | 21:32 | |
wolverian | hah, his thinking? troll troll troll troll. cough. | ||
KingDillyDilly | DOn't revert. I'll change it now. | ||
I posted a link to it as soon as I changed it. No troll. | 21:33 | ||
wolverian | KingDillyDilly, I don't believe anything you say. :) | ||
KingDillyDilly | I want to keep the part explaining that regexes shouldn't be called regular expressions in Perl 6. | ||
spinclad | it may take more than that to not be a troll... | ||
KingDillyDilly | Give me a couple of minutes. | 21:35 | |
TreyHarris | i'll fix it, i'm right there | ||
KingDillyDilly | Oh, go ahead. | ||
I was there too, but I wanted to open another window so I could see the pre-my-edit version. | 21:36 | ||
TreyHarris | done | 21:38 | |
KingDillyDilly | Good. | 21:39 | |
I've made other edits to Perl and Perl6 and I think I was reverted only once by Merlyn. | 21:42 | ||
I then edited the article again to clarify things for people like me. | |||
Oh, I reverted myself once. | 21:43 | ||
There's a con section ( en.wikipedia.org/wiki/Perl#Con ) that I'd have gone crazy in if I was being a troll. | 21:45 | ||
spinclad | again, this doesn't prove your untrollness, only restraint | 21:46 | |
KingDillyDilly | If a troll falls in the forest and doesn't make a noise, he's not a troll. | ||
spinclad | if a troll doesn't make every possible noise, he must not be troll | 21:47 | |
xinming | JavaScript 2.0 should interface with other languages even better than JavaScript 1.5 does. If the goal of integration is achieved, the user of an abstraction should not have to care much about whether the abstraction is written in JavaScript, Java, or another language. It should also be possible to make JavaScript abstractions that appear native to Java or other language users. | 21:53 | |
:-) | |||
I think mozilla will be parrot embeded in the future... :-) | |||
ruoso | *be* parrot embeded? wow | 21:55 | |
KingDillyDilly | Look how good I am. I even added a "nice" slogan to Perl's article when I know it's not totally true. I only complained in the edit summary. en.wikipedia.org/w/index.php?title=...d=39362331 | 21:56 | |
kpm | \quit | ||
xinming | ruoso: It is just my guess. not so sure, as the goal is much like embed a virtual machine in mozilla core. And I don't think mozilla will write a virtual machine to achieve the goal. then, Parrot should be the most suitable case. | 21:58 | |
ruoso | oh... so, it will *have* a embeded parrot :) :) :) | 21:59 | |
xinming | perl 6 rocks... :-) | ||
maybe, mozilla will be rewritten in perl 6 instead of C. :-P | |||
SamB | isn't mozilla written in C++? | 22:00 | |
xinming | and then, mozilla rule... IE sucks... M$ opensourced... :-D | ||
SamB: hmm, I think javascript part is written in C, and other underlying parts written in C++ | 22:01 | ||
SamB | javascript part is written in javascript! | 22:02 | |
xinming | Not so sure... Just read the experiment proposal about javascript 2.0 | ||
SamB | javascript interpreter may be written in C, though | ||
xinming | SamB: yes. :-) | ||
cognominal | xinming: do you have urls about js 2.0 | 22:05 | |
xinming | cognominal: www.mozilla.org/js/language/js20/ | 22:06 | |
KingDillyDilly | So nobody knows for sure whether reset will be eliminated? | ||
cognominal | xinming: I think this page is very old | 22:07 | |
22:07
froh-doh joined
|
|||
cognominal | ecma is working on it. but apparently it is not a public process | 22:08 | |
cabals! always cabals! | |||
theorbtwo is a proud god of the perlmonks cabal, and hanger-on of the perl6 cabal. | 22:09 | ||
xinming is wondering if they are reading perl 6 synopsis... and truning it into javascript forms... | |||
cognominal once a saint on perlmonks :) | 22:10 | ||
s/once/was $&/ | |||
KingDillyDilly still a record holder on perlmonks | 22:11 | ||
Why is the worst nodes section still there when they were deleted? | 22:12 | ||
22:12
m joined
|
|||
theorbtwo | We don't delete much. | 22:13 | |
22:14
macroron__ joined
|
|||
xinming | cognominal: hmm, The last update of that page is in 2003... Not that old.... don't know perl borrow something from that, or javascript learn from perl 6 synopsis writing time. :-) | 22:14 | |
KingDillyDilly | I mean there are no worst nodes at perlmonks.com/?node=Worst%20Nodes at all. Why have a worst nodes link? | ||
nothingmuch | KingDillyDilly: there usually are | 22:15 | |
oh wait.. hmm | 22:16 | ||
i see | |||
in that case - it's to prevent broken links | |||
xinming | hmm, I think there is no need to talk about this... if javascript achieve the goal... There will be one more great programming language... :-) | ||
theorbtwo | KingDillyDilly: There are. You can't see them. | 22:17 | |
We don't like to encourage trolls. | |||
ruoso | xinming, that we'll be able to run in parrot :) | ||
in fact, if mozilla supports perl XUL would become a very much powerfull tool... | 22:19 | ||
KingDillyDilly | Nothingmuch is a troll? | ||
nothingmuch | KingDillyDilly: yes | 22:20 | |
KingDillyDilly | What did you do? | ||
theorbtwo | There are actually two seperate messages, and two seperate comments in the code: | 22:21 | |
# Don't feed the trolls. # Don't feed the newbies trollhood. | |||
Anonymonk gets the "newbies" message. | |||
Neg-XP users get the "trolls" message. | |||
nothingmuch | KingDillyDilly: you're being annoying | 22:22 | |
KingDillyDilly | -XP != troll | 22:24 | |
szbalint | heheh | ||
theorbtwo | It's the best way of telling from code, though. | ||
22:25
macroron joined
|
|||
szbalint | I'd love to see the perlmonks source once | 22:31 | |
I bet it's riddled with interesting comments :) | 22:32 | ||
KingDillyDilly | nothingmuch doesn't have -XP. I thought he said he couldn't see the worst nodes. | ||
PM needs to limit the size of a member's newest nodes pages. It's multi MB for me and takes forever to load. | 22:33 | ||
You're not supposed to reinvent the wheel, yet they wrote their own forum software. | 22:34 | ||
nothingmuch | KingDillyDilly: yes, because they are trolls | ||
slashdot too | |||
in fact, it's the same guys who wrote slashdot that wrote everything | 22:35 | ||
cart load of idiots, eh? | |||
ruoso | heh | ||
szbalint | heh indeed. | ||
KingDillyDilly | Am I being baited? | ||
nothingmuch | KingDillyDilly: you are baiting yourself | ||
sorry, but i'm not often here nowadays, but whenever i drop by i see you trying to get attention | 22:36 | ||
it's sad | |||
this community was flawless before | |||
ruoso | in fact, many people did told you that you're not being a nice guy | 22:37 | |
KingDillyDilly | Ok...well, I | ||
've seen more serious flaws in others here... | |||
nothingmuch | sure, you're entitled to your own opinion | ||
i'm just telling you mine | |||
nobody else made me feel bad about this channel | |||
you sometimes made me lose interest | |||
KingDillyDilly | After revewing the posts I've made and the responces by some others, if you feel that way about me, any community would be better without you. | 22:38 | |
22:39
Limbic_Region joined
|
|||
ruoso already gave up... issuing ignore... | 22:39 | ||
nothingmuch | KingDillyDilly: it is my opinion, again, not fact, that most people rather like me in their communities | ||
but, suit yourself | |||
you're more than welcome to put me on /ignore | 22:40 | ||
KingDillyDilly | Be specific about the posts of mine you're complaining about. | ||
nothingmuch | and not followup on my posts at perlmonks | ||
i don't keep IRC logs | |||
KingDillyDilly | They're logged. | ||
colabti.de/irclogger//irclogger_logs/perl6 | 22:41 | ||
nothingmuch | i don't feel like going through them | ||
i'm just sharing my opinion, that's all | |||
you can take it as an insult, or as advice which you may either take or not | 22:42 | ||
you can ignore it | |||
KingDillyDilly | How about just now. What set you off? My comment about reinventing the wheel? | ||
nothingmuch | you can have a nervous breakdown over it | ||
for example | |||
it was clearly there to annoy | |||
perlmonks existed for a long time | |||
way before decent forum software | 22:43 | ||
and also | |||
perlmonks's forum software is self admining | |||
which is very very relevant | |||
22:43
fglock left
|
|||
nothingmuch | this is very well known stuff | 22:43 | |
KingDillyDilly | I have no idea when forum software became decent, but PM isn't running on such great software now. Still, I wouldn't have said they reinvented the wheel if I knew there was no decent forum software then. You should have just corrected me. | 22:44 | |
ruoso just loves a quote from wittgenstein: "When you can't talk it's better to keep quite" (ok, probably it's not written exactly this way) | 22:45 | ||
KingDillyDilly | And I didn't bring it up out of thin air. Someone mentioned their forum software, and that came to mind. | 22:46 | |
ruoso | s/quite/quiet/ | ||
KingDillyDilly | Thanks for being clear, ruoso. | 22:47 | |
beppu | perlmonks really needs to apply ajax to their chatterbox. ;) | 22:48 | |
theorbtwo | beppu: Try [fullpage chat], or hit the "Need Help" link under the input box to get a list of more clients. | 22:49 | |
ruoso | I never got used to the chatterbox interface | 22:50 | |
I always dreamed with the day it becomes just a wrapper to an irc channel... | 22:51 | ||
and then I can just use xchat | |||
masak | ruoso: "Wovon man nicht sprechen kann, darĆ¼ber muss man schweigen."/"Whereof one cannot speak, thereof one must be silent." | 22:52 | |
en.wikiquote.org/wiki/Ludwig_Wittgenstein | |||
ruoso | masak, thanks... I translated from what I remember of the portguese translation | ||
KingDillyDilly | Things were relatively civilized in chatterbox when I used it. Seemed I did better in chat until I got here. | ||
But maybe I annoyed people and they kept quiet. | 22:53 | ||
FurnaceBoy | we don't like self aggrandising attention seekers. if you would stop praising your own brilliance, spouting incessant irrelevancies, and just attend, you'd attract less flak. | ||
KingDillyDilly | Um...for those who would like to review the logs for #perl6, pat special attention to FurnaceBoy's responces to my posts. | 22:55 | |
s/pat/pay/ | |||
But I won't be a permanent member of this room, so don't worry about me bothering you for long. | 22:56 | ||
ruoso | KingDillyDilly, have you ever thought that you may be wrong? | 22:57 | |
KingDillyDilly | I'm wrong a lot. | ||
nothingmuch | KingDillyDilly: so maybe think slightly longer before speaking | 22:58 | |
KingDillyDilly | I don't know what you're complaining about. | 22:59 | |
ruoso | KingDillyDilly, it's a sign you have to think better about yourself | 23:00 | |
KingDillyDilly | Ok. I'll think I'm better. | 23:01 | |
23:02
Quell joined
|
|||
ruoso | s/think better/think twice/ | 23:02 | |
ruoso just translated a portuguese expression... I don't know if it makes sense in english... | 23:03 | ||
23:07
larsen_ joined
|
|||
KingDillyDilly | No function list for Perl 6 yet? | 23:07 | |
FurnaceBoy | <KingDillyDilly>I don't know what you're complaining about. --- that's the enduring problem, right there. | 23:08 | |
KingDillyDilly | No, I think the problem is you and a small handfull of others. | 23:09 | |
I know what you accused me of, but I don't know what I did that fits. | 23:10 | ||
ruoso goes home... good luck | |||
xinming | KingDillyDilly: Still not, but IMO, 90% functions of perl 5 will retained in perl 6. hmm, also, there might be other enchancements on functions blessed by the power of perl 6. And by the way, the function list isn't important... | ||
KingDillyDilly | Except maybe to a minor extent, but still, an example would help, and coming from someone other than you would help too. | ||
xinming | how to do it in perl 6 is more important. functions rename doesn't hurt much. since you can make wrapper your self. | 23:11 | |
did you checkout the pugs repository? | |||
if so, go examples/ dir... | |||
or.... svn.openfoundry.org/pugs/examples/ | 23:12 | ||
23:12
ruoso left
|
|||
KingDillyDilly | I didn't comb through too much of the Perl 6 websites. I was mainly wondering about the reset function, but I wanted to change the question so I don't bother you all too much with the same thing. | 23:12 | |
xinming | www.rodadams.net/Perl/S29.html <---- search the word reset... you'll see how the specification writer will deal with it. | 23:14 | |
KingDillyDilly | Thanks. Unknown for now I guess. | 23:15 | |
I'll spare you all my sales pitch for it. | |||
Though I think the question should be whether there's a way to create a good reset function, not whether there was a good use for the way the old one worked. | 23:17 | ||
meppl | gute nacht | ||
23:19
lumi joined
23:24
Qiang joined
23:26
szbalint joined
23:30
KingDillyDilly left
23:45
mako132_ joined
23:50
lidden joined
|
|||
spinclad | ah, sweet quiet | 23:52 | |
23:54
cdpruden joined
|
|||
arcady | yep | 23:58 |