pugscode.org <Overview Journal Logs> | pugs.kwiki.org down
Set by theorbtwo on 21 May 2005.
autrijus "A day may come when the hacking of humankind fails, when we forsake our keyboard and turn all programming to machines. But it is not this day -- this day we code!" :-) 00:00
nothingmuch really goes now... Ciao!
autrijus see ya
theorbtwo Later. 00:01
autrijus++
knewt autrijus: any idea when you'll be getting in to vienna? 00:02
autrijus knewt: 8th 6am 00:03
knewt ouch. that's early.
autrijus yeah.
knewt if i get the flight i'm looking at right now i'll be getting in at 3:10pm
svnbot6 r3621, nothingmuch++ | Clarify on what is a C<Syn>, where special case of thereof was confusingly described like it was any C<Syn> 00:04
autrijus ...and so nothingmuch also learned the secret of working in his sleep. 00:05
knewt no-one will ever beat /you/ at that trick though *g*
autrijus :D 00:06
knewt autrijus++ # i don't think i've ever seen anyone else write quite so much code whilst sleeping
elmex elmex--
for being lame
wolverian hmm. svk pull is slow. 00:09
eric256 why use svk instead of svn? 00:10
wolverian curiosity.
I guess pull is a bit redundant for me though. 00:11
eric256 lol. i just wondered if there was some cool svk feature i was missing out on 00:12
clkao "Be Autrijus. Use the tool."
autrijus heh. 00:13
wolverian hmm. what is the difference between svk pull and svk up -sm?
autrijus the first one is easier to type.
wolverian :)
autrijus I think I need to sleep now and punt journal until I wake up :) 00:20
autrijus waves &
clkao lazy autrijus
autrijus force me! evaluate me! reduce me to weak normal head form! ;) 00:24
theorbtwo Weak normal head form?
clkao [work] autrijus
autrijus theorbtwo: foldoc.doc.ic.ac.uk/foldoc/foldoc.c...ormal+Form 00:25
as you can see, I dyslexed it too :) 00:26
maybe weak head _is_ my normal form.
today saw 90+ commits. 00:29
crazy.
I still remember when 40 was considered normal. 00:30
and only 7 out of 90 is mine.
clkao there's no exporter yet? 00:32
autrijus is export
sub foo () is export { ... }
finer control from the user side is not yet implemetned 00:33
clkao current build system for ext sucks 00:41
autrijus please refactor away. 00:42
wolverian are trivial (spelling) fixes to 02Internals.pod okay?
autrijus wolverian: sure, nothingmuch explicitly said okay
wolverian ah, right. thanks.
now to figure out how to commit with svk :)
cognominal wolverian: I did a commit than a push 00:44
not pretending that the best way, that the one I found
wolverian right. push keeps saying 'empty merge' to me. 00:45
cognominal yea, there is all sort of scary message
wolverian I guess my svk is _old_ though
clkao warn "hate" will give me terrifying *** Error: MSG 00:46
wolverian hmm. that might have done it. 00:50
I only had to give my openfoundry password thrice :) 00:51
theorbtwo If your openfoundry username isn't the same as your local username, it can produce problems. 00:53
svnbot6 r3622, Stevan++ | tests for classes that are loaded with nested "use" statements; some more bugs in here
r3623, wolverian++ | r224@chronoa: wolverian | 2005-05-22 03:44:08 +0300
r3623, wolverian++ | Spelling fixes to 02Internals.pod
clkao it seems lives_ok { } are run in reverse order for me?
wolverian theorbtwo: it is the same.
theorbtwo: svk just did three merges, for some reason. 00:54
svk also apparently inserted some extra stuff in the commit message. :)
clkao youcan use smerge --verbatim -lf .
autrijus you can also use push --verbatim
wolverian ah. thanks! 00:55
svnbot6 r3624, autrijus++ | * sigh, theorbtwo was right. Pugs.Compile.Haskell can't use a 00:59
r3624, autrijus++ | signature for MainCC.
eric256 i'm guessing circumfix isn't implemented yet? 01:01
autrijus you guessed right!
eric256 lol. okay
theorbtwo Sorry, autrijus. 01:02
(Hey, why didn't that theorbtwo get ++ed?)
autrijus theorbtwo++
kelan is that because MainCC is defined in TH? 01:03
autrijus kelan: you know, you are right! I know how to fix! 01:04
kelan well when i went to find out what TH is, the website lists "can't splice in types" as one of the current limitations 01:05
i remember theorbtwo asking about that a few days ago
autrijus no, it's only because I specced the type from outside th 01:06
should just do it in th.
theorbtwo autrijus, when I tried that it made the impossible happen. 01:07
kelan that was funny
autrijus theorbtwo: you need Heart of Gold to leverage that. 01:08
specifically, make clean.
((a sad excuse of) journal) up. 01:09
autrijus waves and sleeps for real &
kelan okay, the scene in the recent hitchhiker movie where the heart of gold makes them all out of fabric and string: best scene i've seen in a movie in a long time
svnbot6 r3625, autrijus++ | * kelan++ for inspiring me to figure out the problem with
r3625, autrijus++ | Pugs.Compile.Haskell and missing signatures.
clkao i have basic Benchmark.pm
now how do i do format prointing
autrijus: work more! 01:10
kelan read A07!
clkao ok
is it implmemented?
e07 i think
kelan yeah, A07 just says: formats are out of the core. see damian.
theres a p5 module implementing p6 formats on cpan 01:11
clkao i surely mean in pugs 01:12
eric256 hmmm using 'say' in a class method with no parameteres is calling it with the object as the paramter...
oh i bet say using $_ as a default parameter.
svnbot6 r3626, autrijus++ | * reindent PA02's verbatim blocks. Tab-indent in code segments 01:15
r3626, autrijus++ | exceeded 80col, and Pugs source use 4-space indenting anyway.
wolverian (4 space indenting)++ 01:16
eric256 thought autrijus was sleeping. 01:17
is there a proper format for defaulting values of class attributes? 01:18
kelan he codes in his sleep
thats how he can get so much done
wolverian eric256: format? 01:19
kelan something like `has $.foo = 3`?
not sure what hes asking
probably a semi-colon would be in order as well
wolverian me neither. that's why I asked :)
eric256 has $.foo = 3 is rw;
or
has $.foo is rw = 3; 01:20
kelan probably would have to be the second, i would think
wolverian yes.
kelan you're applying the `is rw` to the attribute, not the 3
wolverian probably. maybe.
kelan are class attributes ro by default? that seems inconvenient 01:21
eric256 hmm. neither parse in pugs yet so it doesn't matter. lol
wolverian kelan: yes.
however, you can declare your class as rw 01:22
then the default switches around to rw. :)
kelan is that strictly for generating accessors? 01:23
wolverian I don't know. see 'Attributes' in S12. it doesn't mention other effects it might have.
kelan so that if you refer directly to an attribute inside the class you don't need `is rw`?
wolverian eric256: these are object attributes, by the way. class attributes are declared with 'my' or 'our'
kelan: "Some traits are copied to the accessor method. The rw trait causes the generated accessor to be declared rw, making it an lvalue method. The default is a read-only accessor." 01:24
kelan: I assume the variable itself is mutable by default.
kelan nods
that seems more sensible 01:25
wolverian I guess one would do 'has $.foo is constant is rw = 3;' to make it mutable from outside but not inside. :)
hmm. the accessor might fail though, since it's a constant now.
eric256 can't picture a circumstance where you would want it mutable by outside but not inside 01:27
wolverian me neither. :)
I guess that's a false dichotomy, anyway, as the variable is always changed inside the class (by the accessor methods) 01:28
eric256 i just found out i could start typing names and hit tab to let trillian finish then 01:29
them*
kelan and in vim you can start typing variable names and hit ctrl-n to finish them 01:30
it even cycles if there is more than one variable with that prefix
don't let long variable names annoy you ever again!
Chewie[] kelan: uhh. does that work? /me tries 01:53
kelan: holy crap. and i thought i knew everything about good old Vim. 01:54
kelan :) 01:55
ctrl-p cycles the other direction, whatever that means
but it also does the completion
so whichever is easier to hit 01:56
Chewie[] kelan: hmm. it's greedy. completes tokens; not just variable names.
Chewie[] put _testing in a comment and it grabbed it.
vcv- Ack. Is there anywhere to get a precompiled version of pugs for windows? 02:02
kelan see this message for a possibility: 02:06
hmm
www.mail-archive.com/perl6-compiler...00723.html
vcv- cool thanks 02:07
wait..i compiled pugs already.. :) 02:08
scook0 realises that "find -name '*.hs' | xargs rm" was not a clever thing to do... 02:13
knewt created my first pugs patch now :) 02:46
svnbot6 r3627, scook0++ | Fixed a comment that was confusing Haddock
ingy holaa 02:50
pugs.kwiki.org was broken 02:51
due to a bad symlink after I moved kwiki.org to a new faster server
my apologies
all fixed now.
AtnNn is $*_ specific to pugs? 02:59
meppl gute nacht 03:12
good night
knewt autrijus: when you wake up... i've made my first pugs patch :) 03:17
nothingmuch morning 05:02
knewt: do you need commit accesss? 05:19
because I can arrange that, as can stevan, theorbtwo, obra, hcchien... 05:20
ping me back within a few minutes, but after that i'll be going to work, and need to run an errand before I get there 05:21
either way please type your email in chat so that someone can send you an invitation 05:23
Qiang-zh is schwern here ? 05:24
knewt nothingmuch: [email@hidden.address] 05:25
nothingmuch Qiang-zh: occasionally, but I haven't seen him in a while 05:26
knew or knewt?
Qiang-zh nothingmuch: do you know how i can contact him ?
nothingmuch Qiang-zh: on two occasions I've mailed him and got back a reply 05:27
Khisanth jabbot: seen schwern
jabbot Khisanth: I havn't seen schwern , Khisanth
nothingmuch since I don't know him personally I can't offer a better medium... =P
jabbot: seen Schwern
jabbot nothingmuch: Schwern was seen 5 days 2 hours 53 minutes ago
Qiang-zh a friend of mine translating an article from him and he wanted to ask for a permission for that. but couldn't find his contact info..
knewt nothingmuch: as an id? knew i think
nothingmuch Qiang-zh: search.cpan.org/~mschwern/ has an email 05:29
knewt: invite sent, welcome aboard!
Qiang-zh nothingmuch: thx!
nothingmuch Qiang-zh: btw, which article is it? 05:30
Khisanth he was here a week ago ...
nothingmuch if it's part of a package of sorts, then it's probably under the GPL/Artistic licenses, in which case you're allowed
Qiang-zh nothingmuch: this one . mungus.schwern.org/~schwern/papers/...r/why.html 05:33
knewt nothingmuch: ta, got it and i 05:34
'm in
Qiang-zh translate it into chinese. we want to stop the java madness in china :D
nothingmuch knewt: great!
Qiang-zh: good luck... I wonder if an article can get a billion people to dump java ;-) 05:35
anyway, i'm off to work
Qiang-zh nothingmuch: have a good day :)
nothingmuch thanks
see you all soon =)
knewt [[ svk push --verbatim ]] to push back correctly from svk? 05:37
eric256 arg its flattening my lists. arg. 05:38
prompt ("Choose a weapon:",
[ [ 1, "Sword"],
[ 2, "Spell"] ]);
is being treated like
Choose a weapon: 1 Sword 2 Spell :
i 05:39
i've got multi sub prompt (Str $prompt) { and
multi sub prompt (Str $prompt, @data) {
but it doesn't like me ;(
stupid meaningful space. nevermind 05:46
knewt ok, fingers crossed this works properly... 05:47
dammit. it's asking me about my local username, even though i've put the remote username in the url. i wonder what i have to do 05:48
eric256 svn? or svk? 05:52
knewt svk
i've never commited back to an http upstream before. only svn+ssh 05:54
if i change the USER var for the call i wonder if it'll then cache the correct credentials for me
gah. nope. still asking for a password for my local username 05:57
eric256 i don't know svk. with svn you just enter the user/pass on first commit and it remembers them from then on. svn++
perlbot karma svn
perlbot Karma for svn: 2
eric256 lol
perlbot karma eric256 05:58
perlbot Karma for eric256: 12
eric256 perlbot karma perlbot
perlbot Karma for perlbot: 4
eric256 perlbot karma autrijus
perlbot Karma for autrijus: 328
eric256 sorry had to play for a minute
nothingmuch morning 06:10
knewt yaaaay, it worked. 06:14
svnbot6 r3628, knew++ | * Added myself to AUTHORS
r3629, knew++ | * Made backend selection case-insensitive
r3629, knew++ | * And updated t/pugsrun/09-dash-uppercase-c.t to test it
eric256 night all
knewt just had to press through the first request for password with my local username, after which it prompted me for a username choice. which it's now cached 06:15
nothingmuch knewt++ 06:16
huraah!
anywho, C++ time for me
see you all after they release me from the asylum i'll end up in
knewt heh. in a couple of days or so i think i'll go back to kernel-mode C for a little bit 06:17
nothingmuch ah, kernels should be nice... too critical to be done incorrectly
nothingmuch got a funky (adjective denotes smell, not cool level) project
which no one really cared about
knewt debugging kernel drivers is certainly much nicer when you can boot up to the login prompt in about 5 seconds 06:19
svnbot6 r3630, eric256++ | Added baddies and rooms to wizard.p6
knewt perlbot karma knew 06:20
perlbot Karma for knew: 3
knewt perlbot karma knewt
perlbot Karma for knewt: 6
knewt heh, cool. combined score of 9 already
nothingmuch ook, that's silly 06:21
this granola is soooo terrible 06:22
knewt irc is virtually the only thing i use knewt on, and even then i don't use it on efnet (although that's just because someone else already uses it)
nothingmuch so why don't you switch to 'knew'? 06:23
knewt i use yet another id for shell accounts :)
i actually started out using knew on irc, but changed over to knewt one day on a whim and decided to keep it 06:24
nothingmuch oh well =)
knewt and although i haven't got round to doing anything with it yet, i've got a domain name ingeknewity.net 06:25
with a newt as part of the logo
nothingmuch so change all your other logins to 'knewt' ;-) 06:26
knewt well, knew is actually derived from my name. knewt is just a nice play on words
nothingmuch morning castaway 06:38
morning Aankhen`` 06:39
Aankhen`` Morning nothingmuch. :-)
07:36 brentdax_ is now known as brentdax
Aankhen`` 103/5586 subtests failed 08:02
(Win32, MSVC++)
meppl guten morgen 10:31
nothingmuch my brain hurts! waaah! 11:52
too much dynamic linking for my perlish background
*sigh*
nothingmuch needs a hug and a shot 12:09
hola iblech
iblech hi :) 12:21
nothingmuch gah! 12:29
Aankhen`` Where is svnbot? 12:30
iblech oh!
I'm restarting it
weird
AtnNn it netsplit
Aankhen`` Ah. 12:31
Mmm... how would you check if $foo is a reference? 12:32
$foo.ref?
(like Perl 5's `if (ref $foo eq "ARRAY")`)
iblech if $foo ~~ Array {...}
Aankhen`` OK.
Thanks.
wolverian which does $foo.does(Array) behind the scenes 12:53
iblech And this does $foo.meta.does(Array) behind the scenes 12:56
svnbot6 r3634, Aankhen++ | * &CGI::header -- basic support for stringified cookies.
r3634, Aankhen++ | * renamed the "cookie" parameter to "cookies" to better reflect the workings of the code.
r3635, asavige++ | Added => ??:: precedence test to pairs.t 13:08
r3636, iblech++ | Added ".." as a shell command which outputs the AST unformatted.
r3637, iblech++ | FIRST { ...; undef } works now, too.
r3638, iblech++ | Added a test testing that FIRST { ...; undef } blocks really run only once.
Aankhen`` Hey iblech, is there any chance you could get the tests in t/oo/submethods.t to pass? :-D 13:15
svnbot6 r3639, adehohum++ | Tests: undef bugs, xx on lists, subrule captures
iblech Aankhen``: :) submethods are tricky... Currently I'm working on INIT {...} 13:16
Aankhen`` Ah well, everyone has their priorities. ^_^ 13:17
Ooo, overloading fun! 13:18
iblech Ok, I got INIT {...} in void context working 13:29
Now my $x = INIT {...}
Yeah, got it :) 13:36
Writing tests for it and then checking in...
Aankhen`` Could someone run t/oo/class/basic.t and see how many tests fail?
iblech sure 13:37
4-8 fail 13:38
Aankhen`` Well, I un-eval'd a lot of them, and now only 4, 6 and 8 fail.
iblech ah! 13:39
Aankhen`` Should I commit? Or is there a reason why eval_ok() was used instead?
iblech yes
eval_ok('...') doesn't find the variables
commit
Aankhen`` Indeed.
OK.
Inheritance doesn't seem to be working. 13:40
And eval() seems to create a whole new lexical -- that's not the right word, but it's the closest I could think of :-) -- context which doesn't include any variables or classes or anything.
iblech The problem is: eval_ok(...) runs eval(...) in the scope of Test::eval_ok. If you write ok eval(...), the code is evaluated in the correct scope. 13:42
svnbot6 r3640, adehohum++ | Tests: loop {} while
r3641, Aankhen++ | * t/oo/class/basic.t: un-evaled a lot of tests.
stevan Aankhen``: I have stoped using eval_* in favor of a lives_ok {} and is($val_from_lives_ok_block) 13:47
Aankhen`` OK.
stevan it tends to give better error messages
it is longer to type though
Aankhen`` Heh.
stevan ok I am starting the changelog, this is gonna be a big one :)
iblech :) 13:48
stevan and it's all your fault iblech ;)
iblech :D
Aankhen`` $karma iblech 13:51
Hrm.
autrijus greetings!
Aankhen`` perlbot karma iblech 13:52
iblech hi :)
Aankhen`` Hi autrijus. :-)
stevan hey autrijus
Aankhen`` Oh, right, no perlbot.
stevan karma iblech
knewt 'lo autrijus
stevan hmmm, the bots must have left with the freenode upgrade
svnbot6 r3642, autrijus++ | * I'm sorry but BOM <feff> must be excised from AUTHORS ;-)
r3643, autrijus++ | * s:globally// is now s:global//
r3643, autrijus++ | * To interpolate @a, @a[] is now needed
r3644, autrijus++ | * first step in making legible stack trace in error
r3644, autrijus++ | messages -- VError now carries [Pos], not Exp
r3645, Aankhen++ | * cleaned up t/operators/operator_overloading.t
stevan jabbot: you there?
Aankhen`` Not in the nicklist, at any rate. 13:53
stevan ahh,..I didnt like that bot anyway :P 13:54
Aankhen`` LMAO.\
stevan autrijus: I am going to add revision numbers to the Changelog 13:56
autrijus pugscode.org <Overview Journal Logs> | pugs.kwiki.org 13:56
autrijus stevan: sure, if you think that reads better 13:56
a change may be done over several checkins tho
stevan no, sorry, I mean this "== Changes for 6.2.3 - May 12, 2005 - r3111 13:57
autrijus like (#1234, #1235, #1236) ?
ahhh.
that makes more sense :) sure
== Changes for 6.2.3 (r3111) - May 12, 2005
stevan makes my life easier too ;)
autrijus sure :)
iblech Gonna implement CHECK {...} 13:59
svnbot6 r3646, iblech++ | * INIT {...} blocks in void context and as rvalues. :)
r3646, iblech++ | * Added a test for them (t/statements/init.t).
r3646, iblech++ | * Usual svn props added to t/rules/named_rule_capture.t.
Aankhen`` Does it make more sense to TODO all failing tests or leave them there for people to fix? 14:00
autrijus Aankhen``: take a glance at them -- if they are regressions, let them fail
if they are new tests and features, :todo<feature> them
Aankhen`` A'right. 14:01
clkao hi autrijus
autrijus greetings clkao san
did you submit your talk?
clkao no
working on it
can we get rusage in pugs?
like times in perl5 14:02
knewt clkao: backend selection is now case-insensitive
clkao knewt++ 14:04
autrijus: do you want to be cospeaker 14:05
autrijus clkao: sure, getProcessTimes can work
not sure if System.Posix.Process.getProcessTimes is avail on win32 tho 14:06
may need to Compat.hs it
knewt: want to hack it in? :)
knewt clkao: svk threw me for a bit in wanting to use my local username to authenticate with, but i eventually figured out that just hitting enter would prompt it to ask for a username. and of course it's cached now so won't be an issue again 14:07
autrijus clkao: I can cospeak it, sure
knewt: it's a svnauth thing... svn does the same
the prompt may be improved though
knewt lufthansa-- # when purchasing tickets online the credit card holder must be travelling 14:08
guess i'll try phoning them up tomorrow and see if ordering by phone is nicer 14:09
clkao autrijus: btw, does warn "foo" has to be that annoying telling me Error? 14:11
autrijus clkao: it no longer.
you are using ancient pugs
iblech "ancient" :) 14:12
clkao right, 8 hrs ago = ancient
autrijus yeah
it's 28.8k seconds ago!
clkao have you seen m$ office advertisement about dinosours?
autrijus no. what is that? 14:13
clkao very stupid everywhere in tube station 14:14
autrijus ah. I see it now.
clkao autrijus: www.microsoft.com/office/evolve/default.mspx
autrijus I already played thru it 14:15
I wonder if we should make an ad about radioactive-retroviral engineered mutant pugs 14:16
svnbot6 r3647, adehohum++ | Tests: instance methods calling other instance methods 14:19
knewt i don't suppose there's a -commits list? 14:22
iblech There is
clkao mugwump has one
iblech But I don't recall its address 14:23
rt.openfoundry.org/Foundry/Project/.../pugs/log/ is nice
autrijus knewt: mugwump's is lists.utsl.gen.nz/mailman/listinfo....gs-commits 14:24
knewt autrijus: yeah, just found it thanks to the searchable irc logs :)
autrijus >1000 commits per month
knewt oh damn. just realised that since i don't have a static i'd have to pull the email down anyway. so i might as well just put together a cronjob that runs every 5 or 10 minutes and triggers a sync whenever a threshold of new commits is reached 14:27
autrijus clkao: got some time? 14:28
clkao: I wonder if I can walk you thru in implementing times() ;)
should take ~10min 14:29
clkao evil autrijus 14:30
ok let's start
you have 10 min
autrijus cool
so first, add the times() function to Prim.
open src/Pugs/Prim.hs
go to line 1175 14:31
copy that line
change the return type from Num to List
happy?
clkao ok
autrijus now, you want to return a 4-tuple
loop up "time"
clkao btw times is not in s29
autrijus right, so we need to ping that as well.
anyway. add op0 "times" 14:32
it ignores any input args
so it's a const
clkao just below time is alright?
autrijus sure
to return multiple values, use VList
return $ VList [0,0,0,0]
but that won't work, because 0 is not Val
return $ VList [VNum 0, VNum 0, VNum 0, VNum 0]
will do.
now open another window and 14:33
"make ghci"
from pugs base path
see if it compiles
and type
eval "times()"
to see if it works
if it does, commit it as phase 1.
clkao hate
Shared object "libparrot.so" not found, required b
autrijus oh. do this
perl Makefile.PL
clkao reruns makefile
autrijus rm src/Pugs/Embed/Parrot.hs
rm src/Pugs/Embed/Parrot.o
and make ghci again
i.e. do away with PUGS_EMBED 14:34
clkao i know. :)
autrijus now write a simple t/unspecced/times.t
clkao Prelude> eval "times()"
<interactive>:1:0: Not in scope: `eval'
autrijus did you "make ghci" ?
not "ghci"
clkao what?
autrijus type "make ghci" in cmd line 14:35
not "ghci"
clkao yes.
oh it's because
Could not find module `Pugs.Embed.Parrot':
autrijus you need to type "make" first then
after it deals with Embed.Parrot you can "make ghci" again
this whole embed parrot thing is hateful because parrot has no .so form
blame (someone else, not me) 14:36
clkao ok.. slow slow slow
autrijus "make unoptimised" too
when you wait for that
you can write t/unspecced/times.t
nothing fancy, just assign the result to a 4-elem my ($x, $y, $z, $w...)
knewt oh, while i think about it, autrijus++ # unoptimised as well as unoptimized
autrijus and test that they are sane or something 14:37
knewt: yeah, I've switched to the civilised form of spelling
instead of the civilized form
knewt command-line completion of makefile targets is really nice for noticing things like that 14:38
autrijus clkao: now, after both are done, implement the real thing by opening Compat.hs
go to line 31ish, its export list
add getProcessTimes
knewt me-- # pronouncing as zee-three rather than zed-three the other day
autrijus and goto line 122ish, add this stub: 14:39
getProcessTimes = failWith "times" 14:40
we'll deal with win32 later.
after that's done, type ":r" in the ghci prompt
make sure it compiles, then commit it
that's phase 2.
stevan wow this is a big changelog :) ... 50+ lines and I am only 3/4 of the way through the svn log
lambdacamels++
autrijus stevan++ # changelog
clkao sloooow 14:41
stevan iblech++ # I have lost count of how many revisions are his
autrijus clkao: actually, come to think about it, we only need 4 of return value of the 5, so it's better to handle that in Compat.hs 14:42
see www.haskell.org/ghc/docs/latest/htm...ocessTimes
stevan oh, autrijus when you are done with this, I found another OO bug related to the nested use
autrijus clkao: but it's okay for a first cut... commit first
clkao both seems to work
autrijus as long as it compiles it's good to commit 14:43
ok, commit then :)
make sure the test fails!
jhorwitz mornin
autrijus you can introduce a sleep 1 and make sure the time elapsed is >0, for example
hm, but only system time, it sleep
ah. you can introduce a small loop to force elapsed user time. 14:44
so you can test for the first two.
clkao autrijus: the test doesn't fail
autrijus clkao: ok. commit anyway!
clkao ha i will make it fail
svnbot6 r3648, clkao++ | * Add the times() primitive.
r3648, clkao++ | * Export getProcessTimes.
autrijus ok, you work on the test. I'll look at Compat
heh, you added a semicolon 14:46
return $ VList [VNum 0,VNum 0,VNum 0,VNum 0];
crazily, that is valid haskell.
haskell++ # timtowtdi
stevan iblech: you should write a bot to add svn properties for you :) 14:47
clkao bah. i was using ok ()...
knewt stevan: from the beginning of the repo, the top 5 are: 1408 autrijus / 421 iblech / 323 Stevan / 176 corion / 116 nothingmuch
clkao so it always okay'ed
fuck the gap
iblech stevan: Yeah :)
stevan knewt: that looks about right 14:48
iblech stevan: Ii might not be that difficult really -- the bot just has to fire two svn commands and has to search for files not ending in \n 14:49
s/Ii/It/
clkao it has been almost 20 mins... where's my times() ?
stevan iblech: svnbot could fire that off for every commit
knewt stevan: and a total of 79 different committers 14:50
svnbot6 r3649, clkao++ | More meaningful test for times().
autrijus clkao: your times() is there
r3650
stevan knewt: I use this (which theorbtwo wrote) to check that info
* `next` now re-evaluates condition in `loop` constructs;
autrijus but! it returns clock ticks
stevan damn wrong pastboard :P
clkao hte
autrijus anyone knows how to turn clock_t to seconds?
clkao it has child info too?
stevan svn log | grep '^r[0-9]'| cut -d'|' -f2 | sort | uniq -c | sort
clkao HZ iirc
HZ
/ HZ 14:51
knewt stevan: for me, svk log -n0 //pugs/trunk | perl -ne 'print "$1\n" if /^r\d+ \(orig r\d+\):\s+(\S+)/' | sort | uniq -c | sort -nr
clkao stupid client
autrijus 1000000 ?
1000000 that is
clkao it hsould be a constant defined somewhere
autrijus ah, clocksPerSec
jhorwitz autrijus: CLOCKS_PER_SECOND in time.h 14:52
clkao CLOCKS_PER_SECs
autrijus ok, done 14:53
committing
clkao yay test apssed 14:56
svnbot6 r3650, autrijus++ | * turn processTimes into Val.
autrijus now write another test to make sure they are not out of proportion ;)
i.e. should < 10 or something
clkao i am lazy
stevan wow,.. over 600 new tests have been added
autrijus do it now! :) 14:57
stevan (perl6 rules tests I assume)
autrijus is holding off commits until test is seen
stevan ouch
clkao aha
stevan withholding implementation for tests :P
some tough-love from autrijus
autrijus stevan: I'm merely returning what I got from clkao in #svk
stevan :D 14:58
clkao can't use cmp_ok .. '>' ? 14:59
iblech No, but you can use ok ... > ..., ...
stevan clkao: you need to do &infix:[>] (if that works)
autrijus er 15:00
probably not.
$ ./pugs -MTest -e 'cmp_ok(2,&infix:<<>,3)' 15:01
this works
svnbot6 r3651, clkao++ | Test times for sensible increment.
autrijus not very readable
$ ./pugs t/unspecced/times.t
1..1
ok 1 - something changed in times()
ok 2 - sensible time spent
# Looks like you planned 1 tests, but ran 2
I'll fix this. 15:02
clkao gr.
autrijus cmp_ok(@end[0] - @start[0], &infix:Ā«<=Ā», 10, 'sensible time spent');
works
clkao does it report properly when failed?
autrijus I don't know, it should 15:03
clkao it was getting got: undef, expectet: undef
autrijus it should probe for &code.name or something
ah. then it's borked. not too worried though
clkao because cmp_ok doesn't give got and expected for proclaim
autrijus you can fix it if you want :)
so it took 30 minutes... sorry for that ;) 15:04
but you did get times().
clkao $compare_func.name doesn't owrk ? 15:05
autrijus looking
implemented. committing 15:06
svnbot6 r3652, autrijus++ | * readjust times() return values by clocksPerSec,
r3652, autrijus++ | which seems to be defined as 1M by POSIX.
r3653, clkao++ | plan properly.
r3654, autrijus++ | * use the real <= for testing
autrijus comt to think about it, I'll do .arity too 15:07
both done 15:08
r3655, enjoy
stevan talk about moving target, 10 revisions have happened since i started the changelog ;) 15:09
autrijus blame clkao and his Benchmark.pm ;)
clkao poor stevan
autrijus clkao: so you ready to commit Benchmark.pm for 6.2.4?
stevan clkao: its fun :)
clkao er, it depends 15:11
autrijus you have ~24hrs.
clkao cmp_ok fixed
autrijus clkao++
clkao things like:
# Failed test (t/unspecced/times.t line 15, column 1-68)
# Expected: '>= 10'
# Got: '0.000069'
autrijus ooh pretty
lol 15:12
proclaim($test, $desc, $todo, $got, "{ $compare_func.name } $expected");
svnbot6 r3655, autrijus++ | * &code.name, &code.arity
r3656, clkao++ | Proper error failure when using cmp_ok.
autrijus I would've written
clkao why's that funny?
autrijus proclaim($test, $desc, $todo, $got, "$compare_func.name() $expected");
but that's bikesheding
clkao oh ok. i'm new to this bloody language
autrijus it's funny because the new interpolation thing seems to be confusing the hell out of everybody
clkao aha
it was confused yesterday so i make use of it today 15:13
iblech autrijus: Is there a particular reason Main.doParse uses an emptyEnv and not tabulaRasa?
stevan autrijus: ChangeLog done, got a second to look at my nested "use" class issue? 15:14
autrijus stevan: sure
stevan I already have tests :)
t/oo/class/nested_use.t
it fails to find the inherited methods
autrijus iblech: I don't quite recall a reason
lookin' 15:15
iblech autrijus: Ok, I'll change it then, as it b0rks INIT and CHECK
autrijus please do
iblech++
stevan: hrm, weird. seems like the opEval is not propagating Env up properly
I'll attempt a fix... but shower first 15:16
stevan autrijus: ok thanks, I need to shower too and run some errands. I will check in later :)
autrijus =)
stevan++
stevan autrijus++ # cause I know he will fix it and commit from the shower :P
autrijus talk about subtle nudge :) 15:17
svnbot6 r3657, Stevan++ | ChangeLog for 6.2.4
r3658, autrijus++ | * bikeshed patch to clkao++'s interpolation in Test.pm
stevan it is "thanks in advance" :) 15:18
autrijus ok :)
eric256 Prim.hs fails to compile! ;( 15:20
Constructor `ProcessTimes' should have 4 arguments, but has been given 5 15:21
autrijus oops 15:22
sorry. fixed, svn up
eric256 thanks.
i just snuck an update in at the wrong time there?
'svn up' sounds like a battle cry or something 15:23
Corion Hmmm. Does Perl6 have a LIST version of qx ? I want to do system(LIST) but capture the output without doing ugly trickery ... Hmmm - maybe I should Just do the ugly trickery ... 15:24
autrijus I've always wanted that 15:25
Corion autrijus: What is the Perl6 qx syntax anyway? :) 15:26
autrijus q:x 15:27
iblech: r3660 has some style hints :)
svnbot6 r3659, autrijus++ | * oops, ProcessTimes stub was bad
r3660, autrijus++ | * clean up iblech++'s FIRST block code.
Corion I think I'll simply create a second Perl6 file, which only runs the system(LIST), and "include" that file via q:x() then.
autrijus ooh hacky.
Corion resp. via system(STRING) :) 15:28
(because we don't have q:x yet, I think)
autrijus we don't yet.
Corion autrijus: I'm working on better tests for system(LIST), and it seems that Haskell is better there already than Perl5 (for Win32)
autrijus cool
iblech autrijus: Sure. BTW, style: Is there an easy way to foldl start_elem [elems] $ code? I.e. to place the code at the end of the list 15:29
autrijus huh?
iblech I have: foldl (\a b -> ...) start_elem [elems]
I want: xxx start_elem [elems] (\a b -> ...) 15:30
Because the lambda may be long etc.
autrijus well...
Corion iblech: foldl do_fold start_elem [elems] where do_fold = ...
autrijus right.
if you want it inline:
(\f -> foldl f start_elem [elems]) $ \a b -> ...
if you want to be very sick: 15:31
flip (flip foldl start_elem) [elems] $ \a b -> ...
iblech Ah :) Thanks, that's it
(Not the flip one :))
autrijus whew :)
clkao can't use >>-<< ? but >>+<< works? 15:39
autrijus clkao: you can hack Parser and Prim for one line each 15:40
to get >>-<<
but the correct solution is to do what iblech did for [] metaoperators
clkao huh?
* and / also works 15:41
why doesn't - ?
autrijus clkao: Prim line 1314
clkao ha
autrijus Parser line 889
commits welcome ;)
clkao i thought >> op << is something generic
autrijus yeah, just like [+]
but only very recently iblech hacked in code for [...]
I'm sure >>...<< will follow soon but it's not here yet
clkao cool 15:42
autrijus eric256: is win32 happy now?
clkao i added >>-<, but it's not magically hooked to - ? 15:43
autrijus hm? it should 15:44
commit for us to see?
eric256 yep thanks
autrijus cool, eric256++ 15:45
Corion: can you check if getProcessTimes is there or easily emulable on win32?
if not, t/unspecced/times.t needs to be skipped entirely on win32
Corion checking (but unlikely I think)
Let's see what Perl5 does
autrijus nod. I'll bbiab
Corion++ 15:46
&
Corion Should be "easily" emulable as Perl5 knows it :)
Ah. GetProcessTimes() in the Win32 API. 15:47
GHC doesn't have it already?
autrijus look at the module help index
clkao autrijus: see hyper.t
autrijus on unix we have
file:///usr/local/share/doc/ghc6/libraries/unix/System.Posix.Process.html#t%3AProcessTimes
eric256 well there ever be a .perl for objects that produces code that can actualy recreate the object? 15:48
autrijus eric256: possible. not sure
Corion autrijus: If it's not already there, it should be easily written IMO 15:49
Corion syncs
svnbot6 r3661, clkao++ | Declare >>-<<.
autrijus Corion: would you do so? that will make Benchmark.pm happy on win32
Corion autrijus: Eh - where does times() live yet? Or has it not been written yet? 15:50
Ah - my tree was out of date :)
We should maybe propagate our Win32 enhancements upstream so the GHC folks have to worry about them instead of Pugs :) 15:51
Corion sets out to (re)implement getProcessTimes from the Win32 API 15:53
theorbtwo wonders who was talking about me. 15:54
autrijus Corion: when you have time, mail glasgow-haskell mailing list to tell them to take a look at Compat.hs :) 15:55
Corion autrijus: Yeah ;) 15:56
Ewww. Win32 API GetProcessTimes() takes reference parameters :(
So more buffer magic is needed ...
autrijus clkao: r3662, enjoy 15:57
jroc join /pugs 15:58
autrijus greetings jroc.
jroc hi! sorry 'bout the "join" noise 15:59
clkao happy
iblech Yay, CHECK {...} implemented, cleaning up and writing a test... 16:00
autrijus iblech++
really bbiab :) & 16:01
svnbot6 r3662, autrijus++ | * >>-<< and ƂĀ»-ƂĀ«.
clkao when is 6.28.0 coming
vcv- hyperoperators work now?? 16:06
theorbtwo Ah, read the log (more or less). 16:07
vcv- sweet
eric256 can't get into the grove working on his wizard.p6 project...anyone need some grunt work done anywhere?
Aankhen`` iblech++ 16:08
eric256 guess i'll play prince of persian instead ;) 16:11
persia*
vcv- either Pugs.AST.Internals is really big, or my command window is frozen 16:13
iblech It's really big :)
vcv- stilll.. it shouldnt take THAT long 16:14
ah it did
knewt hmm. did svnbot b0rk the utf8 in that last commit for anyone else, or is it just my config? 16:15
vcv- its just you 16:16
iblech kelan: svnbot, or more exactly "svn log" on the server svnbot runs on is b0rked
err, sorry kelan
svnbot6 r3663, iblech++ | * CHECK {...} in void context and as a rvalue works. :) 16:18
r3663, iblech++ | * Added a test for CHECK (t/statements/check.t).
r3663, iblech++ | * "." in interactive Pugs uses an prepared env now (tabulaRasa).
r3663, iblech++ | * Usual svn properties.
mrborisguy can somebody help me with an operator... i'm thinking of the 'x' operator, but does it just work with strings now? what i want is @array = ("this") x 3, and @array.perl.say should be ("this","this","this"), but instead i get ("thisthisthis"). what operator should i be using? i couldn't find it in the synopsis. 16:19
vcv- prepared env?
mrborisguy: easy!
Except I don't know :)
pjcj mrborisguy: xx I think
mrborisguy haha, yeah, i was thinking it's gotta be easy!
iblech mrborisguy: xx
vcv- yeah, thats the one 16:20
mrborisguy yep
thanks!
vcv- x is scalar context, xx is list :)
iblech vcv-: Previously, the "." command in interactive Pugs used an emptyEnv, i.e. an env with no variables in it
vcv-: But that broke INIT and CHECK, as these push to the compiler array @?INIT and @?CHECK respectively
vcv- gotcha :) 16:21
iblech vcv-: Now "." uses the standard preparedEnv too, which contains these vars
vcv- Awesome 16:23
Juerd [~]++ 16:24
[~] @foo looks so much better than @foo.join('') 16:25
iblech Yeah
Juerd Take that, most other languages!
masak *lol* 16:26
clkao i wonder which topioc to put svk under. linux or emerging.. i guess not perl, its so unpopular :P
integral do we have p6 SVN or SVK bindings yet? ;-) 16:30
clkao integral: that depends on bridging parrot nci to native function 16:31
integral hmm, maybe we need a Pugs/Perl6 NCI which can either use Parrot NCI or Haskell FFI 16:32
clkao which will happen in 2 or 3 weeks maybe :)
*nod*
hcchien 2 or 3 weeks for p6 SVK? 16:33
clkao bridging parrot nci to native function
Juerd Perl 6 needs a 99.97% speedup :)
iblech Hmm... is >>[>>+<<]<< allowed?
Or rather, [>>+<<]<< 16:34
Juerd iblech: No, [op] is prefix, not infix.
iblech: That, should.
iblech Ok
clkao hyper operator makes Benchmark.pm so easy 16:37
Juerd Why? 16:39
cognominal hi, what is the meaning of @ in Haskell sources?
vcv- hyperoperators, metaoperators, and context operators make me giddy
Juerd (Perhaps this is a nice subject for a Perl Monks post, comparing 5 vs 6? Advocacy!)
clkao because it needs to subtract realtime, usertime, cputime, child usertime, child cpuytime
which is stupidly hateful everywhere 16:40
integral cognominal: you use it in a pattern to both bind a var to the thing being matched, and to match things inside that
Juerd clkao: Do you have a code example, with its old counterpart?
clkao i will soon
Juerd Neat
iblech cognominal: @ allows you to, um, specify an argument in more detail. For example: name@('I':_) would match only if the name begins with 'I'
integral cognominal: eg. v@(VStr str), that binds v to the (VStr _) value, and binds str to the value boxed in the VStr
Juerd I love these practical examples
clkao anyway 16:41
for (my $i=0; $i < @$a; ++$i) {
push(@r, $a->[$i] - $b->[$i]);
}
was like this
so @a >>-<< @b.
Juerd Oh, that *is* nice. 16:42
cognominal do you know where is the documentation for that feature?
iblech [Haskell] Is there a function like map, but of type (a -> [b]) -> [a] -> [b]?
integral iblech: concatMap
iblech integral: Thanks :)
integral iblech: or >>= in a monad
flip >>= :: (a -> m b) -> m a -> m b
vcv- hyperoperators, metaoperators and context operators oh my! 16:43
Hm. I've seen :: used in different contextes. what is that context for, integral?
integral just declaring a type
vcv- oh thats haskell, oops 16:44
haskell still confuses me. im learning it very slowly :) 16:45
svnbot6 r3664, Juerd++ | add docs/quickref/reduction 16:50
vcv- props to you guys for a painless build/install process for pugs on Win32 :) 16:52
Juerd heh, [.] < Some::Class method method method >
Some::Class.method.method.method
iblech Hm... I think this should rather call "Some::Class".method.method.method 16:54
Juerd Same thing.
iblech To do want you want you've to write [.] Some::Class <method method method>
Juerd A string value can be used in a class's name's stead.
This doesn't mean "".method is valid syntax for that 16:55
But $foo.method is, isn't it?
Hm, never realised. It no longer CAN.
clkao hyper uniary is too evil
svnbot6 r3665, Juerd++ | more reduction
iblech Really? How does the compiler know which method to call in the following example: "SomeClass".method or SomeClass.method
Juerd iblech: You're right. 16:56
iblech (Class objects)++
Juerd And if you love them individually: (Class objects)>>++ 16:58
:)
mrborisguy vcv-: did you get pugs to install on Win32? 16:59
vcv- Yes
iblech Juerd: :)
mrborisguy I couldn't get it to work... what version? the latest released, or a snapshot of some sort?
vcv- latest. i just now updated through svn and rebuilt
Corion getProcessTimes for Win32 will be delayed - I don't know if I'll finish it today (that is, within the next 4 hours or so) ...
mrborisguy did you use nmake? 17:00
vcv- What's that do Corion? maybe i can help
ihb is there any installation docs for pugs installation for Win32? i took a quick glance at pugscode.org and in the dist, but didn't find any. shall i go look again?
vcv- yes mrborisguy
mrborisguy huh... alright
Juerd Why are so many programmers using Win32?
vcv- i use vs.net2003 tools (cl and link), not the free toolkit though
that may be why
Juerd I'd expect more sanity.
Arathorn is ^ still used as a prefix for hyperoperators?
Juerd Arathorn: No
vcv- Juerd: lets not get into this :)
Corion Juerd: Just because you don't know it, Win32 isn't hard/ugly
vcv- win32 is easier to program for, i would say
Juerd Arathorn: It's >>+, >>+<<, +<<
Arathorn it's ōæ½xBB and ōæ½xAB all the way now?
cool 17:01
Juerd Corion: It's ugly and hard.
Corion vcv-: It's a simple wrapper around the Win32 GetProcessTimes() call. The tricky thing about it is that it needs some buffers and I am lazy/not in the mood at the moment
Juerd: Bah
Juerd Corion: I know Windows all too well. I've used it longer in my life than I've used other OSes, and I still see the result of its stupidity almost daily, in my work as sysadmin.
vcv- Corion: ok, well would you mind if i took a stab? though you'd have to point me in the right direction in the pugs code. win32 api im good with though
integral MFC isn't easy either
Corion vcv-: In principle, it can be mostly cloned from the other stuff in src/Pugs/Compat.hs
vcv- hm..
Corion vcv-: Not at all - I'm pointing you in the direction ;))
vcv- Juerd: lets not get into OS wars, please.
Juerd vcv-: Why not? 17:02
vcv- because its stupid
ihb Juerd: not all programming is OS-close. :-)
Juerd Why is it?
Khisanth speaking of hyperops are there shorten forms of them? Like $a = $a + $b can be $a += $b, is there >>+<< version of that?
vcv- ive been through it many times before.
i get annoyed with people insult me for using windows
Corion vcv-: getEnv is an ugly hack that allocates a string buffer. Did you see how getProcessTimes() is implemented in Perl5 ? win32/win32.c
integral Khisanth: >>+=<< ?
vcv- no i did not, ill take a look
Khisanth integral: sorry I asked ... 17:03
that looks too horrible to be true!
autrijus hm, >>+=<< is probably always the same as >>+<<=, tight?
Corion vcv-: I plan on cloning the Perl5 implementation, basically - I'll nopaste what I currently have
vcv- ok, cool :)
integral Khisanth: you can slap the meta-operators on any appropiate op
Arathorn >>+<<= seems intuitive...
autrijus [+=] $a, $b, $c;
Juerd autrijus: I don't think >>+<<= is valid.
autrijus Juerd: yeah, I think so too 17:04
pasteling "Corion" at 84.176.48.225 pasted "Implementation of getProcessTimes" (18 lines, 805B) at sial.org/pbot/10322
integral that doesn't look right :-/
Juerd Meta-ops play at different levels.
First, = metas to +, then >><< to +=
vcv- Juerd: just one thing i will say. for a contract i just finished, ihad to program for linux (debian). i hated it. its not even POSIX compliant, and its debugging tools are very poor.
Khisanth Arathorn: >>+=<< would be more intuitive if you consider += to be an operator
autrijus hm, that ends up as (($a += $b) += $c), which doesn't make much sense
Juerd vcv-: I see.
integral vcv-: hmm, which bit of POSIX did you find missing?
Corion vcv-: That declaration should import GetProcessTimes() as win32GetProcessTimes, and the call already is there as well, all that's missing is some call to mallocBytes(), some pointer arithmetic (incPtr, decPtr) and you're done 17:05
Arathorn is trying to work out whether there's a way to calculate a dot-product on two vectors with a single hyperop
vcv- integral: with pthreads
integral Arathorn: [+] (@a >>*<< @b) ?
Corion I'll be away for some time now, but mention any questions you have, I'll see them ;)
Arathorn or do you have to just sum(@a >>*<< @b) with a reduction?
Juerd vcv-: So would you say Win32 was any bit nearer to POSIX compliancy than Linux?
integral vcv-: ah. I never use threading :-)
vcv- k, thanks :)
Arathorn integral: ah, okay
vcv- Juerd: no, but at least it doesnt claim to be
integral Linux claims that it's been certified as POSIX compliant? 8-) 17:06
Juerd vcv-: So in your world, is not-trying better than trying and fail?
integral: No.
vcv- grr. why are you being so so persistant about it? i dont think there is anything wrong with people using linux, why should you care if others use windows?
Juerd vcv-: Well, I find it REALLY WEIRD that you let POSIX compliancy enter a discussion about linux vs win32, in windows's favour. 17:07
vcv- not in windows favor at all
that wasnt the point
Juerd Then I probably agree.
But i'm much more interested in windows versus rest of the world 17:08
vcv- maybe its partly my fault, but when i was looking up information on pthreads, one site i found that had good info said it wa POSIX compliant
Juerd Rest of the world including mac osx.
vcv- so i went with that and wrote the code around that. then bam, i had issues, and turns out something involving child/parent threads wasnt posix compliant
so i had to rewrite
integral would blame that more on the web spreading wrong information again 17:09
vcv- BSD and OS X i admire. linux i do not
right
ubuntu is very nice though. i have that installed. but i still prefer windows as my desktop os.
Juerd Note that Linux is usually described as *mostly* POSIX compliant.
vcv- yeah. which is sort of stupid to me 17:10
Arathorn hmm - is it a feature or a bug that the reduce op doesn't work on say( [+] (@a >>*<< @b) ~ "foo"); ?
Juerd vcv-: Gnome sucks. Kubuntu is nicer, imnsho.
vcv- juerd: i agree. havent tried kubuntu yet though
Arathorn (r3633)
vcv- is it updated in parallel to hoary?
Juerd Arathorn: That's [+] $one_thing
vcv-: Yes. 17:11
vcv-: In fact, kubuntu is a meta-package, available in hoary's repository.
vcv-: apt-get install kubuntu
That changes an existing ubuntu installation into kubuntu.
vcv- ah.
ill try it.
anyway, Juerd.. i do sort of understand why you're confused why people who like perl so much would also use Windows. linux is very similar to perl in a way. but personally, i want my os to just work and not have to dig into config files all the time, and compile stuff myself. you know?
Juerd Do note that to really get kubuntu, you have to install some extra packages manually (like kmail) and remove the originals (evolution)
vcv-: Then Mac OS X and Kubuntu are great alternatives. 17:12
stevan autrijus: any progress on the nested "use" issue? no pressure, just checking :)
Juerd Apart from the fact that the former doesn't work on non-ppc
Arathorn ah - i see; the (@a >>*<< @b) gets autojoined in the scalar context for concatting with "foo"
and then there's only one thing to add up
cool
vcv- right. which is why i do use ubuntu 17:13
but im a windows programmer :)
Arathorn (how come it gets autojoined with spaces in between, though?)
vcv- and i still hate fonts on linux :)
Juerd Arathorn: Array stringification is like that.
Arathorn but @a=(1,2,3); say scalar(@a); # gives 123? 17:14
Juerd It shouldn't
Although perhaps say then returns an arrayref which it knows how to dereference.
s/returns/gets/
Arathorn and dereferencing doesn't get autojoined with whitespace?
Juerd Any dereferencing done is done by say() itself. 17:15
vcv- Now Juerd, dont question why I use Windows ever again ;)
Juerd vcv-: Why the hell do you use Windows?
vcv- :p
Juerd That is, if for anything more than games.
iblech Arathorn: And say() doesn't autojoin with whitespace. If you want to have spaces, you say ~@array
Arathorn hang on, scalar() does still exist, right?
Juerd Or Windows-specific development.
Arathorn right
Juerd Arathorn: It should 17:16
Arathorn ~ being unary string concat, or forcing a stringy context?
Juerd And say should not do anything with references except stringify and print.
vcv- lots of reasons, but i dont like having to justify why i use it to other people
Juerd scalar(@foo) is the same as \@foo
vcv- like i said.. fonts is a big one :)
Juerd Arathorn: Forcing stringy context. There is no unary string concat, except perhaps [~]
vcv-: How, fonts? 17:17
Arathorn nods
okay - i need to go and revise my apocalypses, methinks ;)
Juerd vcv-: I have a shitload of truetype fonts loaded in Linux. It works very well.
vcv- Not as well as cleartype
Juerd Arathorn: Synopses.
vcv-: Oh, I *hate* cleartype.
vcv- thats debatable i suppose, but cleartype looks MUCH better to my eyes
Juerd It makes otherwise beautiful fonts into ugly bundles of over-smoothness.
vcv- most people hate it because theyve never used the tweak tool
Juerd That can only improve it so much 17:18
Arathorn i thought truetype font hinting was still buggered under X because of Apple's patents?
Juerd Not enough.
vcv- it is Arathorn
BCI is nice, but still not enough
Juerd Arathorn: I have no idea, but I like freetype's anti aliasing much more than Windows's or Mac OS X's
Arathorn eye of the beerholder and all that, i guess :)
vcv- i like it the least
Juerd Especially Apple makes the fonts too smooth, anti-aliasing even straight lines (Why? Hate my eyes, or something?) 17:19
vcv- whats it matter what os i use anyways. we're all here for perl, thats all that matters. the one true language
Juerd vcv-: Really? I'm here only to bash Windows and PHP
vcv- :/
i cant tell if you're being serious or not
php i will bash with you though.. 17:20
Juerd A bigger problem is that I myself cannot tell either.
vcv- All I ask is that you dont bring it up anymore.
Juerd I can't promise you anything
vcv- well if you do when im in abad mood, i will rant and tear linux apart :p 17:21
Juerd Oh, go right ahead.
gaal hi. anyone have any luck building parrot on msys?
vcv- but im not kidding..if you keep doing it, im just straight out ignoring you
Juerd Your ranting can't take down the numerous Linux based servers I admin, while my even looking at the enclosures can crash the few Windows ones. 17:22
Arathorn does the obligatory Jack Nicholson "why can't we all just get along" line from Mars Attacks
vcv- alright.. fine
Arathorn (nak nak nak)
Juerd :)
vcv- * Added Juerd!*@* to ignore list
stevan wonders why Juerd is trolling today?
Juerd That's not fair. I read your ignoring thing after I typed that line :)
vcv- shrugs. he was nice to me before 17:23
Juerd stevan: No more today than any other.
vcv-: I'm still nice to you, just not to your platform of choice.
stevan thinks maybe Juerd got a bad cup of "coffee" at the local Coffee shop 17:24
vcv- Sounds like it :/
Juerd deeply hates microsoft and windows.
vcv- Probably someone who hasnt used windows since the 9x series :)
Juerd stevan: I don't visit coffee shops. I don't like any of the stuff they sell, and I don't like the beverage they're named after either.
stevan does too, but cares so little about it he doesn't care to discuss it 17:25
Juerd vcv-: I switched to Linux for my main platform after using Windows 2000 for a year. I've actively used Windows XP, and I very regularly use other people's Windows XP boxes.
vcv- oh well. maybe ill take him off in a few days and he'll be in abetter mood 17:26
Juerd My mood is alright, thank you. 17:27
japhy what do I need to download/compile to start testing perl 6? 17:28
pugs? parrot? what...?
stevan GHC 17:29
Pugs
then probably parrot if you want Rules
revdiablo ghc 6.4 or higher
Juerd japhy: Well, first, svn or svk :)
stevan I think actually most of this is in README :)
Juerd japhy: As Pugs *releases* lag too far behind to be a good target for development.
Arathorn hm, I assume the hyper/reduction-metaops don't work with the parrot backend?
stevan yes, svn/svk does help
japhy what is svn/svk?
vcv- svn is very simple too. and it doesnt like as bad as cvs
Juerd japhy: Versioning tools. 17:30
vcv- version control system
stevan japhy: a better CVS
Juerd japhy: Are you familiar with cvs?
japhy yeah, a bit.
Juerd japhy: It's much like that, but better. That's enough to know at this point :)
stevan svn is really easy, you will like it
japhy I'm not very concerned with that right now, though. I just want a snapshot that I can play around with.
when I said "test", I meant "fool around with"
Arathorn has an $P15 = $P16 >>*<< $P17 in his AST which surely cannot be valid parrot...
stevan japhy: best snapshot is from svn
Juerd japhy: Go to the pugs homepage, there's a "svn co" command line to copy and paste.
japhy my gf's not around for me to "test".
vcv- does perl5 still use cvs, or svn now?
Juerd japhy: That'll "check out" (download) the current version 17:31
stevan japhy: here is a good svn book svnbook.red-bean.com/en/1.0/index.html
Juerd japhy: To upgrade your local copy, run "svn up"
stevan vcv-: I think perl is on svn now
svnbot6 r3666, iblech++ | Added [*], [//], [||], [,], and the usual svn properties to
r3666, iblech++ | docs/quickref/reduction.
r3667, Stevan++ | Perl::MetaModel - more work on the meta-meta-hierarchy document. I think I am starting to finally get this all into place (NOTE: its still pretty rough though)
Juerd japhy: And to commit changes back to the central repository, use "svn commit" (if you add new files, use "svn add filename")
japhy: Don't worry about making mistakes. Everything is revertible. 17:32
japhy I wasn't going to be *changing* things
I just want a copy of perl6 so I can try it out. get myself into the perl6 mindset. 17:33
Juerd Oh, you will.
japhy s/mind/operator/
Juerd Because whenever you find a bug, you will be asked to write a very small test script :)
japhy heh
Juerd And explaining you how to use svn once is easier than copying and pasting your patches repeatedly 17:34
For you too, I add :)
vcv- for juerd, the man on ignore: 2os[Windows Server 2003 (5.2 - 3790)] 2uptime[66d 3h 52m 54s]
Juerd vcv-: Impressive.
revdiablo ooh, color and dick measuring in one message! 17:35
vcv- heh :p
sorry about the coloring
japhy ok. once I get used to perl 6, I'll get into that whole SVN thing.
Juerd vcv-: Does this mean you have neglected to install recommended critical security updates for over two months? Really?
japhy: Okay
japhy: Do you have GHC? You'll need a recent version (6.4 or later)
japhy GHC is Haskell, I'm assuming...
Juerd Yes
jroc Juerd: why 6.4 or later? 17:36
japhy right-o. if I don't have it, I'll get it.
Juerd japhy: See pugs.kwiki.org/?Perl6Nomenclature
revdiablo pugs uses some features that only exist in ghc 6.4 and up
Juerd jroc: Because Pugs uses some of the new features.
jroc: This project isn't aimed at production code, so there's absolutely no motivation to waste time keeping things backwards compatible :)
jroc Juerd: maybe this isn't the right place, but, examples of new features?
Juerd jroc: I have no idea, sorry. 17:37
jroc Juerd: no worries... just curious
Juerd japhy: What platform do you use?
autrijus Juerd: 17:38
undef<< @foo;
is that legal?
i.e. undef is a prefix op, isn't it? 17:39
Juerd Yes, that should undef for @foo
japhy ok, I'm downloading GHC 6.4 now.
17:39 bd__ is now known as bd_
japhy while I'm waiting... 17:39
Juerd As should foo << @foo, given sub foo ($bar) { ... }
japhy does %hash{@keys} >>++ do what I think it does? 17:40
Juerd As "unary named ops" and "functions" are generally indistuinguishable.
autrijus japhy: yes it should.
Juerd japhy: Depends on what you think it does, really.
japhy I expect it to act like:
$hash{$_}++ for @keys;
Juerd Yes, that it does.
japhy awesome.
Juerd Except it's %hash{$_} in Perl 6
Sigils don't change anymore.
autrijus Juerd: what about listops? 17:41
Juerd $hash{$_} is short for $hash.{$_}, which is what was $hash->{$_} in Perl 5.
autrijus do they get hyper form as well?
Juerd autrijus: I hope so, just for overall consistency.
autrijus say<< @blah;
japhy I was showing Perl 5 code.
Juerd japhy: Then disregard what I said.
autrijus: The problem is having multiple arguments, of which you want only one hypered.
autrijus Juerd: what about listfix? 17:42
Juerd autrijus: Damian has been fighting all syntaxes for that, but I haven't read good explanation yet.
autrijus: What's listfix?
vcv- say << @blah; #<-- passes each item of @blah to say?
Juerd vcv-: One by one, yes.
vcv-: It's like (say(@blah[0]), say(@blah[1]), ...) 17:43
autrijus Juerd: Y
and chainops like eq
Juerd autrijus: I don't know how that can be useful, so I have no answer ready
autrijus >>eq<<
Juerd eq should definitely be hyperable
autrijus okie.
Juerd As should ~~ 17:44
vcv- hm. i assume the answer is yes.
japhy at the risk of asking a FAQ... why Haskell?
Juerd japhy: Because it has the features.
vcv- japhy: good for parsing
Juerd japhy: And see what was possible in 100 days.
japhy easier than lex/yacc?
japhy has never used Haskell 17:45
Juerd japhy: Oh, much. See Parser.hs
Neither have I. Using pugs doesn't require understanding of Haskell, fortunately.
autrijus japhy: like, 1000 times easier than lex/yacc :)
japhy hmm, cool.
juerd - Oh, I didn't think it did.
juerd - I'm just saying, I know nothing about it 17:46
vcv- lex/yacc is nasty :)
jroc how does Haskell compare with Common Lisp w.r.t to doing pugs?
autrijus jroc: I havn't used common lisp, so I can't say anything about it
Juerd jroc: Superficially, it has a much nicer set of operators :)
jroc fair enough... I'm just trying to learn CL but perhaps I should switch to Haskell 17:47
Juerd japhy: svn.perl.org/perl6/pugs/trunk/docs/...rview.html
japhy: Answers these faqs
autrijus jroc: Haskell has this, more "research" feel about it.
japhy wow. I can understand Haskell.
autrijus japhy: I suspect your brain is lambda shaped. :) 17:48
japhy I don't exactly know the syntax, but just looking at the "aboutHaskell.html" page at haskell.org, I know exactly what it's doing.
Juerd doesn't understand how "apocryphos" is written with -n in English
And how its plural "apocryphoi" got to be -a.
japhy English sucks.
learn American. ;) 17:49
its much easier, and the syntax is loser.
jroc blech American :o)
Arathorn crappy brits making greek nouns sound more like 3rd declension latin ones :)
japhy [sic]
jroc s/loser/looser/
japhy jroc - [sic]
Juerd jroc: "[sic]"
jroc haha
autrijus iblech: I did >>...<<! in 20 minutes! :)
japhy note also the "its" which should be "it's"
autrijus iblech++ # did the hard part for me 17:50
iblech autrijus++ :)
Juerd autrijus: Wow, hyper failure?!
autrijus Juerd: no, hyper metaoperator
Juerd Oh, for any op in ... :)
I read yada :)
Sweet.
autrijus āˆ€ op. >>op<<
Juerd autrijus: >>op and op<< too? 17:51
autrijus Juerd: they are parsed, not yet executed
you want those? :)
vcv- oi oi oi
Juerd autrijus: I have no special need for them
svnbot6 r3668, autrijus++ | * generalised hyper op handling landed. 17:53
vcv- sheesh. why is it so difficult to find the perl5 source code 17:54
Juerd vcv-: apt-get source perl
autrijus vcv-: huh? search.cpan.org/dist/perl/
gaal search.cpan.org/~nwclark/perl-5.8.6/
Juerd vcv-: Or search.cpan.org
vcv-: Or perl.com 17:55
vcv-: Or... oh, this is useless. You're ignoring me still.
vcv- thanks autrijus. google didnt give me that :)
autrijus :)
*Main> eval "sub infix:<Z> { 3 }; (1..5) >>Z<< (1..5)" 17:56
(3, 3, 3, 3, 3)
Juerd Wow, that's a wildly obfuscated way to write 3 xx 5 ;)
autrijus :D
but the important thing is it works :) 17:57
japhy what was the file I was told to look at to see how much cleaner Haskell is?
"easier than lex/yacc?"
and then a file was mentioned...
iblech Parser.hs 17:58
Juerd japhy: Parser.hs
japhy ok
thanks
Juerd waits for signs of utter amazement
gaal anyone know if jonathan's binary parrot was built with msys or with msvc? and is 0.1.2 new enough?
japhy AWWW.
ghc-6.4: out of memory (requested 1048576 bytes)
that's not cool.
integral make unoptimised :-)
Juerd Oh, yes, haskell is very memory hungry
svnbot6 r3669, autrijus++ | * hyperoperator for user-defined infix ops
Juerd japhy: How much memory does your box have?
I'd advise 512 or more 17:59
(Or make unoptimized)
japhy I don't know. I'm on perlmonk.org
Juerd japhy: In a shell, type free
integral ouch, I wouldn't advise using ghc on a shared system
Juerd japhy: It may be that more limits are imposed on users. 18:00
japhy ah, ok.
well, it was a nice try.
Juerd integral: I'm considering putting up a shell server for Perl 6 people
integral knows his local admins would hunt him down with crossbows
japhy I'll find some other solution.
integral ooh, yes. Just needs ccache for haskell though
Juerd integral: It's very expensive though, so I have to think this over a couple of times
japhy ok, later folks. 18:01
thanks for the assistance.
Juerd I'm thinking maybe my business can sponsor it.
Arathorn gaal: it's built with MSVC iirc 18:02
vcv- uh oh. msvc? watch out for juerd.
autrijus 0.1.2 is definitely not new enough
there's a rar build somewhere.
gaal well, i'm sad to say that pugs essentially depends on msvc now on win32. :(
vcv- sucks 18:03
autrijus wiki.kn.vutbr.cz/mj/attach/parrot/binary/
gaal: why?
vcv- would be nice if it compiled on the intel compiler
gaal autrijus, i've tried to build it with msys with three different snapshots, they all failed.
it == parrot
svnbot6 r3670, autrijus++ | * mention the RAR binary build.
autrijus gaal: oh. then parrot depends on msvc, not pugs 18:04
you can grab a binary from the url above I think
gaal pugs doesn't harddepend on parrot yet..
but w/o rules...
i'll try that, thanks!
autrijus =)
gaal do i want the without-icu or the other one?
vcv- without!
autrijus without 18:05
doesn't matter for now anyway
gaal it wants icuuc32.dll 18:07
autrijus even the -without one? 18:08
gaal yes.
c'mon autrijus, port it to haskell, we know you it won't take a minute. :-p 18:09
autrijus ;) 18:10
you can download binary build of ICU ;)
gaal pointer?
autrijus icu.sf.net 18:11
gaal oh, icu's that ibm unicode thing?
no wonder it soudned familiar.
i wonder, ibm 18:12
's binaries are msvc, any chance of that working? 18:13
autrijus sure, it just wants the dll visible
I'm surprised that -without-icu still wants icuuc.
this is too painful
gaal yes. 18:14
if someone can tell me they tried coLinux and got it to work, i'll stop fighting msys :)
svnbot6 r3671, autrijus++ | * some more work for hyper prefix/postfix -- not there yet
autrijus what's coLinux? 18:15
# wiki.kn.vutbr.cz/mj/index.cgi?Build...th%20MinGW
gaal linux as a ring 0 process on windows.
autrijus # wiki.kn.vutbr.cz/mj/index.cgi?MS%20...20Download
may be useful.
gaal yes, but needs tweaking to work with networking.. and still in early dev so i'm not sure it's worth it 18:16
did i just say ring 0 process? silly me :)
yay, after tweaking PATH and stuff this works! autrijus++ 18:18
autrijus :D 18:19
svnbot6 r3672, autrijus++ | * change address to the wiki page
gaal known? src/Pugs/Compat.hs:73:0: Warning: Definition but no type signature for `failWith' 18:21
(same for warnWith in the next line)
why is that a warning, anyway? aren't type sigs always optional? 18:22
autrijus gaal: yeah, but somebody turned up the warning 18:23
gaal: add sig for it?
gaal sure.
mrborisguy i installed subversion on my computer. anybody mind telling me the simple way to get the latest pugs source using it? 18:24
or better... have a good reference 18:25
revdiablo mrborisguy: svn co svn.openfoundry.org/pugs
gaal also, pugs.kwiki.org/?FrequentlyAskedQuestions
mrborisguy revdiablo, gaal: thanks!
svnbot6 r3673, iblech++ | Unbreak eval_ok and make haddock. 18:32
autrijus hm, I don't think I have tuits to finish op1HyperPrefix and op1HyperPostfix today 18:38
svnbot6 r3674, gaal++ | Add type signatures to three functions, eliminating warnings.
autrijus iblech is certainly welcome to try though :)
iblech Maybe :)
gaal for pick.t: pugs.exe: src/Pugs/Parser.hs:44:8-39: Irrefutable pattern failed for pattern Pugs.AST.Internals.Val (Pugs.AST.Internals.VList sublist) 18:40
known?
autrijus gaal: iblech just fixed it 18:41
and I fixed it independently
but iblech's is better and he checked it in first :)
gaal ah :)
iblech autrijus: Just curious, how did you fix it? 18:42
gaal i'd been away for a while, i forgot you guys always accomplish six impossible things before breakfast
irrefutable things, in this case.
autrijus iblech: slapping a Syn "*" to the Var.
Syn "*" [Var "@?CHECK"]
iblech autrijus: ah, ok
autrijus "Impossible things should be easy, irrefutable things should be trivial"
iblech: t/pugsrun/04-dash-ce.t 18:43
pugs: *** Undeclared variable: "@?CHECK" at -e line 1, column 1
the -e form not handled?
iblech pugs -we 'say CHECK { say "In CHECK"; 42 }; BEGIN { say "In BEGIN" }' works here fine 18:44
Will investigate
japhy which document should I use as a base for Perl 6 rules? 18:47
apocolypse/exegesis, or some other source? 18:48
gaal S05? Damian's draft on captures posted recently on p6-l?
japhy I mean only so far as their syntax. how they look.
gaal Synopsis 5 18:49
japhy ok
iblech Fixed, I think, but I can't recompile ATM to check if it works as I've got a smoke running currently. Give me five minutes or so :)
japhy thanks, gaal. 18:50
gaal sure
iblech pugs hang (hung?) at t/rules/named_rule_capture.t 18:51
gaal iblech, golf.t is hanging for me too 18:53
Corion Hmmm. Why is there withCWString() but not withAllocABytes() in Haskell ... Weird ...
gaal hey Corion :)
Corion Hi Gaal!
iblech gaal: Hm, golf.t ran fine (6/10 tests failed, though) 18:54
iblech guesses it's some kind of external vs. embedded Parrot
iblech guesses it's some kind of external vs. embedded Parrot bug
gaal oh, my bad, i forgot the crappy windows terminal XOFFs when you mouse in it.
btw, anyone look into the weird synchrinization issue for concurrent smoke while i was gone? 18:57
iblech Ok, -c bug fixed, committing
weird synch issue?
gaal yes, on windows at least, when you'd -j 3 the smoke test, sometimes the last batch wouldn't be waited for 18:58
so the harness would end without gathering all the test results
i *think* it may be a bizzarro cygwin issue, but i'nm not sure. 18:59
svnbot6 r3675, iblech++ | Unbreak -c.
iblech gaal: Never happened here (Linux 2.6) 19:00
gaal iblech, i couldn't reproduce it on linux myself either.
autrijus I'm fixing named capture hanging
gaal btw, it didn't hang on my box, autrijus. 19:01
cygwin.
iblech Hangs here reproducible, external Parrot 19:02
gaal pugs -V should say what parrot it has :) 19:03
i'll add that.
mrborisguy Will pugs always depend on parrot for rules? Or will that change sometime? 19:06
gaal forum2.org/gaal/pugs/smoke-cygwin.html # r3674 19:07
svnbot6 r3676, iblech++ | Test fixes (mostly unEVALs).
Corion Yay. unEVALs++
mrborisguy: Pugs will one day move onto Parrot.
So then, Pugs will depend on Parrot for everything.
(I hope that by that time, Parrot has become a single K&R C file that bootstraps the rest) 19:08
autrijus So then, "in parrot mode", pugs will depend on parrot fe) 19:09
So then, "in parrot mode", pugs will depend on parrot for everything :)
<- still had not ruled out direct Perl6->(Non-PIR) possibilities
it needs to share as much as code as possible, of course
btw, named rules should be ok now 19:10
gaal what's :t error "something" ?
autrijus gaal: forall a. a 19:11
or just: a
gaal thanks.
autrijus np :)
shower, bbiab 19:12
svnbot6 r3677, autrijus++ | * unbreak named rules for external parrot
r3678, gaal++ | Another stray missing signature added
gaal (i asked ghci, but the sig i got was so surprising i concluded it must have been the wrong error :) 19:13
iblech autrijus: Yep, named_rule_capture.t works now (2/2 fails) 19:16
Juerd THEY CLOSED THE 24/7 GROCERIES ROBOT MACHINE THINGY 19:17
The bastards!
This must be part of some conspiracy against hackers. 19:18
pasteling "Corion" at 84.176.48.225 pasted "How do I make "res" visible to GHC?" (39 lines, 1.4K) at sial.org/pbot/10330 19:19
Corion Haskell Help Needed ;)
gaal where is res even declared? 19:20
Corion gaal: Nowhere - I guess that's my problem ;)
How do I declare a variable of a certain type?
autrijus you just use it.
return $ ProcessTimes 0 user kernel 0 0
is the solution
Corion That's what I tried, but I either tried it wrong or ghc doesn't want it that way ...
D'oh :)
autrijus: You make it seem so easy :)
autrijus because it is :) 19:21
mrborisguy haha
autrijus (it's the learning part that's difficult)
Corion I was stuck in the perlish way of hash handling instead of looking at the type as a list
autrijus: :))
gaal hmmm, but that raises a question, can't i do that with named params?
autrijus hm?
return $ ProcessTimes
{ elapsedTime = 0
, userTime = user
...
}
Corion I think one could do that somehow with named params, but I failed doing that ...
autrijus er, misindent
Corion Ah - like autrijus shows :)) 19:22
autrijus but sure, you can do that too
you don't even need the $, I think
Corion Ah - the golfer strikes again ;)
autrijus lol
gaal heh
Corion Oooo. It Compiles Therefore It Must Be True! 19:33
gaal latest smoke up at forum2.org/gaal/pugs/smoke-cygwin.html . good night! 19:36
svnbot6 r3679, iblech++ | util/livecd/splashscreen.txt -- Typo fixes
gaal drats, "latest" does reamain true long around here :)
Corion gaal: I'm about to commit another patch ;) 19:38
gaal :) i'm off though. see 'ya! &
Corion vcv-: You there? I just committed a version of getProcessTimes() 19:39
svnbot6 r3680, corion++ | getProcessTimes() implemented on Win32 19:42
iblech gaal: FYI, the design of that smoke is borked (things aren't aligned left) 19:43
Corion iblech: It's for me too, but simply changing the (generated) link to the old CSS fixes it all for me. It's a manual step tho' 19:44
Eh - no, that design looks much better than what brokenness happens in my smokes... 19:45
(I'm not sure if I don't cause that brokenness myself though)
iblech I think it's because of the XHTML DTD, which doesn't allow inlined stylesheets or so. I remember having read something about this problem 19:47
Corion iblech: Aaah - that could be a good explanation
gaal the design is borked? tell that to the maintainer of HTMLMatrix! Oh crap, that'd be me. :) 20:02
good thing i'm not really here. 20:03
iblech :)
Corion Whooops. Perl5.t is an infinite loop I guess ...
... it's running quite a while already ...
gaal anyway, what browser, Corion?
Corion gaal: FireFox 20:04
gaal works great for me on ff1.04/win
Corion gaal: Your version worksforme too, I was too hasty
gaal: My version is broken for me
gaal ahhh
k
iblech gaal: Your's is borken on FF 1.03
Corion See datenzoo.de/pugs/win2k.html - the external link gets generated wrongly, and the inline CSS doesn't seem to catch 20:05
gaal one day i should see why the build_info sucks when created on windows (\r\n)
Corion FF1.04/win32 here
gaal: Cygwin problem I guess. Or YAML problem. But \r\n is the One True Linefeed Style :)
Juerd No, it's the one true Carriage Return AND Line Feed style. 20:06
Line Feed is LF is chr 10
gaal Corion, what link do you see broken?
Juerd And \r\n is dangerous, as \n itself can be CRLF, \r\n resulting in CRCRLF
gaal looks good to me using your html
Juerd s/can be/can be written back as/
Corion gaal: The link to the CSS file is some absolute file:// link on my Win32 machine ;)
gaal Juerd, can we fight about endianity instead? it's much more important. 20:07
iblech Corion: perl5.t did not hang here, but did took long to execute
Corion Looks all warped to me, unless I fix the link to the CSS to be nonbroken. iblech could be right about this one, and maybe it only happens with FF.
iblech: It took 1min CPU time, so maybe I was just impatient. I should take those V14gr4 that the email always tells me about. 20:08
gaal i'm using ff and don't see breakage anywhere :(
Corion They help against impatience I heard.
Juerd gaal: Fine with me.
Corion Maybe they introduced that with 1.04 ...
iblech Corion: lol :)
Juerd gaal: But first we have to establish that the correct word is endianness ;) 20:09
nothingmuch brrr 20:10
what a wonderful feeling
good food
gaal actually no, let's not fight. i'm off to bed. hi nm btw, and bye!
iblech Prefix hyper ops implemented :)
nothingmuch ciao!
Juerd is enjoying the wonderful feeling of autodrop pittigzoete sneker zoethoudertjes. 20:11
nothingmuch fair amounts of alcohol, enough to still make sense out of speech
iblech++
Corion $^iblech++
nothingmuch Juerd: what's that?
webmind hmmm autodrop
het zou verboden moeten worden
Juerd Good night, gaal
webmind :)
Juerd nothingmuch: A kind of drop
nothingmuch: And drop is a kind of dutch candy
webmind licorish 20:12
or something
Juerd licorice
webmind yes :)
Juerd And no, it's not what most people think of when they hear that word.
webmind although you have combinations
Juerd licorice is zoethout, webmind 20:13
Now, obviously sneker zouthoudertjes have everything to do with that
But drop in general much less so.
s/zouthoudertjes/zoethoudertjes/ 20:14
webmind Juerd, ik dacht drop ?
Juerd nee, drop in deze vorm bestaat nauwelijks in engelse landen
webmind hmm 20:15
staat mij iets anders van bij
mgoe
Corion Ooooo. I even got one unexpected success by implementing times() :) 20:16
iblech :) 20:17
webmind 2: a black candy flavored with the dried root of the licorice
plant [syn: {licorice}]
Juerd Yes, it's used for that, but it's inaccurate.
It's an important ingredient, not the thing itself. 20:18
Drop is sometimes called black licorice candy
svnbot6 r3681, iblech++ | Prefix hyper ops implemented.
r3681, iblech++ | But some don't seem to parse yet (++<< for example), and &::("prefix:+<<")
r3681, iblech++ | doesn't work yet, either.
Juerd But most foreigners will only recognise that as those awful sweet things, while our typical salt candy isn't found there. 20:19
Corion Aaah. I think I'm stupid. I think I know why perl5.t took so long - I was running the unoptimized version!
webmind Juerd, wikipedia seems to also have a good english article on it? en.wikipedia.org/wiki/Liquorice
hmk
Juerd Think of the black parts of engelse drop.
That's what they think of. It has a very different taste.
(It's rather tasteless)
That's why I don't translate drop. 20:20
webmind Juerd, hmm in scandinavia they have something with Liquorice in it.. sweet varient.. but still similar to the dutch stuff
chocolate covered drop
Juerd yuch
That's like mixing religions :)
webmind no.. it's good.. just ask tuxje :) 20:21
Juerd, i know.. but it strangly tastes good
Juerd I guess it must be overwhelmingly good. It's a combination of two of the world's greatest candies.
webmind well it could be.. if it wasn't that the chocolate is really bad
Juerd aw
Hm
webmind I don't think it could be sold as chocolate here anyway 20:22
Juerd Let's melt some ourselves.
webmind hmm
could try yes
Juerd And try and recreate it, but with some sense of perfection added.
webmind especially since I don't have any housemates left to complain about cooking experiments in the kitchen :)
Juerd Grin.
At least they weren't cafeine experiments anymore :) 20:23
webmind no.. but I have a -very- evil one in the planning
thanks for reminding me btw.. I completely forgot..
Juerd Like your famous asphalt/tar... thing.
svnbot6 r3682, corion++ | Promoted a :todo test for times()
r3683, iblech++ | Correctly parse +ƂĀ« (one char patch! :)).
webmind busy weekend :)
Juerd, ah.. yes :) 20:24
Juerd, did you ever taste it?
iblech [1,2,3]>>... should yield [1..., 2..., 3...], right?
Juerd webmind: No, I have death planned in 2038
And not before then.
iblech: I think not. 20:25
webmind 2038? is that defined by a site? or is there something special?
Juerd iblech: It ought to work with lists, not references to arrays, I think.
iblech Juerd: Ok, but when tr/[]/()/ it will work, right?
Juerd iblech: Because otherwise you *can't* apply something to a list of references
iblech: I think so.
iblech Ok
Juerd webmind: I usually don't write sites about the visionary future. 20:26
webmind Juerd, good plan... 20:27
ingy seen schwern
webmind noticed the future tents to change anyway
tends?
Juerd tends.
It has nothing to do with camping.
webmind well I can see myself camping in the future.. ;) 20:28
nothingmuch mmmm... camping
my friends are so spineless. over the last 5 years i've tried so many times, never got them to go once. 20:29
at least my family has character =)
webmind camped out last weekend... didn't bring anything to lay on... 20:30
it was -cold-
and not smart enough to take the ladies offer to share a tent :)
nothingmuch hah 20:31
the american south west was a hell of an experience in that respect
we spent a night in arches national camp
hot, dry desert,
almost overwhelming
and then we drove an hour and a half into colorado
it was around 35Ā° F at night 20:32
webmind how much Ā°C is that ?
nothingmuch just over 0
webmind ouch
well here it's still early.. and it rained aswell
so -cold- floor
and only had a crappy sleepingbag and a decent tent
nothingmuch actually i was converting C to F for the sake of universality, on the assumption that most people here are american
webmind hell of a lot of fun though... just -cold-
nothingmuch actually, that's a pretty dumb assumption looking at the AUTHORS file 20:33
webmind Ā°C is more universal then Ā°F
Juerd qpsmtpd++
Corion nothingmuch: I guess there aren't that many americans :)
(here, I mean)
nothingmuch webmind: the interesting part was that it was the middle of july
webmind nothingmuch, ah.. ok
nothingmuch webmind: yep, C *is* more universal... but with english being the common tounge here, i tend to make too much of an effort
Juerd nothingmuch: Let the people who choose to use weird standards be the ones converting ;)
svnbot6 r3684, iblech++ | Postfix hyper ops.
nothingmuch Juerd: words I can live by. Let it be metric from now on then =) 20:34
webmind indeed
Juerd nothingmuch: megagood.
nothingmuch tries to write up a bit more of PA02
webmind metric all the way
osfameron_ metric++ 20:35
webmind all these feet, inches and yards don't make any sense
nothingmuch the only grudge I have with the metric system is dad's fault
Juerd Yeah, what the hell is a "foot" if they don't specify the shoe size? :))
webmind hm?
Juerd, heh
nothingmuch but then he said that 12 actually makes much more sense 20:36
Juerd And when someone mentions a number of gallons, then which of the many kind of gallons are they referring to?
webmind Juerd, or yard.. if they don't specify the neighbourhood
nothingmuch when I was 8 or so i asked him why the decimal system is in place
he told me about fingers and all
it's divisable by 1, 2, 3, 4, 6, goes well with 8, 9
so on the whole it should have been easier to grok
Juerd Well, the metric system works because we use the decimal system.
If we were used to a duodecimal (base 12) system for numbers, then some imperial units would make more sense 20:37
nothingmuch Juerd: btw, interestingly the "foot" in biblical hebrew is sort of equivelent to an "ama", or the part of the arm between the elbow and the wrist
that's much more consistent
Juerd Of a child? David? Goliath?
nothingmuch especially with people counting lengths of fabric or string
webmind Juerd, only a few
nothingmuch Juerd: Most average adults are roughly the same 20:38
around a foot ;-)
webmind Juerd, I see little consistency in imperial units
Juerd nothingmuch: For units, precision is preferred. And that asks for precise definition, where "most" can't have any place.
vcv- Taking a break from outside. im too told for running around all day
svnbot6 r3685, autrijus++ | * prettify VError when propagating up.
Juerd nothingmuch: I agree that in ancient times, body based units were perhaps more useful 20:39
nothingmuch Juerd: well, in biblical times I guess percision was not very practical
webmind is going to get his tired head away from his laptop and fry some random contents of his fridge... cya
Juerd nothingmuch: It is now, though.
webmind: Have fun frying ice cream!
nothingmuch Juerd: don't worry, I don't count rope lenghts with my arm
Juerd Do you ever measure rope?
nothingmuch nope =)
Juerd I measure UTP quite often. But never rope. 20:40
nothingmuch define: UTP
Juerd unshielded twisted pair.
nothingmuch ah
Juerd The nowadays standard ethernet cable.
nothingmuch calls it cat-5
Juerd The thing you terminate with RJ45 connectors
I would, but it's cat 5*e*
webmind Juerd, how do you know I have icecream in my fridge?
Juerd And cat 5 can be STP or FTP as well. 20:41
nothingmuch yep, yep
Juerd webmind: I know where your house lives.
nothingmuch what's FTP?
Juerd nothingmuch: Foiled
nothingmuch isn't that the std?
Juerd No
webmind Juerd, hmm you could have eaten it aswell.. I have little trust in cherry/chocote icecream
Juerd UTP is just plastic.
webmind but now gone
Juerd No metal, except for the copper conductor
nothingmuch most cables I cut had a foil, some nylon, a nlon thread, some grounding wire, and the 4 pairs 20:42
Juerd nothingmuch: That's not UTP then :)
nothingmuch i guess that's why I call it cat-5 =)
Juerd UTP is much cheaper, and in most cases sufficient.
nothingmuch Beer Sheva is technologically deprived
and this stuff was the cheapest I found
Juerd For simple 100base-tx use, cat5e utp is already overkill. 20:43
nothingmuch: What did it cost per meter?
nothingmuch i don't recall
integral found the hard way that getting the twists right is the difference between GigE working and not
Juerd pays around EUR 40 per 305 meters (1000 ft... sigh...)
nothingmuch probably about 20-30 euro cents
Juerd My cable costs 13 cents :) 20:44
nothingmuch 305 meters? what do you network?
Juerd nothingmuch: Almost everything.
webmind Juerd, imported from the empire /
Juerd webmind?
webmind Juerd, imperial?
Juerd nothingmuch: It can be quite practical at lan parties and the like as well. 20:45
nothingmuch Juerd: don
't have many of those
Juerd I have a box of UTP in my car, standard.
nothingmuch only at work, and we have a pretty good infrastructure
oh my
Juerd Many small companies don't have good infrastructure, and are housed in old buildings
nothingmuch i just networked my house, and that's it 20:46
Juerd That's where simpler cabling is nice to have.
Oh, I networked house and office too
In fact, there are 7 ethernet connections spare that don't get used 20:47
webmind networked without cable
much easier
Juerd In my office that is
webmind well
at home
Juerd Just because cable is cheap and opening up the ceiling is a lot of work, and messy too
Ooh 20:48
Yesterday was a profitable day, advertisement-income-wise
$27 :) 20:49
That's exceptional.
nothingmuch What's your line of work?
Juerd Computers in the broadest sence
sense even
nothingmuch so basically contract jobs for whoever pays you to do _?
Juerd Yes
I was originally going to create wonderful business software 20:50
But then RSI came, fucking up those plans
nothingmuch hehe
Juerd Now I take all work I can get and handle.
:(
stevan autrijus: ping?
nothingmuch I realized that software must be maintained 20:51
for me it was much more pathetic, the realization that wasn't going to work out
Juerd Of which I think I only really enjoy building and configuring servers
nothingmuch sorry about the 'hehe', came before the 'RSI' comment. Didn't plan to sound like an arse
Juerd I guessed that
nothingmuch my work is actually pretty fun, on the whole. Lots of variation 20:52
Juerd I'm stupid in my sysadmin work, though. I like doing it, but I use Debian, so the boxes need very little maintenance.
nothingmuch "hey, do you think you could do this and that?"
Juerd Oh, I get variation alright.
autrijus stevan: pong -- sorry I got distracted
Juerd One day I can be ridding a Win32 network of viruses, another trying to figure out a solution to spam floods, and the day after that I'm selling hardware. 20:53
stevan autrijus: thats okay
Juerd I wish there was more demand for Perl here. I'd love to teach.
It's something I could do without using my hands, and it is much closer to my original plans.
stevan autrijus: hyperops and such are much cooler :)
autrijus exactly.
mugwump moinmoin 20:54
autrijus I just implemented ??? !!! ...
stevan hola mugwump
pjcj do we have a !!!1!l!one operator? 20:55
Juerd pjcj: That's just too many arguments for !!!.
pjcj: it takes none.
nothingmuch goes back to formulating a PA02 sentance 20:57
Juerd What is PA?
A8n? 20:58
(Just TRY and convince people that the plural for A8n is A7a :)) 20:59
mugwump pugs architecture?
Aankhen`` goes to sleep.
G'night.
osfameron_ apocryphon iirc
Juerd Good night, aankhenbacktickbacktick
mugwump notes that a8n could also be admonition, apparition or aspiration 21:01
Juerd Thanks for that insight.
mugwump np
nothingmuch Juerd: docs/02Internals.pod 21:03
Juerd So, yes, apocryphon.
Line 32 is 81 characters 21:04
nothingmuch fixed
Juerd =pod and =cut are entirely redundant
nothingmuch They are just a habit, I think 21:05
Juerd =pod is always redundant before =anything, and =cut makes no sense in a .pod file
nothingmuch removed
Juerd Doesn't svn have a means of tagging the file with the latest revision?
autrijus yes, $Id$ 21:06
I don't really use that though.
Juerd I was thinking it could save a lot of work eventually for the "this document was last updated..." lines 21:07
nothingmuch $Id$ is noise... =(
autrijus Juerd: grammar fixes.
Juerd Are revisions as well :)
nothingmuch Juerd: I disagree... Someone might fix a typo, or change slightly, but it could remain out of date
autrijus and will confuse people :)
Juerd Okay.
nothingmuch I think that comment will go away soon, too 21:08
soon = when pugs is 2-3 times as old as it is now ;-)
Juerd That's like, long time away.
nothingmuch Only relatively =) 21:09
Juerd wonders if summer holidays will increase of decrease pugs development
autrijus increase, I think.
svnbot6 r3686, autrijus++ | * ??? !!! ...
r3686, autrijus++ | * `fail_` should be fine outside subroutine too
r3687, autrijus++ | * minor cleanup to ChangeLog
ihb Juerd: yeah, that could be interesting.
autrijus but honestly I can't see anything decreasing pugs development in the coming months :) 21:10
other than, say, me hitting by a bus
(but even that will only decrease it temporarily)
Juerd autrijus: Well, people go to far away places, with more sun than internet connection
stevan you AND iblech getting hit by buses
*that* would be bad
autrijus I'm sure integral Corion gaal and nothingmuch etc will carry on :) 21:11
stevan slow but never stop :)
Corion Ah, I will go to Braga, and thus won't be hacking on Pugs, at least not during the day for two weeks
ihb yeah! keep up the fight!
oh, this isn't #politics. sorry.
Juerd ihb: What makes you think that? 21:12
Corion Oooo. ... is in ??? Yay !!!
ihb the channel name says #perl6.
Juerd ihb: How does that make you feel?
Juerd is the new eliza
ihb Juerd: eliza bot mode?
haha 21:13
autrijus Corion: touchƩ
Juerd Are you sure?
autrijus now... what does the "Oooo" operator do?
;)
Corion ;))
autrijus it's a shorthand for capitalize()!
mugwump forward the enclosing source file to Perlmonks? 21:14
Juerd autrijus: Hm! Perl 6 can natively support OokOok if it has macros!
Imagine this, INLINE OOKOOK
Corion Juerd: You're thinking of COBOL again :)
Juerd No, not cobol
autrijus I wonder if there is a capitalise() form in addition to capitalize()
is this the first builtin that has the -ize suffix?
Juerd www.dangermouse.net/esoteric/ook.html
autrijus: I'd just call it caps. 21:15
nothingmuch i think the most amusing esoteric language to me is beatnik: www.cliff.biffle.org/esoterica/beatnik.html
ihb gah, do i have to spell that long anme? i want an operator!
Juerd To also indicate that it adds multiple.
Corion Bah. One must subscribe to glasgow-haskell-users. Is anyone subscribed to [email@hidden.address] and can forward my message?
mugwump capitalise is the canonical form of course :)
oh, actually I lie 21:16
Juerd compared to uc, lc, lcfirst and ucfirst, capitali<[sz]>e is too long.
caps is just about right, length wise, and wrt meaning
autrijus why do we want that builtin anyway :)
mugwump: hm? what is actually the canonical form?
Juerd autrijus: For English and Americans who want their silly "title case"
autrijus: Which this doesn't even properly implement. 21:17
autrijus exactly!
Juerd autrijus: In other words: I have absolutely no idea why anyone would use this, even if it were a module.
mugwump autrijus: I was just looking at whether "capitalise" was ever 'correct' English, and given the results of putting 'capitalise' into askoxford.com, I don't think so
nothingmuch is disappointed that lazy context did not receive any feedback from @Larry
autrijus mugwump: ah. well, the canonical form is 首字大åÆ« anyway
;) 21:18
ihb there already exists such a module: Text::Capitalize -- capitalize strings ("to WORK AS titles" becomes "To Work as Titles")
clkao 大首('orz')
ihb (to Juerd)
autrijus clkao: indeed! that makes the head bigger!
clkao: talk about DWIM!
clkao bwahaha
Juerd ihb: Yes, but that's not what Perl 6's capitalize does
ihb Juerd: oh, i thought you said it was used for titles. 21:19
Juerd ihb: And, something that does title case should probably be rude and claim tc, to go with lc and uc
Arathorn presumably p6's capitalize has no idea that prepositions shouldn't be capitalised...
autrijus Juerd: I wonder who brought up .capitalize
mugwump now that we've got unicode, should uc("Ƥ") be "Ƅ" ?
mugwump bahs at encodings 21:20
Juerd ihb: capitalize simply s/^|<after ws>./{ uc $/ }/'es
ihb how often do you use ucfirst()/lcfirst(), btw?
Juerd Often.
ihb when?
autrijus I often use the interpolation form. 21:21
Juerd lcfirst never, ucfirst quite often
nothingmuch noticed he drifted very far away from those things
Juerd Me too
clkao oRZ
nothingmuch it's been sooo long since i've done math in perl, more than basic addition/incrementing, or related arith
or "pretty" string formatting
except for progress reports
Juerd ihb: capitalize simply s/[ ^ | <after ws> ]./{ uc $/ }/'es
Sorry about the previous version. It was wrong. 21:22
ihb i survive.
Arathorn dude, you've got ^b's in your regexp... :) 21:23
Juerd Of course, it's even clearlier written as s/<after ^|ws>./{ uc $/ }/
Arathorn: Dude, your irc client must really suck ;)
Arathorn hehe
Arathorn no comment
Juerd ihb: In normal language, in a somewhat more grokkable world without chromatics and brian d foys, every sentence begins with a capital. 21:25
Arathorn latin doesn't... 21:26
Juerd ihb: So for titles in web pages, as entered by users, I often apply ucfirst because the users themselves are to stupid to remember to do this.
Corion Example sentences: paris is in france. washington is in the US of A.
Juerd Arathorn: LATINHASNOLOWERCASELETTERSANDITHASNOSPACESANDITHASNODIFFERENCEBETWEENVANDU
ihb Juerd: haha, of course. yeah. i don't have to deal with stupid users :-)
Juerd Arathorn: Real latin, that is :)
nothingmuch atin-lay 21:27
Arathorn carved latin, perhaps - cursive latin script had cases :)
Juerd Corion: Thank you for the visual support :)
Corion Juerd: Both sentences begin with a capital!
Juerd Corion: And yet they don't! Whoa!
Corion :)
mugwump so. ext/Perl-MetaModel/lib/Perl/Cxt.pm. Succint translation of Haskell to Perl types or missing the point? 21:29
nothingmuch autrijus: I forgot what doBind does
stevan mugwump: can you svn up and take a look at docs/perl6_meta_meta_class_hierarchy.pod
r3688
autrijus: if you could take a look too that would be cool 21:30
svnbot6 r3688, Stevan++ | Perl::MetaModel - More diagrams, better pseudo code examples; I think this is getting close :)
stevan and anyone else for that matter :)
autrijus nothingmuch: it binds stuff.
nothingmuch: and takes care of name shadowing in
sub foo ($x, $y=$x) 21:31
by special casing for Syn "default"
nothingmuch ah
autrijus it's the [ApplyArg] generator
Juerd Is ($x = $y, $y) valid? 21:32
How about ($x = $y, $y = $x)?
autrijus Juerd: it's valid but does not mean what you think it means.
mugwump stevan: why say, a Role is "flattened"? Surely if you add behaviour to a role after attaching it to classes etc, you want those classes to be updated already?
Juerd I'm not thinking much of it
autrijus Juerd: the $y in ($x = $y) is an outer scope.
Juerd I see
stevan mugwump: hmmm, that is an interesting case 21:33
Juerd I'm beginning to think it may be fruitful to separate arguments using semicolons, in signatures.
stevan mugwump: however, roles are supposed to be flattened into the class
Juerd This probably won't get broad support.
stevan when a role is added at runtime it creates an anon class
autrijus Juerd: I'll support it.
nothingmuch pascal traumas may surface
i think it works well when the params are complex 21:34
mugwump when it is added at runtime to a *variable* it creates a new anon class
nothingmuch but that it's asymetric with:
stevan I ended having to go back and read more about them and the Traits paper from which they were originally spawned
mugwump aiui
Juerd Currently, argument definitions look too much like expressions
nothingmuch function(1, 2);
Juerd Simply changing , to ; can fix that instantly.
nothingmuch sub function ($one; $two);
stevan mugwump: yes, to a variable
Juerd nothingmuch: Yes, but it's already asymmetric with everything else in Perl, so that can't be a good reason.
stevan however everything i read indicated that roles are composed/flattened at compile time 21:35
Juerd Signatures are a mini language, like regexes
nothingmuch Juerd: but this could be *really* confusing to newbies
Juerd nothingmuch: All the better.
nothingmuch better?
Juerd Yes
If there's one important lesson every newbie must learn, it's: don't guess, don't assume.
nothingmuch rationalize please =) 21:36
stevan mugwump: it is dangerous to think of Roles as being too much like classes
because they really are different
nothingmuch i think that the common case, sub foo ($a, $b) should stay trivial
because there's just too much context
Juerd nothingmuch: The symmetry between foo(a, 3) and an ($a, $b) signature is dangerous.
nothingmuch every language on earth does it that way
Juerd nothingmuch: So I think breaking the symmetry is a good idea.
nothingmuch: You can write foo($a, $b) and foo($a + 3, $b), but not have a signature of ($a + 3, $b). 21:37
nothingmuch: Neither can you write my $a + 3 = 5;
wolverian why not? :)
autrijus indeed, why not. :) 21:38
it has a very precise meaning.
nothingmuch doesn't have a real reason to go against ; in params except for asymetry
autrijus my $a + 3 = 5;
say $a; # 2
Corion Because Pugs is not Prolog :)
Juerd nothingmuch: I havo no real reason to go *for* ; except asymmetry.
mugwump stevan: ok.. but is there a good reason, other than dispatch optimisation, that roles should be flattened?
autrijus Corion: s/not/not yet/
nothingmuch i think the mapping symetry brings is very useful
Corion autrijus: ;)
Juerd autrijus: That doesn't actually work like that, does it?
Corion Ovid should port his WAM :) 21:39
autrijus Juerd: in some languages it does.
nothingmuch but dunno... p6l?.
Juerd autrijus: Now, sqrt($x) = 4, $x == 16?!
autrijus: Perl is not some languages in that respect
autrijus Juerd: yeah.
stevan mugwump: because they are meant to be reusable chunks, when we start dispatching then we begin to get into a whole mess of other things
autrijus it would be kind of fun for it to do that via a module, though :)
Juerd autrijus: This means every expression needs to be an lvalue, which ... makes my head spin.
autrijus Juerd: Curry and Oz does that happily :D
clkao e/win23 21:40
nothingmuch in p5 can overloaded operator methods be lvalue?
Juerd just_make_it_so_that(sqrt($x) == 16); # grin
wolverian $a + $b = 5; $b = 2*$a; say $a;
stevan mugwump: remember any reference to $?CLASS or $?SELF in a Role is deffered to runtime and is taken to mean "the class which implemented the role"
autrijus Juerd: right, just_make_it_so_that is a primitive in those languages.
stevan mugwump: that alone makes me think we should be flattening
Corion autrijus: Are you subscribed to glasgow-haskell-users ?
mugwump sure, this is the difference between is and does
autrijus Corion: no
Juerd autrijus: Not Perl, please.
autrijus Juerd: not by default, sure :)
Juerd This sort of thing doesn't work well with sequential execution, I think. 21:41
stevan mugwump: yes it is, but it will get really hairy
Corion Gah. So I'll have to subscribe to fire off that one message, and then unsubscribe again ...
autrijus Juerd: neither does Rules, really...
stevan mugwump: have you read the original Traits paper? and the Formal Trait model paper?
mugwump: they make a very good case for flattening 21:42
mugwump can you summarise why that is more than an implementation detail?
stevan mugwump: not easily :)
mugwump: Roles are all about composition 21:43
and to me composition makes more sense when we are flattening
mugwump: part of the problem I see with allowing runtime Role manipulation to affect classes 21:44
is that you have to deal very specifically with conflicts
and a change in a Role would require all classes which implement the Role to re-evaluate their relatioship
a Role conflict is a fatal error
(IIRC that is)
so by altering a Role at runtime and expecting Classes to update 21:45
mugwump is that a problem? if you play with stuff like that at runtime you expect a lot to happen
stevan mugwump: well, if I played with a class like that
I would not expect it to die
I would expect weirdness
but not death
mugwump: what do you see as the advantage of being able to do this? 21:46
if it is useful, then I can see trying to make it work 21:47
but if it is just a black hole of problems waiting to happen
why support it?
kelan because someones black hole of problems is someone else's useful? 21:48
mugwump largely because I can't see the black hole yet. 21:49
stevan kelan: I am not sure i agree with you in this case 21:50
mugwump: ok, thats fair 21:52
Let me explain what I see :)
mugwump It is a good question, and I don't think we know enough yet to decide on it tbh
stevan: have you tried using Umbrello before? 21:53
stevan mugwump: no, i am not familiar with it
nothingmuch good night 21:54
mugwump it's just I think that this ascii art can be a little confusing with so many items
stevan mugwump: I agree, however I am not on Linux
I have OmniGraffle for OS X though
mugwump can it grok .xmi?
stevan no idea, but I can check :) 21:55
mugwump eg, docs/class/ducktyping.xmi
stevan yes, thats what I was going for
no it cannot 21:56
mugwump damn, and umbrello is kde as well 21:57
stevan mugwump: looking for an xmi editor right now
mugwump: ever heard of Violet? 21:58
www.horstmann.com/violet/
mugwump starts violet 22:00
mugwump curses at crappy JVMs 22:01
svnbot6 r3689, iblech++ | ChangeLog -- Typo fixes and mention of `CHECK {...}`.
japhy what namespace should I give my extension module of Regexp::Parser for parsing Perl 6 rules in Perl 5? 22:02
Perl6::Regexp::Parser?
or just Perl6::Regexp?
stevan mugwump: it starts for me, but it's kinda clunky 22:03
mugwump what about argouml? apparently that one's quite developed
stevan mugwump: I will give it a try
mugwump: however I want to go back to the Role thing
mugwump ok 22:04
stevan Part of what I see as the "good part" of Roles is that they are composed
if they were not composed, and just dispatched too, then they would really just be classes which cannot be instantiated
abstract classes or something 22:05
kelan japhy: if its still a parser (which i'm guessing it is since you say it parses:) i would leave ::Parser at the end
stevan the composition, and the tight rules for that composition make them "safer" in a way
mugwump what way is that? 22:06
in that you know at compile time rather than run time if there is a dispatch problem?
japhy ok.
Perl6::Rules::Parser or Perl6::Regexp::Parser?
stevan mugwump: yes, the compile time vs/ runtime knowledge is helpful
japhy should I call it "Rules" since that seems to be the Perl6 word for "regexes" now? 22:07
stevan mugwump: I cannot explain this well enough
I really suggest you read these papers....(links coming) 22:08
kelan i would say yes, japhy. but maybe singular: Perl6::Rule::Parser
as the Perl 5 name is singular
japhy oh, right-o.
stevan www.iam.unibe.ch/~scg/cgi-bin/oobib...nits+ecoop 22:09
japhy good deal. thanks. I know it's a minor thing, I just want to take care of the nits now, rather than later.
mugwump I like the parallel you drew between roles being abstract classes. this seems to work, as multiple inheritance can be used for roles-like things, and roles can be used for class-like things too
stevan www.iam.unibe.ch/~scg/cgi-bin/oobib...rmal+Model
mugwump: but I think the power of roles is in that they are *not* just abstract classes
I have to take my dog out, bbiab
osfameron violet-- # clunky and buggy 22:12
mugwump 143 pages for the Ph.D thesis!
heh, "millions of programmers". yeh, right 22:13
Juerd What paper size? Font size? Margins? Line and letter spacing?
Pages are a bad unit for text size management :)
stevan mugwump: its a dense 143 pages too 22:16
avoiding inheritance (or inheritance like things) means we can avoid some of the uglier mi issues 22:19
and the conflict resolution allows you too "fix" the others 22:20
mugwump ok. this description of traits is not the same as Perl roles, particularly wrt state
as roles can and sometimes must have state
stevan yes that is true
they (the traits researchers) are actually adding the ability to have state into Traits 22:21
I am looking over some of the newer papers now actually
mugwump this flattening doesn't have to happen in the Model, ie SomeClass.meta, but must happen at the package level (ie, SomeClass)
Whether this happens at runtime or compile time is a matter of whether the dispatch resolution is lazy or not
stevan grab the "Traits: A Mechanism for Fine-grained Reuse" paper from here: www.iam.unibe.ch/~scg/Research/Traits/index.html
it looks like they have included state in that model 22:22
(I need to read this one myself actually)
mugwump sheesh that Stephane likes to re-use the same content for multiple papers... 22:23
stevan :P
I agree, it should not happen at the meta level, but at the user level
package level, whatever
but it is more than just dispatch resolution 22:24
mugwump I was having some thoughts about the difference between the "SomeClass" object and the "SomeClass.meta" object
stevan the act of composition requires you to do conflict resolution
mugwump so, perhaps SomeClass.meta.ref =:= ::Class, and SomeClass.ref =:= ::ComposedClass 22:25
stevan the rules for conflict resolution are different for Roles then they are for classes
mugwump: yes that makes sense (if I am understanding you correctly)
mugwump Good. So, we can keep the deep structure on the .meta objects, and flatten them in the "composed" class objects, which is effectively a cache of the dispatch resolution process 22:26
very much like those odd stash entries you'll see in any package's stash after method dispatch in Perl 5 22:27
stevan mugwump: yes
the does() heirarchy does not go away
it is just "cached" yes
mugwump These are your .*::Behaviour objects? 22:33
stevan The Behavior objects just implement the methods needed to compose Classes and Roles 22:34
addMethod() addRole() etc
I borrowed that from Smalltalk
otherwise we end up duplicating those methods in the MetaClass, the Class and the Role 22:35
mugwump on the one hand we don't want to duplicate code, but on the other hand we can't have the implementation of the MetaMetaModel affecting how the MetaModel works 22:36
stevan mugwump: well the way I have it implemented it wont
at least I think it wont, I need autrijus to fix an issue before I can really tell 22:37
The MetaMetaModel needs to be able to compose metaclasses out of properties, methods and roles 22:38
the MetaModel needs to be able to do the same
but not pass that ability on
down to the "user" layer 22:39
stevan wonders if he and mugwump have bored everyone else to sleep with all this meta-meta stuff
mugwump Well, I think we have arrived at something that significantly alters at least perl6_meta_model.pod 22:40
stevan yes
I recognize that :)
(and anguished over it)
but still I believe pretty strongly in this model now 22:41
which is not to say that I think it is perfect or 100% correct
or that it cannot stand improvement
mugwump All we have to do with the MetaMetaModel is make it powerful enough to represent the data structures implied in the VCode.pm, Param.pm, etc
stevan mugwump: yes, I purposfully ignored that part for now though 22:43
but I see no real reason it is not possible
stevan goes to check that for sure 22:44
mugwump: yes, i see no reason why the MetaMetaModel cannot handle that 22:45
mugwump: I see no reason what the metaclass(Role) needs to be able to invoke a method, do you? 22:46
if you cannot instantiate it, you cannot invoke a method on it 22:47
unless we have Role methods, but I am not sure they make sense
I also think we definitely need some kind of meta-proxy object to be returned from .meta() 22:49
svnbot6 r3690, iblech++ | * &::("infix:<[+]>") and &::("prefix:ƂĀ«+<<ƂĀ»") and co. work now.
r3690, iblech++ | * Removed a wrong test from operator_overloading.t.
iblech So one can assign to .meta, you mean? 22:51
stevan iblech: no, because exposing the true MetaClass would be exposing the implementation
iblech Ah, I understand 22:52
stevan I see the .meta() method (according to s12) as providing read-only information
however I wonder (and I didnt see this in S12) if you would be able to create your own MetaClasses? 22:53
iblech I hope this is allowed, although yet I don't really know what this would be good for, need to re-read your's and mugwump's docs :) 22:54
stevan iblech: it is useful, but highly esoteric
svnbot6 r3691, Stevan++ | Perl::MetaModel - moved the invokeMethod from Role::Behavior to Class::Behavior; tests have been updated to the new namings
r3692, Stevan++ | whoops, arrow going the wrong way :)
stevan but I can see where some things in S12 would be easier done with metaclasses
stevan is looking for an example 22:55
iblech: somewhere I saw something like "my $foo = Foo.new() is Persistent" or something to that effect 22:58
I could see that as being a runtime metaclass re-assignment 22:59
iblech ...and the metaclass takes care of writing the stuff to disk? 23:00
stevan iblech: yes
iblech nice!
stevan because the metaclass should have enough knowledge of the class implementation to do it
iblech: also the "class Foo is final {}" and "class Foo is open {}" would make sense to be implemented with metaclasses 23:04
iblech Ok, then one should definitely be able to create own metaclasses, and subclass existing ones etc. 23:06
mugwump is final() is only one bit on the metamodel, but the compiled versions may be wildly different
stevan iblech: yes, the issue is how to change the metaclass, I think meta() should not be readonly though
mugwump: from A12/Classes ". As such, a role may only be composed into a class or into another role, never inherited from or delegated to. That's what classes are for." 23:07
mugwump that just means you have to use "does" to use them, I think 23:11
ie, a Role is not a Type.
stevan yes 23:12
but the "Roles are not inherited from or delegated to" is important
A role is not a functioning "thing" it is totally abstract 23:13
mugwump sure, it needs to be substantial to be delegated to
or inherited from, and it is insubstantial
if Dog is a role and you use `my Dog $spot', you are creating a new Type that .does(Dog) 23:14
stevan really has to read A12 again
mugwump: yes
anon class
mugwump maybe that's not legal syntax, though
maybe you can only use my $spot does Dog if it's only a Role 23:15
stevan mugwump: I see no reason why it can't be legal
wolverian it'd be symmetric with signatures
stevan it just would be un-intutive to most
mugwump it would also more clearly draw the line between substantial and insubstantial types
stevan you are referring to "my $spot does Dog" right? 23:16
Juerd does Dog does Cat does Kerberos does Minotaur
Freaky creature.
mugwump correct. Basically, if a Role is not a Type, you cannot use it in a declaration where you must use a type
stevan mugwump: yes 23:17
Juerd Hm, I just started my laptop, but I see the battery's already dead
stevan however, if we want to be evil we can make that just imply the anon class
Juerd Guess I forgot to charge it
8 minutes left
Ah well, I'll keep the juice for emergencies 23:19
Good night!
iblech 'nite 23:20
Ok, checking in improved hyper op code 23:31
stevan mugwump: in A12 Larry does talk about not composing roles, but inserting them into the delegation hierarchy 23:32
however the details of that he says is a "implementation detail"
mugwump ok
stevan however i think that properties maybe will need to be copied into the composed class 23:33
because there needs to be an instance copy
s/instance copy/instance specific copy/
otherwise we would need to make Role instances of some kind 23:34
I actually think this will support your "changing a Role at runtime" idea 23:35
as long as you are just changing the methods
unless of course we think of accessors as closures, and then make the properties bound to the closure, and not really a "part" of the object 23:36
svnbot6 r3693, iblech++ | * [+]<<, [+]<<<<, [+]<<<<<<, etc. will now work.
r3693, iblech++ | Note: [+]ƂĀ« does not work (isn't parsed), but I must sleep now :)
r3693, iblech++ | * Moved a test of arrays_and_hashes/pairs.t to data_types/pair.t.
r3693, iblech++ | * EOLs at EOFs.
stevan however then we force all access to properties through methods 23:37
which on the meta-level might not be a problem
iblech Ok, sleep :)
stevan nite iblech :)
iblech Release tomorrow?
stevan I assume we are
iblech Ok :) 23:38
Nite &
stevan mugwump: any thoughts? 23:39
vcv- So..how do you call a private mutator method on each object in an array? 23:41
svnbot6 r3694, iblech++ | Added note about hyperops to ChangeLog. 23:43
mugwump stevan: I've just tabulated the code examples in perl6_meta_model.pod, I think that a similar format could be used to explain what you mean..
stevan mugwump: ok, commited yet? 23:44
mugwump r3695 23:45
So, our "compiled" classes+roles+whatever are types.. 23:46
stevan why is a Class not also an Object? 23:48
svnbot6 r3695, mugwump++ | First half of document updated with new insights on Class vs MetaClass vs Compiled classes (types) 23:49
mugwump it's a type, not a value
stevan what is a type? Object or Class?
mugwump a class is a type, but a type is neither object nor class
an object has a type 23:50
stevan oh no... sorry I mean the metaclass
$meta level
I am not sure i understand/agree with all the does() statements 23:51
I think that is mixing roles and classes too much
can you explain further?
.does(Object) to me implies that Object is a Role
s/Role/role/
I think Object.does(Role), in that Object can do all the things a Role does (compose, etc) 23:52
mugwump ok, svn up to 3696, put a question mark by each one you don't agree with, and commit
stevan ok 23:53
mugwump .does(Type $type) does not imply a role
necessarily
stevan ok
thats is where I am confused then 23:54
svnbot6 r3696, mugwump++ | add isa(Type) and does(Type) to table
stevan does() is ducktyping right?
(the way you are using it)
mugwump essentially, yes
stevan ok
THAT makes sense
however it conflicts with the does() nomenclature
maybe we should use .quacks() :)
mugwump dude, we're defining the nomenclature
stevan uhm 23:55
well .does() is already been used though
I am not sure we are defining it *that* much
mugwump is there a conflict with using it for the same thing?
stevan A12 is actually much more specific than S12
well to me does(Something) implies that there is a Something role
mugwump if ::Something is a role, yes 23:56
stevan yes
while Roles and ducktyping are for the most part the same
I think duck typing does not imply roles
(wait, that doesnt make sense)
Roles is one way to do ducktyping 23:57
but not the only way
(I think that make more sense, but I am still not sure)