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