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 ">" 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 |