Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net
Set by stevan on 15 August 2005.
elmex_ ? 00:19
;-)
00:19 elmex_ is now known as elmex
elmex perl6 isn't on topic in perl related communities :) 00:19
coral neither is perl5 00:28
elmex perl5 is more perl than perl6
coral to quote the old #perl-social topic, "no web/cgi/help/go/away/losers"
elmex ;-)
*g*
ruz Hello. What does "frozen" perl6 RFC mean? Is it standard? How I should take this status? 00:33
buu /topic in #perlcafe: <buu> Why do people keep asking questions in here? <dooky> because they are cockfaced motherfuckers 00:34
coral wow 00:56
luqui ruz, it's not the "frozen" word you should be interested in 00:57
the word RFC means "wrong" these days :-)
(that is, you should look for more up-to-date documents, like the synopses)
ruz hmm. So I can safely ignore all that RFCs and read all that synopses? 00:59
May be can I read somewhere about status of all that documents RFCs, PDDs,Synopses... 01:00
dudley ruz: probably not... 01:01
The synopses are the "official" design documents these days
but they're slightly out of date in places 01:02
and it helps greatly to read the Apocalypses with the Synopses, even though $larry says the Apocalypses are just for "entertainment" now 01:03
ruz uhh... looks like I should read all that 01:04
landover i love the smell of perl6 in the morning 01:12
stevan dudley: ping 01:16
dudley stevan: pong
stevan dudley: I just commited a Mini-MetaModel with bootstrapping roles 01:17
can you please look it over for sanity?
svnbot6 r7027 | stevan++ | MiniMetaModel with Roles added
r7027 | stevan++ | - self-bootstrapping Roles added to the mini-meta-model so that
r7027 | stevan++ | - Class does Role
r7027 | stevan++ | - Role is a instance of Class
dudley Oh, cool
stevan if it makes sense, then I think i will try to put it into the real model this weekend
this version only does Roles one level deep 01:18
meaning you can only incorporate your immediate roles
and not their subroles
but the real model will do that
anyway,.. time to watch a movie with the in-laws 01:19
be back later on :)
stevan &
dudley have fun :)
stevan dudley: thanks :)
dud
dudley: please just comment in here and I will backlog or feel free to email me
:) 01:20
dudley Okay
coral oo, friday 01:27
Supaplex WEEKEND! 01:28
luqui hoooooooraaaaaaaaayy 01:31
dudley stevan: Re Son Of MiniMetaModel: On first read through, it looks really good. I don't see any problems offhand. 02:07
'resolve' makes me think of MRO rather than composing methods into a class, though 02:09
You can paint the bikeshed whatever color you like though, as long as it keeps my bike dry in the rain. 02:12
svnbot6 r7028 | stevan++ | Perl6::MetaModel 2.0 - 05:30
r7028 | stevan++ | * MiniMetaModel_w_Role.pl now bootstraps properly now so that
r7028 | stevan++ | - Class does Role
r7028 | stevan++ | - Role does Role
r7028 | stevan++ | * added p6_role_model.* to visualize it
r7028 | stevan++ | * fixed p6_object_moddle.* updated
r7029 | stevan++ | Perl6::MetaModel 2.0 - 05:42
r7029 | stevan++ | * fixed test plan in MiniMetaModel_w_Role
r7029 | stevan++ | * some ASCII art of the role model
QtPlatypus Is there a neat way to do notization in pugs/perl6 ? 08:24
luqui notization? 08:27
google notization: 14 results 08:28
what are you talking about? :-) 08:29
gaal [haskell] is there an idiom for pattern matching, when I want to bind directly into the pieces of a named data type? 08:30
that is:
like i can do all@(first,others) 08:31
oops
QtPlatypus notarisation. ummm the caching of function return values (sorry spelling disability)
luqui memoization?
gaal all@(first:others)
QtPlatypus Yep
luqui gaal, yeah, that works
gaal on a list
yes i know it does :) but if instead my type was something like
luqui :-p 08:32
QtPlatypus, the perl6 spec says "is cached" is the trait that does that
but I don't believe it is implemented
QtPlatypus Thanks
gaal data MyOwnList = MyNil | MkList { first :: Int, rest :: MyOwnList }
this is a silly Int-only cons list 08:33
luqui ahh
well, if not: list@MkList { first = x, rest = xs }
then certainly: list@(MkList x xs) 08:34
gaal let me try that :)
luqui (you might need some parens)
svnbot6 r7030 | Darren_Duncan++ | /ext/Locale-KeyedText : resync with today's changes to the Perl 5 version 08:43
gaal let me try that :) 08:48
whoops, keyboard-happy on irssi
luqui gaal, did it work? 08:56
gaal i ended up needing a different expression :) 08:57
haskell brings great humility. or humiliation 08:58
luqui usually come in pairs :-)
knowing enough languages to usually not have much trouble picking up a new language in one or two days 08:59
haskell was quite humbling :-)
buu Haskell makes my bathing suit area feel special 09:02
luqui your boobs?
gaal okay, i think i did most of the hard stuff. now just one more issue. the parser finished executing the BEGIN block and magically has some new information. How does it install it in the Env? 09:04
I don't want the regular pragma list to be a TVar. can i avoid that at all?
luqui uh, I don't know much about pugs internals 09:06
gaal more generally: once an Env has been created, can anything that isn't a TVar be modified in it not only locally?
luqui Env is inside a Reader?
gaal ah, there seems to be putRuleEnv. coool 09:07
yes.
svnbot6 r7031 | qtplatypus++ | A modication of Base64 to keep it from using bigints. This version
r7031 | qtplatypus++ | is very carefull to keep everything within the limitation of what
r7031 | qtplatypus++ | can be expressed by an octet. This should stop it from crawling
r7031 | qtplatypus++ | to an impossably slow state on some hardware.
r7031 | qtplatypus++ | When pugs is a little more advansed it may be possable to rewrite
r7031 | qtplatypus++ | this so that it detects and makes use of the widest possable bit
r7031 | qtplatypus++ | representation advalable.
luqui well then you can change anything
but it seems you figured that out :-)
QtPlatypus Can anyone who was having trouble with the old MIME/Base64 have a look at the new one and see if what I did improves mattors. 09:08
10:21 integral is now known as i0tegral 10:56 acme__ is now known as acme
dudley stevan: Should 'does' return a superset of 'isa' with roles included, instead of just the roles? 11:33
bbl 11:35
12:20 i0tegral is now known as integral
nothingmuch dudley: wrt does - i think just the roles 13:04
if you want an easy way, use smart match
so ~~ lets you just ask
and .does and .isa let you check carefully for when it does matter
luqui: pin g 13:05
ods15 hya nothingmuch
nothingmuch hi ho
ods15 nothingmuch: where do you live
nothingmuch near beer sheva
Lehavim
ods15 heh, not close at all, nm
nothingmuch not close at all to what?
ods15 was gonna suggest you come to my lecture :)
haifux 13:06
nothingmuch ah
ods15 MPlayer
nothingmuch haifa is difficult
tel aviv is manageable but unpleasant
ods15 yup
i can barelyy manage it and i'm in ta
nothingmuch the problem is that by the time i'm done with work, it's too late to be able to make a round trip via public transportation
and in the weekends there's no such thing anyway =( 13:07
dudley nothingmuch: I thought that $larry had said something about wanting people to use .does instead of .isa
but I can't seem to find it now 13:08
nothingmuch hmm
could be
dudley I may have misunderstood anyway
nothingmuch The smartmatch: 13:09
$obj ~~ Dog
actually calls:
$obj.meta.does(Dog)
which is true if $obj either "does" or "isa" Dog (or "isa" something that "does" Dog).
you're right
bottom of s12 13:10
nothingmuch wants haskell data types in perl 13:11
they make everything so clean
data Type = Bottom | Named String | Unknown
data TypeSignature = Sig [Type] Type
search.cpan.org/~leijon/Data-Varian...Variant.pm 13:13
stevan dudley: part of the plan for ROles is that they will likely wrap classes somehow 13:14
so that does() and isa() will work as you describe
I am not sure how this will work out actualy 13:15
the plan was basically that auto-generated accessors would be implemented with a role
the Role would be named the same as the class
so that Foo.does(Foo)
but like I said,.. not sure if thhat will work/make sense 13:16
we will see when the roles are in place
stevan &
dudley thanks, stevan
nothingmuch makes a loud thud sound hitting a walll 13:44
test driven development doesn't work for non practical applications =( 13:58
nothingmuch has barely written any tests for Blondie so far
nothingmuch is nearly done with a type annotator for Blondie trees 14:50
it supports simple types
return values of thunks may not depend on their parameters yet
as the thunk is resolved before the parameters and forces a certain context on them, so there aren't any generic operations yet (which makes higher order functions rather useless, but whatever) 14:51
putter QtPlatypus: Base64.t still hangs for me. sorry. I killed pugs_bin after 10+Gcycles. but... if you think it's a x86_64 specific bug, it might be best just to check OS(?) and skip_rest. The old 6.4.1 development snapshot I'm using may hang, but perhaps one 15:14
more recent would work. If it still hangs when 6.4.1 is released, that would be an issue. Now... not so much. 15:15
I tried using alternate backends, but JS can't find it, and Perl5 has issues with use/require, and doesnt have gather() implemented. So no-backend cross-check. 15:16
Pretty work though. 15:17
nothingmuch: want tests? muaahahahahaha. plug into PIL-Run and you get all of t/. :) if a toggleable plug isn't feasible, well, the reason the files have odd names like EvalX.pm is so one can have EvalX2.pm, EvalY.pm, etc. 15:19
If anyone would like a -C Perl5 pil -> massaged p5 tree -> unparse to -C Perl5 pil, or "unparse" -> perl6, round trip tests. I wrote them mainly to see if I really understood pil (didnt/dont), but they might be an alternative to everyone roling their own p5 rep of pil1. And they could be a test for just what pil isnt really working yet. 15:25
Aside: using blessed arrays strkes me as an unfortunate premature optimization. Little is gained, especially since each is accompanied by a second, hash-based object. So it just complicates the backend, with no benefit. 15:27
(context: -C Perl5 pil1 rep) 15:28
cheers & 15:29
gaal any lambdaheads about? 16:22
autrijus yes? 16:24
gaal autrijus-san! welcome back :) 16:25
my problem: to lift or not to lift. both don't work in the following:
idat <- liftSTM $ readTVar $ envInitDat env 16:26
autrijus not really "back" -- I'm still in visa hell, fancy that
my passport is nowhere, according to DHL
so I'm mildly nervous.
gaal where "envInitDat" is a (TVar something)
oy
that's not good :-(
autrijus yeah. it's not in .jp, it's not in .tw, it's not somewhere inbetween, and the central tracking knows of no such tracking number, but the regional ones do, but they have no info
and I need it Monday :-/ 16:27
and all the office are closed.
gaal frowns
autrijus but enough about my little misery.
gaal lol
autrijus envInitDat is TVar, not Eval TVar?
and what's the errmsg?
gaal it's TVar. this is in the parser. the error for the above code is: 16:28
No instance for (MonadSTM (GenParser Char RuleState))
arising from use of `liftSTM' at src/Pugs/Parser.hs:905:20-26
autrijus oh, you are in parser.
gaal without the liftSTM I'd get
autrijus you need unsafePerformSTM
gaal Couldn't match `GenParser Char RuleState' against `STM'
autrijus or rather, unsafePerformIO . liftSTM
gaal okay... 16:29
wolverian are those error messages actually useful?
autrijus wolverian: quite so, to me
wolverian (just curious if I could read them and understand what is wrong if I really learned haskell.)
autrijus, ah, right. that's good.
pasteling "gaal" at 192.115.25.249 pasted "closer" (14 lines, 605B) at sial.org/pbot/13156 16:30
gaal "Couldn't match `GenParser Char RuleState t' against `InitDat'" -- another lift needed? 16:32
autrijus gaal: no 16:42
unsafePerform makes it pure
let idat = unsafePerformIO $ ... 16:43
or
idat <- return (unsafePerformIO ... )
gaal ah! 16:44
yay, that compiles. now to see if it actually works :) 16:45
autrijus it compiles, ship it!
gaal :-) 16:46
nothingmuch hah
you're sick
nothingmuch backlogs
Khisanth what happened to testing? :)
autrijus no, just a bit distressed
nothingmuch autrijus: i need some type theory schooling... got a few minutes later?
autrijus nothingmuch: try #haskell people -- I'll be asleep soon
nothingmuch i'll wait then 16:47
i still have to finish this
QtPlatypus: Base64.t hangs for me on darwin (powerpc: 32 bits, big endian) 16:48
so it's not x86_64 16:49
putter: i mean unit tests, not system tests
gaal grlup, why are my Prims not visible? 16:51
they're safe, their definition looks correct... 16:52
pasteling "gaal" at 192.115.25.249 pasted "what's wrong with this Primture?" (59 lines, 2.4K) at sial.org/pbot/13158 16:55
gaal hopes it's something obvious and silly
or at least just obvious :) 16:56
nothingmuch that's a weird diff
gaal just part of a patch, svn diff on one file 16:58
why's it weird?
nothingmuch because the install_pragma_value is repeated 17:02
gaal how do you mean? 17:03
nothingmuch in the nopaste that chunk of code is repeated 17:04
gaal oh, my bad, i pasted incorrectly. sec 17:06
pasteling "gaal" at 192.115.25.249 pasted "missing prim, correct paste" (44 lines, 1.9K) at sial.org/pbot/13159 17:07
gaal so, it just looks like the prims aren't being installed at all 17:08
autrijus "Void 17:10
hm, weird. maybe it's masked by precomp 17:11
gaal neither function is visible 17:12
is there any problem with Void? I'll change it. 17:13
autrijus there's no problem
just mispaste
nothingmuch oh god... the best practices book is really doing some damage 17:16
every 2nd post on perlmonks starts with "Perl best practices says..." nowadays
gaal oh, crap, it was a local shell stupidiy thing. sorry... 17:17
nothingmuch heh
gaal for some reason i had an executable called 'pugs' in my tree
shouldn't have had one, this is windows
but i was running from a cygwin shell
nothingmuch aha
gaal so when i said ./pugs it took that one instead of pugs.exe 17:18
nothingmuch always runs
./pugs and never 'make install's
gaal of course
but <pugs> ne <pugs.exe>
however ./pugs on cygwin is [//] <pugs pugs.exe> 17:19
well not [//], but the first one that exists, heh.
stevan nothingmuch: you need to get a copy of TAPL I think 18:04
nothingmuch yes, i'm thinking about it all day
trying to remember how much money i have now
stevan is reading it right now
nothingmuch (was not neear the computer)
stevan is pondering an object model in pure lambda calc 18:05
nothingmuch: did you see my MiniMetaModel_w_Role?
nothingmuch nope
will look in a few mins
stevan k
nothingmuch i
'm on a break...
stevan ah
pasteling "nothingmuch" at 82.81.247.180 pasted "know how to find type of perl var" (15 lines, 295B) at sial.org/pbot/13163 18:06
nothingmuch now i'm having trouble unifying the types of params and symbols based on them 18:09
wow, almost there 18:19
B[A
how do you call the printish debugging? 18:20
www.readability.info/index.cgi?u=ht...Blondie.pm 18:22
Juerd nothingmuch: debugging with print :) 18:34
nothingmuch fair enough
Juerd Was this a poll?
nothingmuch was fixated on the notion that there is a cute name for it
Juerd Hm 18:35
There must be, given that there is a name for "computer science" too.
justatheory seen robrt 18:43
luqui nothingmuch, pong 18:46
(when you pinged me, it was 7am. fat chance :-) 18:47
nothingmuch i wanted to consult you on crap
heh
luqui nothingmuch, you said you want haskell data types in perl 18:49
well, larry wants them too
nothingmuch good =)
luqui we just have to find a better name than "data"
nothingmuch structure?
why is data so bad?
luqui well, because it's not really data you're declaring. it's more of a data structure (as you said) 18:50
but there are many kinds of data structures
lwall: "I think "data" is actively misleading to blue-collar people"
lwall: "more like "a pattern of data"" 18:51
nothingmuch oh, that was what that was all about
shape Bool = True | False
shape Type = Bottom | Unknown | Named StringD
my %hash is shape ... ;-)
i think that's a nice candidate for reducing redundancy 18:52
luqui we might be able to extend "enum" to gadt, but it would be awkward
nothingmuch i don't think it's fitting, shape describes it much better
luqui hmm... 18:53
shape is pretty good, I think... still doesn't quite hit the spot.
oh, Data::Variant. So Symbol::Opaque wasn't the first one (I kinda figured) 18:55
Plus, that one looks typed, too 18:56
gaal oh, crap, import doesn't work correctly.
nothingmuch where is $SIG{__WARN__} documented? 19:01
luqui perlvar 19:02
nothingmuch thanks
wow, cool 19:07
that was the simplest module ever
nothingmuch uploads to CPAN
luqui what module? 19:09
nothingmuch Devel::STDERR::Indent
luqui oohh
s/h$//
stevan nothingmuch: what does it do? 19:17
pasteling "nothingmuch" at 82.81.247.180 pasted "Devel::STDERR::indent docs" (37 lines, 901B) at sial.org/pbot/13166 19:18
stevan nothingmuch: interestng 19:22
so does it use $h's scope to know when to un-indent? 19:23
nothingmuch when it's destroyed it just sets $SIG{__WARN__} to the prev value
i actually ought to keep a stack, to ensure that it's ordered
stevan cool
stacks++
or some kind of hack with local :)
nothingmuch stevan: can't 19:24
if indent is being called it loses it's scope
stevan k
nothingmuch i wish, actually =)
svnbot6 r7032 | stevan++ | Perl6::MetaModel 2.0 - 19:25
r7032 | stevan++ | * moving the ::Package and ::Module to pneuma since they are really part of
r7032 | stevan++ | the core elements like ::Object is
r7032 | stevan++ | * moving ::Role to a new file psyche.pl (see the comments in the file for
r7032 | stevan++ | the naming rationale and how it fits into the gnostic naming conventions)
r7032 | stevan++ | * genesis is now purely about bootstrapping
gaal ?eval "why here?".split("").grep:{rx/\d/}
"why here?".split("").grep:{rx/\d/}
?eval "why here?".split("").grep:{rx/\d/}
evalbot_7032 ('w', 'h', 'y', ' ', 'h', 'e', 'r', 'e', '?')
gaal shouldn't these chars be filtered away?
luqui ?eval "why here?".split("").grep:{$_ ~~ rx/\d/} 19:26
evalbot_7032 *** Cannot parse PGE: :w::\d *** Error: end of file
nothingmuch heh
luqui gaal, yes, they should
gaal ?eval "why here?".split("").grep:{$_ ~~ rx:Perl5.\d/}
evalbot_7032 Error: unexpected ":" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
gaal ?eval "why here?".split("").grep:{$_ ~~ rx:Perl5/\d/}
evalbot_7032 ()
gaal that's better :)
?eval "4why 2here?".split("").grep:{$_ ~~ rx:Perl5/\d/}
evalbot_7032 ('4', '2')
luqui thinks that grep is going to look like this: 19:27
nothingmuch does anybody have perl 5.005?
luqui .grep(/\d/)
not .grep:{/\d/}
that is, grep's signature "sub grep(Pattern $pat)"
where Pattern is something that is smartmatched against 19:28
oh, and an array also :-)
gaal well, fwiw, .grep() doesn't work in pugs. 19:29
nothingmuch, i have a perl4 somewhere.
nothingmuch no thanks ;-) 19:30
luqui gaal, you mean the non-codeblock form?
gaal yes
luqui yes, that's because it's specced not to work
gaal missed the "going to" above.
nothingmuch okay, uploading to pause 19:31
nothingmuch.woobling.org/Devel-STDE....01.tar.gz
luqui can anybody think of a way to install lexical hooks into the caller's scope without having to put it in a variable (like $h) 19:36
svnbot6 r7033 | gaal++ | first argument to &import should be the called package's name, not
r7033 | gaal++ | the caller's.
gaal what do you mean by hooks?
i'm working on lexical pragmas right now. 19:37
luqui no, I mean in perl 5
but thanks for pragmas :-)
nothingmuch luqui: finer control over temp and local
luqui I mean code that gets called at the beginning/end of the caller's scope
nothingmuch temp $CALLER::foo ;-) 19:38
CALLER::temp $foo
you tell me the diff
gaal yikes, you want to hook::lexwrap at runtime the code that's calling you? scary :-)
plus hook::lexwrap doesn't. (wrap lexically) 19:39
nothingmuch right
i've always hated that module because of it
gaal ?eval sub x (?$arg = 0 is copy) { $arg++ }; x(2) 19:42
evalbot_7033 Error: Can't modify constant item: VInt 2
gaal oops
?eval sub x (?$arg = 0 is copy) { $arg++ }; my $zzz=2; x($zzz) 19:43
evalbot_7033 Error: Can't modify constant item: VRef <Scalar>
gaal oops still
?eval sub x ($arg is copy) { $arg++ }; my $zzz=2; x($zzz)
evalbot_7033 2
gaal getting interesting :-)
wolverian wow, doesn't copy imply rw? 19:44
gaal ?eval sub x (?$arg = 0 is copy) { $arg++ }; my $zzz=2; x(arg => $zzz)
evalbot_7033 Error: Can't modify constant item: VRef <Scalar>
wolverian ?eval sub foo ($arg is copy) { $arg++ } foo 2
evalbot_7033 2
gaal it's the optionality that's brraking things.
wolverian oh. now it worked.
ah!
well, that's certainly broken indeed :)
gaal pugsbugs++ :) 19:45
wolverian so, uh, I had a silly idea yesterday
in the shower..
what if I have an argument that I only want to pattern match against but don't want to refer to in the body of the sub 19:46
that is:
sub foo ($x where { ... }) { ...$x never used here... }
would it be ambiguous to allow me to simply put the where body into where $x is:
sub foo ({ ... }) { ... }
gaal ?eval sub x (?$arg is copy) { $arg++ }; my $zzz=2; x(arg => $zzz) 19:47
evalbot_7033 2
gaal ?eval sub x (?$arg = 0 is copy) { $arg++ }; my $zzz=2; x(arg => $zzz)
evalbot_7033 Error: Can't modify constant item: VRef <Scalar>
gaal ah: not the optionality, the default valuability!
wolverian multi foo ({ $_ % 2 }, $foo) { say $foo } multi foo ({ not $_ % 2}, $foo) { # don't say $foo }
probably not worth the confusion. 19:48
gaal my cat is increasing my productivity 19:52
svnbot6 r7034 | gaal++ | add test for 'is copy' not working with arguments with default values
r7034 | gaal++ | (even when a value is passed explicitly)
gaal she is sleeping on the mouse
so i have to use the keyboard
i guess if she accidentally causes some code to be pasted i will offer her the committer bit. 19:53
# Failed test (t/packages/lexical_pragmas.t line 38, column 3-94) 20:03
# Expected: '5'
# Got: 'undef'
ok 14 - Scope is lexical, not dynamic
not ok 15 - Outer value is restored
# Failed test (t/packages/lexical_pragmas.t line 41, column 1-90)
# Expected: '3'
# Got: 'undef'
ok 16 - Absent pragma is undef 20:04
ok 17 - Scope is lexical, not dynamic
not ok 18 - Caller pragma value 3
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '3'
# Got: 'undef'
not ok 19 - Caller pragma value 6
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '6'
# Got: 'undef'
not ok 20 - Caller pragma value 6
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '6'
# Got: 'undef'
not ok 21 - Caller pragma value 7
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '7'
# Got: 'undef'
ok 22 - Scope is lexical, not dynamic
not ok 23 - Caller pragma value 6
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '6'
# Got: 'undef'
not ok 24 - Caller pragma value 8 20:05
# Failed test (t/packages/lexical_pragmas.t line 62, column 3 - line 63, column 41)
# Expected: '8'
# Got: 'undef'
ok 25 - Scope is lexical, not dynamic
# Looks like you failed 17 tests of 25
errr
sorry about that
please welcome our new commiter?
luqui wolverian, no it wouldn't be ambiguous 20:08
wolverian luqui, okay. 20:09
luqui but I think it would be a cognitive problem; it's not a very common thing
best just to do sub foo(_ where {...}) {...}
actually, if we end up allowing anonymous hashrefs in signatures, then it would be ambiguous
or rather, it wouldn't, it would just not be what you wanted
wolverian what would anonymous hashrefs in signatures mean? 20:10
luqui same thing as an anonymous array ref
an unpacking pattern
sub foo({ a => $x }) {say $x} foo({a => 4, b => 5}); # 4
nothingmuch wonders what CD to get from his wish list along side TaPL and adv TaPL 20:12
gaal Lisa Germano
_Lullaby for Liquid Pig_
since you asked :-(
s/\(/)/ 20:13
luqui my TaPL and ATTaPL are coming on monday, so the tracker says
luqui thinks he will read it backwards, so that he gets ideas in a different order from everybody else
:-) 20:14
gaal i know a translator who worked on a novel that way.
more precisely: he did the first chapter, then the last; then the second, and the next to last; and so on. 20:15
luqui weird
nothingmuch luqui: i do that occasionally
i almost always do it with the newspaper 20:16
gaal a very good strategey in this case. it was a Nabokov novel with hundreds of in-jokes and backwards references
nothingmuch do you guys want to help me choose?
gaal it proved a pretty effective tool to spot things. and in any case, i think it's a good way to keep the mood harmonized. 20:17
choose what? music? we did!
nothingmuch nono, from my list ;-)
gaal ah, that's simple then. first, put that on your list. then pick it
it's all right, you can thank me later 20:18
nothingmuch she has some representation on emusic
care to reccomend anything off that? 20:19
gaal i don't know what that is
nothingmuch www.emusic.com/artist/10555/10555233.html
it's a subscription website thingy for downloading music el cheapo
pretty nice, since it's mostly independant artists 20:20
btw, lullaby for liquid pig is out of stock
gaal i hardly know anything from your list
nothingmuch has a look 20:21
luqui nothingmuch, do you have end of the world party yet?
gaal forum2.org/cgi-bin/mymusic50
nothingmuch luqui: nope 20:22
luqui that would be a good one
gaal MWM are cool.
nothingmuch woo! it's in stock! www.amazon.com/exec/obidos/tg/detai...0T6E3GMWJN
i'm buying this one. i've waited for ever
idiots... they're hiding my address from me 20:23
luqui never heard of it...
nothingmuch it's lounge
i heard some stuff from it on somafm
secret agent, i think
somafm.com/ 20:24
that's a lot of money =( 20:25
nothingmuch reminds everyone that it's talk llike a pirate day in a few days 20:27
specifically - monday
i won't be at work to show off because there is scheduled power outage =(
nothingmuch doesn't have enough happy music 20:33
nothingmuch puts on some Ennio Morricone 20:34
dudley bought Ultravisitor by Squarepusher today 20:54
and was surprised to find he's a pretty good bassist
nothingmuch bbiab 20:57
21:00 kgftr|wedding is now known as kgftr|honeymoon
gaal w00t! 21:00
svnbot6 r7035 | gaal++ | Lexical pragmas (WIP). See Pugs.AST.Prag. Dominus++. 21:01
r7035 | gaal++ | This doesn't work yet, my pragmas got lost somewhere between the parser
r7035 | gaal++ | and the evaluator.
r7035 | gaal++ | TODO after it's fixed:
r7035 | gaal++ | - throw away the cons list in favor of a primitive [] - it's enough
r7035 | gaal++ | - figure out how to install other kinds of pragma data, not just Int
r7035 | gaal++ | And, the fun part:
r7035 | gaal++ | - use fatal
r7035 | gaal++ | - use sort 'mergesort'
r7035 | gaal++ | - no strict :-)
r7035 | gaal++ | - other ideas from perl.plover.com/TPF/Pragmas/PROPOSAL 21:02
Khisanth gaal: so these are only for p6 and not p5? :) 21:06
nothingmuch follows autrijus's legacy and takes the comp to the shower
but not for chat, for music
Khisanth he probably has a waterproof computer! :) 21:07
Juerd And still he wonders where all the hardware failures come from...
nothingmuch well, unlike autrijus i'm not planning on actually using it in the shower
so it's satying at a safe distance away from the water
Khisanth Juerd: now that you mention it ...
nothingmuch Yeah, he lugs the laptop around everywhere too 21:08
he told me he spends lots of money just because his computer falls occasionally
Juerd You can only do that with a thinkpad or toughbook :)
Though no notebook I know is water proof :) 21:09
Can't use a sack around it either, because they're all air cooled
wolverian hmm, how expensive are rain proof notebook carry cases?
Juerd Not very.
nothingmuch (by everywhere I mean not in the backpack everywhere, but in his hand everywhere - he just walks in the street and types with one hand)
wolverian Juerd, under 100e? 21:10
Juerd They're available for much less.
wolverian ah, good. thanks.
Juerd I've used a regular laptop back, and it's worked great in the rain.
It's not officially rain proof.
I bought a new laptop bag yesterday.
(Fjallraven DePendler) 21:11
I use it with sfbags.com's SleeveCase
wolverian I have a fjƤllrƤven jacket :) 21:12
Juerd That's no reason to mess with my terminal.
wolverian it's just utf ;) 21:13
Khisanth you and your dots! 21:14
luqui oh my god 21:48
Arthur made a perl 5 lexical hooks module
Hook::Scope
he uses a very clever technique (otherwise known as a sledgehammer): walking the optree! 21:49
integral brave guy :) 21:53
luqui darn, but optimizer.pm is broked 22:01
rather, B::Generate is broken 22:02
integral Just imagine: if more people used it, it'd be totally bugfree :-)
luqui I don't get it 22:03
Juerd Bugfree in the sense that Windows is 22:05
An occasional system freeze or severe unrepairable crash is accepted from Windows, because most people use Windows. 22:06
Another system better be more stable, or else, because not as many people use it.
</guess>
luqui that sorta makes sense... 22:07
it could also be that people would bug arthur more about it
Juerd Relatively nobody's complaining about the warning of uninitialized values for initialized but undef values. We've gotten used to it :) 22:08
But it should really be construed as a bug. 22:09
luqui I'm not complaining, because I start my programs with: use strict; use warnings; no warnings 'uninitialized'; 22:12
Juerd hehe
I quite like the warning
Usually indeed something is wrong when it shouts that
luqui I got about a 50/50 correctness ratio
Juerd Probably depends on what you're writing 22:13
luqui Yeah, and I'm pretty liberal with my undef use
Juerd Though I would know no specific areas of programming in which it does or does not matter