pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | Auto-smoke: kungfuftr.com/pugs-smoke.html | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478)
Set by Corion on 31 March 2005.
Darren_Duncan regarding SQL::Routine perl6ification ... 00:32
the commit of a minute ago is the first of a series where I look at methods in detail and make sure each is completely transformed 00:33
by contrast, the previous commits were mainly widespread search-n-replaces
I hope to do that whole series today
that is all 00:34
shapr cheers
crysflame :)
theorbtwo Sounds cool, DD.
crysflame you rule
Darren_Duncan multi-methods are quite useful
shapr yeah
Darren_Duncan using them is more elegant than single methods that return different types of things depending on what their args were
see the last commit, information functions, as an example ... 00:35
shapr and you don't need the visitor pattern anymore
Darren_Duncan depending on their args, they either returned a list or a single value
have to look up meaning of 'visitor pattern'
crysflame www.ambrosiasw.com/games/darwinia/
er, ww
Darren_Duncan I know its a 'design pattern' 00:36
brb
shapr If you needed multi-methods, and you only had single-dispatch OO, you'd write the visitor pattern.
Darren_Duncan I see 00:37
Ambrosia sw rox 00:38
they had the first visually attractive games back in 1993 00:39
such as 'Maelstrom'
crysflame :)
the author of Solarian II re-released it for OS X 00:40
Darren_Duncan I heard ... would be nice if all the classics were made X native
parts of Escape Velocity were done
theorbtwo Interesting... I'm now seeing the problem Corion was earlier, with tests not giving the position data. 00:41
jabbot pugs - 1382 - SQL::Routine - completed perl6ification
crysflame mm, yes
Darren_Duncan it occurs to me, though, that with said SRT information functions, they could become ordinary methods if I simply changed their names, such as differing with the suffix 's' or not ... then I could back-port this to Perl 5 00:42
one fewer difference 00:43
that rename may also make them more descriptive
that said, I will hold off on any such change for another time 00:46
shapr I guess it's a bit early for pugs debs. 00:53
Khisanth what the heck is the priority ghc is using when compiling pugs? 01:14
Darren_Duncan quick question ... the proper way to count the number of elements in an array or hash? 01:22
stevan Darren_Duncan: +@array 01:43
that forces the array into numeric context
Darren_Duncan thanks
which synopsis is that?
stevan for a hash I would expect either: +%hash.keys or something like that
Darren_Duncan: not sure if it is the synopsis
Darren_Duncan: check the one about data-types (4 I think) and if not, try the operators one, but I think i read this in the Perl6 & Parrot book 01:45
Darren_Duncan gotit
jabbot pugs - 1385 - * test failed. 01:51
pugs - 1384 - * set up a symlink... purely experiment
pugs - 1383 - * move testgraph.css to util/
02:02 theorb_ is now known as theorbtwo
theorbtwo Oh: Can we set up the SVN to keep an up-to-date copy of A* S* E* in the docs dir? 02:07
stevan theorbtwo: where are the up-to-date copies stored? 02:08
theorbtwo dev.perl.org/perl6/apocalypse/A<nn>.pod, and such. 02:10
But I've heard rumor of them being under some sort of VC somewhere.
svn.perl.org/perl6/doc/trunk/design/ 02:16
stevan theorbtwo: sounds like a job for SVK maybe? 02:19
theorbtwo I think the pugs repo really uses SVK, not SVN, but that's a guess, mostly based on the fact that Autrijus is invloved. 02:20
Khisanth there is no SVK server is there?
jabbot pugs - 1386 - SRT perl6ification - changed subtype Nod 02:21
mugwump svk isn't a server yet, it's like a glorified client that keeps its own repository 02:23
theorbtwo Ah.
In any case, it seems like a job for Autrijus. 02:24
...or at least someone who is much more comfortable doing strangeish things with SV[NK] then I am.
mugwump are you familiar with cvs?
theorbtwo Not very.
mugwump well, if you can get svk installedf (apt-get install svk ;)) then all you need to do is `svk co svn.perl.org/perl6', say. It will set up a mirror, pull out all the versions to date and put them in your local repository, then give you a working copy. 02:28
As a word of warning though, the docs don't make it all that clear that you shouldn't use the --skipto feature on full project roots... if you only want to mirror the head N releases, only mirror from trunk/ and below 02:30
otherwise the magic svn lazy copies aren't lazy :)
Once you've got it, you can use `syk pull' from within the working directory to update, and that's pretty much all you need to know to use it read-only 02:31
s/syk/svk/
theorbtwo Hm, that seems reasonable enough. I wonder if I can insert a file with full history into the pugs repo, though. 02:32
mugwump which file would you want to do that wiuth?
theorbtwo The [ASE]* files. 02:33
mugwump the Synopses are already there FWIW
theorbtwo I know.
mugwump great
theorbtwo I'm not sure they're up-to-date, though -- one of them seems to be short a paragraph. 02:35
mugwump easy way to solve this. putting them there was a stopgap measure in the first place, so now they can go :) 02:38
theorbtwo They shouldn't go, but they should move, and become complete.
mugwump I just spoke to autrijus about it 02:39
the util/testgraph.pl program downloads them automatically 02:40
theorbtwo Oh? What did he say? (I kind of wondered why he was so quiet...)
Should, you mean?
mugwump whatever
shapr I've added an op1 "chr", where do I add that as the "chr()" call?
shapr digs around
stevan shapr: I think all you need to do is add it to the list at the bottom of Prim.hs
all the way at the bottom 02:41
shapr ah, I see.
stevan shapr: pugs.kwiki.org/?CreatingANewOp 02:42
shapr that's helpful. 02:43
what does chr get for left/right ? 02:45
theorbtwo pre 02:47
shapr thanks
theorbtwo That's the associativity/syntatic category; it's a prefix op.
(left and right are infix ops)
shapr Yeah, makes sense. 02:48
Alias_ heh 03:47
hattmoward ouch
Alias_ Idiots, April Fools is over
Khisanth it's still march!
Alias_ Pay no attention to the man behaind the lilo messages | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | Auto-smoke: kungfuftr.com/pugs-smoke.html | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478) 03:47
hattmoward puts lilo back on ignore. bad monkey 03:51
theorbtwo wonders: why android itch, of all things? 03:53
hattmoward ? 03:54
theorbtwo The URL he gave redirects to a google search for android itch. 03:55
Or at least it does for me.
hattmoward paste it in again
a few times
well, it just got switched again 03:56
theorbtwo Ah.
Mmpf.
Not very funny. 03:57
Very very obvious.
theorbtwo remembers when /. and several other sites had as an april fool's joke that they had gotten bought out.
Then a few months later, they were all bought out.
hattmoward I didn't remember that some of the planet is well into April 1 when the first message went 03:58
heh
theorbtwo 6 hours. For some people, it's over.
Alias_ It's over for me
jdv79 still an hour away from 4/1 here 03:59
hattmoward I've got 61 minutes
related subject: 4/1 is my birthday 04:00
theorbtwo Sobored.
jdv79 happy Bday!
theorbtwo Happy birthday, hatt!
hattmoward thankee
metaperl what do I supply to Makefile.PL to have it install in ~/install/bin 04:08
instead /usr/...
PREFIX= ... did not work
is it not possible to build pugs for non-root install? 04:13
Khisanth scratches his head 04:16
I thought pugs -e 'say "blah"' works? 04:17
metaperl it does but perl -V shows @INC set to non-local places 04:19
Khisanth well doing it interactively works ... 04:21
metaperl but it is failing to parse use Config::Tiny 04:22
theorbtwo metaperl, that'd be because 'use' is not yet parsed.
Require it instead. 04:23
metaperl oh do I need a begin block?
BEGIN { require COnfig::Tiny } ; 04:24
?
Khisanth BEGIN is probably not implemented either?
metaperl here's my error: www.hcoop.net/~terry/haskell/pugs/p...tmp/ct.err 04:26
the require is not finding the module
theorbtwo That's not a pugs error message; that's a perl (5) error message. 04:28
metaperl hmm
theorbtwo Wait... no, it's not, it's just very similar, and somewhat inaccurate.
metaperl look at the loadpath
theorbtwo Yeah.
It should say @*INC, though. 04:29
metaperl the * means what?
mugwump global
kind of :
metaperl global package... I see
mugwump :)
theorbtwo That it's magical.
mugwump It's called a twigil
theorbtwo secondary sigil is the technical term... 04:30
mugwump I saw larry use the term twigil so there :P
Khisanth but larry is always saying strange things... 04:31
lucs I had supposed that 'twigil' referred to the two characters functioning as a sigil unit does. 04:35
s/unit //
lucs & # ZZ 04:51
Khisanth isn't ucfirst.t missing a test? 05:14
crysflame sig and twig 05:20
Alias_ Does Config::Tiny actually work?
crysflame thrig, fig, vig, sig, seg, eig, nig (eep!), teg
crysflame mutters to himself in the corner
Khisanth crysflame: you sound drunk :) 05:27
crysflame i'm always like this
when i'm drunk, it's worse. DE BUGGEE GOT LOSS is one quote.
someday i'll figure out how to focus it through coding. then the world shall pay. muahahaha *koff*
autrijus greetings. 05:28
crysflame until then, the least i can do is cheer autrijus's efforts. he makes things that make stuff go.
speaking of.
jabbot pugs - 1387 - cleanup refactoring 05:31
theorbtw1 Greetings, autrijus!
autrijus :) how goes? 05:33
crysflame: your cheer means a lot :)
you know I'm motivated by cheers
crysflame i didn't, actually, but i don't usually ask first 05:34
glad to hear it helps
soon i will have a place to sit and type 05:35
then.. yay
theorbtw1 cheers autrijus some more. 05:36
crysflame hands out pom-poms and short skirts
theorbtw1 You make things so fast that I can watch you go.
crysflame the commitbot is awesome
theorbtw1 hopes he doesn't have to shave his legs. 05:37
crysflame au naturel
q[acme] does a double flip pyramid with a twist
crysflame acme: hi!
it's the 1st where you're at
q[acme] i'd better do an april fool's joke, then 05:38
crysflame inverts the pyramid, ending up inside a small space-time defect.
theorbtw1 has been disappointed that there haven't been any pugsy april fool's jokes.
Alias_ crysflame: The infamouse inverted 5-dimensional hyperdildo? 05:39
05:39 [1]metaperl_ is now known as metaperl_, theorbtw1 is now known as theorbtwo
crysflame Alias: i've got a wormhole in my pocket! 05:39
theorbtwo Ha, was fast enough this time.
crysflame blinks at theorb
theorbtwo The laptop in the other room auto-reconnects... rather quickly. 05:40
Oh, autrijus, what's the reasoning on not wanting to include the perl design docs in the SVN? 05:42
I thought it was going to go in the Perl6:: namespace, so man Perl6::A12 could do the right thing. 05:43
mugwump no point in duplicating it, it just gets out of date as you discovered
theorbtwo Should be fixable decently easily. 05:44
There are a number of points in duplicating it, and it can be kept up-to-date with not too much effort. 05:45
mugwump the plan is
14:40 < mugwump> the util/testgraph.pl program downloads them automatically
If you want to maintain them as seperate modules, go ahead and build them by all means, but please don't duplicate their content in the pugs tree. TIA 05:46
theorbtwo TIA?
mugwump thanks in advance 05:47
theorbtwo Mugwump: That's a repeat of what you already said, not a reason. Also, I very purposefully asked Autrijus, not you. 05:51
Oh, and testgraph is the wrong place to do it.
Darren_Duncan question on the identity operator, '=:=' ... 06:46
according to S03, if you said '$x := $y', then later '$x =:= $y' would return true ...
mugwump sounds reasonable :) 06:47
Darren_Duncan my question is, if two references point to the same thing, will =:= tell you if they point to the same thing?
if not, what is the correct operator to use to compare two references?
mugwump I remember encountering this in perl5 eith the 0+ 'operator' I later converted to refaddr 06:48
theorbtwo == will tell you if two references point to the same place.
=:= will tell you if two things are really different names for the same thing.
Darren_Duncan in Perl 5, a simple string compare worked because the stringified versions of a ref were distinct for the target
castaway thwaps freenode
Darren_Duncan so, are you saying that I should use == then to compare references? 06:49
mugwump A numeric compare worked, too, because objects and hashes numified to their memory address
theorbtwo Yes, DD.
mugwump maybe not hashese
theorbtwo Hashes aren't supposed to nummify to their address, AFAIK. 06:50
Darren_Duncan at this point, all I care about is objects
eg, I want to remove a reference to a given object from a list, so I need the right test to know which list element is pointing to it 06:51
theorbtwo AFAIK, == is the right operator to see if two references point to the same place, just like in p5 06:52
Darren_Duncan where does it say that?
mugwump Darren_Duncan, are you after sets perchance? 06:53
Darren_Duncan objects
I'll be more specific
mugwump what I mean is, are you using a list like a set/
Darren_Duncan I have a tree of Nodes, where each Node points to both its parent and its children
mugwump ah
Darren_Duncan when I delete a node, I need to remove all references to it
from other nodes
in this case, the curren't Node's parent has refs to its children in an array 06:54
so I have to know which array element to delete
mugwump yeah. so what you want is an ordered list with an object key index.
mugwump hmms
Darren_Duncan what I have is an array of object refs 06:55
in Perl 5, an object ref stringified into something distinct per object, so I did an 'eq' in Perl 5 ... but in Perl 6 I want something better
I shouldn't have to convert a ref to anything else in order to compare it 06:56
mugwump nods
I agree, but I also see why you'd want to be able to overload ==
Darren_Duncan I like how Perl has different comp operators depending on the data type, ... 06:57
for example, it makes things a lot easier to see when you're doing a string vs a num compare
theorbtwo Hm, I'd expect taking a reference to the same thing two different times would make them ==, but not =:=
Darren_Duncan so if =:= did what I wanted, it would go further in that direction, making code more self documenting
also consider that, in Perl 6, the line between refs and what they point to is blurred 06:58
doing an ordinary 'eq' or '==' may end up comparing what the refs point to
mugwump yes, precisely - overloadable 06:59
Darren_Duncan conceptually, I don't see how refs and identity are any different from each other
theorbtwo But if I do $x=42; $a=\$x but true; $b=\x but false; $a =:= $b, I should get false, because $a and $b are not the same thing.
Darren_Duncan as far as I'm concerned, '=:=' is the RIGHT answer
castaway (wtf is that, the wing operator?) 07:00
theorbtwo But it means that if you pass =:= two refs, it behaves very differently then if you passed it two of anything else.
"Are bound to the same thing".
mugwump the 2-in-1 operator I think, castaway
Darren_Duncan =:= is an 'identity test' - see 'Binding' in S03
mugwump you are both correct
but focusing on a different aspect, I think anyway 07:01
Darren_Duncan unless I can find a definitive answer, I will use =:= in my perl6ification for now because I see it as the most self-documenting of my intent
theorbtwo You might want to ask on p6l. 07:02
Darren_Duncan good idea
I'll do it right now ...
actually, first I'll review S12 again, in case it's in there ... 07:05
mugwump so, == is value comparison, =:= is variable comparison, === is object comparison (where === is some ficticious operator)
castaway and if you dont care what the things are you're checking? (hmm, what happened to no types.. ) 07:06
mugwump no types? what? 07:07
Darren_Duncan in this case, the environment is controlled such that I already know if both items are both objects of the right class before I compare them
theorbtwo eq asks "do these things have the same string value", == asks "do these things have the same numeric value", =:= asks "are these just different names for the same thing" 07:08
Darren_Duncan so I thought, and 2 refs to something are sort of like two names for it
mugwump wait, object references aren't references anymore, are they. they're just objects. 07:09
:-/
theorbtwo No, they're two references to the same thing, but not the same thing twice.
castaway mugwump, no types, in p5
theorbtwo Different references to the same thing can have different properties attached to them.
Undeffing one doesn't undef the other. 07:10
Darren_Duncan Perl 6 has a capital-r Ref and a low-r ref types
theorbtwo castaway: Perl6 has typing, but it's optional.
mugwump S09 details lots of Perl 6 types, what do you mean, castaway ?
Darren_Duncan away for a few minutes ...
castaway mugwump: I actually dont give much of a damn about p6, ta anyway
optional meaning, it should 'just work' without? 07:11
theorbtwo Then why are you in #perl6?
Yes.
castaway looking for you, mostly
and chatting about keyboards ,)
mugwump ok, so Perl6 has "ref" and "Ref" types
but, that doesn't mean that a variable $foo is a scalar which is a ref to an Object like in P5 07:12
theorbtwo Right. 07:13
But 1: Pugs doesn't have ref and Ref, just Ref.
2: This isn't related to anything being discussed.
3: The question was specificly about references, not scalars holding objects. 07:14
mugwump I think Darren's referring to the refs under the hood, to compare object identity 07:16
castaway .oO( ok, I should probably read up if I wanna make sense of you guys ,) 07:19
mugwump castaway: got pugs? 07:20
castaway well, theorbtwo does, and his computer sits next to mine, so in theory, yes
why do you ask? 07:22
theorbtwo Because pugs is how you experince p6. 07:28
Darren_Duncan back again 07:30
castaway Well, yes, but reading docs is how you find out about all trhe ref/Ref and operator stuff, no? 07:31
mugwump sure, but playing with code is more fun than listening to conversations like this ;)
OK, so the question is, does =:= compare lexical identity or object identity? 07:32
theorbtwo Lexical, that's what it's for.
mugwump And, if it did compare object identity (and, by extension, lexical identity), is the difference sufficiently obscure that you can use the 'other' means to get at it? 07:33
castaway is currently playing with elisp, and since p6 seems to be a whole other language, just playing probably isnt useful without reading some. 07:34
mugwump castaway: play with haskell! :-D
it's functional too!
castaway yeah, but its not integrated into emacs (yet) :) 07:35
mugwump true
Darren_Duncan I didn't find anything definitive, so resuming a writ to p6l ... 07:37
mugwump yes, do you agree with the question as I stated it, theorbtwo & Darren_Duncan ?
Darren_Duncan let me reread it ... 07:38
mugwump (obviously there is no clear answer)
Darren_Duncan I would say that object identity and lexical identity are different
theorbtwo I'm not sure what you mean by object identity vs lexical identity.
I certianly agree that the definition of =:= is rather vauge. 07:39
castaway jaboot: synopsis ?
oops, 07:40
theorbtwo lilith:/usr/src/pugs/docs/A12.pod
castaway jabbot: synopsis ?
jabbot castaway: Tell me more about that.
castaway thanks
(hmm, that URI should 'just work' ,)
theorbtwo No, it shouldn't; it's not a well-formed URI.
mugwump Different? What's a ? between fiends? 07:41
castaway hmm.. ssh://lilith:/usr/src/pugs/docs/A12.pod ? :)
theorbtwo file://lilith/usr/src/pugs/docs/A12.pod , OTOH...
mugwump *friends
castaway oops, minus the second :
ah, yes
mugwump bah, that should have been a lambda 07:42
kungfuftr mugwump: naked lunch?
mugwump I'll take, "what's the novel that mugwump takes his nick from", for 50 points 07:43
kungfuftr heh 07:44
castaway should know that one, but cant place it atm
kungfuftr david lynch movie too, iirc 07:45
mugwump yes, although the movie mugwump was quite different from the description in the book :)
rgs not lynch, cronenberg I think 07:46
Darren_Duncan I just sent the p6l messag
kungfuftr rightio... off to work, then off to edinburgh!
Darren_Duncan it also occurs to me that what I want to do is indeed different than what =:= does
the difference being one level of indirection 07:47
a Ref is a container that points to another container, while a scalar et al is the container; identity and binding works with the latter case 07:48
I thought I heard once that '===' is what I want, but I couldn't find it later
hopefully p6l will know
mugwump That's the Perl 5 model, but bear in mind you don't need the scalar to be a ref, it can be an "object"
Darren_Duncan yes, objects and refs are technically different 07:49
mugwump ie, a variable holds a ref which points to a blessed thingy in Perl5
what I'm saying is that the ref can be completely under the hood, but it doesn't change the lexical vs value thing
theorbtwo But =:= shouldn't return true if the two things are different in any discernable way. 07:50
Darren_Duncan I'm going to move on to other matters and wait for what is said on p6l
mugwump good call
shapr castaway: there's a cute interactive haskell plugin for the famous lambdabot 08:50
castaway famours where? :) 08:52
shapr famous on #haskell at least
castaway heh
lightstep i just beat it
shapr with a stick
I could invite the bot over here and show you, if you want. 08:54
castaway sure
shapr it does make a lot of traffic though, so it might irritate some people.
theorbtwo lambdabot, hello
shapr @plugs map (+1) [1..5]
lambdabot [2,3,4,5,6]
lightstep jabbot, @plugs map (+1) [1..5] 08:55
jabbot lightstep: Please go on.
shapr Of course, it can't deal with algebraic definitions, but it can do interactive stuff.
theorbtwo @plugs :t map (+1)
lambdabot <Plugins.Eval>:1: parse error on input `:'
shapr @plugs sequence [[1,2],[3,4]]
castaway hmm,m most useful one I've seen so far is #emacs' fsbot
lambdabot [[1,3],[1,4],[2,3],[2,4]]
castaway (does elisp :)
shapr lambdabot and fsbot are from the same generation. 08:56
delYsid was on #haskell and I was on #emacs a lot when they were both very small bits of code. 08:57
castaway heh :)
shapr though deego was the first author of fsbot
and fsbot really started as a tiny extension to ERC
castaway doesnt know enough haskell to play
shapr would you like the short Haskell intro? 08:58
lightstep it has a nicer arithmetic syntax than lisp
shapr I wrote up a HaskellDemo for the extremely impatient. Like me.
theorbtwo It has nicer syntax then lisp, but not as nice as perl. ;)
castaway hmm, sure.. I read some of a doc that theorbtwo was reading.. then switched to lisp 08:59
shapr Here's the demo I wrote - www.haskell.org/hawiki/HaskellDemo
castaway I quite like lisp :)
shapr I used to write a bunch of elisp and scheme, but nowadays I prefer Haskell. I like the no side-effects bit. 09:00
kungfuftr bah! css was buggered there... right... who moved it!??
shapr ducks
theorbtwo autrijus.
kungfuftr heh, will re-structure it over the weekend 09:01
theorbtwo kung, also, categorize_tests.jmm.pl moved to categorize_tests.pl
kungfuftr ah!
kk
Khisanth shapr: know of any place with a list/table of what the various symbols mean?
kungfuftr ta
shapr Khisanth: which symbols?
jabbot pugs - 1388 - SQL::Routine perl6ification increment -
Khisanth ones like :: -> <- => \ 09:02
castaway ta, shapr
theorbtwo That one was me, kungfuftr.
shapr oh, I can show you what they mean.
the -> symbol has two meanings, one in a type signature and one in an anonymous function.
Khisanth how?
theorbtwo -> overuse is one of the things I don't like about Haskell, but I suspect you'll get used to it.
shapr @plugs (\x -> x + 1) 1 09:03
lightstep also a third meaning, in a case expression
lambdabot 2
shapr Khisanth: the HaskellDemo url I pasted shows off most of the stuff.
but \x -> x + 1 creates an anonymous function that takes x as an argument and evaluates to one more than x
\x y -> x + y -- adds x and y 09:04
theorbtwo (Perl5 translation: (sub {my $x=shift; $x+1})->(1); )
shapr the <- symbol is a sexy version of >>= which is part of monads.
theorbtwo (That's another reason I don't like haskell -- <- and -> aren't very related, nor are ++ and --.) 09:05
shapr If you use partial application instead of an anonymous function, it's (+1)
Hm, I think <- and -> are related. I agree that -- and ++ have totally different meanings though.
Khisanth no haskell equivalent of perldoc perlop? :)
lightstep in haskell, operators are redefinable everywhere 09:06
shapr What's perldoc perlop?
lightstep you can define x + y = x * y
theorbtwo Documentation for perl's operators.
castaway its a doc abouit the perl operators
Khisanth basically a list of all the ops and what they do
wilx Eeek!
theorbtwo Run perldoc perlop on any system with perl installed. ;)
wilx That is evil :)
lightstep and libraries define new operator symbols all the time
theorbtwo I note that you can do that in perl6 as well. We just expect people to be sane enough to not do that. 09:07
lightstep (<<) is in Text.Html, but (>>>) is in Control.Arrow
Khisanth theorbtwo: there are too many insane individuals in the Perl community for that expectation
shapr perldoc perlop is neat
Khisanth just look at all the Acme:: modules! 09:08
castaway umm, what does that produce? (the x + y = x * y ?)
shapr theorbtwo: you should see the obfuscate haskell content
Darren_Duncan I'm signing off for the night ... I expect to have done the main SRT perl6ification tomorrow, covering about the quarter most complicated methods
theorbtwo As another confusion, any function can be an infix operator if you write it in backticks, and any infix operator can become a normal (prefix) function by... um... I don't remember.
lightstep castaway, it binds (+) to the value of (*), like a = 1+2 binds a to the value of 1+2
Darren_Duncan also, the p6l post got a reply, but it was just to say they want an answer too
good night
shapr For the most recent IOHCC, Ulf Norell made all Haskell programs equal to each other, and added the ability to embed one program in the he source of another, sort of like a batch file virus or something. It's amazing. 09:09
castaway lightstep: umm, and what does one end up with?
Khisanth shapr: that is stirring up evil ideas :) 09:10
lightstep castaway, in the scope of that declaration, (+) and (*) do the same
theorbtwo It makes the + operator do what the * operator did.
castaway Ugg
Ok
theorbtwo When you want to /name/ an infix operator in haskell, you write it in parens.
(If I say something wrong, /please/ correct me.)
castaway .. and the point of this is?
lightstep it also gives the operator as a regular function
shapr Of course, you'd have to explicitly hide the Prelude to redefine +, so it won't happen by accident. 09:11
lightstep castaway, it allows you to write (.) without ending the sentence
castaway you lost me again, ligh
(hmm, darn tab-complete)
lightstep if you write. you end the seentence 09:12
shapr I don't understand.
theorbtwo It's a way of referring to an operator without executing it. 09:13
lightstep no
theorbtwo Oh.
lightstep dot is a syntactic mark in most languages, as are comma, question mark, (!) and the such
in haskell source, (+) is the addition function, \x y -> x + y 09:14
shapr I still think I don't understand what you meant about writing (.) without ending the sentence. 09:16
castaway: did you look at HaskellDemo? 09:17
castaway briefly, yup.. I'm actually at work atm 09:18
shapr oh
In that case I won't pester you.
castaway heh 09:19
shapr Khisanth: there is something like perldoc perlop, the info command tells you about typeclasses.
castaway mumbles something about bladdy ftp servers that dont support "reget"
lightstep if you write an unquoted `.', say in a paper, you are likely to be misunderstood 09:20
Khisanth shapr: in ghci? 09:21
shapr Yup.
castaway Tea!
shapr Coffee!
red bull! w00!
Khisanth is on page 33 of yaht :)
shapr ah, excellent 09:22
Khisanth just looking for something to serve as a reference
castaway found that tute kinda annoying 09:23
Khisanth castaway: it's annoying/challenging/fun :) 09:24
castaway depends on the mindset probably :) 09:25
Khisanth at the same time!
shapr in a row!
castaway wonders if theorbtwo fell asleep 09:35
shapr sleeps under his desk
castaway hmm, where are the pix of your desk, anyway :) 09:36
castaway waves towards fotango
theorbtwo What? 09:37
castaway what what?
theorbtwo I'm not asleep.
castaway woo :) 09:38
kungfuftr mugwump: cpan drinking game, eh?
shapr my desk?
I don't think anyone wants pix of my desk. I think you and Juerd are clean freaks. 09:39
castaway envisions stacks of stuff head-high
theorbtwo glances over at castaway's side of the desk.
Nope, not a clean freak.
castaway showed them mess.jpg yesterday
castaway protests that its a space problem! .) 09:40
shapr My fiancee made a rule that the mess must stay in my office.
castaway hey thats a good one :)
shapr She's a clean freak too. I think 95% of the humans I've met are clean freaks. 09:41
Khisanth castaway: annex theorbtwo's half of the desk :) 09:42
trexy hi
theorbtwo Nooooo! 09:43
shapr Realistically, I'm probably in the bottom 5% of room cleaners.
Sometimes it's just better burn the house down and buy new stuff.
hiya trexy!
trexy hi
just popped in to share an idea
... not sure if this is useful ...
but someone could write an IRC wrapper around PUGS 09:44
pugsbot
shapr hmm
trexy so that you type perl6 into irc
and it can report the current state of play
shapr looks at lambdabot
castaway grins
Khisanth: but where would he sit then?
trexy is that what lambdabot does?
shapr No, but it could. lambdabot is written in Haskell. 09:45
Khisanth castaway: that would be his problem ;)
trexy hmm ... ok ... just a thought
shapr What do you mean by state of play?
number of tests?
trexy what the current state of the interpreter is --
castaway Khisanth: in 2 rooms/57sqm, its everyones problem
trexy whether something compiles or not
Khisanth hmm stuff changes too much for that 09:46
shapr lambdabot does dynamic reloading, so it could automatically update and reload in case of source changes. 09:47
castaway shapr, I'm fairly convinced its not a 95/5% split.. 09:48
shapr You think more than 5% of the population is messier than I am?
theorbtwo It'd have to svn up before every evaluation, but I don't know how bad that is.
shapr or just cron an svn up every ten minutes or so. 09:49
castaway I didnt say messier.. I just dont think 95% are clean freaks
shapr From my viewpoint it seems so. That's why I suspect I'm in the bottom 5%.
castaway maybe you dont get about enough :) 09:50
shapr grins
It's Swedes. They're just so picky ;-)
castaway possible ,)
shapr throws another empty coke can into the pile in the corner. 09:53
castaway ieks 09:55
doesnt it stink?
shapr No?
Plus my fiancee 'assists' me in cleaning my room every month or so.
castaway poor girl
shapr laughs 09:56
trexy Ok ... gotta go now ... but good luck to anyone if they want to make pugsbot - a perl6 compiling IRC bot
cu l8tr
shapr trexy: what functionality?
Sorry for the long delay
Do you want something more than number of tests passing?
trexy pugs -e 09:57
so you can demo one liners to each other
shapr hmm, I can't make that easily safe.
I'll check it out, good idea.
that's what @plugs does for Haskell.
castaway Haskell strikes me as being a language that is closer to making it easier for the computer, than the programmer (like assembler) - is that just me ?
theorbtwo I don't see a good way of doing it either, shapr. The best way to do it would be to run in a chroot, and with every request throw out the chroot and start again. 09:58
shapr castaway: I think it puts some assumptions into the environment.
For example, non-strict evaluation means you don't get to assume some things about your environment. You give up some details in order to get other benefits. 09:59
castaway needs examples to make sense of that 10:00
shapr In my opinion, stateless side-effect-free code is great benefit. It gives you partial application, automatic memoization in some cases, lots of goodies.
theorbtwo In haskell, a function is always pure (that is, the output is solely determined by the input) unless explicitly stated otherwise.
shapr Perl and other imperative languages force ordered evaluation. You must have that explicitly in mind when you write code. Most people end up depending on it. 10:01
theorbtwo: Even monads are pure.
theorbtwo That means that the compiler can do an awful lot of optimization without having to worry about impure functions.
shapr If you had a programming language that really worked like a math equation, you wouldn't have known ordering of computations, but you would be able to throw a number through a system of equations to find out the result. 10:02
theorbtwo OK, in that case, s/unless explicitly stated otherwise/even when they look at first glance like they aren't/
shapr That's Haskell, pretty much.
drbean 6.0.13 is taking hours to compile, but 6.0.11 just a couple of minutes. Why is that? 10:03
castaway (why does it all sound so academic?)
shapr Because Perl is equally academic but most people don't look at it that way =)
My opinion, of course.
theorbtwo Because there's a lot more there in 6.0.13. But also, IIRC, GHC 6.4 compiles faster then 6.2.2. 10:04
castaway hmm, maybe I dont mean academic.. maybe "impractical" ?
shapr Most students who use Haskell don't know all this stuff explicitly, but they rely on it when they write Haskell code.
What about it seems impractical?
drbean thanks, I'm glad I have GHC 6.4
trexy just one more idea for the melting pot
theorbtwo Oh. Nevermind, then.
castaway the non side-effect thing.. which one has to work around, for example, to get screen output, no?
trexy I mentioned this here ... a while back 10:05
ihb shapr: what do they rely on but aren't explicitly aware of?
castaway I did a semester of Miranda at uni, and never figured out what use it actually had
lightstep provable non-mixing of transactional memory and io seems impossible
trexy this site is doing the Perl Cookbook in other languages: pleac.sourceforge.net/
shapr Yes, you're right. readLine can't return the same value everytime, wouldn't be very useful.
trexy it would be a cool learning aid to have the Perl6 versions of the Perl5 recipes 10:06
castaway exactly, so the purity is broken.. why have a rule that you then have to break?
shapr ihb: lots of 'academic' knowledge that they know but can't explain.
castaway: because the rule isn't broken =)
ihb shapr: an example?
lightstep castaway, you can compute whole programs
shapr readLine can return the same value for every unique input.
lightstep s/can/
/ 10:07
theorbtwo Through the magic of monads, every time you call readLine, you pass it a different IO parameter... as I understand it.
shapr Like if you wrote a calculator program in Haskell, you could explicitly pass the 'memory' around as a value.
and it would look like the calculator function had a side-effect.
castaway scratches head.
shapr Makes sense?
castaway not much
lightstep readLine is not a function at all. it's a composable program that creates a String when run
ihb shapr: like you do in Prolog when you don't want to use assert/retract when writing eg. adventure games (which seem popular in Prolog :-)) 10:08
lightstep you can compose it with the program calculate: readLine >>= calculate
castaway it doesnt contain/use functions_ 10:09
?
ihb shapr: (that was a question, btw, but i lost the questionmark)
lightstep calculate is a function in this case (that creates programs)
it's the same as do {line <- readLine; calculate line} 10:10
shapr ihb: I haven't used Prolog, so I don't know assert/retract. But it sounds like the same sort of unconscious 'academic' detail that everybody knows implicitly, but maybe not explicitly.
castaway sorry lightstep, that syntax is so much double dutch to me :)
ihb so the program isn't functional, then?
shapr A monadic IO program is purely functional. 10:11
Alias_ <speech person="Princess Leia">The more language feature you try to add, the more programmers will slip through your fingers</speec>
err... </speech>
shapr In fact, I think the monadic abstraction is more general and powerful than the OOP abstraction.
It's definitely simpler.
ihb shapr: except the popular way to have a state in Prolog seems to be using assert/retract (with would be run-time definitions of rules. call it global variables if you want, because that's how they're used in this case), at least in introductory texts. 10:12
lightstep haskell is anti-popular by design (according to simon's presentation)
castaway heh
shapr ihb: that sounds like most student Haskell programs. 10:13
Alias_ What's the largest known Haskell codebase?
lightstep ghc
shapr Nah, there are quite a few larger programs.
lightstep such as?
ihb shapr: and it sucks, because you then usually can't use the program to brute-force a solution to the adventure. 10:14
shapr InForM is massive, Galois has a bunch of code they've written for the US Gov't that is huge, but I haven't been able to get a copy (no surprise)
There's the Spanish Language Prototyping System
The BlueSpec compiler is rumored to be larger than GHC.
Xilinx and Intel Haskell codebases are rumored to each be larger than GHC. 10:15
Alias_ So they are mostly technical compilery tasks?
crysflame xilinx does haskell?!
shapr Sure, want urls?
crysflame yes
that's mind-warpingly cool. thanks :)
shapr Crap, Xilinux took down the Lava website. It was there last week :-/ 10:16
Well, Satnam Singh is writing a new version anyway. 10:17
Satnan Singh wrote a combinator hardware design language that compiled to Xilinx FPGAs via Haskell.
ihb shapr: do you have any good tutorial/anydoc on monads? they weren't included in the class i took.
crysflame dx.doi.org/10.1145/289423.289440 # Lava: Hardware Design in Haskell
shapr It could get more efficient layout and other nifty advantages because it wasn't going via VHDL.
ihb lots of unfamiliar initials here now... 10:18
shapr I very much wanted to buy a Xilinx PCI FPGA board so I could have Haskell coprocessor!
crysflame mmmmm, Xilinx
shapr ihb: This is the best monads tutorial - www.nomaware.com/monads/html/
crysflame thanks :) 10:19
kungfuftr clkao: hhhmmm... stevan says his debug thing is really just logging stuff and not DB related at all
shapr I emailed Satnam Singh and some of the other people who worked on Lava, several of them have started their own hardware design warez in Haskell.
ihb shapr: danke.
crysflame also
66.102.7.104/search?q=cache:nvSVJW8...=firefox-a
shapr Alias_: There are a lot of technical compilery tasks in Haskell, but I wrote a mailman mbox mail archive web searchy, that's not at all technical. 10:20
It's about as clean as my room, but it works :-)
kungfuftr wonders if parrot could be targeted for crusoe
lightstep haskell is probably used for computer-language-related things, because you only get interested in haskell if you research computer languages
shapr In fact stevan might find Haskell's Lava et al interesting, because they're moving towards emulation of Lucid and dataflow features. 10:21
I got interested in Haskell because I'm self-employed and I want to deliver the best solutions to my customers :-P
jabbot pugs - 1389 - Added VICTUALS file
castaway mumbles.. 10:22
shapr I've never had any CS classes, so I don't think I'm overly academic.
lightstep you wouldn't have learned it if it proved to be unhelpful for your business?
castaway whats that funny stuff in the Apocalypse: "method walk () { .paws<C2><BB>.move() }" ?
shapr I would have learned it and then dropped it once it proved to be unhelpful or less powerful, like a bunch of other languages/systems I've learned.
theorbtwo castaway: UTF-8. 10:23
castaway I figured, whats it supposed to say?
theorbtwo >>, I think.
You might want to read it online instead -- dev.perl.org/perl6/apo/A%02d.pod 10:25
IIRC.
castaway nope, 404 10:26
theorbtwo dev.perl.org/perl6/apocalypse/A01.html (and etc), sorry -- memory not quite good enough.
shapr lightstep: There are other powerful and/or elegant systems that just don't cut it, see Self and Joy for example.
castaway kisses theorbtwo 10:27
shapr cybersex!
ok nm
castaway raises an eyebrow
you're odd.. if.. yeah.. nm
shapr geek reflex, sorry
Has the svn repo been updated since yesterday? 10:29
oh I can check this myself, nm
What's everybody working on today?
ihb btw, i've always found the type declaration with arrows between the argument _and_ the last argument and the return value confusing to look at. it always takes a while for me to adjust to that "f :: a -> b -> c" doesn't take three but two arguments. is it like that for anyone of you? 10:30
castaway testing, atm I'm watching a DB load data *yawn*
shapr ihb: that's because Haskell functions always take one argument.
theorbtwo It's like that for me too.
But you have to remember that a function that takes two arguments is really a function that takes one argument, and returns a function that takes another argument, and returns the result.
ihb shapr: i know why it is like that, and that "a -> b -> c" is "a -> (b -> c)" and one argument is applied at a time, but i think it's confusing to look at nontheless :-) 10:31
shapr right on!
castaway notes its still loading, and sneaks over to test some elisp instead
shapr I use partial application to give some of the features of object instantiation. If the sortBy function takes sortfunction and sequencetosort, I can do sortAscending = sortfunction ascending 10:32
ihb yeah, it's nice.
btw, is that because of lambda (?) reduction or currying? i saw some disagree on that on perlmonks some time ago. 10:34
shapr I think currying, not really sure. I think lambda reduction would mean some of the really code gets executed at compile time. 10:36
That's a question you should ask on #haskell =)
ihb f :: (a -> b) -> c; g :: a -> b -> c; h x = f (g x); -- a clear case of currying, afaik.
yeah, dammit, i always get off-topic here. sorry. 10:37
castaway toooopic?
Alias_ The trials and tribulations of the lamdacamel duality 10:38
shapr yay, my chr() works.
theorbtwo Woo!
shapr Is there someway I can request a peer review from someone else who's written code for Prim.hs ? 10:39
castaway yell it in the channel? ,)
shapr That does make sense.
theorbtwo Stick a diff somewhere http-accessable (pastebot), and tell us where it is.
shapr ok
lightstep hi nothingmuch 10:40
nothingmuch hola,
what's up with testgraph.pl?
shapr A question about ord, should it deal with multiple characters?
castaway doesnt in p5
lightstep i need a favor: i lost my woobling password 10:41
shapr should ord("abc") explode then?
theorbtwo It should ignore all but the first character of the string passed in.
shapr ah, ok
castaway it gives you just the result of the first char
and ignores thr rest
nothingmuch lightstep: do you have an SSH key?
castaway (oops, theorbtwo was faster .)
theorbtwo Hey, nothingmuch!
nothingmuch i could just disable the password, and you could use that
castaway hey nm
nothingmuch hola, castorbway
lightstep nothingmuch, err, no 10:42
nothingmuch lightstep: are you on some kind of posix thingy?
theorbtwo I haven't done anything with testgraph in a bit, but that's because I don't know what to do with it.
lightstep yes
nothingmuch or are you sshing with something like putty?
lightstep no, ssh on linux
nothingmuch ok, goody
ssh-genkey -t (rsa|dsa)
then you get to choose a password for the local copy of the private key
castaway passwords for passwords, I always thought that was a great idea (not) 10:43
nothingmuch no, it's a password for a key
Alias_ secrets within secrets
nothingmuch then you give the public key to me
castaway I know, I know
nothingmuch it just moves the password to a location lightstep controls 10:44
lightstep i don't have ssh-genkey somehow (debian)
Alias_ Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | Auto-smoke: kungfuftr.com/pugs-smoke.html | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478) 10:44
nothingmuch i jsut leave my passwords blank 10:44
(for ssh keys)
castaway passphrases, btw (for less confusion) 10:45
thanks Alias, that typo was beginning to bug me ,)
Alias_ It was a Skottish accent
castaway I see ,)
nothingmuch theorbtwo: when did the <div>'s come in? 10:47
tr/'//d
i thought it should be title=""
ah, i see: .test a:hover div { display: block; position: absolute; background-color: #BBBBBB; border: 1px solid #444444; left: 2em; padding: 5px; } 10:49
and: .test a div { display: none;
i wonder why it isn't working
lightstep nothingmuch, how should i send you the key (public key, i assume)? 10:54
nothingmuch email? 10:55
lightstep nothingmush at woobling dot org?
nothingmuch you can just /msg it
yeah
in general
lightstep i'm on no copy&paste here
nothingmuch the evil freenet admins might man-in-the-middle attack us? ;-) 10:56
it's not like they can't just ask me for an account... =)
if you're feeling especially paranoid you can just go into the machine and double check that it's OK yourself
theorbtwo Oh, sorry, missed some chatter. 11:01
jabbot pugs - 1390 - bwahahaha
nothingmuch nevermind, it was the css being cached as 404 in my browser
gaal hey there (haven't been here in, like, two days!) 11:02
nothingmuch hola gaal
gugod_ nice commit message
theorbtwo Welcome back, gaal. 11:03
gaal what embedding works? can i embed p5?
thanks, theorbtwo
theorbtwo Two days in pugs time is like two weeks in normal time.
That reminds me, gugod, can you make "last" give a timezone or "ago"?
nothingmuch gaal: i think it works on fbsd, and you have 'eval_perl5' 11:04
gaal it has no tests, at all. 11:05
gugod_ theorbtwo: "last" ?
theorbtwo: oh , the reply of "seen" ?
theorbtwo Er, right. 11:06
gugod_ ok I can do it
theorbtwo Sorry, some other bots call it seen.
nothingmuch lightstep: did you mail? 11:08
lightstep yes 11:09
pasteling "gaal" at 192.115.25.249 pasted "Embed.perl5 build failure (linux/debian perl5.6.4/ghc6.4)" (23 lines, 1.7K) at sial.org/pbot/8832
lightstep err, it returned. i'll try again 11:10
gaal um, that's x86 up there.
nothingmuch oi 11:11
was my server complaining?
lightstep no, i mistyped
jabbot pugs - 1391 - Add this information of the utmost impor
lightstep now you're in my address book, and the mail is on the way
nothingmuch i can send you a very fat vcard 11:13
lightstep what's a vcard? 11:14
nothingmuch an address book entry format
moz/ximian/etc probably support it
lightstep nah, i only need name<->email, and i already have that
nothingmuch osx does
mutt can be wrangled
with lbdb and a smarter program
the fun part is that it has phone/instant msg/address etc
gaal is making pizza tonight - good timing on the VICTUALS thing! 11:15
theorbtwo thunderbird does as well.
nothingmuch anyway, i'll put up nothingmuch.woobling.org/me.vcf just for fun
thunderbird is a subset of moz
ok, vcf is up, for anyone who cares 11:16
most of it is in hebrew though
if you want to mail me anythging in VICTUALS you can just copy it 11:17
this reminds me of a very nice story about the russian mail system
lightstep: ok, try to ssh 11:19
kungfuftr what's thing victuals thing about?
nothingmuch kungfuftr: food
theorbtwo Ugh, you should put country codes on those phone numbers. 11:20
gaal kff: svn up and forage your /
nothingmuch theorbtwo: then my cell phone doesn't dial them well
castaway countrycodes++
nothingmuch it's a bit too stupid for that
theorbtwo Oh.
That's sad.
nothingmuch indeed it is
kungfuftr ah
daft
lightstep nothingmuch, i give no password, and it doesn't connect 11:21
nothingmuch s/^/++972/
ssh -v woobling.org
perlbot nopaste 11:22
perlbot Paste your code here and #<channel> will be able to view it: sial.org/pbot/<channel>
pasteling "nothingmuch" at 212.143.91.217 pasted "what you should see if your key is bad" (9 lines, 524B) at sial.org/pbot/8833 11:23
"nothingmuch" at 212.143.91.217 pasted "what you should see if your key is good" (6 lines, 336B) at sial.org/pbot/8834
lightstep yes
that's what i get
i gave ssh-keygen an empty password 11:24
nothingmuch Apr 1 14:22:03 pasta sshd[4782]: error: PAM: Authentication failure for illegal user amir from xxxx
there's your problem 11:25
ssh [email@hidden.address]
or i can rename your account
lightstep err, silly me. i _did_ give it the wrong password
the wrong username, rather 11:26
nothingmuch so do you want a different username?
lightstep not at all 11:27
i never ever log in as `amir' except here, and here it's without password at all
nothingmuch ok, so do the following: 11:28
pasteling "nothingmuch" at 212.143.91.217 pasted "typical .ssh/config entry" (3 lines, 66B) at sial.org/pbot/8835
Alias_ autrijus: ping? 11:29
shapr cackles about www.cenqua.com/commentator/ and www.cenqua.com/pairon/ 11:34
lightstep thanks, nothingmuch 11:35
Shillo Hullo, folks! :) 11:36
mattc hello 11:37
nothingmuch hola
shapr ōæ½xBFcomo est as?
This wide variety of type errors clearly shows that I do not yet understand the Pugs internals. 11:39
castaway heh
nothingmuch shapr: i think this is type checking on the AST itself
Shillo shapr: ipv6 IP address. You're my personal god. ;)
nothingmuch see autrijus' journal from ca. 36 hours ago 11:40
shapr Shillo: you too can have an IPv6 address if you have a public IPv4
bok Shillo 11:41
Shillo Hm. Bok. :) 11:43
*squint* Do I know you from around here?
shapr Probably not.
Shillo Oh. How did ya know about 'Bok'? :) 11:44
shapr C'mon, Croatian isn't that hard!
hrvatska r0xx
Shillo Well, ummm. :) I'd tend to agree about Croatian but know plenty of foreigners who just cringe. My boss for one. :) 11:45
castaway
.oO( .hr is croatia ?)
shapr Anyway, you can easily have an IPv6 address with 6to4
Shillo
.oO( yep. )
shapr I'm from Alabama, but one of my best friends is Croatian.
castaway Oh, hungary is .hu .. okies :) 11:46
Shillo Oh, cool about 6to4. I'm being a firewall miles high but this is still neat. :)
shapr: Cool. Say hi to him. :)
shapr She's moving back to Zagreb next year.
Shillo Er. Her. ;)
kungfuftr has native IPv6 connectivity... =0)
shapr kungfuftr: bah, lucky!
kungfuftr shapr: heh... BGP++ 11:47
shapr Not like I can afford a BGP connection.
kungfuftr it's free
shapr Do you run an ISP from your house?
kungfuftr most network groups will do free IPv6 transit
kungfuftr does it for free through MCI, Kewlio, BT and Hurricane Electric 11:48
shapr The various Swedish ISPs claim they have the best IPv6 in the world, but I haven't been able to get native IPv6 from any of them.
Shillo Hmm, I think we ought to update that all April1 RFC. 11:49
kungfuftr shapr: ipv6.glbx.net is how i get mine
Shillo ipv6 over avian carrier.
shapr good point!
kungfuftr infact we have a swedish ipv6 peer, iirc
Shillo Er that /old/.
nothingmuch ipv6 over ipv4 will be terribly slow, no?
shapr The ultimate in P2P! Pigeon 2 Pigeon!
Shillo :)
shapr nothingmuch: I speak to you now via 6to4
nothingmuch right 11:50
shapr How slow does it seem?
nothingmuch but in theory
routing packets through a tunnel protocol half way around the world
mattc umm, yesterday I was pointed to Rod Adams' Synopsis 29... Its not the Perl 6 site. Is there a central authoritative place for the most up2date synopsis?
Shillo Heh, I speak to you now via IRC-through-http-tunnelling.
shapr It's not halfway round the world. 6to4 picks the nearest 6to4 router automagically.
Shillo I suck. :)
kungfuftr mattc: not that i've heard of
mattc ah 11:51
shapr Mine is somewhere in Gothenburg, ~1000km from here.
nothingmuch i don't there is any ipv6 in israel, though
Shillo mattc: Yes, the Larry's site. S29 is not authoritative, it's more of a RFC.
nothingmuch shapr: ah
mattc so how does one find out if a particular synopsis exists?
I see
Shillo mattc: AFAIK.
mattc so its not official until its on Larry's Perl6 site then? 11:52
I would have guessed that to be the case...
theorbtwo dev.perl.org/perl6/synopsis/, except for s29, which is in an odd state of half-existance.
mattc yeah, that's the one
cheers all
kungfuftr rightio, change to the testgraph.css to stop that weird text in box problem 12:03
theorbtwo Oooh? 12:05
kungfuftr checked that in
bah, though it now absolutely kills my version of mozilla 12:08
Steve_p Larry has had a great deal of input into S29 though 12:09
jabbot pugs - 1392 - Addition to css to avoid DIVS being show 12:11
kungfuftr will go through css later to make it less dependant on CSS2 selectors (which IE doesn't support properly) 12:12
shapr It seems the darcs mirror of svn isn't updating. Foo. 12:15
castaway www.ietf.org/rfc/rfc4042.txt 12:17
shapr oooh aaah!
nice find castaway!
castaway I must confess, twas not me 12:18
theorbtwo www.ietf.org/rfc/rfc4041.txt -- Requirements for Morality Sections in Routing Area Drafts 12:19
shapr This must be a slashdot parody. 12:20
"Set the Evil Bit"
Oh wait, the evil bit is from rfc3514
integral hrm, rfc4042 looks rather useful :-/ 12:21
shapr Wow, an RFC that has orgy-mode. I'm impressed.
Shillo LOL! 12:22
nothingmuch what platforms have nonet?
rgs some old Bull computers had, iirc. 12:23
shapr Groupe-Bull rocked.
castaway orgy mode?
nothingmuch multicast
Shillo The key words "SHALT", "SHALT NOT", "SMITE", and "PILLAR OF SALT" in this document are to be interpreted as expected.
:)))))
castaway heh 12:24
nothingmuch bit torrent is so much fun 12:27
downloading whole live CD is quicker than minimal install traditionally
shapr bah, IPv6 multicast is better! 12:28
nothingmuch ipv6 multicast is better than bit torrent?
shapr Yeah, it is actually.
nothingmuch explain
nothingmuch has never heard about it
shapr BT is IPv6 multicast 'faked' over IPv4
rather creatively faked 12:29
nothingmuch how is ipv6 concerned with large objects?
shapr Bram r0xx =)
nothingmuch you create huge packets, and then send them to many people
shapr Um, I don't think size is important when you talk about multicast.
nothingmuch and then they know how to share?
so how does the distribution work here? 12:30
bt works because everyone has different parts
Shillo Routers distribute.
shapr you send out a single stream in a loop, anyone who wants to listen does so.
Shillo shapr: Actually I'd prefer multistream multicast.
shapr You ask your nearby IPv6 router to subscribe you to the multicast, it asks the next router in line...
Until you get back to the origin host, which only sends out a single stream. Whenever a router has two subscribers on different branches, it sends out two streams. 12:31
kungfuftr shapr: BT's labs use proper native ipv6 (BT Exact)
shapr voila, huge amounts of bandwidth saved.
nothingmuch ah, in that sense
true that
nothingmuch wonders how long the world will take to switch 12:32
shapr The server can just loop the multicast file send, and if no one is listening, no traffic exists.
theorbtwo Hm. It seems that ipv6 mcast and bt seek to solve more or less the same problem, but do it in /vastly/ different ways. 12:33
nothingmuch but in general I still have to wait for as long as it takes the server to sent
send
shapr That's true, that's where BT is better.
nothingmuch and if the server is down, i can't get the file
shapr Yup, I agree.
nothingmuch bt on ipv6 could probably be implemented in a much more naive way, though
theorbtwo It should actually be implemented somewhat differently on ipv4. 12:34
It should use UDP.
Shillo The guy who designed Kademlia protocol also designed multistream download protocol.
Thing is, combined with multicast, it'd rock VERY hard.
shapr I've wondered about a mix of SLP and ipv6 multicast and/or BT to get really fast link local linux distro package caches
Shillo Because taken alone, both BT and multicast have asympthotically constant bandwidth.
While bt + multi's bandwidth grows with the number of clients. 12:35
Or rather, multistream+multicast.
His protocol allows you to reassemble the file from any collection of sufficiently many packets (with very high probability once you cross the critical threshold on the number of packets)
So you just listen to the packets and log them, then, when you've had enough, try to reassemble. If you fail, just get some more. 12:36
shapr So, we'll write 6Torrent in Pugs...
Shillo The only problem is that the protocol is impractical as described, because of the limits on HD seek time. You need to xor 3-50 blocks from the original file to get each net packet.
shapr That sounds cool, I'll check out the Kademlia protocol. 12:37
Shillo Kademlia is for serverless p2p. This is the other protocol by the same guy.
shapr I'm interested in serverless protocols in general.
Shillo Both are incredibly clever, BTW. After I read how Kademlia works, all I could say was... REEEESPEEEEECT!
shapr I'd like to use darcs for serverless decentralized read-only wikis 12:38
nothingmuch someone in our local pm did a talk about TRIZ once
and to demonstrate he used some basic principals to design an anonymous, fast p2p
Shillo With Kademlia, you can get distributed key->value mapping of any kind.
theorbtwo I'm off to bed. 12:39
Shillo And make it efficient for a *really* large number of keys.
shapr I wish I knew some nearby cool geeks to hang out with and learn stuff.
nothingmuch Shillo: does it have any way to guarantee or at least promote preservance?
ciao, theorbtw1
shapr Is Kademlia based on some of the better know distributed hashes?
Shillo shapr: Dunno the others.
shapr asks google
Shillo nothingmuch: Preservance? If you mean to guarantee that the mappings don't just go away, no. 12:40
shapr Citeseer is so slow! argh!
Shillo It's not really for persistent publishing. It's expected that the specific machines publish their data to the Kad network.
Once the publisher is gone, the data may go away. At least in the publishing model (used by Overnet and eMule0 12:41
shapr Of course the US might make p2p illegal RSN.
castaway oh, he went to bed
Shillo It's more for the high-performance searching with little guarantee on storage. But then you could include redundance guarantee in the app layer. 12:42
Since the only thing really specified in Kad protocol is topology, peer location/management, and data propagation.
Kad basically allows a group of machines to self-organise into something that resembles a hypercube (performance-wise) 12:43
nothingmuch learns about hypercubes 12:44
Shillo Basically you can route a message between n machines in O(log_2 n) steps through hypercube. Kad has different log base but otherwise is pretty similar. 12:45
... except for the self-organising nature. Machines find out on their own how to connect and where to route data.
nothingmuch ah 12:47
clever
basically gets you this: en.wikipedia.org/wiki/Image:Hypercube_star.png
without knowing the whole graph 12:48
Shillo The clever part is how it does it: Each node randomly generates node ID. 12:51
You use XOR-distance to measure distance between 2 IDs. XOR distance between a and b is a number of 1's in a^b (binary)
Now in a full ID space, you get 2^n ID's at distance n from yourself. But the exact nodes strongly depend on the ID you got. 12:52
lightstep but how do you meet your neighbours, if you only know distances?
Shillo Now, you need to know one node to bootstrap off it (you just query the list of initial nodes), like in gnutella. 12:53
Then each node connects to nodes at various distances - this is to get fast routing.
Now, keys are also IDs.
You publish keys to the nodes that are near the key ID. 12:54
To query the net, you route the message 'toward' the ID - i.e. to the nodes that are as close as possible to the ID you want.
And when connecting to the net, you try to connect to a good cross-section of near and far nodes. That gives you hypercube-like routing. The message 'jumps' to the long-distance nodes, and then gets searched near them. 12:55
Read the Kademlia whitepaper, the devil, as usual, is in the details. But it really -is- incredibly clever.
lightstep doesn't understand routing nearly well enough
drbean Making 6.0.13, after linking ..., I get this error: collect2: ld terminated with signal 9 [Killed] 13:05
kungfuftr drbean: which version of GHC are you using?
drbean I wonder if I pressed ctrl-C?
mugwump ctrl-C should be signal 2
drbean 6.4 The Glorious Glasgow Haskell Compilation System, version 6.4 13:06
kungfuftr odd
drbean I previously installed pugs-6.0.11 with no problem
I ran make again and it skipped all the compilations and this time after a lot of disk activity, I don't get an error. 13:11
lightstep it takes a lot of time to link .13 13:12
shapr Can I get a peer review on this addition to Prim.hs that appears to pass "./pugs -Iblib6/lib t/builtins/chr.t" ? file is www.scannedinavian.org/~shae/chr.diff 13:48
autrijus you got one. 13:51
it is Correct.
shapr yay!
autrijus =)
lightstep seems a little short 13:52
shapr Does it need to be longer?
lightstep i think you should expand op1Chr to be 7 lines or something, like op2Numeric
shapr autrijus: darcs repo doesn't seem to match svn, shall I ci via svn instead? 13:53
autrijus sure. 13:54
can I have your email to make you a committer?
shapr I'm [email@hidden.address]
castaway cute domainname :)
castaway looks for the bird scans
shapr thank you :-) Open Source Penguin Living In Sweden!
castaway *g* 13:55
shapr ScannedInAvian has thunderbird and chicken so far.
Using caps in my email has turned up a surprising number of bugs in various software too. Lots of code requires lower case.
autrijus invitation sent.
nah, we Just Works 13:56
castaway heh
shapr Wow, the terms of agreement are in chinese. 14:00
autrijus english one is here: wagner.elixus.org/~hcchien/termtouse.html
wilx Hm..., pugs interactive, `? 1' dumps core.
autrijus err, sorry.
wilx: right. want to investigate? it's been broken ever since lightstep refactored it
shapr Oh, that's just fine as terms go. 14:01
wilx Oh.
Heh.
lightstep on some machines it always fails, on some machines never. it looks like a problem with `debug' 14:02
kungfuftr sobs as he will only have access to his windows laptop for the next few days, so no pugs hacking... =0( 14:04
castaway wot no win-ghc?
shapr GHC works on windows, but maybe it's a business laptop and he can't install other apps on it? 14:05
shapr looks expectantly at jabbot 14:08
castaway wonders why 14:09
shapr doesn't it show commit messages?
lightstep it takes a few moments 14:10
shapr ok
autrijus shapr: add yourself to AUTHORS?
shapr oh right 14:11
jabbot pugs - 1393 - add chr() functionality
rgs notices VICTUALS
shapr w00h00! 14:12
castaway :)
shapr does the happy dance
rgs notices that schwern has misspelt quinoa again :)
autrijus comes back from the land of BNFC, Happy and GLR. 14:13
I think it makes sense to rewrite the IMC parser using happy, justso it agrees 100% with parrot. 14:14
Limbic_Region autrijus - Leo has had a reputation for churning out code like a mad man for a while now - I am a bit scared to think of what you two might accomplish living together for a couple weeks 14:15
autrijus Limbic_Region: maybe we'll both learn cobol. 14:16
and produce nothing at all
or maybe we'll rewrite perl6 on top of intercal.
or port everything to rule 110
shapr Or maybe an epic CPAN drinking game will happen!
Limbic_Region that's also another scary thought 14:17
autrijus I think parsec makes a lot of sense for pugs, because the grammar is still changing like mad
but IMC probably warrants a stricter grammar.
Limbic_Region autrijus - be forewarned - Leo can D-R-I-N-K 14:18
autrijus Limbic_Region: and I can't.
so there's no competition on that front :)
shapr If Sake is involved I'm in!
rgs but leo doesn't know the cpan very well.
this compensates.
rgs remembers leo and lots of bottle of white wine in a parisian sushi bar 14:19
shapr oh wow, ayrnieu is a Pugs committer? 14:20
autrijus mm?
shapr It's interesting to find people I've know online for many years on the pugs project member list. 14:21
autrijus :)
jabbot pugs - 1394 - add Shae Matijs Erisson (aka shapr) to A
shapr boings cheerfully 14:22
autrijus shapr++ # welcome aboard to this crazy ship
shapr Yay! I want a room with a porthole!
castaway *g*
kungfuftr autrijus: will have File::Path ported over the weekend (along with it's dependencies (i hope)) 14:23
most of it already done
autrijus kungfuftr++
I think I'll port Bamboo to pugs, too. 14:24
(Bamboo being this cocoon flowscript like web controller thing obra designed)
Shillo Later, folks!
autrijus works well with any MVC frameworks (or really, anything that supports CGI)
that way we can write Ruby on Rails -like things in perl6 :) 14:25
kungfuftr Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | smoke: kungfuftr.com/pugs-smoke.html | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478)u | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478)
bah!
Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | smoke: xrl.us/fmw2 | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478)u | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478) 14:26
Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | smoke: xrl.us/fmw2 | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478)
ffs
Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | smoke: xrl.us/fmw2 | win2k:r1378(224/3842) Linux:r1302(193/3383) MacOSX:r1342(189/3478) 14:26
kungfuftr finally, bloody irc client 14:26
shapr I have most of ord() working, but it's failing on [ and { only. Not on ] or } though. 14:32
castaway funky
shapr ok, now only { is failing the test. But ./pugs -e "print ord('{')" gives the correct value of 123 14:41
maybe the test framework has a bug?
autrijus that may be the case.
oh wait.
"{" is illegal.
have to be written '{' 14:42
reason is that { is not interpolated in strings.
mugwump how do you alias a method in perl6?
PerlJam mugwump: with :=
autrijus :=or ::=
PerlJam g'morning btw
autrijus &foo := &bar; 14:43
shapr yay
PerlJam yeah, ::= is compile-time aliasing, := is run-time aliasing.
kungfuftr yay! time to go on short holiday! 14:46
jabbot pugs - 1395 - added ord() functionality, fixed two ord 14:52
drbean ;/quit 15:13
autrijus I should be back from the IMC digression this weekend :) 15:18
thanks for feeding the dog during my diving 15:19
15:33 Aankh|Clone is now known as Aankhen``
shapr cackles happily 16:37
xerox hiya shapr, did you see that Scheme april's fool? 16:38
shapr Yes, it's funny.
xerox It is ! :)
shapr Did you see the most recent post on ll1? 16:39
I am so going to steal that quote for my next .sig
PerlJam xerox: where's the scheme afj?
xerox www.jadetower.org/muses/archives/000307.html 16:40
shapr: no, can you give me some url?
shapr xerox: article.gmane.org/gmane.comp.lang.l...eight/3244 16:41
quote from "The Austin Lounge Lizards"
xerox hehs 16:43
autrijus xerox: where's the scheme afj? 16:44
xerox www.jadetower.org/muses/archives/000307.html 16:45
shapr I think it's article.gmane.org/gmane.comp.lang.l...eight/3240
xerox Yep, better.
WHOOOPS
I'm sorry, didn't check the url.
The last part is great. 16:47
shapr kungfuftr: how often does your fire re-smoke? 16:48
PerlJam oh, yeah. They just took Guido's post about python and used it for their AFJ
(I hope Guido gets the point eventually :-)
shapr I may give a EuroPython 2005 talk about it.
hiya elmex 16:49
cognominal rgs, any comments after the leak in the title of #perlfr in grou.ch? 16:50
autrijus journal up. g'nite :) &
xerox Night autrijus :)
shapr g'nite autrijus 16:51
rgs hi cognominal. 16:52
perl 5.9.2 is Out.
w00t
cognominal rgs, the leak is not about perl 5.9.2 :) 16:53
rgs cognominal: well, you mean that I would be able to think about something else today ? 16:54
cognominal: that topic sucks.
cognominal blame stef
shapr How do I describe the output of hex in the big string in the bottom of Prim.hs ? 16:55
I know " Int pre hex " but how do I describe that the args can be num/str/etc? 16:56
I guess it can only be num or str, but is there a name for that superset? Or do I create union types like in Haskell? 16:57
chip autrijus: "src/Unicode.hs:foreign import ccall unsafe "u_iswupper" 17:03
autrijus: I see it defined and imported but not used...? 17:04
shapr Any clueful Prim.hs people around? 17:06
shapr tries voodoo hacking 17:08
PerlJam shapr: did you just add chr + ord? 17:09
shapr Yes I did.
PerlJam cool. 17:10
shapr But they have only a single input type. Hex can take numbers or strings.
PerlJam shapr: what do you mean hex can take numbers or strings? 17:11
the hex I'm familar with only takes strings
shapr If you take hex.t as the spec, it can take both. 17:12
PerlJam so I would have thought you'd add "Int pre hex (Str)"
shapr That part works, but that doesn't pass all the tests.
PerlJam Hrm.
shapr hex(10) and hex("FF") should both work according to hex.t 17:14
PerlJam shapr: hex(10) should just return 10 then. literals are always in decimal with out some qualifier to say otherwise 17:15
shapr So, does "\\n Str pre hex (Int, Str)\" mean that hex can take either an Int or a Str? or does it require both? 17:19
PerlJam that would mean that it requires both
shapr I'll try duplicating the line with the two different arg patterns. 17:20
w00!
shapr hops cheerfully 17:21
btw, hex.t thinks that hex(10) is 16
still passes though. 17:22
PerlJam If hex.t is the spec, then I think that spec is wrong. 17:23
shapr Well, find out, mister camelfolk =)
PerlJam Or perhaps it's correct and hex(10) coerces the 10 into a string before hexifying 17:24
shapr cuz you know I have no clue, that's for sure.
PerlJam either way, hex shouldn't take numbers on input
kcwu hex(10) is 16 in perl5
PerlJam kcwu: sure, that's because perl5 coerces the 10 into a string 17:25
shapr Can I check in only part of a diff somehow with svn? 17:26
PerlJam besides, perl6 may not even have hex(), oct(), etc. as per recent emails to p6l
integral shapr: you can commit just a few files: svn commit <files>
shapr I added error catching cases in the same file, but I think they fit in a separate changeset. (Does svn do changesets?) 17:27
integral not like that :-) 17:28
PerlJam just commit those separately like integral said.
well, I guess he didn't quite say that, but I am!
:-)
shapr works for me!
castaway allo you lot 17:41
shapr guten abend castaway
castaway ooh, deutsch ;
ooh, deutsch ;)
mugwump halt der klapp!
castaway "die Klappe" 17:42
mugwump yeah yeah yeah :) 17:43
mugwump <--- now can talk two second languages (badly) 17:44
shapr I think I have about 0.95 languages total. 17:47
castaway heh 17:48
shapr castaway: I grew up speaking Southern English. My fiancee is from SƤƤrbrucken, and she has a Master's degree in English. First time she was in Alabama, she went to a Kentucky Fried Chicken, and I had to translate between my fiancee and the cashier chick. 17:54
Khisanth shapr: I take it she didn't actually speak English all that often? 17:55
castaway Southern english?
shapr Oh no, my fiancee's english is unbelievably perfect. 17:56
mugwump the worst thing about english dialects is that americans don't know they exist :)
CapoeiraB heh
Khisanth oh right ... Alabama ;)
shapr My fiancee's english is better than mine even. But the chick behind the counter spoke what was effectively Ebonics.
CapoeiraB Actually, most southerners, not rednecks, southerners, speak english very well. we just happen to have a horrible accent, and occasionally use words that no one else uses, like 'reckon'. 17:57
castaway sounds like a normal word to me 17:58
shapr reckon is actually common in Irish English, and a variety of other parts of English.
castaway I'm still trying to parse 'southern' - southern what?
CapoeiraB southern USA, you know, where there are more cows than humans. 17:59
shapr It literally means 'to count' but I suspect it's originally Germanic, related to 'rƤcker' in Swedish which literally means 'to reach' or 'to suffice'
CapoeiraB: Where the men are men and the sheep are scared!
CapoeiraB heh. 18:00
mugwump American is a dialect of English. Southern American is a dialect of that. Call it an accent if it pleases you :) 18:01
CapoeiraB well, we do have some ways of saying things that aren't exactly proper. "I'm fixing to go to the store" instead of "I'm about to go to the store."
castaway Ah, not southern england.. 18:02
shapr Right, I'm from the other Birmingham.
castaway just dialect CapoeiraB
southern "english" indeed.. ;) 18:03
CapoeiraB to people who live in the US, southern english is a horrible accent of the dialect of english that everyone else in the US speaks. 18:04
crysflame Y'oughn't to?
castaway none of its english all!
CapoeiraB crysflame: haha, nice try
crysflame well, i've never tried to spell it before
shapr Some Alabama and Georgia accents are quite pleasing. Some are painful.
crysflame i can say it
drawl doesn't convey well in 26 letters
shapr Ah'm fruhm Burminhayum.
crysflame neither does bl1ng
CapoeiraB this is true.
masak maybe this will interest some of you: www.cs.tut.fi/~jkorpela/lingua-franca.html 18:06
i haven't read all of it, found it today
it's about english on the web
and on the net in general
shapr I think we should switch to Finnish.
masak ei saa peitƤƤ 18:07
shapr It's a lot more fun to swear in Finnish.
puhutko suomea?
masak no, not really
CapoeiraB I wish I could speak finnish.
shapr Me neither :-)
masak :)
CapoeiraB as well as several other languages, for that matter. 18:08
masak i see it sometimes on merchandise
shapr I lived in Finland for three years, but agglutinative languages are difficult for first-time users.
masak hm
mugwump agglutinative?
shapr programming - ohjelmointia
masak i like agglutination
:)
crysflame agglutinative!
masak english is fairly agglutinative too
shapr Er, no. Not really.
c2.com/cgi/wiki?AgglutinativeLanguage 18:09
Finnish has seventeen 'cases' but you can use them all at the same time on the same word.
CapoeiraB southern english (US) is fairly agglutinative. 18:10
shapr It's like sauna = sauna, my sauna = saunani, at sauna = saunassa, at my sauna = saunassani
CapoeiraB: excellent point.
castaway fun
masak here's an agglutinative word from esperanto: "ekmalvarmegiĝis", meaning "it suddenly turned very cold" 18:11
shapr I wonder what an agglutinative programming language would look like.
CapoeiraB that's just because we're lazy bastards, though.
masak shapr: lisp? 18:12
shapr Maybe so.
ninereasons just what I was thinking masak
masak :)
shapr In that case, what's the total opposite?
Forth?
Joy?
masak fortran?
shapr Hm, maybe.
crysflame of what?
shapr: brainfuck?
shapr heh
That's just sick!
masak the opposite should be totally isolative
shapr Right. That's why I wondered about Joy. 18:13
masak crysflame: yes :)
shapr DEFINE approxEqual == 100.0 / rotate [0 =] [pop] [dup rolldown - swap /] ifte > .
That's approximately equal in Joy.
masak that's sick too :)
crysflame stares at joy
shapr Joy is a purely functional stack-based concatenative postfix programming language.
masak so... it's joy if you're a sadist 18:14
shapr I sort of enjoy writing Joy. :-/
shapr grins
masak lol
shapr One think I like about Joy is that you don't ever name your variables.
They're always positions on the stack.
masak that's must be a relief :P 18:15
shapr If you cut a program at any lexical boundary, what's left over is still a legal program.
And, lists are quoted programs, Joy does metaprogramming.
masak cutting up the program: is that a needed property of a language? sounds more like what a snake could use
but metaprogramming is nice 18:16
meta-just about everything is nice, in fact
shapr In some ways, it is a neat property. The cutting leading to a legal program is all to do with being 'concatenative'.
masak it's as if i said that every sentence i ever uttered could be used successfully out of context 18:17
shapr Like, in Haskell a space means apply, or roughly 'execute', but in Joy it means 'add more onto the program'
masak ah
shapr f g means beat up on g with an f
in Haskell.
masak yes 18:18
shapr f g in Joy means stick those two together into the same program
masak how's that different from imperative programming?
mugwump oh, damn autrijus !
why did he have to introduce me to all of these great concepts from haskell
shapr Because no one language has a monopoly on nifty trix? 18:19
mugwump now I just want to use them
ninereasons perl7 will have a monopoly :-)
shapr grins 18:20
masak: Haskell and Perl are closer in style than Haskell and Joy.
masak perl7? perl6 already threatens to make my brain implode
so joy is, what, beyond functional? :)
shapr No, it's just different :-) 18:21
masak ah
shapr I don't think there's a linear scale of programming languages. There's a bunch of different approaches.
masak of course 18:22
crysflame use them well, young master mugwump
beware the dark side
shapr For example, I think Self is more OO than Smalltalk.
mugwump crysflame, yes, we've already heard from Luke on the perils of "concise hell" 18:23
ninereasons that's an interesting post by Luke, mugwump. I hadn't read that before. 18:26
shapr oh which post?
ninereasons thanks for referring to it.
www.nntp.perl.org/group/perl.perl6....uage/20009
mugwump funny thing is, that was one of the criticisms of Perl in the early days too
shapr It doesn't take me an hour to write a line with a lot of content :-) 18:27
But it did take me awhile to get used to cutting out traversal patterns with higher order functions.
ninereasons that might be because you are (obviously) brighter than average, shapr . but what if I want to read what you took a minute to write? 18:28
trouble, then. :-)
shapr Maybe not...
Wait till I explain the traversal patterns =) then you might have no trouble with it.
mugwump hmm, I wonder how I pull out the members of a junction 18:29
shapr For example, if you have a function that takes one argument and evaluates to a result, you can use that function like a hammer on each item of a list with 'map'
If you have a function that takes two arguments and evalutes to one result, you can boil down a list into a single result with 'fold' 18:30
Like, sum of a list is fold (+) [1,2,3]
ninereasons: sounds readable so far? 18:31
ninereasons so far.
lightstep so if sum of list is fold (+) [1,2,3], then sum itself must be fold (+) ?
(which is afaik not haskell) 18:32
shapr Hm, I wish I had a few lines of good example code that were total 'conciseness hell'. Do you know of any?
lightstep there's always @pointless 18:33
mugwump sure, shapr, I guess that includes pugs
:)
shapr Oh, good point. Do you know of any impressive lines in pugs?
ninereasons: anyway, before we get too far into 'conciseness hell', I think the point of these basic combinators is to separate out the most basic traversal patterns. 18:34
I usually write a bunch of code till it works (using tests of course) and then I come back and see if the basic patterns are more obvious after I know more about the pattern of the whole program. 18:35
lightstep you can try to confuse deliberately, like fold [] (++) . map f = concatMap f
shapr oh, I know some possibly confusing code. The Fibonacci sequence! - "fib = 0 : 1 : zipWith (+) fib (tail fib)" 18:36
pjcj reverse = foldl (flip (:)) [] -- from the Monad.Reader
integral that's confusing? 18:37
shapr pjcj: do you understand part of it?
lightstep it's subjective: some people grok swing naturally
shapr That version of reverse is bizarrely natural in my opinion. 18:38
In Haskell a list has an item and the rest of the list.
The colon is the list constructor. 18:39
so 1:[] is the same as [1]
integral found precedence the most confusing haskell thing
shapr and 2:1:[] is the same as [2,1]
pjcj shapr: I understand it - the author's point was that to most people is not as clear as the "obvious" version 18:40
but I think you can make a similar argument in most languages
shapr Yeah, true.
I liked that article :-)
I liked all the articles! I'm the editor! =) 18:41
pjcj shapr: ha! I didn't realise that :-)
mugwump The thing is, you don't need functional syntax to state axioms that lead to the definition of a proof, and I think it's a great thing that pugs is steering things this way...
shapr It's *very* gratifying to have someone quote TMR back to me. Thanks for reading it! 18:42
Yeah, I agree, I don't know where pugs is going, but I want to help it get there.
crysflame TMR?
shapr The Monad.Reader. 18:43
I had too much contract work this month, I couldn't organize an April 1st issue. But there will be one for March 1st!
pjcj Only 11 months to wait!
shapr May! argh!
Sure, I can learn category theory.. but remember which year I'm in... that's hard! 18:45
justatheory purl, be math barbie 18:46
:-
:-D 18:47
crysflame wrong window
shapr Has someone already designed math barbie?
justatheory searches for the factoid. 18:48
Barbie famously said, "Math is hard!"
integral "Category theory is hard, lets go shopping!"
justatheory that's it 18:49
ninereasons someone should teach that to perlbot
nothingmuch sighs
long time coming 18:50
shapr First time I was reading a big chunk of code (suffix trees) and I asked someone on #haskell to read ten pages of Haskell source, I got a "no way!" I thought ten pages of code was no big deal, judging from the fact that reading ten pages of Python takes ten to fifteen minutes at most.
nothingmuch needs to add a disk to pasta
shapr So, there is definitely something to the conciseness bit.
How long do you expect ten pages of perl source to take to read?
justatheory an hour per page 18:51
PerlJam an hour?
are you a slow reader?
integral how big a page?
PerlJam or just unfamiliar with perl?
justatheory It depends on what it is, really
nothingmuch thinks it depends how you're reading, and especially what
and even more: what page are you on
you're basically forming a 4 dimentional graph 18:52
stored in a linear format
integral 4?
PerlJam shapr: I wouldn't expect to see 10 pages of perl ;-)
nothingmuch you have the states the program can be in
integral Parse::RecDescent was a pretty slow read
nothingmuch i tend to organize them in my eye as 3d space
just because i'm biased to think that way 18:53
and then control flow is traversal of that graph
pointing in many ways
it could be two dimensions for the states, but i prefer 3
and lets not forget you're moving data around,
shapr googles for suffix trees in Perl 18:55
elmex ?? 18:56
shapr your evil twin! 18:57
nothingmuch argh! /me /still/ hasn't found out whether you can do software raid 1 between two logical volumes, on separate physical disks 18:58
crysflame you can on linux
you can do software raid across loopback filesystem images if you want
if it has a block device inode then you can use it in a raid 18:59
nothingmuch crysflame++; # thanks!
crysflame well 19:00
caveats DO apply
don't go experimenting on a production system
but, yes, basically, you can raid anything
nothingmuch what i'm going to do: rsync root and mail 19:01
i don't care about those movies that i somehow got, i think off the internet (what?)
;-)
then I'll boot off live
add the new disk
zap it, put it in a VG
and start copying media to there
then I'll zap root 19:02
partition it
add most if it to the VG
and put the new root there
and leave /usr, /home and /var for the VG
with /home being on a software raid
makes sense? 19:03
crysflame: ping? 19:04
mugwump I'm renaming stevan's modules into modules/, ext/ is for stuff that doesn't run in pugs like the Perl 5 stuff... 19:10
maybe. hmm 19:11
castaway nm! 19:12
nothingmuch yes? 19:13
castaway wheres my test-see? ;) 19:14
xerox got his pugs compiled, finally!
nothingmuch castaway: i'm killing pasta right now
i can give you about 30 minutes of see fun
good enough?
castaway awwww.. poor compi
its not that urgent.. just wanted to catch you at home for a change ;) 19:15
is it going to be reviived?
nothingmuch yes, i'm adding a disk
castaway nifty
nothingmuch kernel upgrade first, thugh 19:16
castaway good luck then ;)
nothingmuch thanks
castaway gets back to pondering how to get the localIP in emacs
xerox castaway: (setq *iprun-some-external-program-please "lynx --dump checkip.dyndns.org") 19:17
nothingmuch wonders what FS he should use
xerox Whoops.
castaway: (setq *ip* (run-some-external-program-please "lynx --dump checkip.dyndns.org"))
nothingmuch reiserfs makes sense for /home, ext3 for /var, and xfs for /media
castaway heh
mugwump how complex! 19:18
wilx Heh.
nothingmuch i think
wilx I used ext3 for /boot and jfs for everything else :)
castaway checks in the logs to see if she actually wants the local or the remote IP
nothingmuch jfs/xfs seem tastey 19:19
how well supported are they by e.g. other systems, life CDs, etc?
chip Anybody know what's supposed to happen given C< sub foo (Int $i) { print $i } foo(1.1) >? 19:26
Is the 1.1 coerced, or is that a type error -> exception?
mugwump that should be fine afaik 19:31
mugwump & # long overdue sleep... 19:32
theorbtwo is back. 19:41
Darren_Duncan you're back! 19:42
mugwump 's buffers finish synking to svk 19:52
jabbot pugs - 1399 - Added fallthrough error cases for chr an 20:01
pugs - 1398 - Add S28-ish discussion on perl vars in l
pugs - 1397 - Re-organisation - move modules from ext/
pugs - 1396 - Add a demo Set implementation
Khisanth there is an S28? O_O 20:02
Corion Hmmm. Why do the pugsrun/ tests in xrl.us/fmw2 have a semicolon after the redirect sign? Is there some weird magic that happens with Haskell/FreeBSD which doesn't happen on Win32? 20:05
... or is that just an artifact of the HTML generation? I wonder because the tests fail on the smoke while they are OK on my machine.
shapr How do I run a local smoke test? 20:06
Corion shapr: "make test" runs the tests
shapr: and "make test TEST_VERBOSE=1" runs all tests with output 20:07
shapr how do I turn that into the sexy output on kungfuftr's site?
Corion shapr: theorbtwo gave the magic incantation yesterday...
Oooo - and the chr() tests succeeded! :)
theorbtwo "after the redirect sign"? 20:08
Corion Hmmm. I should download GHC/Debian, so I can test on Linux too.
theorbtwo: I see ">;" in the output, where there should be ">"
theorbtwo Oh, when I gave the magic incantation, I missed a bit -- you need to set PERL6LIB.
shapr cheers about chr tests
Corion theorbtwo: in t/pugsrun/*.t
Corion cheers for shapr
theorbtwo Otherwise, as far as I can tell, it picks up perl5's Test.pm, and somehow mostly works anyway, as far as I can guess.
Congrats, shapr! 20:09
Corion theorbtwo: Hmmm - instead of setting PERL6LIB, -I should work as well. I think. (-I in TEST_HARNESS=pugs -Iblib6/lib)
shapr bounces happily
Corion shapr: Bounce on! 20:10
Under no circumstances collapse your lambacamel duality | pugscode.org <<Overview Journal>> | pugs.kwiki.org | logged: xrl.us/e98m | smoke: xrl.us/fmw2 | win2k:r1400(225/3849) Linux:r1302(193/3383) MacOSX:r1342(189/3478) 20:10
theorbtwo Yeah, should. 20:10
Corion Hmmm. I guess there are no Debian GHC packages for Debian stable, right :) 20:11
theorbtwo Corion, you should set up a win32 smoke.
Corion theorbtwo: Yes! :)
theorbtwo At the very least, they'd be 6.2.something instead of 6.4.
jabbot pugs - 1400 - added cheesy hex implementation, should
Corion theorbtwo: I run 6.2 on Win32 too, so that should be fine 20:12
:)
theorbtwo: Is there any premade smoker script? 20:13
theorbtwo: And/or how should I "puglish" the smoke results?
(the smoker will only run when I'm at my home machine, as I don't let it run unattended)
shapr I'd guess there's someway to pipe 'make test' into testgraph.pl?
theorbtwo There is, Corion -- it's in utils.
Corion shapr: More or less. You run theorbtwos magic incantation I think, which sets TEST_HARNESS to pugs. But maybe the wrapper in utils is all that's needed ... 20:14
theorbtwo shapr: set HARNESS_PERL and PERl6LIB, then run perl utils/yaml_harness.pl, then perl utils/testgraph.pl > testgraph.html
Corion I was thinking of writing an irc bot that logs on and changes the topic to match whatever test result it got :) 20:15
shapr It's possible I could hack pugs into lambdabot
ninereasons apt-get install -s ghc6 # ghc6 (6.2.2-3 Debian:testing)
shapr Since lambdabot is written in Haskell.
Though maybe implement builtins is more useful.
Corion shapr: Does Haskell have a safe mode? Otherwise, I wouldn't trust outside code :)
shapr: Indeed :) 20:16
theorbtwo For bonus points, run utils/categorize_tests.pl, and the links will work.
shapr There's sort of a safe module.
PerlJam Corion: Haskell doesn't *need* a safe mode!
Corion PerlJam: Well, you somehow need to restrict all IO :)
PerlJam Corion: behold the monad! ;)
Corion I've been thinking a bit about filenames / directories, and the way IO::All works with files/dirs (lazy tree) doesn't sound too bad to me. Except that it maybe doesn't fit well with the existing file object. 20:17
PerlJam: ??? That doesn't help you discriminate between safe and unsafe IO.
Darren_Duncan I noticed the move from /ext to modules/ ... good move
shapr It does actually. No IO is totally safe =)
Corion shapr: :)
shapr: You can still consume resources, but yes, you can't attack other systems :) 20:18
shapr Right.
xerox shapr: I tought the same thing! (hacking pugs into lambdabot)
theorbtwo You can't run the tests unless you allow prints to STDOUT.
shapr xerox: go for it!
Corion ... and some tests even want to create files and start subprocesses!
shapr theorbtwo: but you can run all the tests as pure code, and the top level code would write to STDOUT. 20:19
Corion (behold the mindset of Perl :) )
xerox shapr: you probably can do it faster than me, even just finished it. I'd better pull your patches that are on the way.
shapr xerox: I'd rather work on implementing builtins at the moment. I don't know when I'll have time to hack on pugs again.
theorbtwo You'd have to rewrite Test.pm for that, shapr.
Corion goes looking for the magic smoke incantation
theorbtwo I've never looked at the smoke script in the SVN. 20:20
shapr That's true. Or rewrite the tests as QuickCheck tests. I considered that earlier today.
Corion (+ 1) shapr -- manic builtin implementation
shapr grins
But I'd rather approach pugs from the native perl viewpoint first, and then consider QuickCheck tests later.
castaway wonders if smoking should be dubbed "barking" for pugs. (or some such)
Corion Oh, but smoked dog is some very tasty food! :) 20:21
shapr laughs
castaway brrrr
pjcj beagles smoke, why not pugs?
(189 subtests UNEXPECTEDLY SUCCEEDED) -- thet's a lot of unexpected success
theorbtwo In Soviet Russia, smokes beagle you! 20:22
Khisanth Soviet Russia must have been a very strange place
theorbtwo Cool, pjcj, what'd you do?
shapr yeah, tell us!
xerox only knows the "say" builtin as now.. maybe he can work on @pugs.
pjcj svk pull; make test
theorbtwo Oh.
pjcj I wasn't me, honest!
shapr How do you know if a test should succeed or not?
pjcj s/I/It/ 20:23
castaway umm, it tests it against an expected result
shapr Er, should the # TODO bits be removed when a test is expected to pass?
theorbtwo Yes, shapr.
shapr oops.
theorbtwo If the tests calls todo_is, todo_ok, etc, then it is expected to fail.
Corion has unfriendly things to say about lots of unixisms in run_smoke.pl 20:24
castaway grins at Corion.
Corion ... and I still get these "couldn't match line:" errors ...
theorbtwo Corion, did you see my comment about PERL6LIB?
That fixed it for me.
Corion theorbtwo: I thought that run_smoke.pl set PERL6LIB: $ENV{PERL6LIB} = "ext/Test/lib";
theorbtwo: Is there anything more to set? /me scrolls back 20:25
shapr I found a possible smoketest logo - www.marinaomi.com/paintings/all/le_...nt_lg.html 20:26
This person has more like that - www.marinaomi.com/paintings.html
theorbtwo Oh, that may work as well.
Corion theorbtwo: Weird ... I 20:27
theorbtwo I'm not impressed by the art, shapr, and I doubt he'd be impressed if we copped it.
Corion ... I'll dig into this a bit.
shapr Yeah, true.
theorbtwo: what's the expected to pass call? just remove the todo_ part? 20:29
castaway guesses "yes"
theorbtwo Yep.
Darren_Duncan If anyone was here last night when the discussion of comparing two refs was going on ...
theorbtwo was.
Darren_Duncan the word back from p6l seems to be that =:= is the most appropriate operator
castaway this morning ,) 20:30
Darren_Duncan so that matches what I used by default in the last SRT commit
I'll clarify, about 12 hours ago
theorbtwo That's sad... I should possibly post to the thread.
Darren_Duncan mainly it was Larry who said : The =:= operator is almost certainly what you want here. 20:31
Corion pasteling: nopaste?
Darren_Duncan and giving further information later
my quote was a one-liner
pasteling "Corion" at 217.234.108.235 pasted "Output of pugs -Iblib6\lib -w t\pugsrun\01-dash-uppercase-i.t" (19 lines, 923B) at sial.org/pbot/8851
Corion theorbtwo: That's what I get as output. I don't see how it can be matched by the converter, so there must be something wrong... 20:32
and I get the same output when I use -Iext/Test/lib 20:33
... but I don't see what I'm doing wrong ;)
BTW - should I patch out the unixisms in the run-smoke.pl and make it depend on Config.pm instead?
theorbtwo If you run by hand, you need to set the other env var as well. 20:34
Corion ... and File::Spec (p5)
theorbtwo TEST_ALWAYS_CALLER
Corion theorbtwo: D'oh!
Corion goes looking for the exact incantation
No, still same output, no difference. 20:35
Corion goes to make run-smoke.pl dual-portable
theorbtwo Cor, don't look for any exact incantation I've given, because it's since come to my attention that most of them are wrong. 20:38
theorbtwo isn't as smart as he sometimes appears to be.
shapr Gee, I thought you were a palantir. 20:39
What does your nickname mean? 20:40
should make test show me any unexpected passes in the summary at the end?
Corion theorbtwo: Hmmm. I don't have the slightest idea what any of the incantations effect, and I don't want to go source/doc diving either
shapr: Yep
theorbtwo A palantir is the correct thinking.
shapr theorbtwo: So you don't have to be so smart yourself, you can lookup anything, anywhere, with no trouble :-) 20:41
Having a palantir that knew its way around the biggest libraries in the world would be great. 20:42
theorbtwo HARNESS_PERL determines how the test harness tries to call the test scripts -- if it's not set, then they'll get run with /usr/bin/perl.
PERL6LIB tells pugs where to find the libraries. If it's set incorrectly... things still mostly work, but I have no idea why.
TEST_ALWAYS_CALLER tells the pugs version of Test.pm to give the caller information, and needs to be set if you're using yaml_harness. 20:43
(Or if you want yaml_harness compatable output.)
Corion Aaah. Despite of the spewed error messages, the script still works. I was simply too impatient :( 20:44
theorbtwo What sort of spewed error output?
It's likely my fault.
Corion theorbtwo: No - I don't redirect the STDERR output of yaml_harness.pl to dev/null, so I see all the warnings 20:45
theorbtwo Ah.
Corion So - should I push my smoke report anywhere ? Or the yaml? 20:46
theorbtwo Put the generated html/css someplace HTTP-accessable, and give the URL in the topic? 20:47
Putting up the YAML as well might be nice.
Corion theorbtwo: Will do both. And I get the ">;" in the generated output too, so it must be some kind of artifact. Are you manually encoding entities? 20:48
Ah, yes - the "&gt" is missing the semicolon, which gets encoded separately. Or something. We-ird 20:49
(all of this doesn't explain the failures of my tests under kungfuftrs smoke)
Corion does some uploading
jabbot pugs - 1401 - marked tests expected to pass 20:51
shapr make test takes a long time for me. What about adding single functional tests for each major chunk, and only running all the subtests if the top level test fails? 21:00
In my opinion, tests that take a while to run don't get executed much. 21:01
Corion shapr: The "prove" command does that, or I run my single tests via ./pugs -Iblib6/lib -w t/mytest/test.t
shapr oh
Corion shapr: I run "make test" only before a commit, otherwise I run the single test (file) I'm working on 21:02
... at least I think the "prove" command does wildcard based running of tests. I seldom use it
xerox What does the .t extension mean?
castaway that its a file with tests in
Corion xerox: ".t" means "test" :)
xerox ! 21:03
shapr Functional tests for each major chunk would let you see if you broke something somewhere else in Pugs while you're working on one part of the code.
Corion shapr: Yeah - I think the "prove" command lets you run sets of tests (as given by their filespec/filename) 21:04
yep - prove does exactly that
Corion points to datenzoo.de/pugs/win2k.html
theorbtwo Cool, corion! 21:06
pjcj Perl has a coretest target - maybe pugs could use one. The danger then is that the rest of the tests don't get run very often. That is why Perl's coretest target isn't widely publicised.
Corion Ah. I found the bug in testgraph.pl - you're applying the regexes in the wrong order, or rather, you should be using HTML::Entities anyway :)
The last, global scale encoding regex also catches ";" - which was produced by earlier encoding. 21:07
theorbtwo Oh!
Add it to the set of safe characters in those brackets?
You can make it use HTML::Entities iff it will entitize /all/ chars above 127.
Corion theorbtwo: Yep - that's what I did. 21:08
theorbtwo: AFAIK, HTML::Entities does just that, but the other fix works as well (I think, will see in 3 minutes)
theorbtwo That way I can avoid encoding issues.
theorbtwo nods.
Corion The win2k smoker will be run manually and still needs lots of manual intervention before the update is pushed to the site. I'll automate that, so it'll become a single-click thing for me to run the smoker. 21:09
(so even should I lose interest in Pugs soonish, I can still smoketest with little effort)
Corion also points to datenzoo.de/pugs/win2k.yml , which contains the output as yaml 21:10
Corion fades away, logging
theorbtwo G'night, Max.
Corion ... the fixed line should be $title =~ s/([^-&<>\/().#A-Za-z0-9 ;])/sprintf '&#x%X;', ord $1/eg; 21:15
Corion does a cheshire cat impersonation. again. 21:16
hlen_ can you say `when' inside `for' statements as in a `given' statement? 21:24
integral you should be able to use when anywhere... 21:25
Khisanth when sounds a bit like if :)
integral except it automatically adds the $_ ~~ bit 21:28
pjcj Does anyone know the status of autrijus' proposed rewrite of Eval.hs?
Darren_Duncan from what I read, you can use 'when' inside any block; its block executes if $_ equals the when-expression 21:29
integral not equals, it's compared with ~~, so you can do it based on types, etc
Darren_Duncan an outer 'given' block simply sets $_ to its value
hlen_ ok, thanks guys =) 21:30
Darren_Duncan likewise, you can use a CATCH block without a 'try'; it will catch exceptions generated in the block it is inside
one thing I don't know yet is whether you can have multiple CATCH in the same block 21:31
Khisanth why not? shouldn't you be able to catch different kinds of exceptions?
Darren_Duncan I meant that, say you have some normal code, then a catch block, then more code, than catch; the first catch block directly below the code throwing the exception is the one executed ... that's what I meant ... someone asked me if this would work, they thought it should, I didn't know 21:47
they wanted behaviour like multiple successive try blocks, but in one try block
Corion Is there a way to make a dry-run with svn ? I want to see what svn thinks has changed locally before I commit 21:51
pjcj svn status or svn diff ? 21:53
Corion pjcj: Thanks 21:54
Maybe I now broke the smoke stuff with my "portability fixes".
Feel free to revert my stuff (or even better, fix it) 21:55
jabbot pugs - 1402 - Portabit fixes on smoke stuff 22:01
chip Anybody know what's supposed to happen given C< sub foo (Int $i) { print $i } foo(1.1) >? Is the 1.1 coerced, or is an error thrown, or ... ? 22:06
Corion chip: I'd assume it's equivalent to "foo(round(1.1))", but a compile time error due to type coercion would be nice, for constants. 22:09
(or maybe even better foo(floor(1.1)) , but I still prefer the compile time error) 22:10
... as for as far as I know, Perl6 will have a proper tower of numbers, will it?
Ah. Autrijus decided by matter of fact that Perl6 would get Schemes tower of numbers. A sane decision IMO :) 22:11
& 22:12
stevan howdy yah-all 23:10
shapr waves the lambda camel pom-poms 23:11
stevan wonders if shapr ever sleeps
shapr I tried it once, got me highly irregular, swore I'd never do it again.
stevan mugwump: you around? 23:16
crysflame www.k-read.net/custom_rooterpoms.htm # choose your color and imprint a logo
shapr brilliant! 23:17
What colors does perl ues?
crysflame blue and white is the o'reilly colors