Run Perl6 Now! | pugscode.org ('Overview', 'Journal') | pugs.kwiki.org | channel log: xrl.us/e98m
Set by autrijus on 6 March 2005.
theorbtwo & 00:16
dan2 where can I get a copy of the perl6 distribution 00:30
safrican well its not yet fully completed 00:31
but i think Perl6::Bundle
dan2 and pugs?
safrican or Bundle::Perl6 should be good enough
Steve_p There is no Perl 6 yet 00:34
pugs is an initial implementation of Perl 6
Limbic_Region dan2 - to explain a bit further Perl6::Bundle is Perl5 that looks/feels like Perl6 00:36
Pugs is an implementation of Perl6 in Haskell, but is as of yet uncomplete
but given that Perl6 is still not fully spec'd, it is simply amazing 00:37
safrican Perl6::Bundle is what I use 00:38
:P 02:46
sorry
my irssi got messed up 02:47
ingy hola all 03:40
Steve_p Hey ingy 03:57
ingy hi Steve_p 03:58
05:25 mandarin is now known as Qiang
gugod hi perl6, I let my bot report the rss headlines of pugs 06:55
06:57 wilx` is now known as wilx
autrijus \camels -> greetings 07:29
www.perlmonks.org/index.pl?node_id=438876 made my day :) 07:30
autrijus ponders golf-driven development
lunch & 07:41
rgs heh 07:45
when perl 6 attracts golfers, you know the advocacy case is being won.
b6s web.media.mit.edu/~hugo/publication...etafor.pdf #visualizing stories as code 07:56
Khisanth hrm something odd seems to be going on with Perl6::Pugs metadata 08:00
autrijus back 08:55
Khisanth: mm?
lwall++ # detailed response 08:58
I wish I had access to that info when I started writing Parser.hs ;)
(p6c)
down to 1 test file failing. 09:40
autrijus fixing that
Aankhen`` cheers for autrijus.
autrijus =) 09:41
6.0.11 looks in pretty good shape!
the mad Andrew Savige is now a committer! 09:47
autrijus praises golf-driven development 09:48
||= etc works. 10:13
theorbtwo Yey! 10:14
autrijus now I wonder if all infix symbol op automatically has a "=" form.
theorbtwo I was looking into that last night.
autrijus or if they are hard coded.
theorbtwo Well, they only make sense for a -> a -> a ops.
autrijus sure.
theorbtwo: the trick in the lexer, add | into the ahead
(line 90) 10:15
and in Eval's Syn category add:
syn | last syn == '=' -> do
let [lhs, exp] = exps
op = "&infix:" ++ init syn
evalExp (Syn "=" [lhs, App op [lhs, exp] []])
that's all.
theorbtwo Aaah!
autrijus it says basically: "when you see X xx= Y, translate it into X = X xx Y"
theorbtwo I didn't really think of cheating like that.
autrijus cheating is of course the best.
theorbtwo Anyway, not all binary ops make sense with an assignment form. 10:18
==, the assignment form of =, for example.
autrijus right. but it's already in the table 10:19
so that's okay
theorbtwo And $x =:== $y, which sets $x to true if $x and $y are bound to the same thing.
autrijus i.e. we can set it up so it won't shadow existing stuff.
theorbtwo Of course, something being nonsensical has never stopped perl from doing it before.
autrijus true.
theorbtwo Oh, along the same lines: Is @foo.=sort; parsed? 10:20
(Equiv @foo = @foo.sort.)
autrijus don't think so.
let me try
$foo .= 1..10;
what does this mean? 10:21
theorbtwo Well, that'd mean the same as $foo.(1..10) -- which AFAIK is meaningless.
Or possibly it stringifies the list, and tries to find that as a method of $foo.
autrijus "meaningless" ne good enough :)
write a test for .= for me?
theorbtwo Hmm, that means I need to find a reference on it. 10:22
Do you know an easy way to download all the Apoc, Syn, and Exg?
Why is Synopsis under t and not doc or docs?
And for that matter, why do we have both doc and docs?
autrijus $foo .= bar(3); # what does this mean, hmm? 10:23
theorbtwo: I don't know, ask ingy. I think it should all be docs.
but he apparently disagrees for some reason, can't remember.
theorbtwo $foo = $foo.bar(3);
Hmm, making the <op>= parser not allow shadowing would allow for us to implement ||= directly for better performance. 10:24
autrijus performance not a top concern for me 10:25
and how will it help again? 10:26
theorbtwo Hmm, you know, I'm not sure.
autrijus .= implemented.
theorbtwo Cool.
autrijus committing
r597. 10:27
i'd appreciate a .= test
rarely nowadays did I commit something and found that there's no UNEXPECTEDLY SUCCEEDED :) 10:28
theorbtwo t/op/inplace.t? 10:29
autrijus ok. 10:32
bbiab &
theorbtwo r598 -- tested; list LHS works but not scalar? 10:40
r599 -- You forgot yourself in AUTHORS, autrijus. 10:48
Allo, almost-symmetric. 10:59
Hello, fayland. 11:00
fayland hello. 11:02
larsen Hello.
fayland theorbtwo: anything to say?
theorbtwo Just saying a friendly hello. 11:03
fayland ya.:) 11:04
theorbtwo Hmm, Mr. Muskrat on PM is having problems installing with GHC 6.4 11:12
Yep, and downgrading to 6.2.2 made it work for him. 11:15
jabbot pugs - 599 - Um, Autrijus, you forgot yourself... 11:34
pugs - 598 - Test .= inplace modification operator
pugs - 597 - .= implemented
pugs - 596 - * ||= and //= etc now works; list as LHS
metaperl sub foo { return "$?CALLER::POSITION" } 11:38
what does $? indicate
the question mark confuses me
theorbtwo The bit between the $ and the name proper is called a secondary sigil. 11:47
I'm afraid I don't know what each of them is off the top of my head.
metaperl theorbtwo, thanks. It is discussed here: dev.perl.org/perl6/synopsis/S02.html 12:01
Juerd_ "Is it nanoseconds this week? 12:05
That's the sort of arbitrary complexity that doesn't belong in Perl 6.
Solving the real problems is hard enough.
""
argh, stupid pasting system in irssi
Anyway, we have to wonder what the $op operator is this week, but the units for time are set in stone :)
theorbtwo Issues with GHC 6.4: use.perl.org/~Mr.%20Muskrat/journal/23622 12:19
malaire last revision is working with GHC 6.4, at least for me - but it does give quite many warnings while compiling 12:21
theorbtwo Oh, OK.
malaire Mostly about deprecated things like Data.FiniteMap 12:22
theorbtwo Ah, OK. He's using release, not SVN. 12:23
wilx Huh, why is Data.FiniteMap deprecated? 12:25
malaire warning says to use Data.Map instead 12:26
but for some reason online-documentation for Data.Map is missing 12:27
(at www.haskell.org/ghc/docs/6.4/html/l...ndex.html)
so I'm not sure where to check about differences between Data.FiniteMap and Data.Map
nothingmuch List = Nothing 12:42
| Cons a (List a)
List.hs:5: parse error on input `|'
que?
<tab>Lis...\n<tab><space>+\| 12:43
metaperl is that not data List = Nothing | Cons a (List a)
data in frnt
nothingmuch, they can help you on #haskell 12:44
nothingmuch oh crap
#haskell is usually less helpful
the tend to get on about funky stuff
and ignore me
except if i'm lucky
metaperl I've found them to be most helpful and friendly 12:49
theorbtwo Well, that's not very nice of them.
metaperl theorbtwo, form your own opinions 12:50
theorbtwo What's the difference between "chain" and "list" in the initSyms table in Prim.hs?
(Is that properly Prim.initSyms?)
s/that's not/that doesn't sound/ 12:51
malaire it seems to me that "list" is used in things that creates lists, or junctions (junction-ops, dot, ;) 13:06
chain is used for ops like '<' which can be chained together like a < b < c - and results a boolean
theorbtwo Hm, I don't see the difference there.
Oh, context, of course.
Juerd_ xerox: I need a new fuser for my xerox phaser 6100 :) 14:07
xerox: Get me one :P
xerox grumbles
autrijus greetings. 14:16
theorbtwo: not only context, and also different evaluation rules
"list" means list-associative
"chain" means chain-associative
autrijus likes this "wireless taipei" thing 14:17
free wireless almost everywhere :)
<- in a random small foodplace
clkao giggles at autrijus 14:22
nothingmuch autrijus++ # haskell instructor extraordinaire 14:26
autrijus :) 14:27
nothingmuch perlbot karma autrijus
perlbot Karma for autrijus: 8
nothingmuch ah, it's up!
l~r was complaining for nothing 14:28
autrijus bbiab. :) 14:36
autrijus back 15:17
fixing
my ($a, $b, @c, @d) = (1,2,3,4);
this should make $a == 1, $b == 2, @c == (3,4) and @d == ()
right?
hcchien yes 15:18
I think so. :)
autrijus ponders about porting CPANPLUS to Pugs. 15:23
jabbot pugs - 600 - Autrijus made some todo_is test work so 15:24
ingy hola 16:52
autrijus greetings! 16:53
ingy I'm am heading off to do a bike race 16:54
nothing to report
metaperl wow another one 16:55
where do you live ingy? 16:56
ingy autrijus: docs is for adhoc documents about pugs. doc is where the installable perlxxx.{kwid|pod} files go
Seattle
I have at least one race per week until September
autrijus ingy: I find that very confusing.
metaperl for a team with nothing but outside shooters, the Sonics are kicking some A this year 16:57
autrijus I'd much rather unify them as kwids and all in doc/, or all docs/, etc.
ingy autrijus: well 01Overview.html is not an installable doc per se
autrijus why not?
provided that we kwidify it
ingy so I just made a place for the installable kwids
sure...
autrijus and even in html form, what's stopping us from installing html? :) 16:58
ingy but for now it is nice to have a place where we put stuff that is not really intended to be part of the final dist, like yaht.kwid
ie helpful stuff that is not in MANIFEST 16:59
but it's your call
I'll kwidify 01Overview.html and move it to doc
autrijus ok. I think that works.
and maybe the uninstalled stuff is notes/. 17:00
ingy I need to add doc install support to make install
autrijus s/uninstalled/not-installed/
ingy coming soon
autrijus just to avoid confusion.
ingy ok. gotta race! &
metaperl have fun ingy 17:01
Limbic_Region autrijus - any guestimate as to which release of pugs will have classes? 17:04
autrijus 6.28.0 of course!
autrijus points people to PA01
Limbic_Region read PA01 17:05
hmmm - don't remember that bit
is there a link to PA01 from pugscode.org/ 17:06
autrijus "Overview"
Limbic_Region nevermind - found it
nothingmuch anybody got a spare YAHT 4.11 solution?
filter/map in CPS
Limbic_Region found the roadmap - thanks 17:07
autrijus np 17:08
xerox nothingmuch, yep.
nothingmuch, are you having problems?
nothingmuch well, i got it
sort of
but i don't like my solution
because consing is done in the compatible wrapper
instead of the cont one 17:09
autrijus that is not unlike mapM
Limbic_Region autrijus - did you see Larry's replies to the Replaying Santa Claus Golf Apocalypse with Pugs/Perl6 thread at the Monastery?
autrijus no. reading
heh. 17:11
I think that means we have to implement reverse() now.
any takers?
nothingmuch hah 17:12
you know what?
with some hand holding, why not
Limbic_Region well - I am no longer employed with 2 jobs, I might very well become more than just a lurker soon
nothingmuch xerox: can you post your 4.11 somewhere?
xerox cfold? 17:13
nothingmuch map in CPS 17:14
xerox map. Okay.
autrijus nothingmuch: yay!
nothingmuch my_reverse [] = []
my_reverse (x:xs) = (reverse xs) ++ [x]
will it look similar?
autrijus nothingmuch: you can start by write a reverse test :)
nothingmuch or can i use the reverse builtin? 17:15
good point ;-)
autrijus sure you could!
so let's write a reverse for string
ready? :)
1. you need to figure out its signature.
nothingmuch one sec
committing reverse.t
autrijus ok. 17:16
I'll type away.
xerox haskell.org/hawiki/HaskellIrcPastePage
nothingmuch autrijus - see?
autrijus I'd rather do it on irc
it's very simple 17:17
and I want it logged here :)
nothingmuch ok, one minute then
autrijus when you're ready, open Prim.hs.
xerox nothingmuch, was for you.
nothingmuch xerox: you seem to have done it the same as I have
i was wondering if the consing could have been done inside mapC' someway
xerox Why? 17:18
nothingmuch err, i dunno
just wondering 17:19
ok, reverse.t comitted
...
autrijus cool.
nothingmuch done
and prim.hs gvimmed
autrijus ok. let's do the string part first.
nothingmuch pugs strings eq haskell strings? 17:20
autrijus sort of. you can say that.
type VStr = String
same thing, but we consistently use a "V" prefix
on line 583 you see
\\n Scalar pre scalar (Scalar)\
nothingmuch ok
exactly what i was going to guess
autrijus that is prototype for "scalar" 17:21
so you copy that line
and add another line after it
nothingmuch one minute, svn up time
autrijus and change "Scalar" to "Str" and "scalar" to "reverse"
and voila we have a function.
nothingmuch my 583 doesn't look like that
larsen nothingmuch: I think there's a typo in the test
autrijus what does your 583 look like?
oh. svn up.
nothingmuch larsen - it ran and todoed fine, but that does not mean it's correct 17:22
what's wrong?
larsen line 9
nothingmuch autrijus: ...
larsen it should be my @a ...
nothingmuch no
@e is expected
@a is got
my @a; eval '@a is reversed 1..4' 17:23
my @e = what we want
larsen ah sure
nothingmuch todo_is(~@a, ~@e)
larsen ok
nothingmuch someday we'd like to implement todo_is and is with ~~, i hope =)
autrijus nothingmuch: so, your line 583 synced? :)
nothingmuch yup yup
autrijus sure.
nothingmuch and i changed it
autrijus ok. add that line of prototype
and now implement it
jabbot pugs - 601 - Test string and list reverse op 17:24
xerox autrijus, sorry, did you say GHC 6.4 doesn't write "forall a." anymore?
nothingmuch jabbot announces svn up?
or is it not a bot at all?
autrijus it is a bot.
xerox: I mean it's :t function.
nothingmuch line 89
op1 "reverse" = reverse
autrijus right.
nothingmuch right?
autrijus not quite :) 17:25
op1 :: Ident -> Val -> Eval Val
type Ident = String
xerox autrijus, can you give me an example? It seems to show "forall" here :(
autrijus so "reverse" fills the Ident slot
xerox: if shows forall if you launch it with -fglasgow-exts
or if it loads a file that has OPTIONS -fglasgow-exts
like all pugs files
xerox Ah, okay, thank you.
nothingmuch thinks a little
no help!
autrijus nothingmuch: so the function on the right of "=" needs to be of type 17:26
Val -> Eval Val
nothingmuch nono! don't help!
autrijus vCast
oh ok
nothingmuch covers ears and sings
autrijus stops helping
you'll figure it out :)
xerox Ah ah. :)
autrijus nothingmuch: and when you're done implementing string op, look at op1 "=" for how to do the list part. 17:27
that'd be all :)
oh, and "Eval" is just a monad. think of it like "IO".
nothingmuch beh beh beh, phone distracting 17:28
xerox ``just a monad''
autrijus yeah. be glad it is not an arrow parameterized on polymorphic existential endofunctors inside a ST thread under STM. 17:29
xerox panics 17:30
autrijus reboots xerox
xerox happily beeps 17:31
autrijus hm. I can't quite believe it only took two lines. 17:32
nothingmuch doesn't get it 17:34
i create a function
which happens to reverse val
autrijus nothingmuch: ok... may I help? :)
cool.
nothingmuch which accepts a Val
autrijus and gives out Val.
nothingmuch and returns something which is an evaluation
which i have no idea how to construct yet 17:35
autrijus now, the type of "return" is
a -> Eval a
:)
actually it is
nothingmuch what is the . operator in haskell?
autrijus (Monad m) => a -> m a
and Eval is indeed Monad
nothingmuch: it means function composition.
f . g
is like, in perl
sub f_dot_g { f(g($_[0])) } 17:36
nothingmuch it returns an anoynmous function which accepts the type that g accepts
and calls g on it's param
and calls f on that?
autrijus exactly!
(b -> c) -> (a -> b) -> a -> c 17:37
is the type of (.)
you can clearly see how "a" flows to g
and becomes "b" which flows to f
and gives out c.
so whenever you find yourself writing
nothingmuch what is an Ident?
autrijus foo (bar baz)
then you can write
(foo . bar) baz
Ident is String. 17:38
nothingmuch oh, the "reverse"
the operators name
autrijus yup.
yup. "Identifier name"
nothingmuch ok, not the variable it's acting on or something like that
ok, dealt with
autrijus nope.
nothingmuch and Val is a class VStr belongs to?
autrijus Value is a class VStr belongs to.
nothingmuch err 17:39
autrijus AST.hs line 149 is the instance declaration (that you probably don't need to read)
nothingmuch so why isn't return . reverse doing what I meant?
Couldn't match `Val' against `[a]'
Expected type: Val -> Eval Val
Inferred type: Val -> ContT Val (ReaderT Env IO) [a]
autrijus because reverse expects VStr
but you give it a Val
nothingmuch isn't [a], err, in this case [Char] basically a member of Val?
autrijus you can get a VStr from a Val 17:40
by using vCast.
nothingmuch ah, ok
autrijus vCast :: (Value n) => Val -> n
note that "Value" is the class
and "Val" is a type.
now you'll run into another problem :)
i.e. reverse can work on lots of things, not only VStr.
so you need to instrument it:
(reverse :: VStr -> VStr)
but that is not neccessary. 17:41
because you needs to return a Val, not a VStr
to make a Val from a VStr
you use... "VStr"
this time in constructor form.
VStr :: VStr -> Val
the convention of pugs is that the constructor takes, as the only parameter, the type with the same name, and promote it to the "more abstracted" type. 17:42
so constructor "VStr" promotes a VStr into Val
constructor "Val" promotes a Val into Exp
(but you don't need to know that yet) :)
All tests successful.
Files=84, Tests=1419, 53 wallclock secs ( 0.00 cusr + 0.00 csys = 0.00 CPU)
assign.t bug squashed. 17:43
nothingmuch yay!
autrijus it works!?
nothingmuch bah, it's dinner time
no, that assign.t is good
autrijus oh :)
jabbot pugs - 603 - * unify my()=() with ()=(); that makes a 17:44
nothingmuch i tried both return .VStr . reverse .vCast thinking it would cause it to infer stuff into reverse
jabbot pugs - 602 - * unary op following .= is unimplemented
nothingmuch but this confuses the next line
and before i tried vStr . vCast
but that caused a different problem
err, compile cycle too long to check
autrijus !.
nothingmuch anyway, i have to go, i will be back soon to finish
autrijus you should be able to just use ghci
and keep using :r
ghci -isrc src/Main.hs 17:45
that's all you need to do :)
uh
op1 "reverse" = return . VStr . reverse . vCast
is actually The Correct Solution.
not sure what confuses the next line. 17:46
indent maybe
anyway, I await your commit after dinner.
journal time :)
jabbot pugs - 604 - * my $a == $b should not mean my $a = = 17:54
autrijus rg0now++ 18:02
say*(split"",int(7e10+ +*(=open@ARGS[0])))[1..11]
aw, aw.
pugs gold!
err. pugs golf!
(that implements 'wc') 18:03
nothingmuch ok 18:06
ick 18:10
autrijus all larry's golfs now works.
nothingmuch why is it not working
autrijus ??:: inside parens 18:11
and posfix ...
nothingmuch woo! ??:: inside parens!
autrijus was parsed wrong.
yeah. thanks to golf-driven development
nested ??:: now works too.
nothingmuch ya ya ya
now for reverse 18:12
Juerd_ autrijus: I thought that was known for a while
autrijus what was known?
xerox wonders what's the good thing about incompresible syntax..
nothingmuch Juerd_: the problem was known, and even tested, just not fixed =) 18:13
Juerd_ autrijus: In fact, I thought that that was why tests mostly had if (cond) { say ... } else { say ... } instead of say(cond ?? ... :: ...)
nothingmuch: Ah, okay
autrijus true. tests needs to use try{} and ??:: more.
nothingmuch and yes, that is why the tests did that
autrijus oh and postfix conditionals is now part of expression.
nothingmuch will try to clean some stuff up when he returns from alcohol place tonight
Juerd_ Yay for sanity
jabbot pugs - 606 - * ??:: in parens works now; thanks to rg 18:14
pugs - 605 - * postfix ... works again.
autrijus 1 ?? 3 if 2 :: 4 if 0
Juerd_ autrijus: Good. That means you get stacked statement modifiers :)
FOR FREE
autrijus that too.
FOR FREE.
Juerd_ larry-- autrijus++ # ;)
autrijus and it's all very clean.
I'll keep it that way until larry shouts at me to cripple it :)
xerox What is "1 ?? 3 if 2 :: 4 if 0" supposed to mean?
nothingmuch 1 ?? -> yes
so evaluate '3 if 2' 18:15
2 -> yes
so 3
if 1 was false, then :: 4 if 0 is evaled
if 0? -> no
so no on the 4
Juerd_ Not that it's readable, though, when written like that
autrijus pugs> . 1 ?? 3 if 2 :: 4 if 2
{{ Syn "if" {
1;
Syn "if" {2; 3; undef};
Syn "if" {2; 4; undef}}
Juerd_ 1
autrijus }}
Juerd_ ?? 3 if 2
:: 4 if 0
autrijus thanks to nnunley we have a pretty AST.
nothingmuch i have no idea what that returns, though 18:16
undef?
autrijus which should makes everything clear
Juerd_ nothingmuch: undef makes sense
nothingmuch autrijus: so what do we do about reverse?
autrijus no, it returns 3. :)
nothingmuch see it and see why it's broken?
autrijus nothingmuch: I thought you've implemented it
nothingmuch i can't tell
autrijus sure. just commit.
Juerd_ 3?!
nothingmuch i have
and even in a way which you said is ok
but it doesn't compile
autrijus Juerd_: "3 if 2" is 3
nothingmuch is ?! an operator?
Juerd_ OH DUH
autrijus just commit it.
Juerd_ HAHA
Juerd_ for some reason assumed ~~ semantics for if
But that's spelled "when"
autrijus riiight. 18:17
nothingmuch autrijus: *cough* /what/?!
autrijus nothingmuch: just commit whatever code you have and I'll see the compile error
Juerd_ This is what happens if you don't touch any code for a few weeks :(
nothingmuch fine
beh beh beh!
autrijus brb.
Juerd_ nothingmuch: ?! should be ?(!(...)
Prefix that is
! implies ? though 18:18
nothingmuch so boolean prefix of !?
err,
Juerd_ Yes.
nothingmuch !? is not an expression ;-)
boolean context, not prefix
well, it's like saying 'scalar 0
'
Juerd_ scalar is a prefix operator too
nothingmuch like in perl5
Juerd_ ! and ? are the same thing 18:19
But ! negates the outcome
nothingmuch aye
Juerd_ The low precedence versions are called "not" and "true" 18:20
nothingmuch and scalar is still a prefix operator
Juerd_ NOte: not "false" and "true", not "not" and "too"
:)
nothingmuch so zeronary ? is basically '1 == 1'?
Juerd_ I think "true" is special
Hm, it is not 18:21
nullary true and ? don't exist
The true value is Bool::true, not true
nothingmuch ah
that's what nullary means
Juerd_ To avoid that people actually use it.
nullary = having 0 arguments
nothingmuch i always read it as 'null array', not 'nulery'
Juerd_ unary = having 1 argument
binary = having 2 arguments
ternary = having 3 arguments
listary = having any number of arguments :) 18:22
nothingmuch heh
that's cute
Juerd_ unary can be prefix or postfix
nothingmuch for irc log completeness: infix postfix prefix etc say where the arguments are nibbed from
Juerd_ binary is infix
unary can also be circumfix
listary is always prefix
nothingmuch circumfix? que?
Juerd_ but could in theory be postfix
nothingmuch: circum == around
nothingmuch: () is circumfix
nothingmuch is hyper a circumfix op taking an op 18:23
Juerd_ nothingmuch: "" is circumfix
It is *around* the argument
nothingmuch: hyper is a meta-op
nothingmuch and converting it to a binary infix listrefferry op?
;-)
Juerd_ Either prefix, postfix or both (sort-of circumfix), but to an op, not a term
jabbot pugs - 607 - Implemented reverse for strings, and thr 18:24
Juerd_ jabbot: Neato. Let me see the tests for that
jabbot Juerd_: I'm not sure I understand you fully.
nothingmuch do we get to declare meta ops, btw?
Juerd_ As list reverse "foo" should still be "foo"
nothingmuch jabbot->isa bot
Limbic_Region heh
nothingmuch t/op/reverse.t was very hackishly thrown together
Juerd_ nothingmuch: Good question; ask p5l
nothingmuch i'll add more stuff
Juerd_ nothingmuch: I don't see why we shouldn't talk to bots. 18:25
I have long nocternal conversations with purl.
Limbic_Region jabbot: tobbaj?
jabbot Limbic_Region: That is interesting. Please continue.
nothingmuch hah
great
now i can't check that the new test is actually sane 18:26
because i can't compile pugs
Juerd_ I like how perl is very persistent in trying to parse input
perl Makefile
nothingmuch yes, that always amuses me =)
Juerd_ Eventually giving up past line 757.
nothingmuch Can't find string terminator '"' anywhere before EOF at Makefile line 765. 18:27
*MY* perl is trigger happier than *YOUR* perl
Juerd_: 18:28
my $a = "foo";
my @a; eval '@a = reverse $a';
autrijus rehi.
nothingmuch my @e = ("foo");
todo_is(@a, @e, "reversed string in array context is actually a no-op");
hola autrijus
Juerd_ A no op that, when the argument is a simple scalar, should very probably emit a warning 18:29
This requires introspection of the argument list
nothingmuch and what about reverse($a)?
or reverse *$a?
Juerd_ list reverse $a returns $a and should emit a warning 18:30
nothingmuch testing my @a = ("foo"); and reversing that seems silly
Juerd_ scalar reverse $a should reverse $a and return that
autrijus hey
nothingmuch: you accidentally touched "list"
that's all.
"reverse" is fine.
fixed.
"svn di" is your friend
nothingmuch how did i touch it?
svn st next time
grazie 18:31
autrijus right.
nothingmuch now on to list reverse
autrijus op1 "reverse" = return . VList . reverse . vCast
is actually all there is.
the trick lies in how to trigger the correct one depending on context.
Juerd_ Does the list list operator exist?
autrijus yes.
nothingmuch is it tested? 18:32
hard to say based on grep -r
autrijus not sure.
autrijus writing journal
nothingmuch i'll look into that 18:33
autrijus nothingmuch: so should I implement the context dispatch code
or are you doing it?
nothingmuch how will it look?
like you said?
or more scary?
autrijus line 198.
I'll do that. 18:34
gives me chance to unify the context dispatcher.
nothingmuch looks at op1 "="
oh, which is 198
xerox brb
nothingmuch ok
i'll svn ci list reverse
jabbot pugs - 608 - * fix breakage
nothingmuch oi vey, what have i done to op1 "list" 18:35
sorry, autrijus 18:36
Juerd_ I've commited some more reverse tests
Can't run them, though, as I still have broken pugs
nothingmuch svn up should fix it
Juerd_ nothingmuch: I'm in fact already compiling
autrijus: Can you implement -I? 18:39
nothingmuch -l, i.e. the is file a link -X function?
Juerd_ no, -I 18:40
Not -l
Juerd_ can't count, by the way
It's official now.
Juerd_ changes the plan.
autrijus what? what?
Juerd_ -Iblib6/lib
autrijus I need context!
Juerd_ Include.
autrijus ah.
nothingmuch ah
Juerd_ doesn't like environment variables :)
KDE Technologies: Get Hot New Stuff 18:41
nothingmuch Juerd_: i've untodoed the first str test
Juerd_ The KDE people really know their target audience too well :(
Is this the first test where a method behaves different from a list op? 18:42
autrijus nothingmuch: bah.
no context dispatch needed
op0 "reverse" = return . VList . reverse
op1 "reverse" = return . VStr . reverse . vCast
Juerd_ (i.e. @foo.reverse in scalar context should return an arrayref, and not do stringy reverse)
autrijus \\n Str pre reverse (Str)\
\\n List pre reverse (List)\
that's all!
nothingmuch what about reverse @list? 18:43
autrijus MMD.
nothingmuch it's op0?
autrijus but that depends on the fact that pugs does retval MMD.
18:43 khisanth__ is now known as Khisanth
autrijus op0 means listOp 18:43
nothingmuch ah
i assumed nullary
autrijus no, that won't be an op
for obvious reasons.
Juerd_ New word, already using it! :)
jabbot pugs - 610 - untodo str reverse 18:44
pugs - 609 - more reverse tests
Juerd_ jabbot too can't count
autrijus C:\work\pugs>pugs t\op\reverse.t
1..2
ok 1 - list was reversed # TODO
ok 2 - string was reversed # TODO
Juerd_ It has the reverse commits in reverse. The irony.
nothingmuch Juerd++
Khisanth autrijus: a bit delayed but is Perl6::Pugs not meant to be upgradable from the cpan/cpanp shells?
autrijus Khisanth: what do you mean? 18:45
Khisanth well according to both of them the most recent version is 6.0
autrijus ah. you have version.pm installed? 18:46
Khisanth checks
nope
nothingmuch is there a gcov for haskell? 18:47
i think for fp gcov really makes sense, with it being pure and all
autrijus I agree.
Juerd_ autrijus: Can we have .=?
autrijus Juerd_: we already have .=.
Juerd_ Hmm 18:48
Khisanth autrijus: having it installed gives the same result ...
nothingmuch i think i saw a ci log for .=, no?
Juerd_ Then why isn't my test script compiling anymore, after I added that?
autrijus Khisanth: aw. it's a cpanplus/cpan.pm bug.
nothingmuch oh, is 'unimplemented'
autrijus Juerd_: if you added an "unary op" after .=
then it's unimplemented.
Juerd_ No, list op
autrijus iiinteresting.
Juerd_ @a.reverse
autrijus what is it?
Juerd_ eh
@a.=reverse
autrijus ah. I see why.
hmm, .= is very special. 18:49
nothingmuch special--
Juerd_ .= is just .
nothingmuch simple++
Juerd_ Or, well, can very well be implemented like that for now
Assigning the result back to its LHS
autrijus ok. doing it.
Juerd_ That also automatically gives you the right context 18:50
nothingmuch Juerd_: 'for now'.... what do you mean?
autrijus ok, doing so.
nothingmuch it has more complicated semantics?
(with objs, i see, but lists?)
Juerd_ nothingmuch: Later on, it should be able to call a specific, more optimized version of the method that avoids copying
nothingmuch: The classic example being @foo.=sort
nothingmuch will @foo.sort in void context automatically upgrade to @foo.=sort?
Juerd_ That shouldn't have to be @foo = @foo.sort with weird recognition of self-assignment
nothingmuch (although i don't know what it will really do to ops)
ah 18:51
Juerd_ Being special in void context is perl 4
See split.
Only optimizations may be made
(See map)
Aankhen`` Hi Juerd_.
Juerd_ Hello
autrijus ok, implemented according what Juerd_ said.
nothingmuch btw, if object $foo has a method, blah 18:52
autrijus testing.
nothingmuch which retturns an object
of $foo's class
does $foo.=blah replace all instances of $foo with the returned object?
only the one in the container?
i'm curios, because i'd like a nicer way to do Object::Realize::Later type wackiness 18:53
Juerd_ nothingmuch: The return type is irrelevant. If $foo.isa(Foo) and $foo.Bar returns a Bar, then $foo.=Bar should still turn $foo into Bar, discarding the previous Foo $foo
nothingmuch ok, so $foo.=clone probably makes sense in the way most people mean?
Juerd_ Eh
nothingmuch what about objects changing their thingy instead of their references?
Juerd_ I don't know why you'd clone and then dump the original...
jabbot pugs - 612 - * fix plans 18:54
pugs - 611 - * reverse implemented in full. thanks no
Juerd_ Unless you want $dbh.=clone to really mean $dbh.reconnect
nothingmuch well, given my $foo = get_fooo_from_some_place
where if you modify $foo you change some_place's copy
so you $foo.=clone, and it's yours
autrijus ok 4 - inplace int # TODO
Juerd_ I can't parse it
Rereading.
nothingmuch my $foo = @array_of_objects[1]; 18:55
$foo->blah;
b6s "#perl6 is already talking about improving GHC's tool chain by writing a code coverage tool, based on pjcj's excellent Devel::Cover module, so we can identify untested conders in Pugs. 'Tsall good. :-) " #use.perl.org/~autrijus/journal/23389 ?
Juerd_ nothingmuch: No, that can't work, because = copies.
It'd work only if $foo is a reference.
nothingmuch wait wait wait
autrijus b6s: right. gcov is one such possibility.
nothingmuch $foo refers to a thingy 18:56
be it a blessed strucure or an opaque
an object in that sense
it is a copy of the reference @array_of_objects[4]
autrijus Juerd_: svn up and check your .reverse again?
nothingmuch but if i call a destructive method on $foo
like $foo->increment_your_mojo 18:57
then @array_of_objects[4] also changes
Juerd_ autrijus: I've commited it already
nothingmuch because otherwise it just doesn't make sense
now, if i don't want @array_of_objects[4] to change
then i say $foo.=clone
autrijus aw. you and your fast fingers
Juerd_ nothingmuch: Ah, yes.
nothingmuch or $foo = @array_of_objects[4].clone
which is the same thing
Juerd_ nothingmuch: Like that
nothingmuch ok, good
Juerd_ is compiling
nothingmuch so how do i not clone, but destroy the original copy in silly ways?
i want a proper Object::Realize::Later
Juerd_ It takes thrice as long as it did when I last wrote tests
autrijus mmm fat dog 18:59
Juerd_ nothingmuch: I don't know O::R::L (and dislike its name)
nothingmuch i'll mail p6l about it
Khisanth autrijus: I'm just cursious but any idea where the shells are getting the 6.0 from? 19:00
Juerd_ autrijus: test script compiles and runs now
autrijus Khisanth: sure, it only accept x.yy not x.y.z
nothingmuch basically it's an generic object that delays heavyweight construction to a later time
autrijus Juerd_: woot.
Khisanth: they need fixing. not me
nothingmuch by compositing with delegation you get incremental on demand vivication of needed data
autrijus maybe I should try the vstring form.
nothingmuch and thus you can optimise for lazy loading
without losing a simple, naive implementation that uses the object on the outside 19:01
Khisanth ah didn't know that 19:02
autrijus Khisanth: ok, switched to vstrings.
let's see how much havoc it will wreck.
nothingmuch no! vstring bad!
autrijus nothingmuch: "6.0.11" is arguably badder.
and we need perl 5.6 anyway.
nothingmuch autrijus--; # why not just inline the int? perl will parse that, no?
autrijus 6.0.11?
nothingmuch oi, nevermind
Juerd_ vstrings aren't bad 19:03
The perl 5 implementation of them is.
autrijus sure that'd work, but I like v6.0.11.
Juerd_ However - we still get version *objects* for Perl 6
Not just strings.
autrijus what Juerd_ said.
nothingmuch no, i meant '\000\006\000\014'
autrijus nothingmuch: ...
... NO.
nothingmuch but really inline
exactly
Juerd_ nothingmuch: That's not a bad representation, as long as it's internal :)
autrijus v6.0.11 in perl 5.9 will produce a version object.
I'm counting on that.
nothingmuch Juerd_: that's what vStrings are =)
Juerd_ Counting on a version object; heh
jabbot pugs - 616 - $plan += $N; s/todo// for @tests[-1]; 19:04
pugs - 615 - * use vStrings!
pugs - 614 - resolved conflict
pugs - 613 - * .= implemented cleanly thanks to Juerd
autrijus hi our glorious golfer!
nothingmuch autrijus: but with an icky icky warning
rg0now hi!
Juerd_ nothingmuch: 65.66.67 eq "ABC" is where vstrings are bad
rg0now I am happy to be here at last...
autrijus nothingmuch: not sure what you mean. I don't get warnings.
Juerd_ autrijus: I notice you prefix * to commit messages. What does it mean?
rg0now Just came here to tell you that 'reverse' seems to be broken in current svn tree
Juerd_ rg0now: Really? ;) 19:05
rg0now it reverses everything on eart
autrijus say reverse=<>
works.
Juerd_ rg0now: We were just working on this the past hour :)
rg0now sorry, i am completely new to irc
autrijus it reverses what on earth?
rg0now yes, sure
autrijus damn, my journal keeps getting obsoleted by #perl6.
and I had not even written half of it! 19:06
Juerd_ Run Perl6 Now! | pugscode.org ('Overview', 'Journal') | pugs.kwiki.org | channel log: xrl.us/e98m | < autrijus> damn, my journal keeps getting obsoleted by #perl6. 19:06
Juerd_ Hm 19:06
In fact
rg0now I tried: print reverse =open@ARGS[0]
Juerd_ Run Perl6 Now! & pugscode.org ('Overview', 'Journal') & pugs.kwiki.org & channel log: xrl.us/e98m & < autrijus> damn, my journal keeps getting obsoleted by #perl6. 19:06
nothingmuch rg0now: when did you last svn up? 19:06
Juerd_ :)
rg0now about 3 minutes
nothingmuch Juerd++
Juerd_ Why choose if you can have them all()? :)
autrijus rg0now: oh I see. it didn't reverse lines 19:07
right?
Khisanth autrijus: be lazy, write some to extract a summary from #perl6.log :)
nothingmuch print scalar contextifies?
autrijus eww eww.
rg0now I mean, you reverse not just the order in the list, but the list elements themselves too
autrijus nothingmuch: right, that seems to be what it did
Juerd_ rg0now: That's what the list op reverse does in scalar context
rg0now really?
Juerd_ rg0now: Not in list context, though
autrijus but it should be in list context!
rg0now sorry, go back to Synopses 19:08
autrijus \\n Bool pre print (List)\
nothingmuch rg0now: that was the equiv of 'print scalar reverse scalar =open@ARGS[0]'
sort of
autrijus rg0now: no, we're saying pugs is wrong
nothingmuch except that scalar was implied
autrijus and trying to find the problem
Juerd_ rg0now: reverse isn't discussed in synopses, so I'm assuming Perl 5 behaviour for the non-method semantics.
autrijus ok, I see why.
rg0now shoul this work: print *reverse =open@ARGS[0]
autrijus it's parser precedence thing.
nothingmuch it first stringified the =open@ARGS[0] into a big concat, and then reversed the chars of that
autrijus I shouldn't rely on the MMD.
a sec.
nothingmuch Juerd_: is 'list' == '*'? 19:09
Juerd_ nothingmuch: No
nothingmuch but both enforce list context?
Juerd_ list in scalar context returns an arrayref, afaict
Yes
nothingmuch list @array remains an array?
Juerd_ list is for lists what scalar is for scalars
nothingmuch but splat array is forced flattenned?
Juerd_ It merely provides context
TO THE ARGUMENT
The context the op itself is in it cannot determine 19:10
nothingmuch always saw scalar as the smushtogether or count operator in perl5
Juerd_ nothingmuch: Splat is for distributing a list to multiple non-slurpy parameters
While list just provides list context where otherwise you'd have scalar conetxt 19:11
nothingmuch do we have a 'splat' keyword?
Juerd_ I don't believe so
low precedence splat doesn't make sense either, I think
nothingmuch right
Juerd_ The very rare occasion you want to splat two things, double * makes much more sense
That is: foo(*@foo, *@bar) makes more sense than foo(splat @foo, @bar) 19:12
Making low precedence splat is easy though
macro splat { "*" . @_.perl }
eh
macro splat { "*" ~ @_.perl }
I'm not sure if that'd work for rw args 19:13
Holy $bovine, 74 nicks in this channel already!
rg0now Sorry folks, I can not really follow you. Though, I will be lurking around here and report, if I can get reverse to work, eventually
Juerd_ rg0now: See t/op/reverse.t 19:14
rg0now: That's how we want it to work, eventually
rg0now oh, the test, I always forget to use... 19:15
autrijus ok, I think I fixed it.
Juerd_ The way reverse currently works isn't complete
autrijus testing.
Juerd_ Hmmm
rg0now ok, currently this reverses everything, even list elements: my @l = =open@ARGS[0]; @l = reverse @l; print @l;
Juerd_ Don't you all agree that ~@array should return join('', @array) instead of join(' ', @array)?
OR that reverse LIST in scalar context should also join on ' ', not ''? 19:16
And that current design is inconsistent?
rg0now: Can you please not use open in simple examples? @l = <foo bar> is much easier to understand 19:17
Are you saying that that prints raboof instead of barfoo? 19:18
rg0now ok, now I see that it is in todo, sorry folks...
Juerd_ Answer, please 19:19
autrijus rg0now: try again.
I think you'll be happy.
rg0now ok, here is the test code: my @l = <foo bar>; @l = reverse @l; say @l;
autrijus 18 out of 23 works now.
rg0now prints: rab oof
Juerd_ autrijus: Exciting
autrijus please update to r617 and resume your discussion.
also, help me in finding out why the 5 are failing. 19:20
i.e. passing in the wrong context.
autrijus goes back to journaling
nothingmuch mailed p6l about O::R::L style behavior 19:21
rg0now it seems to work with r617, the result is: barfoo
autrijus reminds folks that Pugs stands for "Perl6 User's Golfing System"
Juerd_ never really understood the name 19:22
autrijus so only golf-driven development can do it justice :)
rg0now ok, I am going back to PerlMonks for golfing on...
nothingmuch and who the hell uses OOP in golf?
autrijus :))
nothingmuch all my tests were for nothing?!
autrijus uh. perl6 will make using oop in golf much more competitive. 19:23
as will fp
it won't be always regex now!
the other schools will have a chance!
nothingmuch well, maybe for complex golfs
autrijus and especially us unicoders!
autrijus grins
nothingmuch but oop syntax is anything but concise
ah
that is something
hyper and junctions are probably the most golfy features ever
jabbot pugs - 617 - * a different set of reverse.t tests fai 19:24
autrijus riight
Juerd_ nothingmuch: I use Data::Swap in Perl 5 to change an object's state
autrijus so nondet school will have its day
in fact I expect p6 golf to be much much more fun than p5.
Juerd_ nothingmuch: For example, in DBIx::Simple, I swap existing objects for DBIx::Simple::Dead for objects that no longer serve any purpose, but do have references to them
nothingmuch ah
puurdy
nothingmuch makes note, especially for recent dabblings with stevan and lazy subclasses of Tree::Simple 19:25
thanks, Juerd!
Juerd_ Welcome as always
nothingmuch i wonder why no one mentioned Data::Alias when i needed it 19:27
but with a much more vague name
Array::RefElem got the job done 19:28
Juerd_ p6l consulted re lists in scalar context 19:32
autrijus Juerd_: good. I was about to. 19:33
Juerd_ Eh, no
p6l consulted re lists in STRING context
Sorry
autrijus ah. I'll followup as needed anyway.
Juerd_ Hm
That's weird tohugh
though
I've requested something strange
scalar reverse LIST should of course be an arrayref 19:34
4~reverse "LI", "ST" should be TSIL
lucs Er, can you prefix that with some non-Unicode please? 19:36
Juerd_ It's non unicode
It's IRC colouring
lucs Oh :)
Juerd_ <red>~</red>reverse
I suggest you seek a more capable IRC client
lucs You want me to have color, eh.
Juerd_ Yes, it has very practical use
Juerd_ hates colour abuse as much as everyone else
lucs You're probably right :) 19:37
Anyway, you were saying ~reverse ...
Juerd_ See p6l 19:38
lucs Okay, thanks.
nothingmuch autrijus: are there any docs explaining how pugs is implemented?
Juerd_ Just after typing the first message, autrijus' comment made me realise I had been careless when composing it.
lucs (I'm not spending enough time following all this.)
Juerd_ Neither am I
I'm thinking of the details of how things work in Perl 5 and 6 19:39
While most people are discussing only the new features
autrijus nothingmuch: PA02.
Juerd_ Which don't intruige me as much
I'm still looking for a better Perl 5
nothingmuch which is being written as we speak? 19:40
autrijus yes.
Juerd_ Instead of a new language. Autothreading, MMD, ML, etc., will all come and I'll start learning them as soon as Perl 6 is in useful state.
autrijus will be published at end of March.
probably debutted at YAPC::Taipei.
March 27
Juerd_ doesn't join these big discussions about that
And is still thinking on a syntactic level of strings and numbers. 19:41
autrijus pugs is already dangerously close to an useful state :)
Juerd_ #1/usr/bin/pugs
How - who wrote that :)
autrijus you! 19:42
Juerd_ No
autrijus or nothingmuch?
Juerd_ I didn't write the initial reverse.t
I only added some tests to ti
autrijus fixed.
Juerd_ it
Hm
autrijus er.
Juerd_ Yes, but have we now both fixed the same thing?
autrijus you beat me to it.
Juerd_ Heh.
autrijus journal up.
I'll sleep now. :)
nothingmuch which file is that?
Juerd_ Neat, /me goes to read 19:43
autrijus or at least, try to
nothingmuch ā€¢ [syeeda:/usr/local/src/pugs] nothingmuch % svn blame t/op/reverse.t
601 nothingmuch #1/usr/bin/pugs
Juerd_ Rest well, autrijus
autrijus waves &
nothingmuch always does crap like that
sorry
good night, autrijus!
thanks for all the haskell help today!
rg0now Folks! I have just uploaded the final Golf scripts to PerlMonks. It seems to work pretty nice, feel free to add them to the tests...
have a nice Perl 6 hacking...
nothingmuch rg0now: do you have commit access?
rg0now no I don't
nothingmuch well, why don't you get some, and do it yourself? 19:44
it's easy
autrijus right.
rg0now might I write a series of tests out of it?
nothingmuch err, one minute
autrijus give me your email.
nothingmuch yes you may
and i will be glad to help
rg0now [email@hidden.address]
where should I put the tests?
autrijus Schwern! you're in golfer's realm now! :)
rg0now I men, inot which dir?
Schwern Great
rg0now :-))) 19:45
nothingmuch well, uh
autrijus t/golf/santa/
;)
rg0now ok
autrijus if not in test form, examples/golf/
(I don't really know.)
nothingmuch what about t/ext/golf/santa?
autrijus ext?
nothingmuch i think that's a better place to put 'generic' tests
extra, external, whatever you want
t/bonus/golf
maybe that is nicer ;-)
like perl5's japhs 19:46
they are sort of stress tests
Juerd_ We need the examples to be tests
nothingmuch golfs and japhs usually annoy the parser
Juerd_ I'll see if I can think of a way
nothingmuch Juerd_: i'm thinking we should keep them as they are mostlyh
perhaps refactor
and unit test the examples
Juerd_ nothingmuch: As they are, yes
nothingmuch thus testing both the examples and pugs
Juerd_ But included in the test suite.
Still in the examples directory and all
But where output is static, it can be tested
And their compilation should always succeed 19:47
nothingmuch hmm
autrijus yup
at least test compilation.
nothingmuch well, what about t/bonus/examples/progname.t containing unit tests for examples?
Juerd_ Nothing is as shameful as having examples that don't work :)
autrijus I'll leave the layout for you. but no "bonus" please :)
Juerd_ nothingmuch: I was thinking of examples/output/scriptname
And t/examples.t which tests them all
autrijus really sleep &
nothingmuch i tried doing that with exegesis 02's program
but had too many features that were not yet ready 19:48
ciao autrijus!
Juerd_: but then that file may bloat
autrijus rg0now: invitation sent. welcome aboard
nothingmuch if it really does unit test
Juerd_ nothingmuch: Not really
nothingmuch: It tests compilation for each, and output for those of which static output is known
Nicely generating a plan of @examples + @outputs
nothingmuch why not take it one step further?
put it in t/examples/sanity.t
Juerd_ What'd that do? 19:49
nothingmuch exactly what your t/examples.t
Juerd_ I'm not suggesting duplicating ANY of the example code
nothingmuch but with t/examples/send_more_money.t checking that it actually works
no, not duplicating
Juerd_ Why one test script per example?
Why not write one very simple harness for it?
nothingmuch unit tests for the actual functions therein
Juerd_ And store output with pugs $example > output/$example
Hm 19:50
Okay, you do that, I do this :)
nothingmuch ok
Juerd_ Why argue if we can have both :)
nothingmuch maybe you should todo t/examples.t with backticks and todo_ok?
we could argue this is golf driven development and autrijus will implement backticks by the time we wake up tomorrow
Juerd_ Hm 19:51
Does pugs support pipes yet even? :)
nothingmuch hmm
maybe we should port IPC::Run
Juerd_ And spawning processes etc
stevan pugs does read files and can eval strings :)
nothingmuch we do have system()
Juerd_ stevan: Ah! good point!
stevan but that might blow up
nothingmuch i think
Juerd_ Now, does it have glob or readdir?
stevan yeah I think we have system
Juerd_ We can hard code this for now
nothingmuch stevan: Tree::Simple lazification made sane:
no Object::Realize::Later crap 19:52
stevan nothingmuch: ok
I assume you have been thinking about it more
nothingmuch enter Data::Swap (really Data::Alias) (Juerd_++, xmath++)
stevan nothingmuch: I am not familiar with it
19:52 Juerd_ is now known as Juerd
Juerd Good point 19:52
stevan goes to CPAN and looks
nothingmuch not really, i have been thinking about personal issues mostly 19:53
and work
and hiking
neither was I
stevan nothingmuch: yeah, my parents are down visiting, so my time has been limited
that and I was trying to hack a kwid2pod converter
jabbot pugs - 618 - s/#1/#!/ 19:54
stevan so I can at least see my kwid :P
nothingmuch demerphq's new japh is way cute: 19:55
perl -Mre=debug -e "/just|another|perl|hacker/"
Juerd: for unit testing I propose each example script should have a sort of marker 19:57
err, maybe
Juerd No
Example scripts should be pure and have no indication they're anything more than examples.
nothingmuch and we could eval everything but the thing that runs the actual demo
Juerd We're practically testing documentation
nothingmuch so how test we they?
both Test::Output? 19:58
and unit tests, in one?
Juerd I've no idea what you mean even.
nothingmuch err, nevermind then
i'll find something clever to do
how do i capture stdout in pugs given current devel? 19:59
is there any test doing that?
Juerd nothingmuch: tnx.nl/3650AZSG 20:00
nothingmuch pretty 20:01
Juerd It doesn't at al work though 20:02
at all
autrijus: I don't think $_.foo should interpolate, or should it? 20:03
Schwern It should, IMHO. Dunno what p6l decided. 20:04
Else you're once again stuck writing "Your name is "_$_.name_"\n"
Instead of the more natural "Your name is $_.name\n"
ie. make accessors as easy to use as hash keys 20:05
Juerd "Your name is {.name}" 20:06
"Your name is {$_.name}"
Schwern Ahh
Eh.
nothingmuch $*OUT = open(">examples/output/quicksort");
require "examples/quicksort.p6";
Juerd Scary, but you will get used to it.
nothingmuch isn't that supposed to get me what I want?
Juerd WEIRD 20:07
I have REALLY WEIRD behaviour here
I'll commit so you can have a look
done; r619 20:08
Run t/examples.t
Why is it iterating over only fp and quicksort?
Hm
<> isn't <.*> with greedy .*, right? :) 20:09
Uh oh. Let's see.
No, can't be.
@outputs is properly declared.
nothingmuch i get 1 .. 10 20:11
Juerd That is correct
After that, I get:
1 ok # skip: Try to compile fp.p6
2 ok # skip: Try to run fp.p6 and compare to output/fp
3 ok # skip: Try to compile quicksort.p6
4 ok # skip: Try to run quicksort.p6 and compare to output/quicksort
Which makes absolutely no sense 20:12
nothingmuch only 4
Juerd What happens to hanoi?
And the others?
lightstep i thought hanoi never worked
nothingmuch oddly, 'for (@examples){ say $_ }' works
Juerd lightstep: That's irrelevant right now, as I'm not even executing 20:13
Or even compiling
I'm just iterating over hard coded arrays...
jabbot pugs - 620 - fixed stupid hardcoding 20:14
pugs - 619 - Adding stub for testing examples. Weird
nothingmuch could it have something to do with 'expr if blah?'
when i comment if ($_ eq any(@outputs)) { }; it works
Juerd No, hanoi is in outputs
nothingmuch but with 'if ($_ eq any(@outputs)) { };', nothing in the block, it doesn't
good point
and shuffle/life aren't 20:15
how would you implement listary zip? 20:26
in haskell
i can get binary going
map head lists?
lightstep transpose?
nothingmuch what does that mean?
nothingmuch is a haskell noob 20:27
lightstep transpose [[1,2,3],[4,5,6]] == [[1,4],[2,5],[3,6]]
nothingmuch hmm
i don't have a transpose 20:28
where does it come from?
lightstep it's in List 20:29
nothingmuch thanks 20:30
nothingmuch tries zip.t op 20:40
how do i specify a list of lists? 20:45
in pugs internals?
Juerd They don't exist.
Oh.
I don't know. 20:46
nothingmuch i.e., greater list comma?
op1 "zip" = return . VList . foldr (++) [] . transpose . VListOfList . vCast
err, sort of
nothingmuch gives autrijus nightmares, so he wakes up and comes to IRC 20:49
Juerd That's un-nice.
nothingmuch it's for a good cause ;-) 20:50
lightstep foldr (++) [] = concat 21:01
nothingmuch ah 21:02
maybe there is a 'zip_like_pugs_would_like_to' builtin too
lightstep: are you familiar with how pugs represents it's data types? 21:03
lightstep i looked at the source twice
what is VListOfList ? 21:04
nothingmuch imaginary 21:05
the zip operator takes arrays like this: zip(@a;@b;$c)
tr/$/@/ 21:06
lightstep if VList is always guarenteed to be a synonym to [Val], you can use id
nothingmuch i'd like to feed that list, [[@a], [@b], [@c]] to transpose
what is id?
brb phone
lightstep the identity function
Khisanth hrm that was a couple of pages ago :) 21:07
nothingmuch id :: forall a. a -> a
what does that mean? 21:08
lightstep that it works for any type of argument
you can feed it value of whatever type, and it returns something of the same type
nothingmuch so is it a no-op? 21:09
lightstep no, it's useful in a situation with combinators, for example
nothingmuch got a reference i could slurp?
lightstep haskell.org/onlinereport 21:10
nothingmuch thanks
lucs Juerd: Try this: tnx.nl/3651DNDH 21:12
Juerd "Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal)." 21:13
I believe that's the old fashioned version of: Learn Perl 6
www.norvig.com/21-days.html
integral Haskell also fits quite a few of those 21:14
Juerd lucs: EEEEEEEEEk.
lucs :-)
Juerd for is descructive!?!
!!?!!!
(Enough drama.)
lucs There's your examples.t bug in a nutshell.
Juerd Great detective work 21:15
nothingmuch !!?!!! is an op i've not yet heard of 21:16
Juerd nothingmuch: !!?!!!expr is just !(!(?(!(!(!(expr))))))
nothingmuch i wasn't serious, Juerd... =) 21:17
Juerd ?!!?$foo is just a very elaborate way of saying ?$foo, but documenting that you're surprised about it being true ;)
die if ?!!?$foo
qmole lol
Juerd It's the symbolic equivalent of WTF?!
theorbtwo waits for somebody to create a $foo!? suffix operator...
Juerd Hm 21:18
!? ::
Or, better
?! ::
$foo ?! die :: "pfew"
theorbtwo ...which dies unless it's argument is true.
Juerd hee hee
nothingmuch i think ?! should be ternary ?? :: 21:19
but with ?? die implied
Juerd p6l
hm 21:20
In fact, POSTFIX ?! is probably more useful
For assertions
With postfix ? for the other way around
open "/etc/shadow" ?;
Nahh
We need :(, which implies ; 21:21
nothingmuch open "/etc/shadow" ?; asserts that it must work or we die?
theorbtwo Er, when I said "suffix", I meant postfix.
Juerd open "/etc/shadow" :(
theorbtwo print "foo" ?!;
Means print "foo" or die.
Juerd postfix and suffix are the same word :)
lucs Where's the best place to report the "$_ $_" in 'for' bug?
nothingmuch except that sufix can't send email
theorbtwo Nah, suffix = prefix | postfix
Wait, no, that's afix.
Juerd lucs: an autrijus's alarm clock 21:22
theorbtwo You're right.
lucs Oh, he reads scrollback, eh.
Juerd dunno
nothingmuch unless we create āœ‰ suffix op
theorbtwo Oh, apparently Gaim isn't the only client that thinks this is utf8.
lucs autrijus: Please check out: tnx.nl/3651DNDH
nothingmuch it is utf8
theorbtwo say "foo" ā€½; 21:23
Khisanth nothingmuch: that op looks like an envelope :) 21:24
nothingmuch it is an envelope
it's the suffix complimentary to postfix 21:25
=D
. o O ( the only language whose operators have configuration files )
morning, castaway!
Juerd Hm
nothingmuch joining the herd? 21:26
Khisanth nothingmuch: PHP didn't do that yet? :)
castaway just wanted totell nothingmuch that the suffix/postfix joke was very funny
Juerd We have spies!
nothingmuch Juerd: uhuh, theorbtwo is it
Khisanth++ 21:27
Juerd That much was guessable
nothingmuch castaway: thankyou *bow*
castaway has eyes everywhere!
Juerd afk # sudden terrible pain
castaway .. and all was quiet .. 21:29
nothingmuch whines 21:30
my posts to p6l never generate replies
castaway p6l?
nothingmuch [email@hidden.address]
theorbtwo hopes Juerd is OK. 21:31
learn p6l as [email@hidden.address] 21:32
perlbot, learn p6l as [email@hidden.address] 21:33
perlbot added p6l to the database
lightstep perlbot: p6l
perlbot [email@hidden.address]
castaway musters the perlbot
lightstep perlbot, help
perlbot Syntax: (fact) :: tell (who) about (what) :: (who) > (what) :: learn (what) as (info) :: relearn (fact) as (info) :: facts (search term) :: shorten (url) :: shorten it :: search (module) :: docs (module) :: perldoc -f (function) :: math :: fortune :: flip :: host (type) (record) :: rot13 :: roll (die) :: tempconv (temp) :: scramble (text) :: 8ball :: slap :: diss :: what time is it :: highest karma :: lowest karma
theorbtwo notes that you can /msg perlbot. 21:34
nothingmuch Juerd: is the destructive for bug tested for? 21:36
lucs: maybe you? 21:38
lucs Not that I know of. Where would such a test go? It's just not supposed to do that :) 21:39
nothingmuch r621
lucs My example doesn't show where exactly things are going wrong either. Is it in the stringification? 21:40
nothingmuch i don't think so
the test case I wrote uses push
jabbot pugs - 621 - Test for a weird bug that Juerd found an 21:44
theorbtwo Who does jabbot belong to? 21:45
...and can they fix it to give full changelog entries? 21:46
Khisanth theorbtwo: gugod probably :)
theorbtwo ...or at least postpend a '...'?
castaway append.
nothingmuch suffix ;-)
theorbtwo Er, right.
nothingmuch what is an appix? 21:47
sounds like some kind of energy bar
castaway or suffend?
theorbtwo Thats affix.
Khisanth nothingmuch: sounds like an insect
theorbtwo affix = prefix | postfix
castaway das ende vom suff ,)
nothingmuch appix = append -> fix
it is suffix ~~ $_ ~~ postfix 21:48
i think
theorbtwo Not to be confused with applix.
nothingmuch (does ~~ chain?)
castaway hmm Applix
theorbtwo Yes.
Khisanth Applix - yet another linux distro!
theorbtwo \\n Bool chain ~~ (Any, Any)\ 21:49
castaway An office variant
steveq Hi there, quick pugs question: Does it support sorting of lists yet? If so what's the syntax, i couldn't spot it in the t/ directory 21:51
nothingmuch err, maybe @list.sort { $^a cmp $^b } 21:57
but i don't think it's there yet
you can use examples/quicksort.t for now ;-) 21:58
wolverian that'd need to be .sort:{...}
steveq nothingmuch: yeah, i spotted that one
nothingmuch cmp is there
wolverian: want to test, or should I? 21:59
steveq nothingmuch: and also <=>?
nothingmuch uhuh
t/op/relational.t
theorbtwo Hmm, so we have enough to implement sort! Very cool.
wolverian nothingmuch: I can't now. I'm stuck on a windows computer that isn't mine. :/
nothingmuch i'll try to get to it
steveq When I saw you'd done reverse it seemed the next step ;-)
rg0now might I ask something now, or do I disturb anything? 22:00
theorbtwo Ask away.
nothingmuch rg0now: always
steveq We need the schwartzian transform in perl6 :-)
rg0now I seemed to find a bug with =<> operator
as TimToady pointed out at perlmonks
this might work as the meagical <> in Perl5
theorbtwo .sort should ST if it wants to by itself. 22:01
rg0now so it might read from the file named in the first command line argument in some cases
Khisanth oooh a fish operator! :)
rg0now :)
Juerd can barely type
steveq theorbtwo: that would be nice
nothingmuch >==x>
Juerd nothingmuch: No, but examples.t shows it
rg0now I maen this: my@l= =<>; should read from ARGG[0]
isn't it?
Juerd steveq: No, sort automatically caches 22:02
So no need for an ST
nothingmuch Juerd: committed as r621 to t/base/for.t
Juerd afk
nothingmuch ciao!
theorbtwo Ugh. I just asked ghci to show me Prim.initSyms. 22:08
Now my head hurts.
nothingmuch does @foo = sort { } @array 22:09
remain the same?
and should @array.sort dwim for num vs. str values?
nothingmuch thinks sort will not be too difficult to do 22:10
given op2Grep and op2Map
and the fact that List has sortBy
which is basically the same
lightstep how do i tell svk to get files from openfoundry.org instead of perl.org? 22:11
steveq If the list has a numerical type will it automatically do a numeric comparison instead of a string cmp?
nothingmuch lightstep: i think you do funny stuff to your depotmap
but that's where my knowlege ends
i use darcs normally 22:12
and svn temporarily for pugs
steveq: more than that
if the list is basically all nums or all strings
without explicit declaration
steveq nothingmuch: excellent, where can I read about this?
nothingmuch will the right thing be done?
steveq I looked in the synopses but i couldn't find it clearly explained 22:13
nothingmuch steveq: read about what?
ah,
i'm asking myself
(luqui | Juerd)->answer
castaway does yourseld know? 22:14
jabbot pugs - 622 - small update to AUTHORS and MANIFEST - n
theorbtwo You know, I could have sworn that one of the [AES]es had lots of data on sort. 22:21
steveq I have to go now, I'll take a look at the irc logs tomorrow, thanks 22:23
nothingmuch ciao, steveq!
nothingmuch sees that it's not that trivial to create op2Sort 22:26
Darren_Duncan While I can't name anyone in particular, I suspect that a number of people who committed to Pugs aren't in the AUTHORS file -- they should probably be added prior to 6.0.11 going out
since svn handles are often different from real names, I can't easily figure out who's missing and add them 22:27
or do you know an easy way?
nothingmuch err
google the handles?
Darren_Duncan I suppose, but that could take awhile 22:28
22:28 lightstep_ is now known as lightstep
Khisanth add a test that will always fail telling people to add their name :) 22:28
Darren_Duncan I considered posting to p6c a reminder message to do that -- what do you think?
integral do you have a list of nicks that are missing? 22:30
Darren_Duncan no because I haven't found an easy way to determine them
integral ah
Darren_Duncan I'll post to p6c a reminder
nothingmuch anybody with subetha edit and haskell skills want to help? 22:34
theorbtwo Well, I have two halves of those. 22:35
nothingmuch theorbtwo: har 22:36
theorbtwo I've got SEE on a PearPC, and some haskell knowladge. 22:37
nothingmuch well, see woobling.org 22:38
Darren_Duncan How is PearPC -- the performance acceptable?
crysflame .
theorbtwo Workable for me.
Darren_Duncan ok, the reminder notice is posted to p6l -- simplest solution
theorbtwo P4/3GHz/HT. YMMV. 22:39
Darren_Duncan I see
Juerd stevan: Probably. And in general, $foo.cmp($bar)
Darren_Duncan oops, I meant p6c, not p6l
castaway tis a tad slower on the 2ghz machine
Juerd stevan: All speculation, though.
stevan: This is a good question for p6l
Darren_Duncan I posted to p6c since that was the most Pugs-specific 22:40
nothingmuch Juerd or someone- please sanify t/op/sort in 1 minute 22:41
Juerd sanify? 22:42
nothingmuch make sure it tests correct things
Juerd Comma between closure argument and slurpy list is not optional afaik 22:43
nothingmuch S06 seems to imply that sorting an array filled with numbers will dwim correctly
sort {}, @foo?
Juerd You're not testing multi-condition sorts
Yes
And sort [ {}, {}, {}, ... ] <== @foo 22:44
nothingmuch ah
jabbot pugs - 623 - Sort of guesswork test
Juerd I'll forward you a message I got from Damian if you want.
nothingmuch which is instead of { $^a[0] <=> $b^[0] or $a^[1] <=> $^b[1] }?
sure
Darren_Duncan which test file is array *comparison* done in?
nothingmuch Darren_Duncan: theoretically smartmatch.t 22:45
Test's is routines will stringify
and since the values are simple stringification is a good enugh test
enough
Juerd nothingmuch: You have 2 messages. 22:46
Darren_Duncan okay then
nothingmuch maybe it should really be ok(@a Ā»eqĀ« @e)
grazie, Juerd
why is multi criteria split up, btw?
Juerd prego
split? 22:47
nothingmuch well, err
made possible
i mean, isn't sort with one comparison block good enough?
Juerd No
Because of the dwimmery 22:48
{ .<foo> }
Darren_Duncan a single block should certainly be tested
it's the least that's needed
Juerd That is actually { $^a<foo>.cmp($^b<foo>) }
nothingmuch err 22:50
i'm thinking maybe i'll fix the sort {}, @a 22:51
and leave the more complicated stuff to others
theorbtwo With no block, you mean?
nothingmuch because i just noticed i'm dropping dead
theorbtwo Is that even defined?
nothingmuch t/Synopsis/S06.pod: @nums ==> grep { $_ % 2 } ==> sort ==> map { $_**2 } ==> @oddsquares;
theorbtwo Larsen, is your proper name Stefano Rodighiero for the AUTHORS file?
nothingmuch theorbtwo: uhuh 22:52
larsen theorbtwo: yes.
AUTHORS of what ? :)
nothingmuch pugs
theorbtwo Pugs, of course.
larsen largely exagerate, but thanks 22:53
theorbtwo You have a checkin, so you go in AUTHORS.
crysflame oooo 22:57
nothingmuch: that's very nice to see. :)
nothingmuch crysflame: eh?
Juerd feels so smart after his latest post to p6l :)
crysflame 14:52 @nums 22:58
Juerd Now all that's left is watch the idea get smashed and bashed... :)
nothingmuch Juerd: rhs quoting will probably be confusing 22:59
what if it's a listop?
Juerd nothingmuch: Why will it be?
nothingmuch f // @list?
Juerd That's WEIRD syntax
Then just make it &f
nothingmuch because things that look quoted are bound to be treated as such by the user
i meant sort of like s// 23:00
Juerd nothingmuch: As I said, think of s///
nothingmuch but with a replacement list
not a replacement string
Juerd AND, they'll very quickly understand it.
One problem I have with sprintf now is that you need 2 sets of delimiters, nested.
sprintf4(10"%03d %15s10", @foo4) 23:01
hm
sprintf4(10"%03d %15s10", @foo4)
Stupid colour parsing of ^C,
crysflame where'd you copy that from?
Juerd doesn't understand the question 23:02
theorbtwo Hmm, now missing 5 people for AUTHORS.
nothingmuch would like to see format extensions to sprintf
crysflame how did you syntax colorize perl on irc?
Juerd crysflame: With IRC colours.
nothingmuch that allow duplicating stuff
crysflame manually?
theorbtwo (00:01:20) Juerd: Stupid colour parsing of ^C,
Juerd Yes
nothingmuch a bit like unpack
crysflame o
nevermind
nothingmuch anywho
i'm falling asleep 23:03
good night
Juerd Bye nothingmuch
theorbtwo G'night.
crysflame bows
larsen ciao nothingmuch
nothingmuch i don't know how to make zip(@a;@b;@c) be a list of VLists
castaway -
nothingmuch if anyone wants to try, here is prelim fscking of op1 "zip":
castaway night asleep
nothingmuch op1 "zip" = return . VList . concat . transpose . vCast
autrijus must help us tomorrow 23:04
jabbot pugs - 624 - test: sort {} @a -> sort {}, @a
Juerd nothingmuch: ;?!
nothingmuch ?
oh
luqui said so, Juerd
i much prefer @a Ā„ @b Ā„ @c myself
Juerd rationale?
nothingmuch err
i don't know
Juerd I prefer @a Y @b Y @c
theorbtwo wonders if alinbsp == Alin Iacob == ALIN.
Juerd It took months before I got what I wanted with Y 23:05
nothingmuch you basically mush a multidimentional array into a one dimentional zipped one
sort of
Juerd After even proposing z to just get \w ascii into people's minds
theorbtwo Y is an alias for Ā„ now?
Juerd Yes! :)
(I proposed z when unicode broken bar was zip)
nothingmuch but Y doesn't have the funky zipper like graphical qualities ;-)
Juerd does too 23:06
It's just not as detailed
nothingmuch hah
theorbtwo Doesn't nearly as much, but it is rather easier to type.
nothingmuch anywho
on macs it's just alt instead of shift
anywho, Juerd - duke on p6l on zip(@a;@b)
i'm off
theorbtwo Ā„
D'oh.
Juerd "duke"?
It's compose + Y + - here 23:07
Or compose + Y + =
theorbtwo Um... perhaps sounds like "look" if you're used to Hebrew?
Juerd eh, not +
compose, Y, -
Not all at the same time :)
2776 messages
theorbtwo You know, I really ought to mess with my keyboard map to make the key next to left shift into compose. 23:08
Juerd Not going to search if I have no idea what to look for
"zip" is too broad
theorbtwo ...since I'm using an en-us keymap.
Juerd I use right alt
theorbtwo "zip(@a;@b)"
Juerd Labeled Alt Gr
theorbtwo I don't; I like keeping both my alt keys alt keys.
Juerd Right alt doesn't do anything left alt does anyway.
theorbtwo It does on an en-us layout.
Juerd Weirdness!
theorbtwo Not really. en-us is the best keyboard layout; all others are just bad copies. 23:09
;)
Juerd No, en-us implies qwerty
And that S U C K S
theorbtwo You have a certian point.
Juerd www.dvorak.nl!
(my site)
theorbtwo Hmmpf, Gaim tries to consider the ! part of the domain name. 23:10
Hm, your shifted digits are straight en-us. 23:11
[]/{} are moved up a row, though.
Juerd Oh, that's because I'm using *US* Dvorak
Localized versions exist
theorbtwo Ah. I also wondered why it was missing umlouted vowels. 23:12
Juerd Because Dutch doesn't have umlauts
We have tremas, which are essentially the same thing, but with a very different purpose
The glyph is called diaeresis 23:13
It's an umlaut when it's german-like in changing the sound of a vowel, only.
Webster's has a VERY weird definition though :)
2. A mark consisting of two dots [[umlaut]], placed over the
second of two adjacent vowels, to denote that they are to
be pronounced as distinct letters; as, co["o]perate,
a["e]rial.
"umlaut" has nothing to do with that particular function of diaeresis 23:14
castaway interesting
theorbtwo They're using "umlaut" to be a generic term for the mark, it would seem.
I agree with you that they are wrong.
Juerd Anyway, diaereses for vowel separatation are mostly unneeded 23:15
I've been Dutch all my life, but only in more formal writings I use them.
theorbtwo I quite agree, and they are very rarely used.
Er, in English, I meant.
Juerd They're not official English.
They are officially mandatory in Dutch. 23:16
theorbtwo People use a dash when they assume the audience can't tell.
Juerd For example, Belgium is Belgiōæ½xEB
But 99% just type Belgie
theorbtwo There is no official English.
Juerd Which would literally be pronounced as Belgee
castaway Queens English, of course!
Juerd theorbtwo: In fact, there are several :)
theorbtwo They used to be common in English, a few hundred years ago. 23:17
Juerd That's when Dutch and English were still dialects of the same language
theorbtwo Juerd, nothingmuch said he meant duke as in duke it out. 23:18
Juerd I don't know what that means though
castaway fight
theorbtwo Right.
Juerd I've spammed p6l too much for one day already. 23:19
Someone else do it.
theorbtwo That's OK, it looks like what is now in is great:
castaway put your dukes up - boxing, because it was originally for (umm.. die adel ;)
theorbtwo zip(), infix Ā„, or infix Y.
Juerd I don't know the English word for adel 23:20
theorbtwo Annoyingly, BTW, on a xfree86 german keymap, yen in altgr-shift-<key where Y is on an en-us>.
castaway its not occuring to me either ,)
theorbtwo Even though that key produces a Z without the altgr.
castaway gentry, nobility
theorbtwo Thus, the Marquis of Queensbury rules. 23:21
castaway right
(ok, explained that oen to death ;)
Juerd 00:25 <@Juerd> !travlang dutch english adel
00:25 <+cu2q> Juerd: [adel] 1. nobility
Travlang agrees. 23:22
castaway nice
leo weiss alles
Juerd Nah, too german :)
Adel's dutch too
castaway I figured
Juerd weisst btw
theorbtwo What was that you were saying about dialects of the same languge?
castaway leo weisst? nah
Juerd Not?
castaway no 23:23
Juerd Hm.
castaway Ich weiss, Du weisst, Er weiss
castaway scratches head.
Juerd Stupid irregular verbs
tnx.nl/3652HDKB # travlang script 23:25
For those who like it.
obra hi
Juerd hi
castaway low
obra debates between trying to do tests for vstrings in pugs and trying to refactor the perl5 debugger a bit 23:26
instead of all my work 23:27
pjcj Isn't mjd rewriting the debugger?
theorbtwo Meh, I should figure out that whole "where to stop" thing. 23:28
I added all the committers to AUTHORS. 23:29
Now I'm considering going back and adding the proper (non-romanized) spellings of their names.
castaway bah enough already ;)
Juerd theorbtwo: Do so in the -1st column
theorbtwo: As to not mess up formatting for non-utf8 terminals 23:30
It's a good idea anyway.
ā’æā“¤ā“”ā“”ā““ā£ā“Œā“ā“ā“›ā“‘ā“žā“”ā“” 23:33
That's my name :P
castaway umm, thank you
in ?
Juerd utf8, I hope? 23:34
jabbot pugs - 625 - Lots of updates. Now lists all committe
castaway no have utf8
theorbtwo Eeep, I really did give that stupid of a commit message. 23:35
crysflame i see a UTF bom character
that's utf8 without terminal support for it
crysflame argues with his terminal
Khisanth Waa|boer? 23:36
Juerd: are the J and W suppose to be differently colored? 23:37
Juerd Waalboer
No, but I don't mind :)
theorbtwo Hmmpf. 23:50
CPAN::Shell kills wide characters for me.
castaway borken
theorbtwo It thinks AUTRIJUS's ->fullname is 'Autrijus Tang'.
Juerd search.cpan.org, copy, paste 23:51
theorbtwo That sounds like work. 23:52
And not the fun kind.
castaway WWW::Mechanize it
Juerd Outsource it to India
theorbtwo Was planning on it. More or less.
Juerd++
And they probably even know how to deal with utf8 there.