Pugs 6.2.6 uploaded by cpan-upload.p6! | pugscode.org/ <Overview Journal Logs> | pugs.kwiki.org | paste at sial.org/pbot/perl6
Set by integral on 2 June 2005.
mrborisguy i have an implimentation question for the masses: does 'is copy' in a sub definition mean that the entire thing is a copy? 00:31
take this code:
?eval my @aoa = ([1]); sub modify( @in is copy ) { @in[0][0] = 7; } modify( @aoa ); @aoa;
evalbot6 [[7]]
mrborisguy is that the expected result, or is [[1]] the expected result?
someone earlier said there was a post about this on p6l... i dug it up: groups-beta.google.com/group/perl.p...&hl=en 00:32
but they seem to veer off subject quite quickly and never answer this question
does anybody have any thoughts on which way is correct? 00:35
Enveigler1 On the basis that "unless otherwise stated P6 is the same as p5", and @a = ([1]); @b=@a; $b[0][0]=7; print $a[0][0]' => 7, I'd assume that [[7]] is correct until someone says otherwise. Maybe they'll need to be a "is deepcopy" trait also? 00:42
meppl gute nacht - good night 00:43
mrborisguy ?eval my @aoa = ([1]); sub modify( @in ) { my @copy = @in; @copy[0][0] = 7; } modify( @aoa ); @aoa;
evalbot6 [[7]]
mrborisguy yeah... i was just looking into that as you said it 00:44
since you'd almost think my @copy = @in is the same as @in is copy, i'm going to go with [[7]] is the right answer
(although i really would love a 'is deepcopy' for what i'm trying to do)
meppl does there still forks or threads work with perl6?
kelan ?eval chars( "Ā»" ); 00:45
evalbot6 *** unexpected ( or "(" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input at -e line 4, column 4
kelan ?eval chars( ">>" );
evalbot6 2
mrborisguy now that can't be right 00:46
kelan which?
mrborisguy your example
kelan the first or second?
mrborisguy i would say the first
kelan yeah its been that way for a while. i think its either just a parse bug or an evalbot bug 00:47
probably an evalbot bug
wolverian works fine on feather 00:49
kelan "it works fine" as in "theres an evalbot on feather that can eval it" or as in "pugs can eval it"? 00:50
wolverian pugs.
kelan it could be what i'm sending, too
i don't know if i have this unicode stuff set up right
wolverian it looks fine here, but let me see. 00:51
?eval "Ā»".chars
evalbot6 *** unexpected ( or "(" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input at -e line 4, column 4
wolverian right.
kelan ?eval chars( "Ć¼" ); 01:14
evalbot6 *** unexpected ( or "(" expecting term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input at -e line 4, column 4
mugwump hey autrijus are you still looking for an example of a DSL? 01:25
vcv- ?eval "test".chars 02:30
evalbot6 4
vcv- ?eval ?"test".chars
evalbot6 bool::true
02:41 batdog|gone is now known as batdog 03:05 batdog is now known as batdog|gone
smoofra what's up perl6ers? 03:13
hrmm 03:17
arcady we're not dead, we're just resting! 03:18
smoofra i was wondering if you knew something about parrot 03:20
whether it has continuations? 03:21
arcady yes, it does 03:24
in fact, it uses them all the time
for returning from function calls, for example
smoofra w00t
and you can access them from perl6? 03:25
arcady that I'm not so sure on
smoofra oh man i hope you can
arcady you might be able to eventually, when there's a perl6 that compiles to parrot 03:26
smoofra i heard perl6 is gonna have coroutines
and i thought maybe they were implemented in terms of continuations
arcady yes, that's probably how they're implemented
mugwump smoofra, there are already passing tests in pugs for coros 03:27
smoofra wow
crysflame pugs++ 03:28
smoofra i haven't really paid any attention to perl6 untill today.
i read all those apocalpses and i have been drooling for hours 03:29
mugwump checkout and build pugs, then look at examples/nested_loops/coroutine.p6 and t/unspecced/cont.t
smoofra it has macros, it has multimethods, it has coros and it has SYNTAX
ahhhhh
mugwump macros aren't functional yet AFAIK
smoofra that'd make sense if the pugs parser is written in haskell instead of perl 03:30
it'd be pretty hard to see how they'd do macros that way
mugwump it should be possible to implement in any language. but pugs was designed largely to flesh out the corner cases for the language, and produce an environment that a bootstrapping perl 6 compiler can spring from.. macros are "nice to have" 03:31
IMHO anyway. a LISPer probably thinks different :) 03:32
obra well, macros are "not yet". They're on the roadmap 03:35
03:36 khisanth_ is now known as Khisanth
smoofra I wonder how "regular" the parse trees will be 03:38
like, how easy will it be to go through them and do something at each node
mugwump If you have specific ideas about what the interface should look like, the pugs tests and examples suites are a good place to put them.. 03:46
smoofra i've got a few ideas. 03:48
mugwump ideally with research to previous discussion from p6l and/or sections from Apocalypse and Synopsis documents, but anything is better than nothing
smoofra you want macro1( macro2(blabla), ..) to work
assumeing macro1 evauates it's first arg
so you need macroexpand 03:49
except you can't really do that, because macro2 might parse in a non-standard way
so really you need "macroparse"
some easy way to parse and macroexpand all at once
mugwump sticky stuff isn't it 03:52
personally I think that source expansion macros are easily as evil as source filters
smoofra yea. in lisp-language it's like you have reader-macros and regular macros
but actually they are the same thing
they are when it comes to editors 03:53
but you can write a little macro that'd be a huge source filter 03:54
because you allready have the whole parser at your disposal
autrijus Greetings from Wien! 05:27
gaal hey autrijus!
autrijus :))
gaal i was just leaving actually :)
good luck with everything! 05:28
autrijus thank you!
gaal is off to $work. &
f0rth make clean doesn't work properly on win32, expanded command line too long 05:41
Aankhen`` What is the first line of output?
f0rth irc.csie.org:8888/100 05:45
is that enough?
Aankhen`` Yep. 05:46
You need to download an updated version of nmake.
Your version is 1.50, the latest is 7.10.xxxx.
f0rth so the auto-downloaded is not the latest... 05:50
autrijus it's the only free version. 05:51
so maybe the clean targets need fixing
patches welcome :)
Aankhen`` goes to shower, BBIAF.
svnbot6 r4455, Aankhen++ | * updated ext/libwww-perl/Makefile.PL 05:57
Enveigler1 The latest nmake I've seen comes with the .NETSDK > Microsoft (R) Program Maintenance Utility Version 8.00.40607.16 06:02
06:04 cornelius is now known as ank
nothingmuch good morning 06:47
arcady good evening : ) 06:48
nothingmuch autrijus: how was your flight? 06:50
if you like i can have my grandmother hook you up with some cookies 06:51
autrijus nothingmuch: uh, thanks, but probably not :) 07:07
the flight is fine. your journal is a nice read.
nothingmuch <voice="mobster">just so you know, I have connections in vienna...</voice>
is it accurate?
autrijus however (Reader Interp Interp) means a Reader computation that maintains a Interp and yields a Interp
nothingmuch yup
autrijus also there's one place where you wrote
nothingmuch did I say it isn't? 07:08
autrijus Eval Interp -> Interp
where it should be
Eval (Interp -> Interp)
nothingmuch:
What do you get? A `Reader Interp Interp`, or a in english a `Reader` of an an
`Interp` and another `Interp`:
and:
doExp :: Exp -> Reader Interp -> Interp
nothingmuch ah 07:09
got a line number for Eval Interp -> Interp?
autrijus no, it was Reader,sorry
doExp should be 07:10
doExp :: Exp -> Reader (Interp -> Interp)
no?
nothingmuch ah yes
wait
isn't Reader (Interp -> Interp) == Reader Interp Interp?
or is it Reader Interp (Interp -> Interp)?
i'm not awake yet 07:11
autrijus er, well. that's hte problem with having the smae name for TyCon and Ty
for clarity's sake, let's call the type Reader
and the constructor MkReader
"MkReader Interp Interp" is of type "Reader Interp" 07:12
er wait.
try again
"MkReader" is of type "(Interp -> Interp) -> Reader Interp Interp"
doExp is my patch is of type "Eval (Interp->Interp)" 07:13
which means something that evaluates in the eval monad and yield a function of type I->I
now suppose we define the Eval monad as:
type Eval a = Reader Interp a
then Eval (Interp->Interp) would become
Reader Interp (Interp->Interp)
end of explanation.
nothingmuch yup 07:14
`doExp`'s signature is
doExp :: Exp -> Reader Interp (Interp -> Interp)
autrijus that'd be right.
your journal got it wrong.
nothingmuch fair enough? 07:15
autrijus also this:
type Eval a = (MonadReader Interp m, MonadWriter Stack m) => m a
Which combines two other monads, a `Reader` for the `Interp`, and a `Writer`
for the `IO`.
yeah, fair enough
nothingmuch okay, first fix is in
autrijus if you say the Reader is for Interp
then the Writer is for STack
IO doesn't enter the picture
neither does ReaderT
nothingmuch hmm, good point 07:16
but I don't understand the details of that yet, so I couldn't really explain it
autrijus that's fine :)
nothingmuch i think i'll stick with 'writer for the IO', it's clearer why it's there 07:17
unless you have an idea for a technically correct explanation, that is not confusing 07:18
(huh? why does the stack need a writer?)
the way I saw it, Eval is a sort of unification, where Reader is Reader, and Writer bridges to IO
autrijus Reader bridges to ReaderT 07:19
Writer bridgers to IO
that'd be right.
saying Reader bridges to Interp and Writer to IO
would be mixing metaphors.
nothingmuch hmm, OK 07:20
autrijus you can alternatedly say Reader bridges to Interp and Writer bridges to Stack
that'd be using another idea of "bridge"
nothingmuch is WriterT or Writer being used? 07:21
autrijus neither. 07:22
nothingmuch oh
autrijus there are three concepts involved.
nothingmuch we're creating a sort of StackWriter monad?
autrijus "MonadWriter" is something that can write things.
it's a type class. 07:23
"Writer" is a type that is an instance of the said type class
that represent pure writers
nothingmuch right
autrijus "WriterT" is another type
that modifies another monad type
into an instance of the said type class, MonadWriter.
what I did though
is to declare "IO" type
as an instance of MonadWriter too.
by providing an implementation of "tell". 07:24
look for the line "instance MonadWriter"
nothingmuch uhuh 07:25
oh, I think I get it
since dumpInterp is an IO
then the instance of IO in MonadWriter is used for the Eval monad
autrijus right. 07:26
the Eval monad is a polymorphic type synonym
nothingmuch m inside `type Eval` is `IO`?
autrijus it is a synonym to any type that satisfies the two type class
nothingmuch (in this case)
autrijus no, m inside `type Eval` is
ReaderT Interp IO
nothingmuch oh
so ReaderT Interp IO also does MonadWriter on IO since it's both a Reader and an IO? 07:27
domm autrijus: So I assume you arrived at the hotel and everything is ok?
autrijus hey domm-san
yes, I'm just fine. network is a bit slow and a bit expensive, but I'll live :)
domm I'll come by the hotel in about half an hour. Maybe we can find a cheaper/faster place for you :-) 07:28
nothingmuch so wait, when is ReaderT involved? when dumpInterp is of type IO and it uses runReaderT runReaderT inside the IO eval has a polymorphic type's variable filled with IO? 07:29
autrijus: in austra now is the season to go to a Hoiriger (spelling anyone?) type pub thingamabob 07:30
and drink partially fermented wine
domm nothingmuch: Heuriger
nothingmuch domm++ # thanks
autrijus domm: that'd be cool... checkin is 2pm so I still got time to kill
jet lag is kicking in, so I'm very underclocked right now 07:31
domm nothingmuch: I think you're talking about 'Sturm', which (unfortunatly) only will be available in autum
chromatic Howdy.
nothingmuch domm: hmm... possibly
mom is going there for her sister's birthday party in a few days
and they are going to celebrate in a Heuriger, so I just assumed that the good stuff is there
chromatic Anyone besides the jetlagged one understand line 250 of Pugs.Bind? 07:32
I know what `zip` does, but I'm not sure why it's here.
domm nothingmuch: well, they've got very young wine ('heuriger' means 'of this year') but then I don't know much about wine.. 07:33
autrijus chromatic: say you have positional args $x $y $z and passes 1,2,3,4,5
chromatic: that `zip` will bind 123 to xyz and leave 45 to *@_ if it's there.
integral chromatic: looks like it's making a mapping from args (like $x, $y) to values 1, 2, eg $x => 1, $y => 2
autrijus i.e. in ($x, $y, $z, *@_).
chromatic Yep, I understand that part.
Suppose I have a positional argument with a default value and no parameter. 07:34
Does it consume the argument and never consider that it has a default value?
autrijus that is the basic idea.
I think.
because the default value only kicks in when a optional pos arg is unbound. 07:35
unboundOptPrms
chromatic Which bit of code handles assigning unbound default values?
autrijus finalizeBindings
line 220 on
chromatic Ugh, that one drove me nuts. Let me trace unboundOptPrms then.
autrijus sorry. Bind and Context are among the oldest code in pugs 07:36
that had not been refactored
chromatic Yes, it's pretty dense.
autrijus it's also when I had no idea what I'm doing and when I thought pugs only exists to test junctions and mmd in p6 ;) 07:37
chromatic I can see it being good at both.
nothingmuch okay 07:38
clarified Eval monad a bit
chromatic Hm, the right stuff is in boundDefOpts at the end of finalizeBindings.
That's not the problem. Darnit.
autrijus nothingmuch: to answer your question, yes, ReaderT enters the picture when you runReaderT.
(for reasons I hope that are obvious) 07:39
pasteling "nothingmuch" at 212.143.92.226 pasted "eval monad splain diff" (52 lines, 2.5K) at sial.org/pbot/10839
autrijus nothingmuch: 07:40
Plain `Reader` knows to do the former
that is true but not relevant
you want to say
Plain `ReaderT` knows to do the former
nothingmuch so wait, ReaderT is not a combination of Reader and some IO type 07:41
but rather a polymorphic MonadWriter that takes another monad?
autrijus nono
ReaderT modifies a monad type to imbue it with MonadReader powers
it does not use the Reader type at all.
it is also not specific to IO.
nothingmuch okay
right 07:42
autrijus it's like in perl 5 when you overload an array reference with %{}
it doesn't mean it becomes a hash
it doesn't mean there's a plain hash underneath
all it means is it can now pretend to be a hash.
nothingmuch right 07:43
autrijus so the T works a bit like that.
pasteling "nothingmuch" at 212.143.92.226 pasted "second try" (8 lines, 433B) at sial.org/pbot/10840 07:45
chromatic Grr, everything takes me back to applyExp. 07:46
autrijus chromatic: I thought we concluded the problem was in applyExp 07:47
pasteling "nothingmuch" at 212.143.92.226 pasted "new darcs w" (59 lines, 2.8K) at sial.org/pbot/10841 07:48
chromatic I just wanted to make sure. :)
autrijus nothingmuch: that's perfectly good.
07:48 scw_ is now known as scw
pasteling "chromatic" at 63.105.17.30 pasted "Problem Matrix" (17 lines, 632B) at sial.org/pbot/10842 07:49
nothingmuch the last hunk is at the very bottom
i hate debugging gui apps 07:50
autrijus chromatic: did you try removing all punctuations?
chromatic Yes I did.
autrijus alright.
chromatic That's the third one in the matrix.
autrijus domm: still @home?
Boogie autrijus: will you come to the pre workshop meeting (@ Wien)?
autrijus Boogie: when and where is that again? 07:51
I wonder if I can borrow a pcmcia 802.11b card from someone here.
Boogie autrijus: it will be in a cafƩ, somewhere in the city
autrijus the ndis centrino thing is hating the network here.
Boogie: sure, I'd like to go
Boogie autrjius: it' in awp status report #6: "Early arrivals on wednesday can meet at the 5uper.net MedienKunstCafe." 07:53
lathos autrijus: Did you check out buscador? 07:54
autrijus Boogie: I'll talk with domm and see what the arrangement would be
lathos: yes. it looks nifty. I also remember seeing it before.
Boogie autrijus: OK, domm knows the place.
lathos It's now reading p6i, p6l, p6c and p5p. 07:55
nothingmuch wonders why apple is changing to intel based CPUs, when for years they have claimed that PPCs process certain things much better, like adobe photoshop benchmark, but the adobe reps still say it's a good switch
i can understand why it can be good
autrijus nothingmuch: the Acceloraptor beat the Velociraptor.
nothingmuch but why couldn't adobe run faster on wintels if it was already good?
Boogie autrijus: I think I'll be there about 16.30, (my train arrives at 15.50), but don't know if I'll stay there, or look around in the museum. I'm sure, that I'll be there about 18.00. Just to know when you don't want to come. ;) 07:56
chromatic autrijus, stripping out the punctuation means that :bar(7) doesn't set $.bar in the parameter list.
nothingmuch autrijus: no further objections to the Eval interpretation? 07:57
autrijus chromatic: huh? shouldn't both strip to "bar"?
chromatic They do.
This is the part that confuses me.
autrijus chromatic: I could help more once I found a pcmcia card and don't have to use win32 :-/
nothingmuch: nope. you did well
nothingmuch okay, darcs pushing 07:58
chromatic With no passed-in value, $.bar keeps the default value just fine.
With a passed-in value, it still keeps the default value iff we strip the punctuation.
If we don't strip the punctuation (or just strip the sigil), it takes the passed-in value. 07:59
lightstep nothingmuch, ping 08:00
nothingmuch lightstep: pong 08:01
autrijus: lightstep thinks that import RWS is not needed 08:09
please fight to the death, and whoever is sexier in a bikini - that's whose opinion I will listen to
let me just whip up the MudPit monad
which accepts two parameters, but only one can ever come out! BUAHAHAHA
lightstep join #touch-my-monads 08:11
nothingmuch oops, finally finished darcs push 08:12
lightstep bye, i have to go learning some 08:15
nothingmuch ciao 08:16
why is the google logo different today? 08:26
osfameron frank lloyd wright apparently 08:28
nothingmuch is it his brithday anneversary? like, 100 years or something? 08:29
lightstep the hell with dirichlet's problem; programming is much better 08:40
nothingmuch hola lightstep 08:41
so what does touch-my-monads serve?
what purpose
and why are all the haskell people sex maniacs?
lightstep i can't find the logs now. there was a monogamy/sex discussion in #haskell two days ago (i think), and they created #touch-my-monads to move the discussion there. it didn't help 08:44
they kept offtopicing in #haskell
QtPlatypus ?eval "/match" ~~ m{^/ {say "Match"}} 08:53
evalbot6 Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them
QtPlatypus Ok that definitily doesn't work.
lightstep 3 days ago, from 11:37:38 to 13:12:11 utc 08:54
QtPlatypus looks confused at lightstep
lightstep the discussion that led to #touch-my-monads 08:57
drbean Are nested braces not allowed? 08:58
arcady QtPlatypus people have been saying that evalbot has problems with ^ and quoting 08:59
QtPlatypus I don't think its eval bot. I think its including code inside the rule 09:00
arcady ?eval "/match" ~~ m{/ {say "Match" } }
evalbot6 Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them
arcady it's both
QtPlatypus Is that feature even implemented yet?
drbean ?eval "/match" ~~ m[^/ {say "Match"}] 09:01
evalbot6 Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them
arcady it's also that evalbot doesn't allow "say"
or any side-effectful things
drbean Uh? It was OK on my machine!
arcady for me it says "MkMatch {matchOk = False, matchFrom = 0, matchTo = 0, matchStr = "", matchSubPos = [], matchSubNamed = {}}" 09:02
QtPlatypus arcady: Are you using embedded parrot?
drbean I get an unexpected "}" error. 09:03
arcady yes
other regexpy things work fine 09:04
?eval "foo" ~~ /foo/
evalbot6 Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them
arcady evalbot doesn't like regexps
it needs to be rebuilt, I think
QtPlatypus wonders if my first experement killed it 09:05
?eval my $x=1 09:23
evalbot6 \1
QtPlatypus Ok the bot isn't dead.
domm fyi: the wireless at autrijus hotel stoped working. 09:27
he's now on the way to a cafe with (hopefully) working (and free) wireless
QtPlatypus Thanks domm 09:28
nothingmuch makes bubbley sounds as he metaphorically drowns in ld's stderr output 10:23
kungfuftr anyone recommend japanese fonts for use with vim/gvim (specifically sjis encodings) 10:26
?
nothingmuch japanese perl 6?
arcady hey, p6 is the only language that supports arbitrary unicode as identifiers 10:27
lathos Doesn't Java?
Or, indeed, Perl 5.
arcady nope
osfameron_ VBScript might, bizarrely 10:29
lathos Depends how you're defining "arbitrary unicode". You still need a \p{word} as the first character of an identifier in p5.
osfameron_ [ .o( I am a valid VBScript identifier, oh yes!) ] 10:30
jabbot osfameron_: 1 ę—„ę˜Æꘟꜟäø‰
arcady java complains loudly
and I've tried all of p5, python, ruby 10:31
lathos I've used Unicode identifiers in Perl 5.
arcady and only pugs lets me have a $ŠæŠµŃ€ŠµŠ¼ŠµŠ½Š½Š°Ń
lathos Hell, I might even have implemented them.
jabbot lathos: 1 ę—„ę˜Æꘟꜟäø‰
autrijus_ woot. feather is much faster 10:32
QtPlatypus Hi autrijus_ 10:33
autrijus_ hi QtPlatypus
lathos perldoc utf8: "One can have Unicode in identifier names, but not in package/class or subroutine names." 10:34
arcady ah, you have to use utf8 first 10:37
svnbot6 r4456, autrijus++ | * hw2005.txt - Allison's reviews.
lathos At the moment, yes.
Also, why is telling me about something period three? 10:39
s//jabbot/
autrijus lathos: it is telling you that the first day of this month is wednesday 10:42
(star period three) == "wednesday". go figure
and why it goes berserk is anyone's guess... but blaming gugod is always the right thing to do
gugod: why does jabbot go berserk? 10:43
lathos Funny, I assumed Chinese would use the elementals, like Japanese.
Wednesday is wood-day. 10:44
autrijus_ nah. that's a .jp thing. 10:45
in chinese it's either "star period three" 10:46
or "mass day plus three"
both forms are recognised
although in .cn it's simply known as "weekday three". 10:47
(which is also recognised in .tw.)
...actually if you write "wood-day" .tw people will also recognise it. multiculturalism and all.
integral chinese and japanese use the same characters for these things? 10:48
lathos Sort of.
autrijus_ integral: yes. it's an abstract layer over spoken languages.
think DBI
lathos I can read a bit of Chinese, but I can't pronounce it.
integral heh, same interface, but different SQL
autrijus_ ditto for me and Japanese.
right. a sort of metalanguage thing.
lathos Also Chinese uses characters for everything, but Japanese has a separate grammar layer, so my Chinese grammar is always a bit hazy. 10:49
autrijus_ you can use Han characters to encode languages of wildly different grammar and phonetics etc.
lathos: Mandarin also has a separate grammar layer...
Cantonese also. Holok, Hakka also
lathos But it's still expressed in Han?
autrijus_ lathos: the grammar layer is separate from ideoglyphs.
ideographs, even
lathos Yes, but it's still kanji. So I can't easily tell the difference.
lumi It's a positional grammar? 10:50
autrijus_ lumi: largely yes.
lathos I mean inflections and things like that.
autrijus_ but I can only speak about Mandarin here. other "chinese" languages has different grammar.
needs some brain metaprogramming to get those morphology functors encoded. 10:52
lathos It always confuses the Chinese guys here when I can read their books and notes and things, especially if I can only follow the gist, not the full meaning.
autrijus_ lathos: it further dilutes things because .tw's younger generation imports nouns and verbs en masse from japanese.
(their kanji forms that is)
so valid japanese kanji fragments became valid -- but pronounced in mandarin 10:53
arcady then there are the japanese words that mean something different in chinese, and vice versa 10:54
and then there's the traditional vs. simplified issue... 10:56
lathos Yeah, someone told me about the .hk people inventing a few kanji of their own that the .tw people can't read, and vice versa. ("woman" with a stroke the middle of the body, for instance.) 10:58
arcady that's because cantonese is primarily a spoken language 10:59
and the written form is basically the same as written mandarin
but then online chat comes in and messes everything up... 11:00
nothingmuch needs a nap 11:39
autrijus: hw2005 says "We use the builting Haskell parser" - extra g 11:51
nothingmuch goes home 13:20
svnbot6 r4457, iblech++ | * Pugs.Eval -- Silenced a warning about an unused parameter. 13:28
r4457, iblech++ | * Pugs.Parser -- Extremely minor cosmetical fix.
r4457, iblech++ | * READTHEM -- Added my favourite Monad tutorial :)
mj41 ?eval { my $a; eval 'aaaa'; ( $! ) ?? say 1 :: $a = ' '; } 13:37
evalbot6 Error: No compatible subroutine found: "&say"
mj41 ?eval { my $a; eval 'aaaa'; ( $! ) ?? 1 :: $a = ' '; }
evalbot6 Error: Can't modify constant item: VInt 1 13:38
theorbtwo mj41: You can't say things from evalbot, only return things. 13:40
QtPlatypus theorbtwo: About evalbot, ether its regex support is broken, or I broke its regex engion. 13:41
theorbtwo Have you tried doing whatever it is you're doing under a real pugs? 13:42
QtPlatypus Yes
?eval "foo" ~~ /foo/ 13:43
evalbot6 Parrot VM: PANIC: Out of mem! C file src/memory.c, line 45 Parrot file (not available), line (not available) We highly suggest you notify the Parrot team if you have not been working on Parrot. Use parrotbug (located in parrot's root directory) or send an e-mail to [email@hidden.address] Include the entire text of this error message and the text of the script that generated the error. If you've made any modifications to Parrot, please describe them
mrborisguy random question: is there any method for classes that is similar to java's .tostring() ? 13:47
gaal|work .perl
mrborisguy so i can use 'say $class' and it'll print out $class.?tostring() 13:48
can i override .perl?
gaal|work not sure, let's see :)
wolverian pugs doesn't have anonymous classes yet apparently 13:49
theorbtwo mrborisguy: You should be able to write multi sub prefix:<~>(MyClass $x), but it's not there yet.
gaal|work ?eval class O {sub perl(){return "oooo"}}my $o = O.new; $o.perl 13:50
evalbot6 'oooo'
gaal|work however:
theorbtwo Ah, not the error I thought you were talking about, Qt.
gaal|work class O {sub perl(){return "oooo"}}my $o = O.new;\ ($o,1,2).perl
?eval class O {sub perl(){return "oooo"}}my $o = O.new; ($o,1,2).perl 13:51
evalbot6 '(\\{obj:O}, 1, 2)'
mrborisguy theorbtwo: yeah, that's what I had in mind. thanks for the info
gaal|work so this doesn't work yet
theorbtwo ?eval class O {method perl(O $x){return "oooo"}}my $o = O.new; ($o,1,2).perl 13:52
evalbot6 '(\\{obj:O}, 1, 2)'
theorbtwo Nope.
gaal|work nor with 'multi method'
mrborisguy i'm thinking more like say $o; yields the text i want, not say $o.perl; 13:53
i think
QtPlatypus ?eval class O {method perl(O $x:){return "oooo"}}my $o = O.new; ($o,1,2).perl 13:55
evalbot6 '(\\{obj:O}, 1, 2)'
QtPlatypus Interesting.
14:05 batdog|gone is now known as batdog
mrborisguy what's the point of 'roles' 14:07
i guess i don't understand them... 14:08
i'm reading through the syn, but it doesn't really make sense to me what they're used for
Limbic_Region gaal|work - it turns out the want tests that I was going to write (or most of them anyway) have already been written and marked "to do" 14:09
QtPlatypus would also apprechate a explination of Roles. 14:10
gaal|work for caller? really? cool, where are they?
or for %*SIG? also cool :)
arcady roles are like interfaces 14:12
only with code in them
mrborisguy oh 14:13
aren't superclasses like interfaces with code in them?
arcady so a role provides some methods for your class
and in turn uses methods from your class
so if you have a class that implements []
and does the ListFunctions role
then it gets map and grep and such
wolverian mrborisguy: here's the original traits (roles in perl6) paper: www.cse.ogi.edu/~black/publications...02-012.pdf 14:14
it explains the motivations for roles pretty well
mrborisguy i'll probably read that sometime today 14:15
thanks
wolverian you're welcome
mrborisguy for me... this is a lot of stuff to absorb... you guys are always a big help 14:16
lumi Roles are like traits but with sate in them, no?
mrborisguy (most of the stuff i read, i never really fully understand until i have a reason to use it)
lumi State
wolverian lumi: if you mean the traits in that paper, yes 14:17
perl6 traits have nothing to do with roles or the traits in the original traits paper, really :)
which is all a bit confusing!
lumi I meant like in Smalltalk
wolverian yes, probably.
(I'm not familiar with smalltalk.)
lumi Well, not like in Smalltalk, but like Smalltalk with traits
mrborisguy so the traits in that paper are like the roles in p6, correct?
(so i have some context when i read the paper) 14:18
wolverian mrborisguy: except they don't carry state
mrborisguy carry state meaning what?
arcady meaning instance-variables
mrborisguy okay
eric256_ hello
mrborisguy hey 14:19
eric256_ any ideas what happened to the journal?
used to be everyday....now twice a week, i think i am suffereing withdrawls 14:20
;)
QtPlatypus suspects that autrijus_ hasn'y been able to update it while they was flying around 14:22
mrborisguy could be
eric256_ ahh flying. that would explain it
gaal|work i just read the other day that one of the large airlines got approval to install wireless lan equipment on a plance from the FAA. 14:25
mrborisguy that'd be sweet! 14:26
eric256_ multiple levels of inheritances seems broken
theorbtwo gaal -- Lufthanza has been flying transatlantic flights with 802.11 for a while. 14:27
arcady I think the DHS claims that in flight wireless will help terrorists
or was that in-flight cellphones? 14:28
eric256_ ?eval class A { method test { 1 }; } class B is A { method test2 (2) }; my $x = B.new; $x.does(A);
evalbot6 Error: unexpected "{" expecting trait, ";" or end of input
mrborisguy i think the HUAC claimed everybody was a communist, too
eric256_ ?eval class A { method test { 1 }; } class B is A { method test2 () {2} }; my $x = B.new; $x.does(A);
evalbot6 bool::false
eric256_ ?eval class A { method test { 1 }; } class B is A { method test2 () {2} }; my $x = B.new; $x.isa(A);
evalbot6 bool::false
eric256_ am i missing something here? 14:29
theorbtwo donno.
mrborisguy i would think it wouldn't do A, but it should return true for isa(A) 14:30
(in my foggy opinion)
wolverian both should return true
eric256_ ?eval class A { has $.testing is rw; method test { 1 }; } class B is A { method test2 () {2} }; my $x = B.new; $x.testing = 5; 14:31
evalbot6 \5
mrborisguy i guess maybe it's time to write a test?
eric256_ ?eval class A { method test { 1 }; } class B is A { method test2 () {2} } class C is B { method test3 () {3} }; my $x = C.new; $x.testing = 5; 14:32
evalbot6 Error: No compatible subroutine found: "&testing"
eric256_ there is the bug i was running into...just had to get the right combination of stuff.
arg. or not.
?eval class A { has $.testing is rw; method test { 1 }; } class B is A { method test2 () {2} } class C is B { method test3 () {3} }; my $x = C.new; $x.testing = 5;
evalbot6 \5
eric256_ thats odd. i've got something very much like that, but i get the no compatible subroutine error.
drbean read acme's inflight use.perl post: use.perl.org/~acme/journal/24067 14:34
eric256_ i just commited a new units.p6 to examples. could someone run it...the accessor doesn't seem to be avialbe all the time. but i have no idea why not. i'm hoping i've just done something stupid in the code because the simple case above works.
?eval class A { has $.testing is rw; method test { 1 }; } class B is A { method test2 () {2} } class C is B { method test3 () {3} }; sub tester (C $x) {$x.testing}; my $x = C.new; tester($x); 14:35
evalbot6 \undef
eric256_ ?eval class A { has $.testing is rw; method test { 1 }; } class B is A { method test2 () {2} } class C is B { method test3 () {3} }; sub tester (C $x) {$x.testing}; my $x = C.new; $x.testing = 5; tester($x);
evalbot6 \5
QtPlatypus eric256_: Where do you get your units infomation from? I'm working on a units system that uses the same database as units(1)
eric256_ could it be only in an overloaded opertor? that doesn't make any sence. 14:36
wolverian sense.
eric256_ just playing with the basic overloading QtPlatypus i do'nt have any source of conversion data
thanks wolverian *sense
QtPlatypus eric256_: Nods 14:37
eric256_ lol. i found it! i'm so happy. it is the method chaining that is dieing. $a.to($b).test() test() is getting called on something else. it would realy be handy if the error message coudl state the long name of the sub it was looking for. not sure thats possible. but undefined subroutine test<X, Y> might have been immensly helpful here 14:42
svnbot6 r4458, eric256++ | units.pm - Testing some stuff with overloaded operators.
Limbic_Region gaal and or gaal|work t/builtins/want.t 14:44
not sure if they cover any/all of what you were interested in, but it does for me 14:45
gaal|work oh, L~R, thanks, but i was looking for caller, not want. 14:46
currently it works a little like p5's, not like S06 says it should 14:47
Limbic_Region I was thinking you were thinking I was I had a few more tuits then I actually had
theorbtwo I'm going to fix a few nitpicky details in units.
This really wants meta-model stuff to read a units.dat and dynamicly create the approps bits.
pdcawley does the dance of someone who's worked out how to write call/cc in perl 6. Assuming always that p6 doesn't use escape continuations to return through. 14:48
Limbic_Region gaal|work but A06 has this to say
eric256_ hang on. i'm about to recommit an actual working copy
Limbic_Region "The want function is really just the caller function in disguise."
eric256_ ;)
gaal|work izzit? :)
i'll read about that then.
Limbic_Region that's why I wasn't sure how much of what I wanted to do blead over into your focus point 14:49
eric256_ some of the nit picky stuff might be hacks around bugs theorbtwo ... i ran into some odd obstacles i'm going to try to docment them in it, then make sure there are already tests in place for those. feel free to hack at it though
pdcawley How evil is this: sub call_cc (Code $code) { $code(-> $r { return $r }) }
lathos Ouch. 14:50
theorbtwo Oh. I was just going to change some of the odd abreviations to standard ones, and fix postfix:<~> to prefix:<~>.
pdcawley grins. "I love that it's so easy" 14:51
theorbtwo I'll wait until you check in your doc patches.
Limbic_Region pdcawley - I am not sure I get it. You start out with some code ref, you pass it to call_cc which executes the code ref and passes it a pointy sub that returns itself? 14:52
svnbot6 r4459, eric256++ | units.p6 - it actualy works!. Well for a limited set of feet and meters
pdcawley The pointy sub returns to the place that call_cc returns. 14:53
gaal|work L~R, thanks for that, the Apo has lots of stuff the Syn neglets to mention.
pdcawley So, your supplied coderef gets passed a subroutine that returns to the point at which call_cc was called.
Which is equivalent to a continuation. 14:54
mrborisguy is that not the same as 'return $code'?
pdcawley No.
mrborisguy return $code() i mean
pdcawley No.
Because you can capture the continuation and take it multiple times. 14:55
Limbic_Region pdcawley - is there anything special about $code?
mrborisguy way over my head i think... ;)
pdcawley It's a chunk of code that takes a continuation as an argument. Can do whatever you like.
Limbic_Region the reason I ask is this - the pointy sub being passed as an argument by itself doesn't do anything unless $code acts on it right?
pdcawley Yes.
Limbic_Region ok
now I get it
In order to fully grasp the evilness of it though, I would need to see a more in depth example 14:56
eric256_ theorbtwo go ahead and make your changes.... ~ is prefix not postfix? no wonder that part never worked ;)
i thought i took that straigh from an example too
pdcawley my $continuation; Do stuff, somewhere deep in a loop: call_cc { $continuation = $^cc } 14:57
theorbtwo eric256_: It's prefix. OTOH, it still won't work -- it's unimplemented, because it makes for bad circular dependencies.
eric256_ lol
pdcawley One neat use of continuations is nondeterministic programming, but this channel is a little narrow for a demonstration. 14:58
Limbic_Region and to resume - $continuation(); right?
pdcawley Yes.
Limbic_Region brilliant - does it work?
pdcawley The fun begins when you implement things like 'try'.
I dunno if it works in pugs -- can't get it compiled on Tiger.
Limbic_Region you haven't requested a feather account yet?
theorbtwo Oh, blast. 14:59
pdcawley And I don't know if it's supposed to work in perl 6 anyway. I'm not sure whether larry's ruled on what sort of continuations are used by a return from a pointy sub.
I really hope it uses full continuations and not escape (one shot) continuations.
Limbic_Region well - AES17 hasn't been written yet 15:00
theorbtwo Can't make a sub m; it tries to do a match.
pdcawley LR: Not yet.
theorbtwo Or, at least, can't call a sub m parenlessly.
pdcawley Ah, but the semantics of -> ... { return } were described in a very early apocalypse.
Limbic_Region unfortunately - when decisions are rendered on p6l they are not immediately annotated in the appropriate docs
so I have no idea either
pdcawley But they didn't say whtehr you can return multiple times.
Limbic_Region really would love to see AES17
theorbtwo checks what 17 is. 15:01
pdcawley Remind me: 17?
theorbtwo Threads.
Limbic_Region coroutines
continuations
osfameron_ p6bible doesn't have stubs for unwritten AESs?
theorbtwo Subchapters in 3rd ed: "The Process Model", "The Thread Model".
No, osfameron.
Limbic_Region lots of good stuff 15:02
pdcawley Remind me who I ask for a feather account?
Limbic_Region is pulling up the link to p6 timeline by A
Juerd
pdcawley feather.perl.nl right?
theorbtwo Juerd, by email.
feather.perl6.nl, I think.
pdcawley Of course, if someone can work out how to build ghc under Tiger... 15:03
Limbic_Region ahh, here we go - perlmonks.org/index.pl?node_id=332117
theorbtwo pdcawley: It's in the readme of pugs, I think.
Limbic_Region pdcawley - gcc 4.0 is a known problem
I think merlyn is/was in the same boat
pdcawley Hmm... I shall go look.
pdcawley did gcc_select 3.3 and it still broke. 15:04
theorbtwo Have you tried asking #haskell?
sri_ pdcawley: use darwinports
pdcawley sri_ I *am* using darwinports.
sri_ works perfectly here
pdcawley Up to date and everything.
At least, I thought it was up to date... 15:05
sri_ took 5 hours to compile but no problems
Limbic_Region merlyn had a linking issue
pdcawley I didn't get as far as a linking issue. Complained about out of spec code or something.
Limbic_Region theorbtwo - WRT stubs for unwritten stuff in Perl6::Bible ( see perlmonks.org/index.pl?node_id=332117 ) 15:06
I had mentioned to Luke I would find stuff in the existing Ss that was missing information per that timeline but haven't found the tuits 15:08
theorbtwo pdcawley: Can you put up the error messages? 15:09
perbot nopaste
Limbic_Region perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pdcawley theorbtwo: I think I managed to get a slightly confuzzled darwinports.
Limbic_Region hands theorbtwo an inline speel checker
pdcawley Trying again.
pdcawley can't remember, is there a p6evalbot on here? 15:10
Limbic_Region ?eval 'foo'
evalbot6 'foo'
theorbtwo ?eval ?eval 'can I eval'
evalbot6 bool::false
theorbtwo Sorry, it's not here.
pdcawley Dang. 15:11
Wanted to check that return behaviour.
Limbic_Region TIAS
pdcawley TIAS?
Limbic_Region perlbot TIAS
perlbot Try It And See: the best way to learn if something works.
Limbic_Region the evalbot is in safemode 15:12
not sure what theorbtwo was talking about
pdcawley grins. Well, if darwinports succeeds.
mrborisguy questionable method if you're talking about a growing language, i'd say
theorbtwo ?eval '"Is pdcawley joking? " ~ [<no yes>].[rand 2];
evalbot6 Error: unexpected end of input expecting "'", "\\", "$!", "$/" or "$"
theorbtwo ?eval "Is pdcawley joking? " ~ [<no yes>].[rand 2];
evalbot6 'Is pdcawley joking? no'
eric256_ ?eval "Is pdcawley joking? " ~ [<no yes>].pick;
evalbot6 'Is pdcawley joking? yes'
mrborisguy ?eval "Is pdcawley joking? " ~ <no yes>.pick;
evalbot6 'Is pdcawley joking? no'
pdcawley ?eval $f = sub { return -> { 42 } }; say 'Boo'; $f() 15:13
evalbot6 Error: Undeclared variable: "$f"
pdcawley ?eval my $f = sub { return -> { 42 } }; say 'Boo'; $f()
evalbot6 Error: No compatible subroutine found: "&say"
eric256_ you can't say on the bot. counts as IO
pdcawley Ah.
?eval my@ary; my $f = sub { return -> { 42 } }; @ary[-1]='Boo'; $f(); @ary 15:14
evalbot6 Error: Modification of non-creatable array value attempted: -1
Limbic_Region ?eval my $f = sub { return -> { 42 } }; my $foo = 'asdf'; $f() ~ $foo;
evalbot6 '<SubPointy(<anon>)>asdf'
Limbic_Region interesting
pdcawley ?eval my@ary; my $f = sub { return -> { 42 } }; push @ary='Boo'; $f(); @ary 15:15
evalbot6 ['Boo']
pdcawley Hmm... that's *very* weird.
?eval my@ary; my $f = sub { return -> { 42 } }; push @ary='Boo'; $f.(); @ary
evalbot6 ['Boo']
pdcawley ?eval my@ary; my $f = sub { return -> { 42 } }; push @ary='Boo'; &$f(); @ary
evalbot6 ['Boo']
eric256_ whats weird about it? 15:16
pdcawley Ah. I wrote it wrong.
Limbic_Region ?eval my@ary; my $f = sub { return sub { return 42; }; }; push @ary='Boo'; $f(); @ary;
evalbot6 ['Boo']
eric256_ ?eval 1;return 2; 3;
evalbot6 Error: cannot return() outside a subroutine
theorbtwo ?eval {1; return 2; 3} 15:17
evalbot6 Error: cannot return() outside a subroutine
theorbtwo Hey! I thought bare blocks were supposed to count!
15:17 khisanth_ is now known as Khisanth
theorbtwo ?eval -> {1; return 2; 3} 15:17
evalbot6 Error: cannot return() outside a subroutine
theorbtwo ?eval (sub {1; return 2; 3}).()
evalbot6 2
pdcawley ?eval my @ary; sub foo { return -> {return 42}}; my $f = foo(); push @ary, 'Boo'; $f(); @ary
evalbot6 Error: cannot return() outside a subroutine
pdcawley Bugger.
theorbtwo OK, pdc, that's certianly a bug. 15:18
Both those returns are in subs.
pdcawley Actually, they're in blocks, which aren't Subs.
Limbic_Region pugs bug not necessarily a p6 bug
;-)
lumi ?eval my@ary; my $cc=sub { return ->{return 42} }; my $f = $cc(); push @ary, 'Boo'; $f(); @ary
evalbot6 Error: cannot return() outside a subroutine
pdcawley A block returns to the same point that the sub in which it was created would return to. 15:19
lumi ?eval my@ary; sub cc { return ->{return 42} }; my $f = cc(); push @ary, 'Boo'; $f(); @ary
evalbot6 Error: cannot return() outside a subroutine
lumi :/
QtPlatypus and an eval bot bug may not be a pugs error.
theorbtwo ?$*PUGS_VERSION
?eval $*PUGS_VERSION
evalbot6 Error: Undeclared variable: "$*PUGS_VERSION"
lumi No beautiful CCs for the wicked
?$?PUGS_VERSION
Limbic_Region forgot eval 15:20
lumi Rite
?eval $?PUGS_VERSION
Limbic_Region ?eval $?PUGS_VERSION
evalbot6 \'Perl6 User\'s Golfing System, version 6.2.6, June 2, 2005 (r4459)'
pdcawley utils/PrimPacked.lhs:244:0:
Warning: foreign declaration uses deprecated non-standard syntax
utils/PrimPacked.lhs:248:0:
Warning: foreign declaration uses deprecated non-standard syntax
?eval sub foo { return -> { 42 } } ; sub bar ($f) { $f(); 84}; bar(foo()) 15:21
evalbot6 84
pdcawley Now that's definitely a bug. 15:22
?eval sub foo { return -> { 42 } } ; sub bar ($f) { -> {return 42}; 84}; bar(foo()) 15:23
evalbot6 42
mrborisguy that returns out to the original without getting to the 84 then?
pdcawley ?eval sub foo { return -> { 42 } } ; sub bar ($f) { [-> {return 42}, 84]}; bar(foo()) 15:24
evalbot6 [sub {...}, 84]
pdcawley ?eval sub foo { return -> { 42 } } ; sub bar ($f) { [$f(), 84]}; bar(foo())
evalbot6 [42, 84]
pdcawley ?eval sub foo { return -> { 42 } } ; sub bar ($f) { [$f(), $f, 84]}; bar(foo()) 15:25
evalbot6 [42, sub {...}, 84]
pdcawley That should be crashing somewhere.
pdcawley realises that IRC isn't a whiteboard, and he should be writing the summary. 15:26
Will talk later.
theorbtwo looks forward to the summary.
QtPlatypus reads over the units.p6 "Interesting approch" 15:27
eric256_ hehe. yea. its just a playground right now
theorbtwo Yeah.
eric256_ trying to feel out what might work and might not. hacking it together. 15:28
i always seem to see projects as OO ;)
just the way my head is weird i guess
theorbtwo I just wish 42`m could work.
Sadly, that interfears with the m// op.
eric256_ oh instaed of capital M? 15:29
theorbtwo Right.
QtPlatypus theorbtwo: Should it work? They should have diffrent signatures.
eric256_ is should eventualy. if m is a sub then its signarture shouldn't be () so it wont be a problem
it*
theorbtwo The match operator isn't a sub, though, or even a normal operator. 15:30
It's a macro, conceptually. Not so conceptually, it has special handling by the parser.
eric256_ they should force it to be. do we realy need m anymore anyway? 15:31
PerlJam eric256_: yes!
eric256_: how else would you do m:e/foo/
?
eric256_ multi sub *postfix:<`m> (Int $value) { Meter.new(:q($value)) }; 15:32
15:32 davidra is now known as autark-jp
theorbtwo That's a good idea, eric256. Does it work? 15:32
?eval multi sub *postfix:<`m> (Num $value) { 'yes: '~$value }; 4.2`m 15:33
evalbot6 'yes: 4.2'
eric256_ ;) 15:36
that fixs the precedence issue too (i know i can't spell, don't rub it in ;) ) 15:42
alanl hello? 15:47
QtPlatypus Hi 15:48
alanl Is Pugs the main effort to get perl6 happening...? If so, would there be interest for more tutorials on haskell?
I have lots of half written material on haskell which I'm happy to polish and post if theres sufficient demand for it 15:49
QtPlatypus Yes and Yes.
osfameron_ and Yes
integral it's the main effort in that it's the thing moving quickest
Technically the "official" effort is pmichaud and parrot...
osfameron_ Pugs is kinda official now, no? 15:50
SamB who cares about official?
Khisanth well the official one still has to be written in perl6 :)
alanl okay....now even though I'm a big haskell fan myself, I'm somewhat surprised that Haskell was the chosen language....any reasons on why Autrijus chose Haskell?
Khisanth but what does being official matter if it is the ONLY one?
integral the official one has to be portable, just like parrot and perl5, and haskell just isn't, yet.
mrborisguy pmichaud? i've never even heard of that
integral alanl: Haskell is very good at abstract data types 15:51
QtPlatypus Khisanth: But most likely that perl6 will be compiled by pugs.
integral alanl: which is *very* useful for parsing and evaluating.
Khisanth QtPlatypus: at some point
integral There's also very good libraries for parsing, and for interesting stuff like subcontinuations, metaprogramming, etc
PerlJam mrborisguy: pmichaud is the guy in charge of making sure that there's a perl6 compiler.
mrborisguy ah
eric256_ hmmm this class scale up very well for unit conversions
SamB can't Pugs be the official bootstrapping implementation? (the one that is bootstrapped from) 15:52
mrborisguy has anybody started writing p6 in p6?
eric256_ what is the normaly way of storing all this conversion info? /me wonders off to find a p5 implementation
PerlJam mrborisguy: He's currently writing a shift-reduce parser in PIR to be used as the basis for the perl6 compiler. (this is a parallel effort to pugs)
SamB: it can.
integral mrborisguy: there's Prelude.pm in parrot which implements "primitives" in perl6
alanl well, one of the problems in Haskell is that since it is a "academic" language, documentation and tutorials for haskell is scant and very dry...now one of the projects thats has been on the backburner for me has been to write everything that I know about Haskell... 15:54
integral they are?
hmm, there's plenty of books
Khisanth hard to grep books :) 15:55
integral not HOP! (it's got a online search)
alanl yes, but they assume a lot from the reader, and as someone who have read them *all*, its not easy for the beginner
Khisanth any of the haskell books have that?
integral "beginner" as in can't program at all? 15:56
alanl as in someone who is not familiar with the functional programming paradigm 15:57
the hardest concept to wrap your head around is referential transparency
and theres the whole issue of monads 15:58
everything that I've read so far about monads is downright scary
eric256_ scans Math::Units and wonders if perhaps he is perfectly happy with exploration he has performed with units.p6 so far...
integral hmm? What's the hard bit with referential transparency? I haven't heard anyone point that out before
q[acme] i still don't understand monads
integral hmm, there was a nice paper for scheme which started with a recdescent parser, and showed how it could be monadic 15:59
Khisanth hrm referential transparency doesn't seem too bad but ...
alanl referential transparency basically implies that you can't change variables once you create them (and strictly speaking, variables don't exist in haskell)
QtPlatypus The only functional exposure I've had with scheme. Hascal makes my eyes go crosseyed.
integral hmm? You don't "create" variables though
eric256_ if you can't change a variable then wouldn't it be better refered to as a constant? since it can't vary 16:00
integral a variable, x, in haskell doesn't really exist the same way a "auto int x;" exists in C
lumi It's not really a constant, because there's no time for it not to vary in... 16:01
alanl uh huh....and this causes immense headaches for people who are used to doing things in procedural paradigms
integral hmm!
QtPlatypus Are they like verables in lambda calculis?
Khisanth alanl: know any online thing that has actual explanation on what a particular symbol means?
integral QtPlatypus: it basically is the lambda calculus (typed, lazy) 16:02
hmm, does this mean that people are going to find := hard in perl6?
It's basically the same as binding in Haskell
Boogie hi from Vienna... :)
alanl and lazy evaluation is another whopper concept for people to understand
Khisanth integral: they could probably do without it :)
QtPlatypus integral: Probly not, they will just think of it as an easy way to do glob manipulation. 16:03
integral eww, it's such a good optimisation though
Khisanth integral: I thought := was the p6 way of doing *foo = *bar; ?
integral Khisanth: yep
alanl khisanth, do you want to know about the standard haskell functions?
Khisanth integral: it does that and more? :)
alanl: that would be good enough for now 16:04
integral a haskell variable is more like a glob than a scalar in some ways. In that it points (bound) to something, rather than holding the value
alanl what would be the 5 topics that you most desperately want in a haskell tutorial? 16:06
theorbtwo The big thing I want is how to deal sanely with stateful operation. 16:07
integral ST's not too scary for a tutorial?
theorbtwo Most haskell tutorials I'v seen somehow skip that, and the examples and exercises are well-chosen so you don't notice that it's being skipped.
integral maybe a tutorial that taught something other than Haskell first? 16:08
alanl do you know if autrijus comes on here? 16:11
eric256_ he does
theorbtwo Autrijus is on here often. 16:13
q[acme] that's how pugs development is so fast
theorbtwo However, he is currently in the air between Taipei and Vienna, AFAIK.
integral he's in Vienna now, or at least he was earlier ;-) 16:14
theorbtwo Oh, I sit corrected.
alanl oh, the reason I ask it will be easier for me to convince my supervisor at school if I can get some emails stating that there would be real demand for a haskell tutorial 16:15
currently my school teaches haskell to first year programming students, but theres talk of getting rid of it and changing to c :-(
I want to write down everything I know about haskell before I forget about it from lack of use 16:16
Khisanth doesn't blame theme 16:17
s/e$//
I think education has been badly shaped by the past :)
theorbtwo Chaning to C wouldn't be a horrid idea... but they should teach both. 16:18
arcady I wonder whether C or haskell is actually harder to teach
C is a pretty awful language to teach though
theorbtwo arcady: When starting from scratch, I suspect C.
arcady I wouldn't be so sure...
theorbtwo However, a good portion of your students should already know some C, or something that looks vaugely like it.
Khisanth theorbtwo: Haskell probably 16:19
alanl we do
arcady from personal experience, for example, linux is easier than windows, if you are teaching someone who knows nothing at all
integral it depends what you're teaching I suppose. Try subcontinuations, and higher order functions with C
alanl but we teach haskell first then C
Khisanth from scrath that is
alanl well people think C is easier because the compiler let pretty much anything through...its when you get run time errors and segfaults is when its gets fun
the haskell compiler is a bi*ch, but once it compiles, runtime errors are basically nonexistant 16:20
lumi It's programming that provably doesn't suck 16:21
arcady yeah, segfaults and memory leaks
theorbtwo Memory leaks especially.
integral haskell is a whole league above C for memory leaks...
arcady and no decent standard library
QtPlatypus And buffer overruns.
arcady even java is better than C 16:22
osfameron_ but pointers are cool
QtPlatypus arcady: I wouldn't say that. Java is needlessly verbose.
C is good in its niche. 16:23
arcady yes, but at least it has things like variable-length arrays and linked lists and a stadard windowing API
C is good for when you actually need pointers and such
alanl well haskell can interface with C
and vice versa
arcady C is good for writing unix
seeing as that was what it was made for, mainly
QtPlatypus nods "C is good as a portable asmbeler" 16:24
alanl so who else apart from autrijus is actively involved with pugs?
obra alanl: I'd recommend reading commit logs
QtPlatypus I think they have almost 100 people commiting now. 16:25
eric256_ isn't pugs written in haskell which is written in c? (isn't that what GHC is or did i misinterpret the C part.)
eric256_ thinks on second thought he mistook the C
QtPlatypus I think C is for compiler.
eric256_ yea i only realized that for the first time as i typed it, until now i thouth it was some C variety. but that doesn't realy make any sense 16:26
sorje eric256_, parts of ghc are written in haskell
arcady that would make sense
haskell is good for writing compilers
QtPlatypus Like parts of pugs are written in perl6 16:27
integral GHC is mostly Perl and Haskell
alanl another thing that I'm surprised about that perl6 is going to be strongly typed?
mrborisguy is there a way i can modify a classes 'new' operator slightly, but then still let it use the default 'new' for the rest?
integral mrborisguy: maybe you want to modify BUILD instead? 16:28
PerlJam alanl: why is that surprising? perl5 is strongly typed.
mrborisguy can i get the rest of the "slurpy flags" from BUILD? 16:29
integral and "strongly typed" get's interesting with implicit coercions and context dependencies
alanl well "strong typing" in the haskell world is a lot stricter than perl 16:30
theorbtwo Learning C is good because it forces you to realize what the computer is really like.
alanl for example, theres no implicit coercion in haskell
integral it's not so much the typing, but the lack of implicit coercions
theorbtwo I wouldn't recommend actually programming in it, expect in strange cases. 16:31
arcady theorbtwo but it doesn't really get through to you the idea of what the computer is for
because it makes you do a lot of boring tedious things
integral rather than inserting a coercion the compiler complains, to me that's not really a change to the typing system, but to the compiler
cjeris "why do you bang on the keyboard so hard?" "haskell is a strongly typed language"
arcady which computers are way better at doing
alanl amen. C locks you into the current limitations of computers 16:32
integral theorbtwo: and it obscures the fact it doesn't have to be programmed that way. You don't need to use a stack for your activation frames, for example
QtPlatypus ?eval my int $a = 3.124;$a
evalbot6 \3.124
QtPlatypus Unfortunitly Pugs hasn't implemented perl6's type checking yet. 16:33
s/Pugs/pugs/ s/perl6/Perl6/
integral hmm, that's more like adding type to the context though. a bit like fromInteger is "context" sensitive in having it's return type unified with the type of $a 16:34
QtPlatypus Well thats what you get when you combine dynamic typing with strong typing. You get that in some lisp dialects. 16:35
alanl err....last time I checked haskell is statically typed 16:37
or am I misunderstanding what you're saying?
QtPlatypus Sorry I'm misunderstood what I was saying.
I should be asleep, Goodnight all. 16:38
I thought integral was talking about perl6 though. 16:39
integral I was talking about perl6, but pretending it was Haskell and saying what Haskell would do... confusing
sproingie has a hard time calling perl5 strongly typed what with its "scalars" 16:42
QtPlatypus Befor I do goto sleep, does anyone know if perl6 is specked to optimize tail recursion?
alanl uh huh
this is a nice paper on typing research.microsoft.com/Users/luca/P...ing.A4.pdf
quite readable for typing theory
sproingie i should imagine perl6 does tail recursion elimination
tailcall elimination that is 16:43
no idea if that's actually the case
QtPlatypus Thanks & # Sleep perchance to dream 16:44
sproingie ooh, been looking for introductory type theory stuff 16:45
alanl: know of any that cover category theory?
alanl nop. but are you interested in it? my supervisor is a *guru* at it
(category theory that is)
sproingie i just want to understand it. need "category theory for dummies" 16:46
alanl well, you can do me a huge favour if you write me a few paragraphs in an email stating that
sproingie i saw one "intro" paper (powerpoint slides actually) on LtU .. and it descended into unintelligible notation within 4 slides
alanl my email address is alanl (at) cse.unsw.edu.au
yes monads can be scary 16:47
but it is a necessary evil seeing that you need monads to do parsing
cjeris sproingie: how much math background do you have? i can suggest places to start but they're only good for math students 16:50
sproingie introductory discrete math is as far as i go 16:51
any greek more complicated than sigma sorta baffles me
Khisanth heh hard to keep track of one blank from another :P 16:53
dha question: is a new version of Pugs imminent? 16:54
sproingie basic set notation i can do, of course
dha just built parrot 0.2.1 and figured he should rebuild pugs, but wondered if he should wait a bit 16:55
sproingie actually the "category theory for dummies" slides aren't actually that scary, taking a second look 16:57
they're just such a gloss tho, i can't really get what points they're trying to make
alanl well category theory is the most abstract branch of abstract maths! 16:58
sproingie something on the level of wadler's style is about my speed
wadler made monads pretty understandable ... now if he could just do the same for arrows :)
gaal dha, a new version of pugs is rarely imminent for much longer than a week. 17:01
dha good point. Maybe I'll wait. :-) 17:03
gaal Autrijus mentioned he wanted to put out a release during his stay in Viennna. 17:04
dha tries to remember when that is 17:07
gaal now :)
dha oh. :-)
eric256_ doesn't realy matter if you wait though, just use the cutting edge svn version ;) 17:08
dha You know, I write the .pm news column for tpr and then it just flies out of my brain. :-)
eric - I'm not that brave or needy :-)
gaal are you compiling or looking for a cooked binary?
current HEAD is okay ttbomk 17:09
alanl so what factors have slowed parrot down? 17:10
dha Frankly, I'm not really using it all that much. so it's kind of a moot point. I just like to keep up. :-) 17:11
in any case, thanks for the timescale... 17:12
theorbtwo I think he wanted to put one out while he was giving his talk. 17:14
14:20 CEST tomorrow. 17:16
gaal cest = gmt +?
mrborisguy cest? central eastern time? ;)
gaal eurotime?
theorbtwo Central European Summer Time. 17:17
gaal gmt+2?
Khisanth Summer? do they do that silly 1 hour shift too?
theorbtwo Yes, Khisanth, we do. 17:18
GMT+2 indeed.
gaal in any case, i won't be around for the fun unfortunately.
mrborisguy that's just confusing for me because near me there is CST and EST 17:19
gaal now that smokes take half an hour on fast machines.. i wonder what the release is like.
(for just the tests) 17:20
used to be half that for clean build + tests
theorbtwo mrborisguy: It was mildly confusing when I first moved here.
gaal but then, we have three trillion tests now.
theorbtwo ESP because "S" is "summer" in europe, and "standard" in the US. 17:21
mrborisguy just uses feather... somehow new pugs get built, but it doesn't worry mrborisguy how
yep, "Standard" time and "Daylight" time, but I can never remember which is which
gaal that's a constant contribution of one smoke data point.
brb 17:22
sproingie feather? 17:23
gaal i need some spec help. can y'all please look at L<A06/'The "caller" function'> 17:24
and tell me what you think this means?
mrborisguy yeah, Juerd (I think it is) has set up a Perl6 server for people to play with p6 on.
gaal "where to stop when scanning up the call stack"
mrborisguy sproingie: he calls it 'feather'
i think stemming from 'parrot' 17:25
sproingie ah
gaal hmmmm
also this is in contradiction to s06
i think i need to p6-l this question.
sproingie now that pugs can import perl5 modules, i might start porting some real production code to it 17:26
nothing that needs to run automatically, so if it breaks, i just go back to the old version
lots of textfile parsing and munging tho. could give PGE a workout 17:27
geoffb guten tag, folks 17:40
vel hi, all. how while (<DATA>){chomp;} looks like in pugs? 17:41
mj41 ?eval { my %a; if ( not %a<aaa> ) || ( %a<aaa> ne 'b' ) { 1; } } 17:45
evalbot6 Error: unexpected "i" expecting ";", statements or "}" reserved word
vcv- @DATA>>.chomp; ? 17:46
17:48 lampus_ is now known as lampus
geoffb Hmmm, I'm guessing one of imbibing or jet-lagged sleeping is happening, given the silence from Vienna 18:45
Khisanth or hacking :) 18:46
theorbtwo I think he'd make a quick stop in if so.
OTOH, Leo is on ISDN, so possibly not. 18:47
gaal he did, to2.
around this morning.
gaal reads broquaint's disconnection message as "Connection reset by beer" 18:48
geoffb That may well be the case many times. :-)
gaal happens to be sipping some fine, fine whiskey atm 18:49
stevan gaal: oooh what kind?
gaal Laphroaig
stevan never heard of it
I am a fan of the 12 year old Jameson myself :)
gaal islay malt.
very peaty. 18:50
geoffb remembers the first time a shopkeeper explained the organization of whiskey on his shelves. 18:53
I boggled.
stevan remebers the first time he had "real" whiskey, as opposed to watered down well "whiskey"
theorbtwo geoffb: How are they arranged? 18:56
stevan *sigh* - I miss pugs :)
gaal if you have a spare -gulp- 900 pounds, this should be nice. www.laphroaig.com/shop/show_item.as...hop.whisky 18:57
stevan ouch 18:58
geoffb theorbtwo, it's been a while, but I remember he had three floor-to-ceiling racks, each with maybe 6-12 shelves, each labeled with a region. So far I was fine, it was kindof like wine, just not paying attention to various grapes.
Aankhen`` :-D
stevan down from 1000 lbs :)
Aankhen`` is now running on a P4 630 with 1 GB of dual channel RAM and a GeForce 6600 GT 256 MB (PCI Express) graphics card. 18:59
:-D
geoffb theorbtwo, then he explained a mapping from a sort of taste space to geographical space to shelving.
stevan so gaal which one are you drinking
gaal all the complexities of book indexing in a liquor shop :) 19:00
geoffb Like "peatiness increases as you move this way across Scotland, and therefore this way along the shelving"
gaal i'm drinking the "original cask strength" one.
geoffb Theoretically, if you knew any of shelving, flavor, or distillery, you had the others as a quick gonculation
gaal usually i water it down a bit, it's strong stuff 19:01
stevan gaal: have you ever had the 12yr old Jameson?
gaal i mean more than 100 proof strong
stevan gaal: wimp :P
geoffb is jealous of Aankhen``'s rig -- sigh
gaal drinking it neat right now
Aankhen`` repeats: :-D
gaal but that's because i'm only having one shot
after that you don't really *know* what you're tasting :-)
Aankhen`` It finally materialised! Woo hoo! 19:02
gaal stevan, i have not
Aankhen`` I just wish I hadn't had to reinstall Windows. :-\
gaal a.*, what's the clock speed?
Aankhen`` But ah well, I was due for a reinstall anyway.
gaal >> 3.0 GHz., 32/64-bit ready, 2 MB cache.
stevan gaal: hmmm, oh well I guess i will have to taste compare on my own :)
Aankhen`` Need more marketing mumbo jumbo? ;-)
gaal :) 19:03
Aankhen`` dances!
stevan Aankhen``: but does it run OS X :P
Aankhen`` stevan >> Thankfully not. =)
stevan soon it will
geoffb stevan, it will soon, I'll bet. :-)
Aankhen`` Yeah.
gaal no, not really
apple will not run on any intel rig 19:04
stevan true
gaal they make money by selling computers.
they will continue to do so, with slightly different computers.
stevan true
theorbtwo gaal, the developer machine being shipped out is very close to some random intel rig.
www.xlr8yourmac.com/ 19:05
stevan although I would assume Apple might still make it possible for you to install OSX on a other machine
geoffb stevan, they claim not -- but I personally think that's a load of BS. Marketroid for "Lessee how many people try to hack it", as Ars Technica pointed out 19:06
theorbtwo They run Windows fine. All the chipset is standard Intel stuff, so you can download drivers and run XP on the box.
q[pdcawley] You'll probably need openfirmware (at least).
gaal stevan, when we meet, we'll buy each other drinks and compare.
theorbtwo wonders what the q[...] is for.
stevan gaal++ # I am applying your utf8 DBD-Mysql fix right now
gaal: surely :)
gaal ha!
glad people use it! :)
Aankhen`` goes to install Doom 3 and check the FPS. 19:07
stevan nothingmuch hooked me up with it
it is very useful
gaal pity it didn't, like, MAKE IT TO THE DISTRO ALREADY hello it's 2005
stevan my latest project has to be French canadian as well as english
geoffb Aankhen``, give trislam a try, if you've got a chance . . . you'll need SDL_perl for Win32 1.20.5 and the trislam benchmark itself off my site (www.broadwell.org) 19:09
Aankhen`` Remind me about it in a few days, would you? 19:10
geoffb Aankhen``, the output is in an "early state" *cough*, but I'm curious what trislam posts for max pixels and triangles per second on that rig
Aankhen``, sure
stevan q[pdcawley]: according to theorbtwo's url "The machines do not have Open Firmware. They use a Phoenix BIOS. "
Aankhen`` Thanks. :-)
Aankhen`` tries to recall how to disable AutoPlay.
q[pdcawley] Oh. Fairynuff.
q[pdcawley] racks his brain. Of course, NeXTSTEP/86 ran on reasonably vanilla hardware (with a rather small compatibility list of hardware). 19:11
Aankhen`` Oh, it might be in the 'AutoPlay' tab in the CD drive properties...
:-P
gaal a.*, install TweakUI
stevan q[pdcawley]: I am sure *someone* will hack it
Aankhen`` Hmm, apparently not. 19:12
stevan after all, they had IRC on the PSP in like a day
gaal then go to my computer > autoplay there
Aankhen`` gaal >> Wha?
gaal microsoft have a "power toys" tool
it includes "tweak ui"
get that, it's nice
theorbtwo Consider that opendarwin runs fine on a rather small set of normal x86 rigs. 19:13
(IIRC, only those with intel chipsets.)
geoffb considers whether he *really* wants to do `apt-get dist-upgrade` on his old mail server (which went through the previous stable transition the same way) 19:16
Something to do while waiting for pugs to compile . . . .
eric256_ wishes that sony would let the PSP run all that software instead of putting more secure firmware on it 19:21
Darren_Duncan I'm feeling bad that I may not be able to attend OSCON 2005 despite previous intentions to do so, for financial reasons
gaal give a talk? or is that too late? 19:22
gaal prefers the low-cost confs anyway
q[pdcawley] It's too late to give a talk at EuroOSCON. Bound to be too late for the US one.
gaal though i was never at a fancy *perl* conf... 19:23
q[pdcawley] Is Thomas Sandlaōæ½xDF on this channel?
geoffb eric256_, Sony could never be accused of enlightened behavior WRT open devices 19:25
gaal yay, larry replied.
theorbtwo Not as far as I'm aware, q[pdcawley], but that doesn't mean terribly much.
geoffb gaal, my recollection is that OSCON was worth going to at least once . . . but then I did it on the company dime, and I've never done a YAPC . . . . 19:26
q[pdcawley] Heh.
I'm trying to work out which of us has grasped the wrong end of the Perl 6 stick.
geoffb The one with the hand on fire? 19:27
q[pdcawley] Heh.
geoffb afk for a bit
gaal why does caller have to be insanely fast anyway? 19:30
q[pdcawley] would argue that it should in fact be insanely slow.
gaal 3rd(caller(Sub)) works, if somewhat inefficiently 19:31
Juerd q[pdcawley]: Account is created
q[pdcawley] Juerd: Ta.
gaal modulo implementation of 3rd
q[pdcawley] feather.?? I forgot.
gaal perl6.nl
or: perlcabal.org
or a few other things :)
Juerd Yeah, it's feather.perl6.nl and whatever people point there :)
q[pdcawley] remind me and it can be perl6.bofh.org.uk if you like. 19:32
Juerd q[pdcawley]: I neither like nor dislike it. If you wish to create it, let me know and I'll announce it in ~juerd/README
I'm completely apathetic wrt extra hostnames 19:33
q[pdcawley] Heh. Sensible lad.
Aankhen`` [00:42:10] <gaal> then go to my computer > autoplay there 19:35
[00:42:22] <Aankhen``> gaal >> Wha?
-
gaal Aankhen``: 04[22:14] gaal: 01microsoft have a "power toys" tool / 04 01it includes "tweak ui" / get that, it's nice 19:36
sorry about the red
Aankhen`` Ah, I'm saving that for a while later.
Red?
gaal my client it all beautifooool.
Aankhen`` There was red in that?
gaal it paints things
yes.
Aankhen`` Ah. 19:37
I'm glad my client strips colours. :-)
gaal :)
theorbtwo can't see a bit of that, because everything after the gaal: is black-on-black.
Juerd My client paints things too, which I like
But it would be BAD if it used that colouring when pasting.
gaal i like it too, Juerd, except that .... exactly :)
Juerd s/pasting/copying/
gaal exactlier :))
Juerd gaal: Is it mirc?
gaal no! 19:38
Juerd :)
gaal good heavens
trillian
Juerd There are more than one clients that do this stupid thing?
Oh, trillian
EVEN WORSE
gaal it's actually a very nice multi-IM client
Juerd Yes, that it is
gaal though its irc caps are a little basic.
Juerd But it's an exceedingly stupid IRC client, more so than mirc, if you ask me.
theorbtwo Hm, the last time I used trillian, it had all the bad points of gaim, but few of the good points. 19:39
gaal eg., it wont' wake me up in the middle of the night because #perl6 talks about me. :-)
theorbtwo For one thing, it was ugly and took up lots of screen space for uselessness.
Juerd Neither will irssi
gaal: Do you know irssi?
gaal: If so, why don't you love it?
gaal nope
Juerd Then get to know it :)
gaal i'm required to love it? :)
Juerd To a certain extent
gaal ok, will do my best :)
Juerd You're not required to love its lack of documentation, inconsistent commands and sometimes very weird Perl interface, but you are to love all the basic features and simplicity. 19:40
Feel free to use feather - some others do already. (As long as it's mainly Perl 6 chatter)
gaal juerd, for better or worse, my main desktop boxen are windows these days. 19:41
Juerd That's why I suggested using feather
gaal and i prefer chat to be based on my local machine
Juerd Why?
Juerd sees no advantage
Except perhaps dcc - but who dcc's anyway?
gaal just a pref. responsiveness, notification on messages. 19:42
Juerd never uses irssi on a local machine if he can reach his irssi box :)
*beep* not good enough for you? ;)
And responsiveness I guess depends on your line
gaal *shrug* i'm not really interested in The Ultimate in IRC Experience
Juerd The lines I use are generally fast, including mobile phone lines.
gaal juerd, it also has to do with the speed of light :)
Juerd How is the speed of light involved? 19:43
gaal latencey
prolly acceptable feather <-> tel-aviv
Juerd I notice no latency using DSL or cable lines :)
But I have no idea what kind of line you're using
gaal but e.g. tel-aviv <-> canada can be 200ms or more 19:44
or lots more on a bad day
Juerd 200 ms is too much indeed
webmind gaal, sattelite links?
Juerd 100 ms is barely noticeable.
webmind satelite
gaal you need to do a round trip, and it's transatlantic.
Juerd webmind: No, satellite gives you much more than that, except when you have two dishes.
gaal i'm getting 222ms rtt to feather now 19:45
Juerd That's awful
gaal that's geography for you.
webmind Juerd, yes
Juerd But, tbh, most connections to .il suck
gaal: Not necessarily.
wolverian I get 40ms :) 19:46
gaal .il is not especially wonderfully connected, true, but it's not *atrociously* wired either.
12 hops.
heh heh, lambdanet.
Juerd The *number* of hops isn't terribly important
Oh, you're routed over lambdanet? That explains everything. 19:47
Lambdanet is the single most crappy transit connection the network feather is on has
wolverian what is lambdanet?
Juerd wolverian: Nowadays called Cogent
wolverian right.
gaal the number of hops is a factor, because more devices = more chance of a slow switch.
Juerd gaal: That's true 19:48
But a single hop can introduce as little as 0.3 ms
So 12 hops doesn't directly relate to the >200 ms
gaal oh i forgot, you're in nl actually, your standards are very high. compared to what you're used to .il is very badly connected indeed :)
Juerd I keep hearing that from foreigners 19:49
But I think our internet connectivity rather sucks.
wolverian funet. <3
gaal that's in fi!
Juerd Especially when it comes to our internet exchanges, that are surprisingly badly "secured"
wolverian gaal: well, yes. :)
Juerd wolverian: Funet has lovely ping times always :)
gaal but, yeah, that is well wired.
hella well. 19:50
anyway,i'd better moose off now
sleep well, folks, release tomorrow :)
Juerd --- ftp.funet.fi ping statistics ---
275 packets transmitted, 273 received, 0% packet loss, time 4016ms
rtt min/avg/max/mdev = 32.486/33.210/42.468/1.149 ms, pipe 4, ipg/ewma 14.659/32.853 ms
That's very nice for a flood ping.
Bye, gaal 19:51
gaal bye :) &
integral Juerd: can I get an account on feather? Do I need to email or privmsg you?
Juerd email
Include your real name and requested username
integral just your address off the mailing lists?
Juerd Or any other of my addresses 19:52
[email@hidden.address] should work too :)
integral ok, thanks :-)
oooh, 14ms from here, nice
wolverian tests his ttl to mirrors.playboy.com/CPAN 19:53
s,ttl,rtt,
lathos My local CPAN mirror is always 127.0.0.1 :)
Juerd uses no CPAN mirrors anymore
The only box on which it'd be useful is my laptop 19:54
wolverian I use the debian/ubuntu "mirrors".
Juerd And that one isn't always on, so it can't easily update via a cron job.
wolverian (that is, apt repositories.)
svnbot6 r4460, autrijus++ | * some more work on hw2005.txt 19:59
r4461, autrijus++ | * draft of tomorrow's talk
r4462, autrijus++ | * Scalar::as.
r4463, autrijus++ | * cosmetic fixes to code to agree with the slides. ;)
wolverian draft? WHERE
oh, there.
autrijus++
heh. can I make spelling fixes to it? :) 20:02
Aankhen`` W00t! 20:09
A steady 60 FPS in Doom 3, at High Quality! 20:10
autrijus wolverian: please commit ahead!
wolverian autrijus: ok! 20:11
my pugs is about a thousand iterations behind, so this will take a sec :) 20:12
Juerd wolverian: What, you forgot to update for a whole week? :) 20:15
wolverian Juerd: I usually just use feather. 20:16
(it was two weeks, maybe. :)
integral Juerd: oops, sorry for the run around with my email 20:19
ninereasons what's the right way to type the utf8 characters that we use in perl 6? in vim, for example? 20:24
autrijus ninereasons: docs/quickref/unicode 20:25
ninereasons autrijus, I'll look there, thank you
autrijus :) 20:26
the network can timeout any time
so see you tomorrow from APW!
q[pdcawley] wonders if anyone's registered cp6an.org yet... 20:27
ninereasons autrijus, docs/quickref/unicode is full of helpful things. thanks again. 20:29
Juerd integral: I'll reset your password to what was mailed to you 20:32
integral Juerd: thanks :-)
Juerd Done
Now chang eit
integral is just cleaning up that mailbox
Juerd s/ eit/e it/
wolverian Juerd: when learning dvorak, how could you stand being on IRC and not being able to type fast? 20:33
Juerd wolverian: I initially learned it during camp, where we had no internet connection. 20:34
integral Juerd: done
wolverian Juerd: right. I think I need to do something similar.
Aankhen`` G'night.
Juerd wolverian: Connectionless? That can be arranged.
wolverian (I have the home row keys mapped out now pretty well, but I'm still awkward.)
(using dvorak.nl++)
Juerd Another option is to use both qwerty and dvorak 20:35
But that hinders learning
Still better than not learning dvorak at all
wolverian yeah. I now have things set up that way - I have a persistent vim session open that's in dvorak, other programs are in qwerty.
Juerd usually suggests learning dvorak for 1 hour per day, until the entire alphabet is mastered.
That's awful.
q[pdcawley] The only alternative mapping I used was the Maltron one (homerow ANIS THOR, with E on the right thumb) and it was easy to switch back and forth because flat keyboards were qwerty and shaped ones weren't. 20:36
Juerd Keyboard layout switching should be global and global only.
q[pdcawley] Problem arose whenever I used a split microsoft keyboard -- muscles thought it was a Maltron.
Juerd Haha
q[pdcawley] I kept wondering why I was typing spaces.
Juerd q[pdcawley]: If you type much, and you do, I really do recommend dvorak.
q[pdcawley] I should really dig out the maltron and get it working with USB and the mac tbh. Very nice layout. 20:37
Fingers hardly seem to move if that makes sense.
Juerd I use a shaped keyboard (kinesis contoured) with dvorak
Same thing there - fingers hardly move.
q[pdcawley] Ah. Maltron is what Kinesis ripped off.
Juerd Yes.
q[pdcawley] E on the thumb is just lovely. 20:38
Juerd I know. I prefer something a little bit compatible with other keyboards that I use :)
q[pdcawley] As I say, the contoured/flat switch solved that.
Juerd Oh, but the kinesis can be remapped
I just don't think e is nicer than space for the thumb.
q[pdcawley] The pain arose if I tried to use the the maltron in qwerty mode.
space on the other thumb.
Juerd But the other thumb is backspace!
Which also rocks 20:39
q[pdcawley] Well, there's nine 7 buttons per thumb. Can't remember the exact layout, but space, backspace, E and enter were all beneath the thumbs.
Juerd It's a key I learned to use very naturally, even though its position is very radically different from other keyboards I used.
q[pdcawley] s/nine//
Juerd 7 per thumb. Whoa.
Hm 20:40
q[pdcawley] Some of them are oversized.
Juerd Now that I think of it - there are 7 on the kinesis things too
q[pdcawley]: Why don't you use that Maltron anymore? 20:41
q[pdcawley] I've not got it working with USB - it's old 5 pin DIN attachement. 20:42
Juerd ah 20:43
q[pdcawley] I really shoudl get in touch and sort out an upgrade.
Juerd has convertors in stock :)
Ough - maltrons use cherry switches?
I *hate* that lack of feelback
Although Kinesis' keys are almost feedbackless too, at least they installed a clicking speaker ::) 20:44
svnbot6 r4464, wolverian++ | r1068@chronoa: wolverian | 2005-06-08 23:41:20 +0300
r4464, wolverian++ | Trivial spelling fixes.
Juerd s/::/:/
q[pdcawley] I never found it an issue. If it's flat, then I want IBM buckling spring and damn the torpedoes. If it's as well contoured as the Maltron it doesn't seem to matter. 20:45
Juerd apple-- # NO, I DO NOT WANT THAT SOFTWARE UPDATE THINGY TO STEAL FOCUS
And now I hit escape to get rid of it
So no updates this week.
Effect missed.
q[pdcawley]: I see
wolverian hm, I forgot the --verbatim again :) 20:46
should svnbot6 list the affected files, by the way=
s,=,?,
PerlJam wolverian: no.
It's already too verbose IMHO 20:47
(perhaps if that info were available on request to those that care, that would be fine)
wolverian PerlJam: right. maybe it could just add '(Affected: foo.pl)', or '(Affected: multiple files)'? that's not _too_ verbose, I think 20:48
PerlJam wolverian: sure as long as it's not another line just for that :)
Khisanth wolverian: that seems not too useful 'Some files were affected' :) 20:49
Juerd The word "affected" would be bloat.
As is anything that is repeated with every message.
Like the initial 'r', the ',', the '++', and the '| ' 20:50
wolverian Juerd: heh.
Juerd: I agree with the 'affected' thing though.
Juerd 22:44 < svnbot6> r4464, wolverian++ | Trivial spelling fixes.
"4464-wolverian-Trivial spelling fixes." 20:51
More than enough.
PerlJam aesthetically, I prefer to see the "r" in "r4464"
Juerd Aesthetics are overrated in irc bots.
They should be practical, not cute or pretty. 20:52
(Unless AI-ish)
PerlJam Juerd: if it's going to spout something automatically, it should at least look nice
Juerd PerlJam: Nah
wolverian Khisanth: '5 new files', '2 files changed', that is a bit more helpful, but still not very, I guess.
Juerd PerlJam: In fact, I'd prefer automated messages to have ^C14 in front :)
PerlJam wolverian: less is more
Juerd "144464-wolverian-Trivial spelling fixes."
wolverian I agree with Juerd, except I like the ++ :)
Juerd wolverian: "+5", "*2" 20:53
wolverian: No words where not necessary.
wolverian: I don't. I think it is a rather silly thing.
wolverian Juerd: that might be getting too cute.
I would prefer that format, but I'm not sure if everyone here would.
mugwump I liked it when the bot's messages looked pink because they were special bot messages. What happened to that?
PerlJam partitions the karma into *real* karma and bot-karma
mugwump is still an irc n00b
Juerd mugwump: They were never pink.
mugwump: They were notices, though, which your client could colour pink. 20:54
mugwump ok MAGENTA in default irssi config :)
notices, ok
Juerd mugwump: However, notices add lots of information in many clients (like the channel name), and sometimes end up in status windows.
PerlJam I liked it when the bot was silent. :)
Juerd PerlJam: Then ignore it.
wolverian is the bot in pugs rep? 20:55
PerlJam nah, it doesn't bother me that much. If it did, I'd have ignored it long ago.
wolverian svnbot.p6, right. 20:56
heh. this is still using the hash-oo hack. :) 20:57
PerlJam wolverian: I was going to say "patches welcome" to you, but I guess it's more like 'reimplementation to take advantage of newer features welcome!'
wolverian hehe. :) 20:58
ihb hash-oo hack? 21:01
wolverian ihb: $bot<method> 21:02
hmm. Net/IRC-OO.pm has 2-space indentation, and vim doesn't like to reindent for me sanely, due to the lack of a perl6 indent expr.
maybe I should just fix that first.
Shillo Hullo, all!
ihb wolverian: where does &new_bot come from? 21:03
putter Has anyone written ArrayX, HashX wrappers to work around current array and hash brokenness?
eric256_ how are arrays and hashes "broken"? 21:04
wilx What's APW?
putter eric256_: they explode in listish contexts. 21:05
eric256_: Array also has multi sub dispatch problems.
The hash/array explodes in list has been known for a while now. I'm unclear if there is an explicit "defer fix until ...", or it simply hasn't been gotten to. 21:07
The Array displatch is new... multi sub f(Array $o){...} multi sub f($o){ if(ref($o) eq 'Array'){#try again;my $a=$o; f($a); #works!?!; else die "unk type"} 21:08
PerlJam putter: Just point him at the test cases that illustrate the brokenness 21:09
putter last two test in t/data_types/mixed_multi_dimensional.t 21:11
basically, anytime an array or hash ref hits a list context (literal array, argument list, etc) it's survival depends what's nearby. 21:14
ok, no known wrappers. ah well. ;) Thanks. 21:23
theorbtwo wolverian: there's a vim indent thingy in util (but don't ask me for details -- I don't know vim). 21:37
geoffb What's the best behavior for a test script when failure of a test indicates that any further testing will just explode? Should it die, or skip_rest perhaps? 21:49
theorbtwo Depends on what you mean by explode. 21:56
If you mean the rest of the tests in the file are certian to fail, use fail_rest (which may or may not exist).
If you mean that the things the rest of the file is testing for may or may not work, but you can't run the tests anway, then skip_rest. 21:57
skip_rest was written for t/unspecced/eval_haskell.
geoffb Doesn't look like fail_rest exists
theorbtwo The tests are not applicable in the no hs-plugins case. 21:58
Write it if you need it.
geoffb Yeah, was thinking that very things
thing even
I'm guessing pugs' Test.pm is very limited compared to P5 Test and Test.pm 21:59
?
theorbtwo Not terribly, but somewhat.
Well, not really.
It has everything from Test, and some things from Test::More.
But not everything from Test::More, and certianly not everything from Test::*. 22:00
geoffb Juerd, how long does 'make test' take on feather? I'm nervous to go mucking with the testing infrastructure given that my machine is too slow to reasonably do a full 'make test' . . . so may need an account on a faster machine
theorbtwo, sounds like a good way to get myself up to speed in the Test::* heirarchy. ;-) 22:01
I'm way out of practice using text-oriented testing tools because portable automated testing of OpenGL code is very difficult. :-) 22:02
theorbtwo I can certianly see why. 22:03
geoffb Juerd.ping
webmind huh ? 22:04
shouldn't that me ping(juerd);
?
geoffb It depends. I was sending him a message to ping himself. :-)
webmind ah ok 22:05
that makes sense :)
eric256_ juerd.pong might be better. ;) 22:09
geoffb eric256_, well yes, but I was being silly. 22:10
Juerd.say_something(<anything>) 22:11
:-)
geoffb is clearly punchy
theorbtwo Juerd.say('pong')
Oh, wait
Hm.
I can't decide if I want to Jured.say('pong') ("Make Jured say pong"), or Jured.say('ping') ("Say ping to Jured"). 22:12
geoffb Juerd.enqueue(<ping>)
delta spelling, sigh
?eval Juerd.perl 22:13
evalbot6 Error: unexpected "p" expecting block construct, term, ":", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
geoffb Not a bot then, I guess. :-)
Limbic_Region anyone with a handle on named parameters mind looking at something to see if there is a potential bug? 22:17
Juerd geoffb: I have no idea. 22:18
theorbtwo: I'm Juerd, not Jured.
Limbic_Region perlmonks.org/?node_id=464502
Limbic_Region can't decipher what Larry's response meant 22:19
tall_man was right but the test was flawed
tall_man's test to expose the bug was spot on
tall_man's reasoning was wrong
etc
Juerd Larry likes to play oracle, I think :) 22:20
mj41 mirror/pugs/docs/talks/Apocalypse_Now.spork 22:21
- rule unreserved { rule { <[A-Za-z0-9]+<mark>> };
+ rule unreserved { <[A-Za-z0-9]+<mark>> };
???
Limbic_Region oh - provide an answer but not give enough information to figure out a concrete answer
theorbtwo If that is legal / that is not legal.
I found this astonishing code in the test case / the test case is wrong.
That's how I'd interpret it.
mj41: That looks right. 22:22
mugwump I think the thing is that most functions that take $_ usually accept it as an argument
so plain oob() would suck $_ into $x, but not with arguments 22:23
geoffb Limbic_Region, I'm sorry I'm lost here . . . where is Larry's response? Or is one of the guys responding to that node actually named Larry? 22:24
Limbic_Region TimToady = Larry 22:26
Limbic_Region thought that would have been obvious
;-)
geoffb I am WAY too tired for that to be obvious 22:27
wolverian do we have a slurp-as-array builtin? 22:31
svnbot6 r4465, rootmj++ | grammar URI typo 22:32
r4465, rootmj++ | - rule unreserved { rule { <[A-Za-z0-9]+<mark>> };
r4465, rootmj++ | + rule unreserved { <[A-Za-z0-9]+<mark>> };
wolverian (I want to do a slurp.pick)
theorbtwo geoffb: Not just named Larry, named Larry Wall. 22:34
wolverian hmm. open("foo").slurp.split(/\n/).pick doesn't work very well, but assigning what slurp returns to a temp Str works 22:35
mugwump theorbtwo: and definitely not Tim.
Limbic_Region I love it when someone asks a question at the Monastery where I have already solved the problem in p6 and don't have to come up with a new answer
mugwump purl, jerk it
oops, wrong channel, sorry :)
Limbic_Region a week after posting the second p6 challenge - some anonymous monk comes along and asks how to do arbitrarily nested loops 22:36
wolverian pugs> open("asdf.p6").slurp.split(/\n/) # ('<Rule>')
which is not a line in the file :)
wolverian looks for tests
geoffb theorbtwo, I guessed as much, after Limbic_Region teased me. :-) Though I wonder why he decided to mildly disguise himself -- to try to limit the assumption that his responses were golden? (apparently without effect) 22:37
theorbtwo geoffb: Shrug.
The culture of the monestary has a slight preference for handles over realnames.
geoffb Well, I blew that one clearly. :-) 22:38
theorbtwo shrugs.
Quite slight.
geoffb Mmmm, album shuffle just picked a good one. 22:39
Dammit, I wish cast errors would report the location of the cast failure
Juerd Don't you like puzzles? ;) 22:40
wolverian okay, I see the bug now
slurp("foo").split(/RE/) returns the RE
geoffb Juerd, oh sure I do -- when I can find the pieces. :-)
Limbic_Region just read two responses from $larry and agrees with Juerd's earlier musing
wolverian which is bizarre, since my $foo = slurp "foo"; $foo.split(/RE/) works fine
theorbtwo Somebody give me the text of a cast error, please?
Juerd Limbic_Region: :) 22:41
geoffb pugs: cannot cast from VStr "use File::Basename--perl5 <>" to Pugs.AST.Internals.VCode
Gee, guess what I'm trying to write tests for
theorbtwo Thanks.
Juerd heh
theorbtwo (Pugs.AST.Internals, line 209.)
Oh, sorry, 216. 22:42
And code that gives it?
wolverian okay, it happens with all chained .splits
is there a test file for chained method calls, or should I just put this in split.t? 22:43
geoffb theorbtwo, the problem at the moment is that I'm not sure -- I test it various ways. Like so:
lives_ok("$use <>", '$use <> succeeds');
eval("$use <>; 1") or do {skip_rest; exit};
for example
hmm, wrong quoting in that first one, oops 22:44
It's the first one. Zagnuts. OK, time for spelunking 22:46
theorbtwo Hm, I don't immediately see a clean fix. 22:48
The problem is that that error comes from doCast, which does not run inside of an Eval monad.
That keeps it from throwing errors via the normal, catchable, mechinisim.
(That is to say, fail.) 22:49
geoffb Is doCast one of those ancient blocks of code autrijus was referring to earlier?
theorbtwo fromVal is what is normally called, which does run in an Eval, and then dispatches to doCast.
Possibly... can you quote him?
I don't see every line autrijus utters.
geoffb gimme a sec
Juerd 1 22:50
geoffb Juerd, :-P 22:51
colabti.de/irclogger/irclogger_log/...l=164#l333 22:53
and following
theorbtwo, clearly you're falling down on the job
:-)
theorbtwo No, but possibly close.
Falling down on the job? 22:54
I do that a lot, but what makes you think I am in this instance? 22:55
geoffb theorbtwo: I don't see every line autrijus utters.
theorbtwo Ah.
geoffb brb 22:56
bak 23:03
Hmmm, this seems buggy: 23:05
pugs> use File::Basename--perl5
{obj-perl5}
pugs> {use File::Basename--perl5}.()
pugs: *** Can't locate File/Basename.pm in @INC (@INC contains: /usr/lib/perl6/5.8 /usr/share/perl6/5.8 /usr/local/lib/perl6 /usr/local/share/perl6 .).
at <interactive> line 1, column 1
It appears that I may have to get way more fundamental in my testing here. 23:06
theorbtwo That's... um... strange.
kelan would anyone mind helping me understand a portion of the harrorth 6th chapter? :) 23:07
geoffb Mmmm, tutorial recursion . . .
theorbtwo Harroth has a 6th chapter? 23:08
I should read that...
kelan yes
i got most of it
except the important part, of course
geoffb Just reading the scrollbacks, it looks like the latest chapters are always the fuzziest, until autrijus posts his corrections.
kelan well the actual detail i don't understand is quite small but it makes everything work, so its probably important 23:09
geoffb chuckles
I think that belief is partly why harrorth exists at all -- because of the author's frustration at not groking the magic that makes everything work. 23:10
So you've got the right attitude.
kelan it is rather frustrating 23:11
i was getting the hang of everything!
then this one inconsistency
geoffb nopaste? 23:21
perlbot nopaste
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
kelan perlbot yespaste 23:22
because i love you
pasteling "geoffb" at 69.110.115.185 pasted "use ...--perl5 wierdness" (16 lines, 318B) at sial.org/pbot/10865
geoffb OK the above paste is just ODD 23:23
kelan maybe it thinks the {} is hash? 23:25
wolverian dammit, perl6 has seriously impacted my willingness for coding perl5. :( 23:27
Limbic_Region wolverian - me too 23:31
unfortunately I still think in p5
wolverian heh. 23:34
it's hard to decide which is more annoying - perl5 because it's so crufty, or pugs because it doesn't support everything I need yet ) 23:35
at least I can help fixing the latter!
Limbic_Region is still working on that 23:37
Haskell is very foreign to me 23:38
and there are never enough tuits
I need to get back to harroth to see if it helps more now
plus all the other ways I envisioned of helping
Limbic_Region really needs to go through the Ss and annotate what is missing according to what is supposed to be there
clkao what's "5 < $a < 10" type of condition called? 23:39
geoffb kelan, I might bite on that, except the difference between normal and --perl5 behavior
wolverian, with perl5 I find myself constantly writing source filters to get Perl6-ish syntax 23:40
clkao, n-ary comparison?
wolverian geoffb: doesn't that waste a lot of time? :) 23:41
or chained comparison?
(the < in question is a listop, I think)
geoffb wolverian, the part that wastes time is different projects having different code ownership. :-( I *hate* having to rewrite old stuff because I'm stuck working on some license-incompatible chunk of code. 23:42
Otherwise, I'd just write the filters once, and apply everywhere.
clkao chained comparison it seems.
wolverian geoffb: right. that sucks. :/
Limbic_Region clkao - chained comparison is correct 23:43
and p6 promises to only evaluate each term once
good stuff
clkao how is it short circuited
Limbic_Region dunno
I am reading hw2005 ATM 23:44
good stuff
theorbtwo Bah. 23:45
So close to getting rid of doCast. 23:46
kelan theorbtwo: did you read chapter 6??
oh
theorbtwo instance Value [Word8] is kicking my ass.
geoffb You know, I think the thing that may finally get pugs rewritten in Perl6 is that eventually there will be a non-lambda person with Hubris strong enough think that the Lazy way to understand pugs is to rewrite rather than learning Haskell
kelan ha 23:47
theorbtwo geoffb: I'm not so sure. 23:48
kelan i thought what would happen is that once they get the bootstrapping process worked out, they'd just compile the haskell to perl6 and call it a day
theorbtwo Larry will be at the pugs hackathon at the end of the month, and I bet he'll be learning some Haskell while he's there.
Limbic_Region I bet too theorbtwo 23:49
geoffb theorbtwo, yes, but I've noticed Larry is most decidedly not coding the compiler this time around. He seems fixated on the P5->P6 tools
Limbic_Region I think it would be a lot easier if I had someone side by side that could put things in a way that I would understand 23:50
geoffb (and not incidently, code he already understands -- perl5's core)
Limbic_Region larry understands the necessity of good translation to get stubborn crufty people off p6 is to provide a useable automatic tool 23:51
s/off p6/off p5 to p6/
theorbtwo Limbic_Region: Not surprsing.
geoffb Limbic_Region, Oh, I don't disagree . . . I'm just doubting he'll be contributing directly to pugs/perl6 *the compiler*.
theorbtwo He delayed the release of perl 1 years until he had sed2perl and awk2perl written. 23:52
Hopefully, this time around, it won't take years.
Limbic_Region grrr - /me notes the time
geoffb At work later than intended, Limbic_Region ? 23:53
Limbic_Region oh no, I am at home 23:54
theorbtwo is awake somewhat later then intended.
Limbic_Region 's SO puts up with me in the basement but only so much
geoffb chuckles knowingly
theorbtwo Limbic's SO is possibly wiser then mine. 23:56
(On this matter, anyway.)
Limbic_Region your SO is a fellow geek
she understands the compulsion
theorbtwo This is quite true.
Limbic_Region to Jean - I am "playing"
which really isn't that far from the truth
theorbtwo However, giving in to the compulsion isn't neccessarly a good thing. 23:57
Limbic_Region: It can and it can't.
If you're helping people, then you aren't just playing.