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:29 mjk joined, perlbot joined 00:38 perlbot joined 00:46 perlbot joined 00:55 hikozaemon joined 00:58 perlbot joined 00:59 jdv79 joined 01:08 neoesque joined 01:41 jserv-- joined 01:42 aufrank joined
aufrank audreyt: ping? 01:50
02:06 neoesque joined
svnbot6 r10302 | audreyt++ | * in docs/Perl6/Makefile.PL, don't propagate errors upward if LWP::Simple can't be found. 02:09
audreyt aufrank: pong 02:33
aufrank hi hi
re: your comments on whitespace in Sig.pg
audreyt gaal++ # compunit
yes? 02:34
aufrank rule bla { <subrule1> <subrule2 }
audreyt vs
aufrank is different than <subrule1><subrule2> ?
audreyt rule bla { <sr1><sr2> }
yes
aufrank ok, I thought whitespace was _always_ cosmetic in rules
audreyt rule blah {<sr1><sr2>}
aufrank I thought that was the whole assume :x thing
audreyt also means something different
that's for regexes 02:35
aufrank ok, this is good to know
audreyt regex blah { ...cosmetic... }
aufrank I thought it extended up into the "higher" forms
audreyt but rules assume :w
I mean :s
whatever
aufrank *
audreyt the effect is that spaces in them are not compiled away
they turn into <?ws>.
aufrank ok
audreyt so the way to thik about this 02:36
is to merge things that allows no space
rule blah { <sr1><sr2> }
aufrank ok, I get it :)
audreyt and sep things that must be sepped
good :)
this is all very new :) 02:37
like, this-week new
aufrank yeah, I noticed
what's your mail reading client of choice?
do you do mail and lists differently? 02:38
audreyt yes
I use thunderbird
and sometimes gmail
e.g. when I'm behind a oppressive firewall 02:39
aufrank right
and gmane for lists? or you get all of p6* into thunderbird? 02:40
audreyt the latter 02:41
aufrank i see
and tokens don't assume :s, only :ratchet 02:44
(sorry, jumping back and forth here)
audreyt yup. 02:45
svnbot6 r10303 | audreyt++ | * inc/Module/Install/Pugs.pm now absolutize the 'subdir' section so it no longer runs 'cd ..' when actually we are two-levels deep. This is a bug with (some versions of) MakeMaker, apparently. 02:49
audreyt ok. the win32 build errors reported by Limbic_Region appears to be a cygwin/win32 mixup 02:50
it's now fixed.
svnbot6 r10304 | audreyt++ | * docs/Perl6/Makefile.PL: test for LWP.pm before LWP::Simple.
audreyt likes the monad shell
aufrank audreyt: I definitely agree
except that it's the Windows PowerShell now 02:51
audreyt well, yeah.
aufrank =\
using the svk 1.07 in the monad shell you can hardly tell you're stuck on a windows box ;) 02:52
the binary package, that is
audreyt what's the equiv for ^Z in the MSH? 02:53
aufrank I haven't found one
I wondered the same thign
*thing
audreyt well, that's fine 02:59
I've got screen ;)
aufrank in MSH?
audreyt # home.tiscali.de/emilio.lopes/screen/screen.html
yup 03:00
aufrank wow, that's really great
I'll try it tomorrow at work :) 03:01
audreyt though it has autoflush issues
however 03:02
screen -s cmd
works just fine.
aufrank so composing subrules when the characters that make them all run together is done with token
audreyt praises screen(1) technology
aufrank :!words is done token { <adverb> <adv_twigil> <name> } 03:03
audreyt yes. 03:04
aufrank ok, I can dig it
audreyt rule { <adverb><adv_twigil><name> }
works too, because you may want the left-right boundaries
aufrank yeah, but that's ugly ;)
audreyt I know ;)
so nvm :)
aufrank oh, good point
audreyt and it's a token for sure
just make sure the thing that calls is a rule 03:05
aufrank you'd get l-r boundaries when you composed it into something else
audreyt yup
Parsec's got ruleWs now
aufrank rule bla { <pair> }
audreyt so I should be able to handle whatevr rule/token combination you throw at me :)
aufrank ok, I'm doing adverbs in Capture.pg right now 03:06
audreyt yay
aufrank I'll fix up ws issues in Sig.pg sometime this weekend
scw mentioned that he doesn't know rules well enough to write some part of MiniPerl-- do you know what he needs a grammar for? 03:07
I'm happy to wear this hat for a while
audreyt he needs a grammar for your productions
that is the miniperl part 03:08
aufrank so this is the production part where match objects get turned into the syntactic representation? 03:09
audreyt where match objects are _annotated_ with p6ast objects.
the annotation is done with "return"
{return}
aufrank ok, that makes sense
and how tied down are p6ast objects?
audreyt and each subrule are annotated similarily
the superrule composes the subrules
for this moment, assume the Pugs "Exp" structure 03:10
we'll invent things as we go along :)
aufrank Exp ~~ / Expression / ?
audreyt (the "Exp" structure will also need tweaking to match the new calling convention. I'm taking a look at it today, and will work on it fulltime after 6.2.12) 03:11
yeah. see src/Pugs/AST/Internals.hs for the definition
also gaal's slides may help
# perlcabal.org/~gaal/peek/start.html
lunch -- I'll bbiab 03:12
aufrank k
03:37 neoesque joined
meppl gute nacht 03:37
aufrank sleep good
meppl ;) 03:38
(im so drunken ;)
aufrank are there any twigils that are valid in named arguments?
meppl again
aufrank needs to start keeping some beer around 03:39
merlyn you mean somebody drank you?
meppl no
merlyn drunken = objective form
aufrank merlyn! Hi! You were nice to me as a young monk about 6 years ago
merlyn I am drunken = "$(somebody) drunk me"
meppl so im silly, and drank, and i must go to work soon
merlyn I am drunk = "I have been drinking"
meppl at 10 o'clock
aufrank without you, I might be using python right now =\ 03:40
meppl or 12 o'clocl
merlyn I'm sorry. You'd probably be better off indenting. :)
Python as Guido Indented~!
aufrank I indent-- any d*mn way I want to! 03:41
oooh! Snap!
anywya, hi :)
merlyn then there's PHP - tnx.nl/php.jpg
aufrank yeah, that got posted in here the other day
meppl *zZzZ 03:42
03:46 phpError joined 03:50 KingDillyDilly joined, puetzk_ joined
KingDillyDilly aufrank: Today too. I don't understand the choice in background. 03:50
aufrank those are training wheels sitting on a park bench 03:51
what's not to understand?
(without a bike, to be totally clear)
KingDillyDilly I didn't even know it was a park bench. I would have put them on the ground.
wolverian hum. CPANPLUS::Dist::Deb says it might need to build debs for the dependencies of the module I am installing, but doesn't do so, and dpkg complains. augh. 03:52
aufrank I await your line of posters with bated breath
;)
KingDillyDilly Before I knew the context and saw the caption, I thought it had something to do with the internal mouse wheels.
03:53 vel joined
wolverian hm, now it seems to be building the deps too. 03:57
aufrank audreyt: what are the restictions on the lhs and rhc of an explicit pair? 03:58
is it really just 'rule pair { [ $<key> := <expression> ] <pair_constructor> [ $<value> := <expression> ] }' ? 03:59
is there ever ambiguity between bareword lhs and nullary sub call lhs? 04:05
sub foo { "bar" }
my $pair = foo => "baz";
if exists $pair<foo> { say $pair<foo> }
else { say $pair<bar> }
I expect that you have to use 0-ary foo() on the lhs side if that's what you mean... 04:06
new q: what does space around grouping brackets do in the presence of :s ? 04:11
rule bla { [<foo>|<bar>] } === rule bleh { [ <foo> | <bar> ] }
I think I want :w turned off inside grouping brackets, but maybe I haven't thought through the ramifications of that 04:12
04:17 Quell joined
spinclad aufrank: S02: "But C<< => >> still autoquotes any bare identifier to its immediate 04:29
left (horizontal whitespace allowed but not comments). The identifier is not
subject to keyword or even macro interpretation."
aufrank spinclad++ # thanks!
spinclad TimToady: in S02: "But note that C<..> is not a long dot because at least one internal space 04:30
is required to differentiate from the range operator." seems to refer to the late x. .y long dot form. 04:31
aufrank: but note a little later: %hash = (($keykey => $keyval) => $value); and i don't quite see how to reconcile the two passages. 04:34
aufrank spinclad: yeah, it's clear that $keykey gets interpolated into a string key, but I don't know what happens when you autoquote an anonymous pair 04:35
audreyt: any way to pull the key and value out of a flattened pair within the rule that parses the flattened pair? 04:36
spinclad ok, that could be part of it... if we take the lhs as a qq string without the quotes but still with interpolation, 04:37
({$keykey => $keyval} => $value) could work by {} interpolation. 04:38
(note change of inner brackets)
aufrank token flattened_pair { 04:39
<is_flattened> <sigil> <twigil>? <name>
: { ($<key>, $<value>) := $<#(something)>.kv } # ?
}
spinclad: that seems much cleaner to me
(your curly solution seems much cleaner, that is)
spinclad it's still not clear to me how you decide when to start and stop parsing the string, though 04:40
parse backwards from =>, how far? 04:41
aufrank spinclad: yeah, my pair parser only supports an (optionally quoted) name on the lhs 04:42
spinclad one token or {} expression, maybe
aufrank if we expand it out to a full <expression> then it's unclear what autoquoting means applied to most expressions
KingDillyDilly runs from punctuation
04:42 KingDillyDilly left
aufrank [ <block> | <open_quote>? <name> <close_quote>? ] # something like this ? 04:43
(where it's someone else job to define <block> ;)
maybe there'll be a good motivation to define a <auto-quotable> 04:44
or <qquotable>
spinclad no idea. sounds like a dreadful backtrack, just when we thought we got rid of them all
aufrank I agree
man, those taiwanese really know how to linger over there lunches 04:45
audreyt is such a slacker! ;)
spinclad make her work harder!
oh, wait -- that's me
aufrank my gf is getting annoyed that I now tend to hack in bed until about 2 am every night 04:46
xinming lisppaste3: url 04:47
lisppaste3 To use the lisppaste bot, visit paste.lisp.org/new/perl6 and enter your paste.
spinclad oh, wait... i misread that first passage: it says 'autoquotes any bare identifier to its left', so (<expr>) => $val is fine, and you only have to hold off on a bareword one token to tell if it's a pair or function. 04:49
aufrank much better 04:50
spinclad it feels so much saner now
aufrank perl6++
cabal++
spinclad and $keykey isn't a bareword 04:51
aufrank right
my foo example above did have barewords
but this answers that
foo => bar is always 'foo' => bar 04:52
and never foo() => bar (or &foo => bar)
spinclad 'no need to propagate confusion': who said that? 04:56
PerlJam you did. just now :) 04:57
spinclad oh, yeah... that was me, back then.
maybe i should listen.
aufrank I got told that after posting some cargo cult DBI code at the monastery back in the day 04:58
boy was my face red
spinclad (lack of) progress report on JudyHS: i've worked through some more ownership and readers-writers ramifications and a different possible API, but haven't coded concretely in the last couple days... ready to, now, though. let's see how it goes. 05:06
aufrank good luck :) 05:07
spinclad and so to bed. it's 01:00 here, early to bed for me lately. &
aufrank gnight 05:08
spinclad g'night, all
and thx
05:13 neoesque joined
azurot1 I got a dumb terminal yesterday. now I need to find some cables to set it up 05:24
05:50 hawkaloogie joined 05:55 Maddingue joined 06:28 hawkaloogie left 06:31 reZo joined
svnbot6 r10305 | aufrank++ | beginnings of a parsing strategy for Perl 6 Captures 06:51
r10305 | aufrank++ | implements parsing of named arguments in Captures
r10305 | aufrank++ | contains questions (??? lines)
r10305 | aufrank++ | and tasks (XXX lines)
r10306 | aufrank++ | made some notes about the .pg files in src/Pugs/Parser/ 06:54
r10306 | aufrank++ | includes tasks for people to go after
r10306 | aufrank++ | includes questions from effort so far
r10306 | aufrank++ | includes some references to information for future projects
aufrank notebook.aufrank.net/development/p6parsing.html 06:59
online version of that readme, for anyone who's interested
svnbot6 r10307 | aufrank++ | added link to online copy of this file 07:03
07:04 marmic joined
aufrank audreyt: src/Pugs/Parser/README.org is some notes I've been keeping around 07:05
07:05 iblechbot joined
aufrank if it's not useful, feel free to give it the ax. 07:05
I can also take out the link if it's not appropriate
07:06 penk joined
aufrank ok, that's it for me for tonight 07:09
07:38 drrho joined
gaal is there a publically available of the monad shell somewhere? I'd like to try 07:39
(good morning!)
07:57 neoesque joined 08:21 azuroth joined 08:31 elmex joined, kane_ joined 08:46 KingDiamond joined, szbalint joined 09:42 lichtkind joined 09:45 drbean joined 09:52 penk joined 10:32 ruz joined 10:36 Aankhen`` joined 10:49 penk left 10:54 chris2 joined 11:09 rorx joined
Arathorn gaal: www.microsoft.com/technet/scriptce...opics/msh, no? 11:16
unless you're talking about haskelly monads rather than windowsy monads 11:17
www.microsoft.com/technet/scriptcen...load.mspx, even
stupid site
11:20 lisppaste3 joined 11:22 iblechbot joined
ingy seen audreyt 11:23
11:23 KingDiamond joined 12:04 kolibrie joined 12:14 drbean joined 12:24 jsiracusa joined 12:27 Limbic_Region joined
svnbot6 r10308 | pmurias++ | removed a stray [ from the capture grammar 12:38
12:47 jserv-- joined 13:05 cdpruden joined, Ymmv joined 13:06 nnunley joined 13:15 szbalint joined
audreyt re :) 13:17
Arathorn morning 13:21
audreyt good localtime to you, too :) 13:24
13:28 Qiang joined
Arathorn these mac book pros really are rather nice 13:30
audreyt I'm still holding out for the black macbook :) 13:31
Arathorn should be here on tuesday, if the rumours are to be believed
audreyt they said the same last tuesday...
Arathorn indeed :(
hm, also very frustrating to use the ctrl-click idiom for right clicking if you're left handed, when there's only a left hand ctrl key 13:35
audreyt I don't usually use pointers anyway... 13:36
<- previously ion user
gaal ^^ current hand waver 13:37
rehi :)
Arathorn has used ratpoison a fair bit
but if you're drinking the OSX kool aid...
13:37 hexmode joined
audreyt hand waver? :) 13:39
azuroth ion? 13:41
gaal ~Y~
audreyt modeemi.cs.tut.fi/~tuomov/ion/
azuroth looks interesting
audreyt what did I do to earn this hand-waver title? :)
gaal vi S??.pod 13:42
:-P
sorry, I'm just pulling your moose
audreyt I thought I was degaussing the waves there...
gaal yes but there was interference 13:43
audreyt ahh indeed
thanks for the reminder
13:47 miyagawa joined, chris2 joined 13:53 ruz_ joined 13:54 justatheory joined
audreyt TimToady: should this be a named call? 14:13
f(('x')=>3)
currently pugs has to do rather expensive backtracking to make it into named.
instead of a "if an arg starts with left paren then it's never named" rule 14:14
Juerd I think that calculated argument names are as bad an idea as calculated gotos :) 14:15
audreyt well, but 'x'=>3 should be ok
14:15 FurnaceBoy joined
aufrank hey folks 14:15
audreyt constant-only keys is a good idea
Juerd Yes, but it may not be a bad idea to say that a ( makes it positional, always, regardless of where the ) is. 14:16
audreyt nod.
I'd prefer that; makes it a bit easier to explain
aufrank: hi
aufrank Juerd: (f(('x') => 3)) should be the same s as f(('x') => 3) ?
Juerd If someone must calculate, they can still use "{...}" => ... 14:17
aufrank: I don't see the relevance of your outer parens.
azuroth what about $x => 3, or $p = $x => 3; f($p) ? 14:18
aufrank you said parens make it positional no matter where they are
Juerd aufrank: I wasn't careful enough, and hoped audrey would understand what I meant.
audreyt no matter where the "right" paren is.
aufrank maybe I meant to ask about (f('x' => 3))
audreyt I think uwas precise 14:19
s/u/it /
that is, a named-arg never start with (
regardless of where the matching ) falls
aufrank I see
audreyt \(x=>1) # named
aufrank that would make some sense
audreyt \('x'=>1) # named
\(('x'=>1)) # positional
\(('x')=>1) # positional 14:20
I'd prefer that over
Juerd I still think captures shouldn't be \(), but can't think of something better :)
audreyt \(('x'=>2)=>1) # named(!)
aufrank is there a difference between *pair and *($pair) ? is the second allowed?
audreyt no difference. yes, allowed. 14:21
aufrank ok, that's what I figured
audreyt: you don't mind my notes living where I put them in the tree for now?
14:22 amnesiac joined
audreyt To be more specific, named arguments may never begin with C<(>: 14:23
doit 'when' => ('now'); # always a named arg doit ('when' => 'now'); # always a positonal arg doit ('when') => 'now'; # always a positonal arg
er, again: 14:24
To be more specific, named arguments may never begin with C<(>:
doit 'when' => ('now'); # always a named arg
doit ('when' => 'now'); # always a positonal arg
doit ('when') => 'now'; # always a positonal arg
TimToady: sanity check for the 4 lines before I commit to S06? :)
aufrank: I don't mind at all
aufrank :) 14:26
ok, time to head in to the office 14:27
svnbot6 r10309 | audreyt++ | * Pugs.Parser: Conjectural - instead of using the expensive 14:33
r10309 | audreyt++ | backtacker and/or post-processor, simply rule that a named
r10309 | audreyt++ | arg can never begin with a left parens:
r10309 | audreyt++ | doit 'when' => ('now'); # always a named arg
r10309 | audreyt++ | doit ('when' => 'now'); # always a positonal arg
r10309 | audreyt++ | doit ('when') => 'now'; # always a positonal arg
r10309 | audreyt++ | the behaviour of the last one is the one that's been changed.
r10309 | audreyt++ | In the rare case where you'd like to make calculated names
r10309 | audreyt++ | with operators looser than =>, write:
r10309 | audreyt++ | doit "{f 1, 2, 3}" => 'now';
14:41 hexmode joined 14:42 cratylus joined
svnbot6 r10310 | scw++ | Pugs::Compiler::Rule: change eol stype and set svn prop on some files 14:42
14:49 froh-doh joined
svnbot6 r10311 | audreyt++ | * Fix t/subroutines/return_with_trailing_stuff.t by hard-coding calls 15:00
r10311 | audreyt++ | to statement-level return() and yield() to inherit caller context,
r10311 | audreyt++ | instead of forcing void context upon them. Capturizing should render
r10311 | audreyt++ | this obsolete.
audreyt bbl... &
15:02 kanru joined
TimToady I think it'd make more sense to say that *only* the autoquoted form is a named argument by default, and you have to use * to make anything else into an argument. 15:06
Juerd Hmmm
TimToady but it's a pre-caffeinated think
Juerd Your reasoning is that you have to have valid identifiers anyway? 15:07
TimToady yep
Juerd Makes sense.
TimToady must wander through shower & 15:08
15:10 drbean joined 15:15 flounder99 joined 15:16 meppl joined 15:24 ruz_ joined 15:26 DaGo joined 16:04 weinig joined 16:17 iblechbot joined 16:25 weinig joined 16:40 aufrank joined 16:41 nnunley joined
aufrank hey folks 16:42
quick question:
Juerd ... 16:43
aufrank when I open a new frame with C-x 5 2, the colors I set with set-backgound-color and set-foreground color aren't applied to the new frame
Juerd Oh, there it is :)
aufrank whoops
wrong channel
aufrank blushes
Juerd I was all excited. 16:44
aufrank I'll try to come up with one for you, Juerd ;)
Juerd gets excited again
aufrank Juerd: think about parsing array slices 16:49
what would you want the Match object to hold when you got done parsing something like $foo[1,2,3;4;1..9] ? 16:50
(that's my question)
particle_ is ; denoting multi-dimensions? 16:51
aufrank particle_: yes 16:52
particle_ wouldn't it be a 3x1x9 array? 16:53
Juerd aufrank: I have no idea. 16:55
aufrank particle_: yes, I think it would
Juerd: me neither
;)
particle_ aufrank, did you mean @foo, or is there a subtlety i missed? 16:56
aufrank particle_: I might have even meant @@
particle_ k
aufrank I am really fuzzy on multidim stuff right now
particle_ thinks in 1D 16:57
if you're moving fast enough, everything looks like a line
aufrank Juerd: different question: what are you working on these days? :) 17:03
FurnaceBoy sounds like something a particle might say :) 17:04
17:04 Ymmv joined
particle_ waves 17:04
azuroth different question: how do you find the intersection of two lines in 2d 17:05
17:06 jserv-- joined
aufrank azuroth: are you teasing me? 17:06
Juerd aufrank: Not much. Mostly business stuff and watching tv. My wrists hurt almost all the time.
aufrank yargh
azuroth I'm not teasing you in that I sincerely wanted to know, if that's a sufficient question
err, answerrr
kolibrie Juerd: when I noticed my wrists were hurting, I bought a recumbent bicycle 17:07
all fixed now
aufrank oh, I thought you were just joining in on my litany of 'different question:'s ;)
Juerd kolibrie: I haven't used my bicycle for over a year now.
azuroth it was a bit of both, aufrank
kolibrie Juerd: and you call yourself Dutch
Juerd kolibrie: I'd advise you to also try different keyboards, and a different keyboard layout if you still use qwerty.
For me, dvorak means I can use a keyboard for about twice as long 17:08
kolibrie Juerd: I've been on Dvorak for almost a year, thanks to you :)
Juerd Oh, okay :)
azuroth twice as long? that's probably ten times as long as you should be ;-)
17:08 ruz joined 17:09 Limbic_Region joined
Arathorn tried a maltron? 17:10
particle_ azuroth? intersection of two lines... get theformulae for the lines ,and solve 17:11
iy1 = m1 * x1 + b1 (same for y2)
s/iy/y/
Juerd azuroth: No, couldn't afford one. 17:12
azuroth: So I tried the clone, Kinesis Contoured Advantage.
azuroth s/azuroth/Arathorn/ :-)
Juerd Eh, yea
I probably read only a.*th.* 17:13
Arathorn: No, couldn't afford one.
Arathorn: So I triedthe clone, Kinesis Contoured Advantage.
I'm using it now.
azuroth the 'solving' part is what gets me, particle_. I think I can find the distance from start of line to other line.. then do some funky stuff with the normal of the first line, since they form a right-angled tri? 17:14
particle_ y = m1 x + b1 = m2 x + b2
Arathorn yeah - the kinesis ones seemed the best bet to me, short of throwing $$$
particle_ given m1, m2, b1, b2, you can solve
y = 3x+2 = 4x-1 ## do these intersect? 17:15
TimToady I believe I'm about to dehuffmanize unary * and **.
particle_ whatever 17:16
:)
aufrank unary:<*> === whatever?
particle_ no
azuroth but I don't care whether they intersect, the computer does :-(
aufrank what's unary:<**> 17:17
?
and is unary:<foo> actually written term:<foo> ?
wolverian azuroth, Math::Intersection::StraightLine :)
TimToady prefix:<**> is the "steamroller", eager flattening like P5
aufrank prefix is the same as unary? 17:18
TimToady prefix is one form of unary
prefix is the "unmarked" form of unary
particle_ unary * looks like *(0..^7) or such
TimToady but postfix operators are also technically unary
aufrank and you're dehuffmanizing that prefix form?
particle_ lazy array interpolation
TimToady push *@args; 17:19
azuroth wolverian: :D
TimToady but it's interfering too much with * as global and * as Whatever
and I don't think we need to copy Ruby that closely here.
particle_ what's it look like expanded? 17:20
TimToady so I want some thing a little longer for *@args.
what's what look like expanded?
particle_ dehuffmanized
Juerd ***@args
TimToady :*@args perhaps
args(@args) perhaps.
particle_ *..@args
Juerd Not another colon please
particle_ mine's a sideways colon 17:21
Juerd Circumfix *** *** :)
particle_ () aren't lazy anyway?
Juerd ***@args***
Gives the expression wings
aufrank TimToady: I agree that they interfere. When I first read S06 I posted to p6l asking what the connection was between marking global-ness and marking lazy flattening 17:22
particle_ gives juerd a red bull
TimToady It's only *@foo because that's what Ruby uses, actually. Well, and both Ruby and C are using * there to mean a kind of dereferencing.
17:23 ghenry joined
aufrank searches the top row of his keyboard 17:23
TimToady Yeah, been there...
particle_ can't use `
azuroth what about pipe?
TimToady still reserving that for users
*|@foo 17:24
|*@foo
particle_ yuck
TimToady need to keep the * in there, I think, so we also get **
aufrank sort of like "open up @foo"
azuroth /
TimToady :$foo already means :foo($foo), which is why :*$foo kinda means "get the name indirectly".
azuroth /(\@foo) 17:25
TimToady Did think about */@foo maybe
same reasoning
particle_ *<@foo
TimToady hmm
aufrank visual yuck 17:26
azuroth it looks like a clown. I like it
TimToady the only think I don't like about args(@foo) is that it uses up a really nice word.
aufrank also, too close to *<@foo>, whatever that would mean
azuroth _\ "un-slash" 17:27
TimToady and everything else about arguments is punctuational
particle_ swym: lazy(@foo) 17:28
aufrank vs eager(@foo) 17:29
TimToady except I think that means something else right now.
aufrank is *@foo the same as @foo is lazy?
particle_ jumps over the lazy foo
aufrank maybe we want a generic prefix trait notation?
17:32 FurnaceBoy is now known as FB|afk
TimToady flat() and flatnow()... 17:33
particle_ now & later
TimToady backwards huffman
aufrank time for neologisms 17:35
splat and splort
TimToady did think a little about stealing unary = and == for this 17:36
aufrank those are iterator-makers now? 17:37
particle_ unary = is filehandle read?
TimToady unary = is tell iterator to iterate
aufrank we were close particle_. points for trying ;)
TimToady but we were waffling about its meaning in list context anyway... 17:38
and $x = =$fh is really ugly.
particle_ well, aren't you basically making the array an iterator?
aufrank do we have $=foo yet? 17:39
(is there a general distinction between twigil functionality and prefix functionality?) 17:40
TimToady no, but I don't think a twigil is right for this
twigils almost always indicate weird scoping.
aufrank I see
particle_ *+@foo 17:42
aufrank TimToady: if you hadn't already grabbed @@ for multidim, I might have said @foo is passed as an array, @@foo is a lazy flattened list, @@@foo is an eager flattened list
TimToady well, I just need to let it rattle around a little more. Mostly just wanted to give y'all a heads up to the immiment demise of * and **. 17:43
aufrank particle_: why are you flattening @foo.count ? (or whatever method returns number of elems)
TimToady hmm. [,] is an interesting idea. 17:44
aufrank how to you eagerize it?
TimToady eager as a list operator.
The one niggly little thing about [,] is that it would have to be a list operator. 17:45
so you'd have to say [,](@foo), @bar to not apply it to @bar
that might not be a showstopper. 17:46
17:46 FB|afk is now known as FurnaceBoy
TimToady and [,] is *very* recognizably metasyntactic. 17:46
aufrank is there a way to hyper op it?
TimToady eh? list operators are naturally somewhat hyperopey 17:47
aufrank I'm wondering about a @foo>>infix:<,> or something
to eliminate the (@foo), @bar restriction 17:48
kolibrie I can immediately see what [,](@foo) means, compared with some of the other ideas just brainstormed
particle_ i assume list context is for all reduction ops. good idea to add a (@foo), @bar example to S03
aufrank I like [,] as well
TimToady hmm @foo.[,] almost works
@foo.[*] already means something though. 17:49
particle_ ., method postfix?
TimToady too invisible.
idea is, can we put a reduce on the right end of @foo
particle_ (@foo)[,] 17:50
:)
17:50 ruz joined
aufrank with [,]@foo, how do you do: 17:50
push @foo, @bar;
push *@foo, @bar;
push **@foo, bar;
?
TimToady push @foo, @bar;
push [,](@foo), @bar;
push [,](eager @foo), @bar;
particle_ could the third be push [,], @foo, @bar ?? 17:51
too many commas
push [,] @foo, @bar
aufrank is the middle the same as push [,](lazy @foo), @bar ?
TimToady lazy is the unmarked condition in list context already. 17:52
I don't think the third can be eagerified by including @bar in the args list.
the args list itself is still lazy. 17:53
particle_ good, because it's visually indistinct otherwise
TimToady push [,] @foo, eager @bar would work though
particle_ the parens tend to disappear in my in-head parser
17:54 FurnaceBoy is now known as FB|afk
TimToady but I think 90% of the time we'll just see "foo [,]@args;" 17:54
PerlJam um ... is [,] meant to replace flattening * ?
TimToady Yes, I'm trying to dehuffmanize prefix:<*> 17:55
and prefix:<**>
PerlJam why exactly? Wrong huffmanization?
TimToady because it's too overloaded with GLOBAL:: and Whatever.
and *foo() is visually ambiguous as to whether it means GLOBAL::foo() or *(foo()) 17:56
17:56 Arathorn is now known as Aragone
TimToady I've been going back and forth in my copy of S06 about it, and getting unhappier and unhappier with borrowing * straight from Ruby 17:56
And I actually think the flattener is going to be fairly rare in common practice. 17:57
PerlJam ruby uses * to flatten too?
17:57 obra_work joined
TimToady That's where I stole^H^H^H^H^Hborrowed the idea from. 17:57
Ruby needs it far more often than Perl because Ruby doesn't actually believe in list context, I think. 17:58
aufrank thinks on my keyboard that look flat: - = _ | [ ] 17:59
TimToady and because Ruby threw away the $/@ distinction.
aufrank s/thinks/things/
PerlJam so does that mean that * in sigs gets replaced too?
TimToady no.
that's a different *
that's still a "globby" star.
aufrank that's a slurpy star
TimToady not a deref star 18:00
aufrank right
TimToady I think I really like [,] for it's meta-clarity.
particle_ ship it!
PerlJam trolls the example code in pugs looking for flattening *
TimToady And for it's you-don't-have-any-clue value in alerting people that something strange is going on.
It'll be hard to find, but look for * followed by a sigil. 18:01
PerlJam yeah, it's proving difficult :)
aufrank so how are these two different? 18:02
TimToady and almost all of those will be slurpy stars
aufrank push (@foo), @bar;
push [,](@foo), @bar;
PerlJam TimToady: yep.
TimToady push (@foo), @bar is identical to push @foo, @bar 18:03
parens are just used for grouping (mostly)
aufrank @foo is in list context as the first argument of push, even without the parens 18:05
PerlJam and push [,]@foo, @bar is like push @foo[0], @foo[1..*], @bar; ?
TimToady we'd give [,] the extra little semantic push of dereferencing its argument
PerlJam, yes
As with any reduce, it pretends it wrote it out that way. 18:06
so I guess it doesn't really need extra "push"
it just means that already.
PerlJam and ** has become a keyword "eager"?
TimToady gotta go to work...
so it would seem 18:07
PerlJam things that happen so soon don't seem to fit well (in my head) with all lowercase keywords
TimToady soon? 18:08
you think it should be a Monad or something? 18:09
PerlJam flattening now rather than as needed moves along my time-axis to "sooner"
TimToady it's just the default in P5...
so "eager" from that perspective is already shouting... 18:10
18:10 particle__ joined
PerlJam But when I'm on #perl6, I'm not a perl5 programmer :-) 18:10
TimToady of course not, which is why I had to qualify what a said... 18:11
I think we both have a tremendous grasp of the obvious... :)
PerlJam heh
So ... any clue when the language details will settle down a bit? (Is that even a question that makes sense?) 18:12
particle__ guesses by christmas
TimToady well, really gotta commute. Language will settle down for the next 15 minutes or so... :)
PerlJam particle__: that would have been my guess as well :)
TimToady biab & 18:13
particle__ 0..^xmas # infinite list
gaal Arathorn: thanks for the link 18:15
azuroth leet. I know whether a convex poly contains a given line segment 18:21
18:22 shachaf joined 18:25 KingDiamond joined 18:30 ruz joined 18:32 justatheory joined 18:42 vel joined 18:44 sri__ joined 18:53 vel joined, sri__ is now known as sri_ 18:54 sri_ joined 18:59 DaGo joined 19:02 ruz joined 19:03 vel joined 19:06 SamB joined 19:12 nnunley joined 19:23 particle_ joined 20:02 elmex joined 20:05 Eimi joined 20:14 cdfh joined 20:20 ynux joined 20:21 aufrank joined
aufrank did [,](@foo) get blessed? 20:50
21:03 larsen joined 21:05 flounder99 left
TimToady aufrank: working on it, and seeing what the ramifications are. 21:18
aufrank fun :) 21:19
I'll keep an eye out for news from this sector
21:24 Limbic_Region joined 21:26 ynux left 21:30 justatheory joined 21:38 FB|afk is now known as FurnaceBack 21:45 jsiracusa joined 21:52 FurnaceBack is now known as FurnaceBoy
TimToady okay, I've whacked * and **. Let the fur fly... 21:55
21:56 rashakil left 21:59 rashakil joined
TimToady hmm, p6l seems to have choked on the updates... 22:00
22:01 rashakil left
TimToady maybe the svnbot was using * or **? :) 22:01
arcady uh oh. what happened to * and **? 22:04
PerlJam When did that back slash thing happen for a listy reduce?
TimToady only the prefix versions. they caught bird flu and died.
PerlJam misses all the good stuff 22:05
TimToady just now
[\X] should probably have been marked conjectural...
PerlJam TimToady: Well, I decided I liked it rather quickly, so it can't be too bad :) 22:06
TimToady has anyone else seen the updates in p6l yet?
maybe perl.org is boycotting wall.org now. :)
PerlJam I'm looking at it now (obviously) 22:07
22:07 rashakil joined
particle_ what does All(*) give? 22:07
TimToady well, you could have checked it out from svn. :)
PerlJam TimToady: true, but no, I'm reading p6l.
TimToady hmm, I wonder what's up with my mail. 22:08
PerlJam oops, gotta go pick up my son
PerlJam &
22:08 Qtax joined 22:09 Qtax left 22:10 rashakil joined
pmichaud TimToady: I've seen the p6l post. I'm fine with whacking * and ** 22:14
particle_: do you think you'll get to the \x, \o, \d items soon? 22:15
particle_ you just can't wait, can you ;)
finished my work and chores, looking at it now 22:16
pmichaud I want to prove that "\xc5" ~~ /<alpha>/ works :-)
particle_ :)
i want to see $x = 5; $x ~~ 5; works 22:17
pmichaud nope, haven't implemented that one yet
particle_ i know :)
i have tests for the \x\d\o locally, so i'll be coding to those now
22:17 FurnaceBoy_ joined
pmichaud okay, great 22:18
22:20 drrho joined
gaal TimToady: 22:23
(string) context. You can force list context on the expression using
-either the C<*> or C<list> operator if necessary.
+either the C<list> operator if necessary.
using either the C<list> operator
?
is this valid? [-> {$^a+$^b}] @list 22:26
(anonymous ops)
TimToady no. 22:27
only declared infix: ops
otherwise it's completely ambiguous with [1,2,3] composer
gaal okay. but reduce lambda works, of course yes?
TimToady sure. 22:28
22:28 dolmen joined
gaal good, I was doing a double take because for a minute I saw [\ ] and was thinking in haskell 22:28
probably time to go to bed
TimToady I wondered if some people might see a lambda there... 22:29
gaal [\] in haskell would be a singleton list of some function. fun. night :) 22:30
TimToady sweet dreams
22:31 FurnaceBoy_ joined
pmichaud particle: 22:31
p6> my $x = 5; if $x ~~ 5 { say "ok"; }
ok
p6> my $x = 'abc'; if $x ~~ 'abc' { say 'ok'; }
ok
happy?
22:31 elmex joined
particle_ my $x = 5; my $y = 5; if $x ~~ $y { say "ok"; } 22:33
invoke() not implemented in class 'Integer'
particle_ pushes pmichaud
pmichaud did you svn up?
particle_ yep
pmichaud++ for the string and numeric smart match 22:34
pmichaud p6> my $x = 5; my $y = 5; if $x ~~ $y { say 'ok'; }
ok
did you 'make'?
particle_ yep, make test
pmichaud hmmm, it works on my box
particle_ i'll clean
pmichaud just add a test :-)
TimToady I noticed my last smoke failed all its rule tests. recompiling to see if it was transient... 22:36
the smoker on feather seems to have worked better, so maybe it's an embedded/external thing. 22:37
particle_ i'll rebuild parrot... 22:39
TimToady hmm, I'm getting user error (no tag found) 22:40
pugs: user error (no tag found)
gaal uh, I just realized that you can't scan with reduce after this change
so we probably need to rename it to fold and add a scan function? 22:41
particle_ pm: passing now
gaal back to sleep &
22:42 ludan joined
particle_ pm: subs next? i wanna import the pugs test suite pronto 22:42
pmichaud p6> if (3,4,5) ~~ 4 { say 'ok'; } 22:43
ok
particle_: yes, subs are soon on the list. I might do regex/rule first 22:45
I'd like to have subs done by #parrotsketch
TimToady I'm not sure that one should be okay. 22:46
probably about time to glare at the smartmatch table again... 22:48
embedded still fails. time for realclean... 22:49
pmichaud ?eval (3,4,5) ~~ 4 22:51
22:51 evalbot_10299 is now known as evalbot_10311
evalbot_10311 user error (no tag found) Bool::False 22:51
TimToady maybe it's not just embedded... 22:52
pmichaud ?eval my @x = (3,4,5); @x ~~ 4
evalbot_10311 user error (no tag found) Bool::False
TimToady my world, and welcome to it.
pmichaud heh
np
?eval "\xc5" ~~ /<alpha>/ 22:53
evalbot_10311 user error (no tag found) Match.new( ok => Bool::True, from => 0, to => 1, str => "\197", sub_pos => (), sub_named => { "alpha" => Match.new( ok => Bool::True, from => 0, to => 1, str => "\197", sub_pos => (), sub_named => {} ) } ) 22:54
22:56 arcady joined
particle_ no tag found??? 22:56
crap. i messed up my tests. 22:57
particle_ repeats, "save first, commit second."
pmichaud gotta go pick up the kids -- later, all 22:58
rorx i read through the pugs docs.. but I'm still not clear.. is it an just implementation of p6 done in Haskell? Will perl6 actually use pugs in any way, or is it more of a proof of concept? 22:59
TimToady Perl 6 is a language, not an implementation. It'll use anything that runs it.
rorx TimToady: I see.. so that's different than perl5 then right? 23:00
23:00 DaGo joined
TimToady The intent is not to require people to download Haskell though. 23:00
yes, it's specs and test suite.
rorx so the perl folks won't have some official "perl6 runtime", just a specification and leave it to others to implement it?
TimToady well, they may have that too, if parrot gets its act together. 23:01
pmichaud is working to get parrot's act together.
TimToady I thought pmichaud is picking up kids...
pmichaud I'm multitasking :-) 23:02
aufrank pmichaud++
pmichaud even time afk is spent thinking about perl6 on parrot :-|
particle_ pm: i broke perl6, i'll fix
rorx TimToady: so what the official perl6 will look like is still a bit unkwown? maybe that's what's confusing me. And parrot, I assume it one part of the solution. 23:03
particle_ however, i haven't broken it as frequently as timtoady has :)
23:03 Odin- joined
particle_ points rorx to the perl6 docs: dev.perl.org/perl6/doc/synopsis.html 23:04
rorx or is parrot analogous to pugs, being a full implementation of perl6..
aufrank the official perl6 will probably have green eyes
particle_ do pythons have green eyes?
TimToady rorx: the specs evolve as the implementations point out problems.
rorx particle_: thanks
TimToady would you like to help? 23:05
I'm sure audreyt will pop up at any moment and offer you a commit bit...
particle_ ...did you see the bit about the committed perl6 developer? 23:06
rorx Well I'm just a perl5 user that's curious about the future.
TimToady guess, what, that describes most of us... 23:07
just some of us are curious enough about the future to try to ask leading questions... :)
rorx yeah, it sounds like it's still work in progress, at least what the runtime will look like. 23:08
TimToady At the moment we're basically in the bootstrap era. Within a month or two we should have a Perl 6 compiler written in Perl 6. 23:09
aufrank rorx: parrot is a virtual machine, like the JVM or the CLR, which is being designed to be good at hosting dynamic languages
perl 6 and perl 5 are examples of languages that parrot will hopefully be good at hosting
SamB it is actually designed?
it has so many opcodes!
aufrank early on, the plan was that the reference implementaion of perl 6 would be on parrot 23:10
(I think)
rorx aufrank: that's what I was wondering.
aufrank right now pugs and parrot are informing each other as they try to figure out how to implement the current perl 6 spec 23:12
rorx aufrank: I see.
TimToady pugs is a top-down approach, while parrot is bottom up. They're relatively complementary.
there's sort of a friendly race to see who gets to the middle first. 23:13
rorx so a different group (ie, not pugs) is working on the perl6 compiler that will target the "parrot IL" whatever it may be called?
TimToady kinda like the first transcontinental railroad in the U.S.
aufrank yeah, but like I said, there's some overlap 23:14
23:14 feng joined
aufrank a lot of crosstalk 23:14
TimToady not to be confused with cross talk.
particle_ rorx: it's called PIR "parrot intermediate language"
rorx ah, thanks.
I saw something about PIL, but I guess that's only applicable to pugs. 23:15
aufrank rorx: and there approximately a billion intermediate layers between perl 6 source code and PIR
TimToady give or take a trillion
rorx i see 23:16
particle_ not really for the parrot impl: perl 6 -> parse -> past -> post -> pir
where right now the parser, past, and post compilers are written in... pir. 23:17
rorx particle_: I see, thanks.. making more sense now. 23:24
TimToady pugs view of reality is of course somewhat different. 23:25
particle_ poit.
rorx so besides Perl6, have any other languages expressed any interest to targetting the Parrot VM? 23:28
particle_ there are many languages in various states of completion 23:29
TimToady the most active currently are Tcl and Scheme, i think.
SamB but te languages aren't very articulate in themselves
particle_ and apl, and perl1
SamB er, the.
how do you even write APL? 23:30
particle_ it's all in the wrist ;)
SamB or store it
particle_ parrot supports unicode if built with icu libs
SamB ick, unicode...
particle_ needless to say they're required for apl. but, they are for perl6, too
SamB unicode is well and good for some things, but the handling of strange characters is not great 23:31
especially strange characters that are related to other characters and should match them in appearence
TimToady still getting stupid yaml errors... 23:33
gaal TimToady: where do you get them? 23:43
TimToady t/rules/*.t mostly, I think. 23:45
tried removing *.pm.yml but that didn't help. 23:46
gaal in blib6/lib/? 23:47
TimToady yes, those. 23:49
gaal it's working for me :/
hmm, did you install pugs ever on this machine? another .yml in your @INC? 23:50
TimToady reinstalling pugs doesn't seem to make any difference. 23:52
gaal strace ./pugs t/failing/test | grep .yml ? 23:53
TimToady okay had an old Test.pm.yml out there. 23:58
gaal arg.
TimToady works after I did rm /usr/lib/perl6/site_perl/Test.pm.yml 23:59
was dated May 4.
PerlJam TimToady: as in parrot-land, I've heard that things work better if you don't do "make install"