Run Perl6 Now! | pugscode.org ('Overview', 'Journal') | pugs.kwiki.org | channel log: xrl.us/e98m Set by autrijus on 6 March 2005. |
|||
pjcj | that'll be mugwump | 00:01 | |
metaperl_ | i was just feeding back about that mind-bending sendmoremoney he sent me | 00:05 | |
obra | what was mind-beinding about it? | 00:06 | |
bending | |||
metaperl_ | the huge query if nothing else | 00:07 | |
mugwump is in the house | 00:11 | ||
The query is fairly straightforward IMHO. What's mind-bending is how MySQL manages to solve it in 80ms | 00:13 | ||
still can't commit it, though :( | 00:15 | ||
it's filtering a 10^8*2^4 (1.6B) size solution set in this time | 00:16 | ||
theorbtwo | Any subethaeditors around? | 01:42 | |
lumi | Er, me | 01:45 | |
theorbtwo | I think I've been blacklisted by codingmonkeys.de | ||
Er, read, by the public test server. | |||
lumi | Oh? | 01:46 | |
I have nil idea | |||
how any of it works | |||
theorbtwo | I'm trying to write a perl script that's interoperable with their protocol; they may have gotten annoyed at me sending them data their program doesn't like. | 01:47 | |
lumi | Why were you connecting to them? | ||
You can start your own server, no? | |||
theorbtwo | Yeah, I kind of just realized that. | ||
lumi | I can't open a listening port, but are you connectable? | 01:48 | |
What's their public server btw? | |||
theorbtwo | I can be quickly enough, but I can just have my script connect to the pearpc instance. | 01:49 | |
lumi | Okay, fair enuff :P | ||
theorbtwo | codingmonkeys.de | ||
lumi | Not working for me either, so it might not be personal | 01:50 | |
"omg you killed codingmonkeys" etc | |||
theorbtwo | Oh. | 01:51 | |
Not a very good demonstration for them, then... | |||
lumi | What's the script for? | ||
theorbtwo | Fodder for a protocol doc, so people who actually know lisp can implement it for emacs. | 01:52 | |
lumi | Hmmmm | ||
theorbtwo | I don't actually own a mac. | ||
And I'd prefer to keep it that way. | |||
But reap the benifits of having one any way. ;) | |||
lumi | You were attacked by wild Macs when you were but a child? | 01:53 | |
You don't like cocoa? | |||
theorbtwo | No, they were very orderly macs. | ||
lumi | Ahh | ||
Next time don't stack them on the top shelf | |||
theorbtwo blames his high school. | 01:54 | ||
lumi | Would your efforts help make an emacs see server as well? | ||
Or just a client? | 01:55 | ||
theorbtwo | Both, eventually. | ||
Client first, probably. | |||
lumi | I can't express how cool that would be | ||
theorbtwo | SEE seems to be very picky. | 01:56 | |
lumi | They're basing it on some published protocol, aren't they? | ||
theorbtwo | On BEEP, which is a pair of RFCs. | ||
But I'm betting it's not to closely based on it, and BEEP is a very loose framework to begin with. | |||
lumi | Does it crash on bad input? (Would explain where condingmonkeys.de went) | ||
theorbtwo | Not sure. Would explain it. | 01:59 | |
But feeding my local copy the exact same intput doesn't seem to make it die. | |||
lumi | Anyway, I'm calling it a night.. | 02:02 | |
Godspeed on your quest! | |||
theorbtwo | Thanks. | ||
But I seriously doubt it. | |||
lumi | Nevertheless | 02:03 | |
ingy | theorbtwo: what is your quest? | 02:27 | |
stevan | ingy: how would I do a nested list in kwid? | 02:41 | |
- one list | |||
-- nested list | |||
is that right? | 02:42 | ||
hcchien | stevan++ # new pugs banner | 02:48 | |
stevan | hcchien: thanks | ||
ingy | stevan: that is one way | ||
'-' lists are "definition lists" | 02:49 | ||
stevan | ok | ||
ingy | of the form: | ||
stevan | so is '--' nested def lists? | ||
ingy | - term | ||
definition | |||
- other term | |||
other defintion | 02:50 | ||
when definition gets to be more than one parapgraph, you'll need `.list` | 02:51 | ||
stevan | ok | ||
ingy | basically it should dwym | ||
I'll make it so | |||
I think I am going to go a little more towards pod's way of using blank lines to end blocks | 02:52 | ||
so: | 02:53 | ||
== this | |||
header | |||
is the same as | |||
== this header | |||
but... | |||
== this header | |||
* does not consume this bullet | 02:54 | ||
stevan | how would it handle this | ||
= bullets * are cool | |||
ingy | same as | 02:55 | |
= bullets \* are cool | |||
stevan | ok | ||
so how far away from a parser are you? | |||
ingy | bullets are /^\*+ / | 02:56 | |
well, I would like to say the kwid tools will be working by April 5th | |||
because that is the end of my stay in Taiwan | 02:57 | ||
where I plan to work on it | |||
mugwump | when do you arrive in Taiwan. ingy? | ||
ingy | let me check | ||
stevan | so is buu working on it with you? | 02:58 | |
ingy | no | ||
stevan | and you are writing it in Haskell right? | ||
ingy | he was working on a perl5 parser | ||
and I am writing it all in Haskell yes | 02:59 | ||
I also plan on making pugs be able to `require` Haskell modules | |||
stevan | yes I have heard about that | ||
ingy | so Kwid.hs will also act as Kwid.pm | 03:00 | |
stevan | Pugs XS :) | ||
ingy | right | ||
stevan | hmmm, so is buu still writing his perl 5 parser? | 03:01 | |
ingy | I don't know. I really don't know anything about the state of his work | ||
since it isn't done in the open afaik | |||
I will do all my Kwid stuff in the open | 03:02 | ||
so you can hack on it too | |||
it only makes sense to do it that way | |||
stevan | I agree | ||
however, my Haskell skills are non-existant, and I doubt I will have time to learn it | 03:03 | ||
I may just hack a quick perl5 version so I can process the docs I am writing | |||
metaperl | hi guys, I am doing my Perl 6 Junctions presentation now | 03:05 | |
this is live from Thousand Oaks, CA | |||
stevan | Helllloooooo Thousand Oaks!!!! | 03:06 | |
Are you ready to Rock and Roll!!!!!! | |||
metaperl | yes! we are! | ||
stevan | LOL | ||
ingy: where is your kwid spec doc? I am not finding it | |||
ingy | stevan: doc/ | 03:07 | |
go metaperl!! | |||
metaperl | here's my presentation : www.hcoop.net/~terry/perl/talks/p6-...index.html | ||
ingy++ :) | |||
stevan | danke | ||
ingy | stevan: a quick hack kwid2pod would be easy and useful | 03:08 | |
stevan | ingy: ok, I was thinking kwid2html, but kwid2pod2html would work too | 03:09 | |
ingy | mugwump: I arrive in Taiwan on March 22nd at 7:18am | ||
mugwump: or 7:50am, I really can't tell | 03:10 | ||
jdv79 | do python or ruby have junctions? | 03:11 | |
ingy | not afaik | 03:12 | |
stevan | ingy: what was all that talk I heard about kwid bytecode? | 03:13 | |
ingy | rubyforge.org/projects/junction/ | ||
stevan: bytecode is mostly for testing | 03:14 | ||
stevan | ingy: any docs on that? | ||
ingy | it is a compact serialization of a kwid (or pod) parse tree | ||
I think so... | |||
stevan | oh I see it | 03:15 | |
ingy | ext/Kwid/t/README | ||
safrican | haha | ||
i thought that was regex | |||
and i was like - what the heck ? | |||
ingy | =) | ||
it's the new pugs regex style I just wrote | 03:16 | ||
safrican | haha | ||
ingy | hi Schwern, we were just laughing at you | 03:17 | |
hahahaha | |||
haha | |||
ha | |||
safrican | hehe | ||
ingy | ok... done | ||
safrican | :) | ||
Schwern | Am I some sort of clown to you? | 03:18 | |
ingy | no, I just think you're funny, you know... | ||
Schwern | Do I have funny hair, wear silly clothes and say stupid things for your amusement? | ||
stevan | kick his a** Schwern | ||
ingy you can take em | |||
ingy | stevan: I already did take him | ||
jdv79 | stevan "the provoker" | ||
ingy | for a whole year | ||
Schwern | It was magical. | ||
stevan | IRC FIGHT!!!!! | 03:19 | |
Schwern | GET OUT THE CREAMED CORN | ||
safrican | go .*? !! | ||
Schwern | Anyhow, I HAVE A BUG TO REPORT | ||
enough of this jocularity | |||
ingy | stevan: does the bytecode make sense? | ||
stevan | ingy: actually it does :P | 03:20 | |
more than kwid does at the momemnt | |||
I think I will start with a kwid bytecode generator | |||
Schwern | Installing /System/Library/Perl6/Kwid.pm | ||
Installing /System/Library/Perl6/Test.pm | |||
Installing /usr/bin/kwid | |||
kwid is not core, it shouldn't be installing there. | |||
ingy | it *is* core | ||
Schwern | Is it in Perl5? | 03:21 | |
ingy | no | ||
Schwern | Then its not core. | ||
ingy | what? | ||
Schwern | Core in the sense of you're installing it in the wrong place. | ||
For a library | |||
mugwump | But core in the sense that you don't have to include it to use it? | 03:22 | |
ingy | Kwiki installs `kwiki` in the same place | ||
Schwern | installprivlib vs installsitelib | ||
ingy | wait... | ||
Schwern | It should go into (in my case) /Library/Perl/... | ||
ingy | the lib or the bin | ||
Schwern | Both, though in most cases core and site are the same for bin. | ||
As here. | |||
I think Pugs::MakeMaker is using the wrong config variables. | 03:23 | ||
ingy | Schwern: Kwid is intended to be a core module as we are writing all the docs in it | 03:24 | |
Schwern: I doubt it | |||
Schwern | Core in the Perl5 sense. Not the Pugs sense. | ||
Oh, wait. | |||
I'm an idiot. | |||
ingy | ok, I can believe that | ||
Schwern | Didn't see it was going into Perl6/ | ||
ingy | :) | ||
Schwern | Carry on. | ||
ingy | Schwern: I remember from some deep dive into make utils code, that all lib paths match /perl/i | 03:25 | |
is that true | |||
or can you embellish | 03:26 | ||
Schwern | All lib paths? | ||
ingy | well.. | ||
privlib and sitelib | |||
and thus archlib and sitearch | 03:27 | ||
Schwern | There's nothing stopping someone from making privlib /placenta/juan if they really want to | ||
So no | |||
ingy | but i think Configure adds a 'perl' component to the path unless /perl/i | 03:28 | |
Schwern | I'd really doubt it would force such a thing. | ||
ingy | I've seen this code | ||
Schwern | It might suggest it as the default. | ||
ingy | well right | ||
if you give a prefix that already /perl/i then it doesn't add a perl dir | 03:29 | ||
that much is true | |||
basically what I am saying is that I heuristically make up the Perl6 libs from Perl5 ones | 03:30 | ||
Schwern | Let's find out | ||
ingy | so i may need to adjust those heuristics | ||
Schwern | Pathname where the private library files will reside? (~name ok) | 03:31 | |
[/ham/wild/lib/perl5/5.8.6] | |||
Pathname where the private library files will reside? (~name ok) | 03:32 | ||
[/usr/local/perl/lib/5.8.6] | |||
The first is the prefix /ham/wild the second is /usr/local/perl | |||
But beware, its common that this gets overridden. Debian for example. | |||
ingy | ok, well I'll at least add a die, and see if/when my scheme doesn't work | 03:33 | |
Schwern: see r566 | 03:42 | ||
nnunley | Ugh. Still setting up my new laptop. | 03:44 | |
mugwump | nnunley, did you make sendmoremoney.p6? | 03:45 | |
nnunley | mugwump: Yeap. I'm to blame. | ||
nnunley grins. | |||
Looking forward to your fixes. | |||
I mostly did it to see if I could prod someone into better defining how autothreading would work. | 03:46 | ||
mugwump | However you wouldn't want that script to end up making 1.6b threads that test a few conditions then finish | 03:47 | |
nnunley | Not at all. | ||
I have some stuff lurking in my drive to narrow the permutations down, but I assume you've done the same. | 03:48 | ||
mugwump | First, the primary optimisation with that problem happens by treating each part of the expression as its own, not as a combined product. Otherwise it can only really be solved by exhaustive search | 03:49 | |
nnunley nods. | 03:50 | ||
mugwump | eg, breaking it down into D+E % 10 = Y, (floor((D+E)/10)+N+R)%10=E, etc | ||
I think that's far too difficult an optimisation for anything to make apart from a massive quantum supercomputer, like the ones we lug around in our heads | 03:51 | ||
Then it becomes simple enough that if you pass it into something highly optimised at finding combinations of values that meet certain conditions, like a SQL query processor, it can be solved in very few iterations | 03:52 | ||
nnunley nods. | |||
mugwump | eg, MySQL did it in <80ms on my PC | ||
nnunley | So your solution uses something like continuations to backtrack? Or did you continue to use the junctions metaphor? | 03:54 | |
That is, in perl6? | |||
mugwump | Yes - it's a simple optimisation of your script, so that if we have correctly identified a key characteristic of junctions then we have something achievable to work towards | 03:55 | |
ie, it should be able to eliminate inconsistent solutions quickly | 03:56 | ||
I wish my commit would work :( | 03:57 | ||
oh, wait, I suppose I need to commit to darcs don't I? | |||
not svn.openfoundry.org:80 | |||
nnunley | darcs apply, no? And then darcs send? | ||
ingy | stevan: ping | 03:58 | |
mugwump | ah. I've been using svk | ||
nnunley | Or svk push | ||
I'm still a newbie with svk. I've been using svn directly to make my commits. | 03:59 | ||
wee. 3 days until I arrive in London | 04:09 | ||
ingy | nnunley: yow! | 04:12 | |
nnunley | ingy, yeap. | ||
i'm in high panic mode right now, trying to get my data backed up to my new laptop so i don't have to carry yet another harddrive with me. | 04:13 | ||
so what's new with you, ingy/ | 04:17 | ||
04:17
safrican_ is now known as safrican
|
|||
ingy | nnunley: working on 50 things at once as usual | 04:17 | |
nnunley | ingy, always a good state to be in if you can sustain it. | 04:18 | |
ingy, how's your learning process with haskell/ | 04:21 | ||
ingy | nnunley: slow, I keep skipping around trying to find a tutorial i can grok | 04:22 | |
where grok = get it all at once without being too long | 04:23 | ||
I'm a slow reader and I like dense material | |||
usually | |||
nnunley | Hrm. Have you looked at the translation of the perl cookbook to haskell/ | 04:24 | |
crysflame | . | 04:25 | |
ingy | nnunley: I was told not to look at that | ||
PLEAC? | |||
nnunley nods. | |||
crysflame | people tell me not to give you ideas, ingy | 04:26 | |
nnunley | it doesn't seem like the greatest starting point. on the other hand, it is a cognative mapping from perl to haskell. | ||
ingy | I'm reading the Two Dozen one right now | ||
crysflame: is that right!?! | |||
crysflame | yeah, they're all #perl and usually half kidding | ||
i seed evil ideas, you implement evil ideas | |||
ingy | true | ||
crysflame grins | |||
hasn't stopped me yet | |||
bd_ learned haskell by skimming the gentle intro and then writing an unlambda interpreter. Painful, but effective. | |||
nnunley | is that online | 04:27 | |
ingy | nnunley: www.haskell.org/tutorial/index.html | ||
nnunley gets very annoyed with x11vnc | 04:28 | ||
ingy | the Two Dozen Lessons thing is not very good | ||
Gentle looks good | |||
hoowa | morning! | ||
nnunley | my recommendation is the Haskell school of expressions... | ||
But there are stronger books out there. | 04:29 | ||
"learn haskell in 10e days" | |||
mugwump | 10e? 28.18 days? | 04:30 | |
nnunley nods. | 04:31 | ||
stevan | ingy: you around? | 04:34 | |
nnunley | stevan: He was a few moments ago. | 04:39 | |
ingy | stevan: yes | 04:40 | |
stevan | ingy: is this | 04:41 | |
== header2 | |||
and this: | |||
== heaad2 | |||
equivalent? | |||
ingy | yes, they would prduce the same bytecode | ||
stevan | in other words, should I ignore whitespace after the '==', but before a string | ||
mugwump | hmm, `svk push' doesn't work, either | ||
stevan | ingy: cool, thats what I thought | ||
ingy | ==header2 is just plain text though | 04:42 | |
stevan | ok | ||
ingy | that way ==foo== could be used in the future | 04:43 | |
stevan | ok | ||
ingy | that's why: | ||
*this is bold and not a bullet* | |||
* this is a bullet with *bold words* | 04:44 | ||
buu | Oh god | ||
buu runs away | |||
stevan | LOL | ||
buu | stevan: Attempting to write a parser? | 04:45 | |
stevan | buu: yes | ||
did you get far on yours? | |||
buu | Yeah I'm about 95% done | ||
stevan | ahh | ||
ingy | this is a line with asterisks and * no bolding * | ||
stevan | buu: can I see it? | ||
buu | yeah.. | ||
Winning starcraft game atm | 04:46 | ||
stevan | :) | ||
buu | I have an older version at erxz.com/pugdoc.zip or something | ||
I just need to expand ** parsing to work for // and `` | 04:47 | ||
stevan | buu: that version looks to be just a tokenizer/lexer | 04:48 | |
buu | Er, what did you want? | 04:49 | |
stevan | buu: an AST :) | ||
buu | Ah.. no | ||
stevan | kwid bytecode man! | ||
buu | You could generate the bytecode trivially | ||
mugwump | nopaste.snit.ch:8001/2015 # what am I doing wrong? :( | 04:51 | |
hoowa | hihi | 04:54 | |
autrijus | greetings. | 05:11 | |
stevan's banner is now in trunk. | |||
I need to run for $work :) | |||
so, see you in a bit. | |||
stevan++ # nice nice banner | |||
mugwump | hey autrijus, I'm getting an authorisation error trying to commit via svk | 05:12 | |
autrijus | did you register? | 05:13 | |
the openfoundry account that is | |||
there's no record of it | 05:14 | ||
did you click on the url in the invitation mail? | |||
mugwump | I'm logged into it now. | ||
autrijus | your userid? | 05:15 | |
mugwump? | |||
mugwump | yes | ||
autrijus | ok, you're a committer now. | ||
have fun | |||
mugwump | thanks | ||
autrijus | 26th :) | ||
mugwump | the 26th committer? | 05:20 | |
hcchien | I guess so. :) | ||
mugwump | better than being use.perl.org member #1871 or slashdotter #30,000 I suppose :) | 05:21 | |
crysflame | leisuretown is back :) never seen it before | 05:35 | |
very, very.. interesting | |||
er | |||
hi #perl6 | |||
at least i have different nickname here | |||
05:37
flw is now known as flw_,
flw_ is now known as flw
|
|||
Darren_Duncan | I noticed that there is a mixture of Perl 5 and Perl 6 modules in the /ext directory -- Test and Kwid are Perl 6, MakeMaker is Perl 5 -- should these be in separate dirs since they are different languages? | 06:16 | |
ingy | Darren_Duncan: no | 06:45 | |
Darren_Duncan | I hear you | ||
ingy | ext contains core things that must be installed for pugs to work correctly | ||
for now that includes some perl5 stuff | 06:46 | ||
Darren_Duncan | okay - I thought it might be reasonable to clearly deliniate what runs inside Pugs and what runs outside Pugs | ||
had thought | |||
ingy | eventually Pugs::MakeMaker (or something else will be redone in perl6) | ||
eventually Pugs::MakeMaker (or something else) will be redone in perl6 | 06:47 | ||
Darren_Duncan | fyi, I'm about to do a checking, in a few minutes | ||
check-in | |||
quick question; what is the Perl 6 equivalent of "use lib 'foo'"? | 06:48 | ||
ingy | maybe unshift @*INC, 'foo' | ||
Darren_Duncan | that sounds like what "use lib" was supposed to replace | 06:49 | |
ingy | we don't have `use` yet | ||
autrijus: for your journal you can report that "Ingy finally slept" ;) | 06:50 | ||
zzzzzzzzzz& | |||
Darren_Duncan | basically, I'm about to check in my test suite ... the main test uses several modules, which are in a subdirectory of t/ called lib/ ; I wanted to include that in the path that Perl 6 code sees | ||
in Perl 5 I have "use lib 't/lib' at the start of my .t file | 06:51 | ||
and it works great | |||
lacking a better answer, I'll unshift for now | |||
autrijus | heh. | 07:22 | |
ingy: thanks so much for your work :-) | |||
autrijus starts backlogging | |||
nothingmuch | morning | 07:26 | |
autrijus | greetings nothingmuch-san | 07:30 | |
autrijus still @ work | |||
nothingmuch just got there | 07:31 | ||
crap, i closed mut | |||
nothingmuch waits now | |||
nnunley | mugwump: BTW, the send+more=money solution should be at least as readable as www.mozart-oz.org/documentation/fdt/node15.html | 07:35 | |
mugwump: The trick is finding the perl6 idiom that expresses things as nicely. | |||
Or forcing p6l to create it. :) | 07:36 | ||
Blah. Must sleep. | |||
autrijus | have fun :) | 07:38 | |
(in your dream, that is) | 07:39 | ||
Darren_Duncan | I just emailed a status report to p6c | 07:55 | |
autrijus | Darren_Duncan++ | ||
Darren_Duncan | the short of it is, more LKT updates, and the full test suite is ported | ||
at this point I have nothing more to do with that except respond to feedback people make, such as which bits aren't proper Perl 6 | 07:56 | ||
autrijus | woot. time to move on to other modules? :) | ||
Darren_Duncan | In a couple weeks I'll port SQL::Routine, whose code size is a full 25X larger | ||
nothingmuch | cagle.slate.msn.com/working/050309/keefe.gif | 07:57 | |
Darren_Duncan | although a full 1/3 of that is a data dictionary definition (multi-dimensional hash declaration) and won't really require any changes | ||
with that module, it may be easier to see what its unique qualities are | 07:58 | ||
something I did today with all my Perl 5 modules is based on a stated preference Larry Wall made on p6l, which is replace several thousand "return( ... );" with "return ...;" | 08:00 | ||
the multi-file regexp search and replace in my BBEdit text editor came in handy | 08:01 | ||
nothingmuch would like a -r flag to perl -pie | |||
Darren_Duncan | In the intervening few weeks, I'm going to focus more on updating my Perl 5 code, although I'll stick my head in here now and then ... | 08:02 | |
autrijus | that's cool :) | ||
Darren_Duncan | I may start the SRT port in as little as a week ... it has a lot to do with its stability, how much I want to re-do later as the original changes | 08:03 | |
if you're on any of the database-related lists, expect an announcement soon | |||
still, some Perl 6 features I learned about , I will be able to use in the SRT port, where I couldn't in the LKT port | 08:04 | ||
'Roles' for one thing | |||
nothingmuch | appearantly i've always dreamt of rollaxes | 08:05 | |
email is so informative | |||
damnit, why isn't SA getting this stuff? | |||
Darren_Duncan | what is SA? | ||
nothingmuch | spamassassin | 08:06 | |
Darren_Duncan | ok | 08:07 | |
nothingmuch | ook! | 08:13 | |
what a horrible day | 08:14 | ||
08:26
decay_ is now known as decay
|
|||
Darren_Duncan | is it now? | 08:27 | |
nothingmuch | my day? | ||
Darren_Duncan | I suppose | 08:28 | |
nothingmuch | uh | 08:29 | |
decay | wonder how long it will take to compile ghc on irix :) | ||
nothingmuch | what did you mean then? | ||
Darren_Duncan | how was your day? | ||
nothingmuch | my day has just started | 08:32 | |
it started bad | |||
because i used to be sysop | |||
and people are still asking for favours when problems are hard to fix | 08:33 | ||
brb | |||
here we go again | |||
Darren_Duncan | that's unfortunate | ||
too bad they can't ask the person whose job it is to fix their problems | |||
nothingmuch | well | 08:37 | |
that person is wresteling with an urgent problem | |||
some raid died | |||
and anyway these questions are more of the 'wtf is going on?!' type | |||
and his subordinate is sick | |||
or 'how do i do xyz?' | 08:38 | ||
not so much 'can you reinstall blah' | |||
Darren_Duncan | I understand | ||
nothingmuch | which i'm notoriously quick at | ||
but then again, i haven't done more than ten minutes of real work in the hour and a half that i'm hear | |||
Darren_Duncan | people ask me for help too, though it never was my job | ||
do you get paid for the time spent helping the other people? | 08:39 | ||
nothingmuch | i am the local goat | ||
Darren_Duncan | by your employer | ||
nothingmuch | officially i'm the integrator | ||
i have a base salary | |||
and an overtime one, that i always get | |||
and people know i just work | |||
so that's not the issue | |||
i do what others don't | |||
Darren_Duncan | you just don't like doing tech support? | 08:40 | |
nothingmuch | for example, if a test is running annoyingly slow, because a tool the dev team made is bad | ||
most testers will work around | |||
i'll fix the tool | |||
and that's ok, because it's part of my job | |||
Darren_Duncan | that's a good quality | ||
nothingmuch | no, i don't mind | ||
it's just that now i'm having trouble running coverage | |||
Darren_Duncan | you're being efficient, and your fixing the tool helps others that use it | ||
nothingmuch | which is difficult since these are systems tests, and sometimes they test memory usage, and gcov ruins that | 08:41 | |
so i need to baby sit it | |||
and now there's crap flying everywhere | |||
and i keep getting distracted | |||
well, argueably i'm not in the short term | |||
that particular example was very good stuff | |||
Darren_Duncan | I wish you well | ||
nothingmuch | a shell script test thing was writing to a file | ||
and running a cmd on the file | |||
and sometimes NFS async was not 100% reliable | |||
so the tool had to be made to accept pipes | 08:42 | ||
the workaround was write to file, sleep 2, run tool | |||
Darren_Duncan | I've heard that NFS shouldn't be counted on for anything important | ||
nothingmuch | a test with 500 such calls... =) | ||
it can't =) | |||
Darren_Duncan | or network filesystems in general | ||
something about not proper locking support | |||
nothingmuch | in theory this can be fixed | ||
synchronization is even worse, though | |||
Darren_Duncan | so I've heard on the SQLite ml, where they say not to use the db over a networked filesystem | 08:43 | |
nothingmuch | yeah, that's often an issue | ||
we have the source files comming off NFS | |||
and in theory scratch dirs are on local raids | |||
but sometimes the scripts write to the user's home dir | |||
this is hard to pin point | 08:44 | ||
since it's been cargo culted a lot | |||
so what do you do for a living? | |||
Darren_Duncan | I write my own programs, currently | ||
between 2001 and 2003 ... | |||
I worked for a local business that made database-driven applications | 08:45 | ||
www.amavi.com/ | |||
They were a good group, and I'm still on friendly terms | |||
nothingmuch | so you're a contracted freelancer? | ||
Darren_Duncan | however, I had this strong urge to make my own stuff, so I mutually agreed to be laid off ... | 08:46 | |
when there was a drop in the amount of work to do ... | |||
nothingmuch | ah | ||
Darren_Duncan | since then, I'm working my way towards starting my own business ... | ||
nothingmuch | so basically you wanted to move on, and given a good time to do so, you just did? | ||
Darren_Duncan | making my own new programs for the mass market ... | ||
pretty much | 08:47 | ||
nothingmuch is saving up for academia | |||
Darren_Duncan | they were going to lay some people off anyway, and I made it easy for them, since I wanted time off to do my own thing anyway | ||
nothingmuch | with no real experience or formal education wage is not very high | ||
but should increase | |||
Darren_Duncan | I completed post secondary education prior to joining that employer | ||
and I learned a lot there that helps me now | |||
fyi, the drop of work was due to the then-current project being nearly completed, with just minor updates left, and they weren't challenging for me. | 08:48 | ||
nothingmuch | i want to learn, but not compsci | ||
math and ling, and if i have enough money cinema too | |||
studying music now | |||
nothingmuch will not see this kind of stuff at current workplace | 08:49 | ||
Darren_Duncan | just recently things seem to be picking up there again, so I may go back there soon as a contractor, part time spent there and part time on my own thing | ||
nothingmuch | well, i hope that works well | ||
contract jobs generally pay well when done part time | |||
Darren_Duncan | that way I'll get some money, which I'm not getting currently on my own thing | ||
since my current project is heavily componentized, I may be able to apply parts of it at my contract jobs, such as the old employer, though I'm not assuming that will work | 08:50 | ||
nothingmuch | that's generally a good plan | ||
Darren_Duncan | my own personal project, for the mass market, is a database-driven app, being prototyped in Perl | ||
it is a system for managing data in an accurate and long-term adaptable fashion | 08:51 | ||
one of the first target uses is in genealogy | |||
and general research | |||
and education or law | |||
nothingmuch | basically a maypole type thing, except more complete? | ||
Darren_Duncan | and in creative writing, for tracking continuity in a story | ||
nothingmuch | you take this thing, and use it to develop a custom app for a client? | ||
Darren_Duncan | I'm not that knowledgeable about maypole, but I think my total package is higher end | 08:52 | |
The idea is to sell copies to typical consumers, who can use it without any further help | |||
I plan for it to become ubiquitous like MS Office | |||
but less expensive, more reliable, and more portable | |||
nothingmuch | web based? | 08:53 | |
or really a gui? | |||
Darren_Duncan | ubiquitous meaning useful for a wide variety of things, anyone can use it | ||
both web and gui | |||
The user interface is a separate module | |||
the first implementation will be web | |||
a gui will come later | |||
nothingmuch | how do you plan to manage the admin overhead of DB backing and yet still keep it easy to use? | ||
embedded DB? | |||
Darren_Duncan | one use of this is to drive information web sites | 08:54 | |
like imdb.com or wikipedia.org | |||
the database back end is also a component | |||
people can use whatever database they want | |||
nothingmuch | so it's a CMS, on steroids? | ||
Darren_Duncan | if they don't want to choose, SQLite 3 will be used by default | ||
a SQLite solution is very consumer friendly ... | |||
all the data is in a single file, like a word processing document | 08:55 | ||
nothingmuch | it is | ||
Darren_Duncan | and they can have multiple files, stored anywhere | ||
power users can use Oracle or Postgres or something | |||
the system is multi-user to the core | |||
but typical users don't have to know that | |||
nothingmuch | Rosetta is used for DBI schema/lang management? | 08:56 | |
Darren_Duncan | it would just work ... as easily as a typical genealogy app on a pc | ||
nothingmuch has a pet project, used at work | |||
soon released (maybe) | |||
Darren_Duncan | my CPAN modules like Rosetta and SQL::Routine implement the back end for my app | ||
nothingmuch | CDBI <-> SQLFairy | ||
Darren_Duncan | I'm giving away the backend for free, charging for the front end | ||
nothingmuch | what does rosetta actually do, btw? | ||
Darren_Duncan | Rosetta and SQL::Routine together sort of resemble a number of DBI wrappers you see on CPAN, such as Class::DBI or Alzabo or whatever ... | 08:57 | |
but they have a much greater emphasis on ensuring portability | |||
and a much more thorough support for constructing SQL from data dictionaries | 08:58 | ||
eg, you don't feed my stuff snippits of SQL because it can't construct what you want | |||
it's better than the others in several ways, though I am mainly marketing the portability side | 08:59 | ||
it is probably easier to demonstrate by example | |||
nothingmuch 's DDL thing has declarative sugar... each My::CDBI::Class has a ::Schema, you use that instead | |||
Darren_Duncan | however, since the stuff is so new, I haven't connected a few necessary bits for people to do everyday stuff like selects and inserts ... should work in a week or two though | ||
nothingmuch | then you have the FIELDS method, the RELATIONSHIPS method, etc | 09:00 | |
all very dwimmy | |||
those construct SQLFairy schema objects | |||
autrijus | Darren_Duncan++ # wonderful p6c post | ||
nothingmuch | and then pump DDL to the DBD | ||
Darren_Duncan | part of your comment may have been cut off? | ||
my stuff is less abstracted than Class::DBI | 09:01 | ||
you see what is actually going on, in a manner of speaking | |||
One thing I hope will happen is that lots of the other DBI wrappers will decide to target my module instead of DBI, so I handle the portability issues, and they handle the "nice interface" and "super-abstraction" issues | |||
DBI is great if you want to write the SQL yourself | 09:02 | ||
its the fastest performing option | |||
but you have to work harder to get portability, or to use a data dictionary | |||
I liken it to comparing the likes of the C language and the likes of Java or Perl | 09:03 | ||
DBI is closer to the bare metal | |||
nothingmuch | uhuh | ||
cdbi has been keeping me generally happy | |||
when i run into problems i solve them | |||
but i can not worry about many things, in the short term, which is a property i like | 09:04 | ||
then again, my project is not tightly coupled to CDBI | |||
if it starts annoying me too much i might switch to something else | |||
but so far i've been rather satisfied | |||
Darren_Duncan | tell me, do you have to "work around" any limitations in CDBI, or is its standard interface all you need by itself? | ||
do you have to write any snippits of raw SQL? | |||
or access the underlying DBI object for any reason? | 09:05 | ||
nothingmuch | so far i haven't needed to | ||
i'll need to someday soon | |||
my app's gui is not that smart | |||
it's brains are | |||
the brains only need persistence | |||
the gui will need joins, etc | 09:06 | ||
Darren_Duncan | one thing about my solution is that it is intended to support very large and complicated apps, giving app writers the means to express what they really want, and yet make it all magically portable | ||
nothingmuch | we'll see how cdbi lives up to that when we get there | ||
that's attractive | |||
all i needed so far is just 'this object stays from run to run' | 09:07 | ||
Darren_Duncan | for example, you can use my module to define server-side stored procedures, triggers, etc, and they can install in any database, despite the difference in support for those things, or their syntax for doing so | ||
so far your needs are more abstract than mine | |||
nothingmuch | what about exploiting niche features? | ||
Darren_Duncan | such as? | ||
my solution is intended to support all useful features, including niche ones | 09:08 | ||
nothingmuch | so how does that become portable/ | ||
? | |||
do you say 'oh, to do that i need xyz, can't port to that'? | |||
or do you work around silently? | |||
Darren_Duncan | part of what my module does is find replacements for one feature in another database | 09:09 | |
if database A can do a certain thing one way, and database B doesn't have that feature by name, but can emulate it another way, then each database's strengths are exploited | |||
some things I can't emulate reliably, such as transactions, they support it or they don't | 09:10 | ||
but any good database has transactions so I don't have to | |||
nothingmuch | uhuh | ||
*cough* mysql *cough* | |||
Darren_Duncan | InnoDB does it | ||
nothingmuch | yeah, but for years... | 09:11 | |
Darren_Duncan | that's the engine I use by default when the user wants mysql | ||
nothingmuch | i just don't trust the mysql attitude anymore | ||
it's 'uh, that's not fast enough, try again in a few years' | |||
it is -><- with 'make it work, make it work right, make it work fast' | 09:12 | ||
Darren_Duncan | one reason for what I'm doing is to make it easier for people to switch databases | ||
nothingmuch | contrary to that, sqlite gave up server admin overheads, and gave a much more usable database, which is just as fast | ||
Darren_Duncan | that way, the vendors have more incentive to compete, because vendor lock in has in large part been eliminated | ||
nothingmuch | that's a good cause =) | ||
Darren_Duncan | SQLite is my current favorite database | ||
nothingmuch | my app has something silly | 09:13 | |
Darren_Duncan | I know how much people moan about Oracle's high prices, but stay with them due to huge amounts of stored procedures etc written to it | ||
nothingmuch | the DBI config part has a search list | ||
Darren_Duncan | or other vendors like MS etc | ||
nothingmuch | you can run the test suite against any DSN you find | ||
i have postgresql running on my box, some other box has sqlite | |||
mysql doesn't work because it can't unique() a bunch of fields with more than 500 chars altogether | |||
and i haven't yet defined the field sizes in my DDL ;-) | |||
Darren_Duncan | now, separate parts ... | 09:14 | |
nothingmuch | can rosetta parse all those stored procedures, and reliably convert them to say, db2? | ||
or is it only for producing right now? | |||
Darren_Duncan | SQL::Routine is just a container, internally like an abstract syntax tree, where all the SQL (ddl and dml and etc) detail goes | ||
external code can translate string SQL or other formats to or from that | 09:15 | ||
nothingmuch | use sqlfairy | ||
branch it | |||
and make it create sql routine stuff too | |||
then commit the changes | |||
they usually accept | |||
you will get at least bidi ddl from many popular DB dialects for free | |||
and also funky graphing options | 09:16 | ||
my problem with sqlfairy is that it's reusability is 0 | |||
brb | |||
Darren_Duncan | anyone can create separate modules that translate to or from SQL::Routine models | ||
before I write interfaces to other modules (except DBI itself), I'm trying to make my stuff so good that other people want to do the leg work of interfacing | |||
better for them to want to come to me, than for me to want to go to them | 09:17 | ||
but I do what I can to make it easier for them | |||
Look at Pugs for similarity of sorts | 09:19 | ||
Autrijus came up with this out of the blue, and people flock to him because it's so great; he didn't really go around begging people to come like a "yet another" | |||
I'm hoping that what I'm doing stands out enough that people are compelled to come to it like the next greatest thing | 09:20 | ||
I'm trying to be better than a "yet another" | 09:21 | ||
flw | bye | ||
Darren_Duncan | In regards to your question: "can rosetta parse all those stored procedures, and reliably convert them to say, db2?" ... | 09:22 | |
the answer is that my core modules form the foundation to make this easy | 09:23 | ||
I may also build the other parts so that this complete task can be done | |||
unless someone else beats me to it | |||
I'm focusing on the generator parts first | |||
so 'yes' | 09:24 | ||
nothingmuch | ppbeh | 09:27 | |
Darren_Duncan | I hear you | 09:28 | |
fyi, it's 1:30am here now | |||
nothingmuch | i prefer that side of the am | ||
yesterday i went to sleep at 23:00 | |||
i feel great because i slept a lot | |||
Darren_Duncan | sleep is great | 09:29 | |
of course, with my own hours, I get up at 10-11am | |||
nothingmuch | i need to get up early | ||
and go to sleep late | |||
and sleep a lot | |||
to feel good | |||
=P | |||
i balance it out by sleeping 6 hours | |||
going to sleep at 1:30-2:00 | |||
and waking up at 8 | |||
7:30 | 09:30 | ||
Darren_Duncan | I tend to need about 9-9.5 hours of sleep a night to feel good | ||
nothingmuch | sometimes | ||
too much sleep is not good for me | |||
even worse than too little | |||
anything more than 8 hours is yucky | |||
7 and a half seems to be the sweet spot | |||
Darren_Duncan | at a very minimum I need 8 hours per night, hard to focus with less | ||
each person is different | |||
nothingmuch | but then i get less stuff done | ||
uhuh | |||
Darren_Duncan | some people get on really well with just 2-3 hours a night | ||
i hear there's one fellow in europe that hasn't slept at all for 20 years and is doing just fine | 09:31 | ||
arcady | I know someone who sleeps once every 2 or 3 days | ||
but that's kind of unusual | |||
though useful for a college student | |||
Darren_Duncan | now, you mentioned you wanted to be a musician, what else can you tell me on your ambitions there? | 09:32 | |
nothingmuch | i don't want to be a musician | ||
i'm enjoying playing music | |||
Darren_Duncan | what did you say then? | ||
oh is that it? | |||
nothingmuch | uhuh | ||
Darren_Duncan | I remembered mentioning music several times | ||
nothingmuch | learning | ||
but no where near advanced | |||
well, i spend a lot of time and money on it | |||
Darren_Duncan | so what do you want to do? is programming it, or something else? | ||
nothingmuch | alongside photography | 09:33 | |
i think i want to be a mathematician or a linguist or both, in some odd way | |||
Darren_Duncan | you want to be a photographer? | ||
nothingmuch | and leverage compsci to that advantage | ||
Darren_Duncan | sounds interesting | ||
I like those things too | |||
did great in math at school | |||
nothingmuch | art stuff is my hobby | ||
sort of | |||
i like writing | |||
photography | |||
did horribly in math at school =) | 09:34 | ||
plastic art | |||
i barely finished in fact | |||
music | |||
but i've never had the patience to learn to excel in any | |||
i blame it on personal difficulties though | |||
Darren_Duncan | I like reading graphic novels - its my favorite artistic medium | ||
nothingmuch | barely finished school as a whole | ||
Darren_Duncan | I'm not competent to make any though, so never tried | ||
nothingmuch enjoyed that lately | |||
sin city | |||
the maxx | |||
Darren_Duncan | I don't read those | ||
nothingmuch | they were nice | ||
what do you read? | |||
Darren_Duncan | a variety of things ... | 09:35 | |
however, they fall mainly into 2 categories ... | |||
X-Men and stuff like that | |||
and various manga titles | |||
nothingmuch | xmen is a daunting task | ||
Darren_Duncan | I started 12 years ago | ||
nothingmuch | oh my | ||
nearly 1/4th of the way through? | |||
;-) | |||
Darren_Duncan | I've read most of the series | 09:36 | |
nothingmuch | Q is too close to tab and W | 09:37 | |
Darren_Duncan | as I said when you were out ... I've read most of the series | ||
nothingmuch | oops, sorry | ||
Darren_Duncan | I waited | ||
fortunately, there is that web archive of the IRC, so you don't miss anything | |||
nothingmuch | for ...? | ||
new stuff? | |||
Darren_Duncan | I mean #perl6 is archived | 09:38 | |
so you can see anything you missed while not in here | |||
nothingmuch | ah | ||
yes | |||
decay | nothingmuch: get a touchstream keyboard ;) | ||
nothingmuch | touchstrem? | ||
nothingmuch wants a matias tactile pro | |||
decay | so you can move your q a bit away from the tab :> | ||
nothingmuch | clickety clickety click | 09:39 | |
decay | nothingmuch: www.fingerworks.com/lp_product.html :) | ||
nothingmuch | google found that for me | ||
decay | rocks ;) | ||
nothingmuch | i just don't know what it all means yet | ||
Darren_Duncan | decay, you like those yellow balls, don't you? | 09:40 | |
decay | Darren_Duncan: balls? | ||
Darren_Duncan | they're meant to look like faces | ||
at least thats how they show up on my client | |||
"emoticons" | |||
decay | Darren_Duncan: you're on comic chat? | ||
Darren_Duncan | I'm using Colloquy | 09:41 | |
if you mean, do I discuss comics with people ... yes, mostly by email | |||
I'm on a few discussion lists | |||
decay | Darren_Duncan: ohic, was just referencing a former microsoft product called comic chat that probably did the same (turn smileys into 'faces') | 09:42 | |
Darren_Duncan | still, its currently less interesting than the Perl stuff | ||
I think lots of clients do that | |||
in any event, I never use emoticons myself | |||
rgs | I hate when people say "keep up the good work" | 09:43 | |
Darren_Duncan | what's really annoying is that internet newbies think that image-based emoticons are the best thing since sliced bread, and use them absolutely everywhere | ||
did my p6c and p6l comment in that regard annoy you | 09:44 | ||
? | |||
decay | hu? | ||
Darren_Duncan | or actually I said, "thanks for the good work" | ||
rgs | nope | ||
Darren_Duncan | anyway | 09:45 | |
rgs | I'm mostly speaking about annoying clueless questioners or bug reporters that repeat that over and over, without being of any help. | ||
decay | nothingmuch: what's really nice about it is, that you never ever need to take your hands of the keyboard again | ||
Darren_Duncan | ok | ||
don't you love it when bug reporters give you something you can't reproduce? | 09:46 | ||
nothingmuch | sorry, /me became busy again | 09:47 | |
Darren_Duncan | I think I'll get off now, its almost 2am here | ||
good whatever-time-of-day-or-night to you | 09:48 | ||
nothingmuch | decay: i always had trouble coping with do it all gesture systems | ||
good localtime =) | |||
ciao Darren_Duncan | |||
i'm skeptic about my ability to adapt | |||
and at $400 i'm not that eager to just try it ;-) | 09:49 | ||
Darren_Duncan | what does $400 have to do with adapting? | ||
the keyboard, right? | |||
lumi | I'm cmd-clicking all over | ||
nothingmuch | that keyboard is roughly $400 | ||
uhuh | |||
Darren_Duncan | right | ||
lumi | And morning | ||
nothingmuch | cmd-clicking is fun, lumi =) | ||
lumi | Or such | ||
nothingmuch | that's a relative statement, lumi | ||
lumi | I meant ctrl-clicking | ||
nothingmuch | it isn't even morning in your time zone | 09:50 | |
ah | |||
Darren_Duncan | that reminds me of a saying of one of my computer profs ... | ||
nothingmuch | in that case get a usb 3 button mouse | ||
Darren_Duncan | "assembly is fun!" | ||
nothingmuch | it is fun | ||
but not for real work | |||
lumi | Goot 9:50gmt | ||
s/oot/ood/ #meh! | |||
IRCing through two tunnels != fun | |||
Darren_Duncan | the same guy also liked to spell "wrong" as "rong" in his teaching examples | 09:51 | |
nothingmuch | heh | ||
Darren_Duncan | double-negative | ||
as in "this is the rong way to do it" | |||
lumi | Er, my point is adapting prolly not that hard | 09:52 | |
I mean, a decade of right-click, and like 2 years of middle-click-paste | 09:53 | ||
Where are assignments in the Haskell? | 09:54 | ||
nothingmuch | that's not like adapting to dvorak | ||
or gestures | |||
it's one simple action | |||
not a group of actions | |||
lumi | I used dvorak, I got it sorta OK in under 5 hours | 09:55 | |
Definitely not as fast as my normal typing | |||
But I stopped swearing :P | |||
Also it makes your console more secure :P | |||
That kb is first a kb, you can use or not any particular gesture, I guess | |||
Also used a wacom tablet for some months.. It's not that hard to adapt | 09:56 | ||
Ehm, best be mobile | 09:58 | ||
nothingmuch | decay: hmm... maybe it actually is logical | ||
lumi | I have a hunch my ride isn't coming | ||
nothingmuch | given their return policy i think this can be done | 09:59 | |
decay | nothingmuch: it's not easy to adapt | 10:00 | |
nothingmuch: was just the only solution for your q is to near to tab i could think of | |||
nothingmuch | i thought it was more ackward than what their FAQ says | ||
decay | you can actually redefine the place of keys on the keyboard | ||
nothingmuch | do you own one? | ||
nothingmuch is tempted by the ability to lean back and not touch the mouse | 10:01 | ||
decay | nothingmuch: i want one, two people i know have one and i tested it for maybe two evenings | ||
nothingmuch | and it seems capable enough to that, without having to give up the mouse's features | ||
decay | is it really 400$? up here it's like 250 euros | ||
nothingmuch | well, $339 | 10:02 | |
add shipping | |||
import overhead to israel | |||
decay | hrm, maybe you can get one at ebay too | ||
nothingmuch always rounds it up that way | |||
but then you wouldn't be able to return it | |||
i would rather know i can easily get rid of it with say a 25% loss | |||
that is, it cost me $100 to try it | |||
but, eh | 10:03 | ||
we'll see | |||
lunchtime | |||
decay | i just bought a van, so keyboards are secondary :) | ||
decay tries to compile pugs now | |||
nothingmuch | hah | ||
i just bought a double bass | |||
next is a bike | |||
then a trumpet | |||
then we'll see | |||
;-) | |||
ciao! | |||
dada | hola | 10:19 | |
nothingmuch | hola | 10:47 | |
Juerd_ | [anonymous monk]-- # the feature | ||
I hate discussing something without having any idea who the other party might be | 10:48 | ||
Especially because anyone can join in and claim they're the same person | |||
nothingmuch | Juerd_: i think perlmonks owes anonymous monk it's popularity tholugh | ||
Juerd_ | nothingmuch: I don't. | ||
Part, certainly | |||
But have you ever seen the HUGE number of registered users? | 10:49 | ||
nothingmuch | signing up is a process many people don't like doing | ||
i have | |||
Juerd_ | Anonymonks don't add a lot of valuable traffic anymore. | ||
nothingmuch | it's about as big as the number of posts anonymous monks have | ||
well, today that's true | |||
but i think when PM started this might not have been the case | |||
Juerd_ | I'm not moaning about the past | ||
The feature existed for a reason | 10:50 | ||
And that may or may not be a good one. I don't really care. | |||
I do question the current existance of the same reason | |||
I don't mind wasting votes on anonymous posts | 10:51 | ||
But it is very clear to me that when I vote anonymous posts, they're most often -- | |||
While most of my votes are ++ | |||
Shillo | Hullo! | 12:13 | |
autrijus | greetings Shillo | 12:15 | |
autrijus finally about to go home | 12:16 | ||
Shillo | autrijus: *mutter* Subversion. !@#(!@#!@. | 12:18 | |
It interacts with my proxy. Or rather, doesn't interact. :/ | |||
Shillo idly wonders if that swear is valid Perl6... ;) | 12:19 | ||
autrijus | ha. | 12:22 | |
I'm sorry, then | |||
your proxy isn't DAV-friendly it seems | 12:23 | ||
Shillo | Actually it is. | ||
autrijus | interesting. | ||
Shillo | arch works properly with it. Problem seems to be ! in the filename | ||
autrijus | I'll bbiab. home & | ||
Shillo | (I /think/). It bounces me with 400 Invalied Request | 12:24 | |
Er, Invalid. :/ | |||
Juerd_ | 13:22 < Shillo> autrijus: *mutter* Subversion. !@#(!@#!@. | 12:55 | |
13:23 * Shillo idly wonders if that swear is valid Perl6... ;) | |||
Yes, if followed by an array reference | |||
On the next line | |||
autrijus | indeed. | 13:06 | |
theorbtw1 | Allo, Joshua. | 13:14 | |
13:14
theorbtw1 is now known as theorbtwo
|
|||
autrijus | hi theorbtwo :) | 13:14 | |
theorbtwo | Ah, hi, autrijus. | 13:15 | |
Anybody have easy access to an OSX box at present want to do me a quick favor? | 13:16 | ||
autrijus | I'll get access to one soon, but not handy | ||
autrijus finally starts to attack multidim data structure | 13:17 | ||
theorbtwo has heard a lot of that today. | |||
autrijus | a lot of ... what? | ||
theorbtwo | A lot of people who use OSX, but only at home, and who are presently at work. | 13:18 | |
Coke_ | I have a laptop sitting next to me. | ||
autrijus | aye. | ||
Coke_ | I only have a 9600 baud network connection on it at the moment. | ||
lumi | Hi | 13:19 | |
theorbtwo | Shouldn't need to do very much network IO, if you have SubEthaEdit installed. | 13:20 | |
lumi | How are you doing with that subetha? | ||
theorbtwo | Not well; their test server seems to be down still, or possibly again. | ||
Coke_ | I do have subethaedit, actually. | ||
I'll fire up the network cxn. | 13:21 | ||
autrijus | woot, my perlchina talk is online | ||
www.iperl.org/2.rm | |||
theorbtwo | And sadly, I didn't save my dumps when I had them, because I figured there was a test server, so I could get them any time I wanted. | 13:22 | |
Coke_ was listening to howard stern this morning, and found out that Warren Tang is a photographer for Penthouse, and can't help but wonder if he's related. =-) | |||
autrijus | not at all :) | 13:23 | |
Coke_ | ok, network up, SEE up. | ||
Coke_ figured Tang was a common name. Ah well. =-) | |||
theorbtwo | Great! Try connecting to desert-island.dynodns.net | ||
autrijus | there are far fewer family names in the Han people | ||
than western names | |||
I think <60 or so | |||
common ones | |||
Coke_ | connect how? | ||
theorbtwo wonders if that's because they've been using family names for longer. | |||
Coke_ | (I have SEE installed - I never USE it though. =-) | 13:24 | |
theorbtwo | Hit the "internet" button on the toolbar, type it in the text-box. | ||
Limbic_Region | afternoon James | ||
theorbtwo | D'oh... it's in Chinese, isn't it? | ||
autrijus | sure it is :) | ||
dada | buuuuuh | 13:25 | |
dada -- | |||
I finally managed to compile pugs, but my unary * does not absolutely work | 13:26 | ||
in fact, it is completely useless | |||
autrijus | so it sort of works? | ||
dada | it simply does nothing | ||
well, my first 15 useless lines of Haskell :-) | |||
autrijus | I'd still like to see them :) | 13:27 | |
Coke_ | Well, if you see a Coleda, it's related to me. there aren't that many of us in teh US. (maybe a dozen) | ||
I get "see://....." and "could not connect" | |||
Juerd_ | dada: You've written Inf times as much Haskell as I have | ||
autrijus | mmm NaN times | 13:28 | |
Juerd_ | inf isan | ||
dada | perlbot: nopaste? | ||
perlbot | Paste your code here and #perl will be able to view it: sial.org/pbot/perl | ||
Juerd_ | Or, rather, Inf.isa(Num) :) | ||
Coke_ | perlbot: seen obra? | ||
pasteling | "dada" at 193.203.230.22 pasted "unary * that doesn't work" (15 lines, 661B) at sial.org/pbot/8071 | 13:29 | |
Coke_ | theorbtwo - I tried to reconnect, same message. Anything else? | ||
theorbtwo | Coke, you're connected via SBC Northeast? | ||
autrijus | well, NaN.isa(Num) | ||
(pugs supports for NaN and Inf) | 13:30 | ||
s/for/both/ | |||
theorbtwo | Ah, nifty! | ||
There's something wrong with my networking on the emulated ppc box, I think. | 13:32 | ||
Juerd_ | 14:33 < autrijus> well, NaN.isa(Num) | 13:33 | |
paradox! :) | |||
Coke_ | theorbtwo;that sounds about right. I'm using my mom's internet connection over a bluetooth enabled cell phone. Pretty sure that's what she has. =-) | ||
Juerd_ | Perhaps Num should override isa! | ||
autrijus | NaNiaN | ||
Juerd_ | hehehe | ||
Coke_ | er, "dialup internet" | ||
dada | NaN does Num :-) | ||
Juerd_ | dada: Right! :) | ||
Pfew, logic's back :) | 13:34 | ||
autrijus | heh :) | ||
Coke_ | disconnecting... | ||
autrijus | heads-up: as of r572 interactive "shell" no longer prints ASTs for evalled code; you need the '?' prefix (i.e. ?code) for that | 13:35 | |
Juerd_ | my class Foo::Bar { ... } # valid? | ||
dada | makes sense | ||
theorbtwo | Oh, good; I found that annoying. | ||
autrijus | :) | 13:36 | |
now, would you like "my $x" declared in a REPL step be continued to the next line? | |||
pugs> my $x = 3 | |||
pugs> $x | |||
3 | |||
currently the env is wiped for each REPL step. | |||
pugs> my $x = 3 | |||
pugs> $x | 13:37 | ||
undefined var: $x | |||
dada | I vote for wipe | ||
autrijus | you got it :) | ||
I think wipe is better, too | |||
dada | what a democracy :-) | ||
autrijus | just wonder if folks find that inconvenient | ||
well, it's 2:0 :) | |||
theorbtwo | I think continuing is more convient. | ||
A :wipe would possible be best-of-both-worlds? | |||
autrijus | well... true. | 13:38 | |
dada | autrijus: did you look at my code? | ||
autrijus | I don't feel strong about it | ||
yes, looking | 13:39 | ||
but have to go out buying some drinks | |||
will be back in 15 mins | |||
dada | ok, later | ||
autrijus | ...back | 13:54 | |
dada: the logic is quite clear... | 13:55 | ||
theorbtwo | Have enough to get you properly drunk now? | ||
autrijus | uh, it's tea | ||
I don't easily get drunk by drinking green tea | |||
so no | |||
theorbtwo | Hmm, tea sounds like a good idea. | 13:56 | |
autrijus | dada: this shoud make | ||
$a = *$b; | |||
expand $b and assign $b[0] to $a | |||
if $b contains a list | |||
dada | yes | ||
autrijus | yet it does not? :) | ||
dada | I thought it should, but it doesn't | ||
autrijus | ok, I'll trace. wait me a bit | ||
Juerd_ | 14:59 < autrijus> $a = *$b; | 13:58 | |
But? | |||
Is that correct?! | |||
I thought all * did was provide list context | |||
autrijus | $a := *$b; # this maybe? | ||
Juerd_ | And please tell me scalars don't deref in list context | ||
autrijus | I thought * is the derefer | ||
Juerd_ | No, that's still @ | ||
autrijus | please tell me if I'm mad | ||
$a = @$b; # like this? | 13:59 | ||
Juerd_ | That's the same as $a = $b though | ||
If you want to splat and deref, * and @ | |||
$a = *@$b | |||
autrijus | $a = *@$b; | ||
eww! | |||
Juerd_ | (I hope. Otherwise, things really are insane) | ||
autrijus: Yes, but how often does this even happen? | |||
autrijus | I swear I've seen "$a = *$b;" somewhere... | ||
since $b is only part of the name | |||
should recheck Syn/Apo | 14:00 | ||
Juerd_ | $b isn't flattenable | ||
autrijus | so only lists can be flattened? | ||
*%h? | |||
Juerd_ | %h in list context flattens to a list of kv | ||
And * provides list context | |||
dada | and also $a = *@b; | ||
Juerd_ | That is - unless I am mad... | ||
Fortunately @a = [ ... ] turns out to assign to @a[0] after all | 14:01 | ||
That gives me some hope back :) | |||
dada | Juerd_: then please reply www.nntp.perl.org/group/perl.perl6....uage/19557 and say that I'm wrong :-) | 14:02 | |
Juerd_ | dada: Not until I'm sure | 14:03 | |
And that requires some reading that I don't have the time for now | |||
autrijus | hi fayland! | ||
fayland | hi | ||
dada | Juerd_: ok, but let's discuss this. maybe Larry already did some reading :-) | 14:04 | |
autrijus | indeed :) | 14:05 | |
autrijus chasing that thread | |||
Juerd_ | I really really really hope (and it is my current understanding) that * only provides list context, and is in that way a non-listop alias for "list" | ||
*@foo, @bar | |||
equals | |||
list(@foo), @bar | |||
IIRC | 14:06 | ||
autrijus | wait wait | ||
split ne list | |||
splat ne list | |||
Juerd_ | splat | ||
dada | mmm not | ||
autrijus | for argument binding | ||
Juerd_ | This isn't argument binding | ||
:='s LHS is special | |||
dada | oh, sure, for argument binding it's different | ||
autrijus | I thought the idea is that you can do it at caller site too | ||
sub foo (@a) { ... } | |||
Juerd_ | We're talking about the RHS now, which is just an expression, right? | ||
autrijus | err | ||
sub foo ($a) { ... } | |||
foo(*@a); | |||
Juerd_ | Yes | 14:07 | |
autrijus | foo(list @a); # different | ||
Juerd_ | Oh, right | ||
I hadn't thought of that detail | |||
dada | yeah | ||
autrijus | so, fundamentally different | ||
Juerd_ | Still, all it does is provide list context, right? | ||
dada | and the first example in S03 is really scary | ||
Juerd_ | Yeah, list in scalar context still is an arrayref | ||
autrijus | but list provides list context | ||
Juerd_ | Yes, but after that, it constructs a new arrayref in scalar context | ||
autrijus | oh. I see wym | ||
Juerd_ | Which splat does not | ||
dada | my @args = (\@foo, @bar); push *@args; | ||
autrijus | so * means "force list context thru" | ||
not only "provide list context" | 14:08 | ||
Juerd_ | Yes | ||
autrijus | this is muddy :-/ | ||
dada: have you coded lwall's answer into tests yet? | |||
dada | no, not yet | ||
I have only 1 test so far :-) | |||
autrijus | ok. I think a test file is the best way to do this | 14:09 | |
dada | sure | ||
Juerd_ | It's important to note that the RHS * has nothing to do with the LHS * | ||
autrijus | Juerd_: you mean for assignment. | ||
dada | Juerd_: why not? | ||
Juerd_ | The LHS * is for slurpiness, the RHS * has nothing to do with that | ||
autrijus | not for binding | ||
Juerd_ | They do both provide list context, though | ||
autrijus: Assignment has no LHS * | 14:10 | ||
autrijus | true and true. | ||
for binding, the RHS * also mandates slurpiness, no? | |||
Juerd_ | No, not at all | ||
The only explicit way to indicate something is for the slurpy list is <== or ==> | |||
autrijus | ETOOMANYSYMBOLS | 14:11 | |
but, ok. | |||
Juerd_ | sub foo ($foo, *@bar) { ... } foo(*@args) | ||
That makes $foo be @args[0] | |||
And @bar be @args[1...] | |||
autrijus | sub foo ($foo, @bar) { ... } | ||
foo(*@args); | |||
Juerd_ | Same thing | ||
autrijus | same? | ||
that's what I mean by forcing into LHS | |||
Juerd_ | The * in the signature is ignored when splatting, afaik | ||
dada | no! | ||
Juerd_ | foo <== @args would leave $foo undef, and cram @args all into @bar | 14:12 | |
dada | that makes $foo = @args[0] and @bar = @args[1], not? | ||
Juerd_ | dada: Hm, good point indeed | ||
It must be | |||
dada | yes, I'm pretty sure | ||
Juerd_ | Unless perhaps, the ** is used | ||
I never understood the need for ** before | |||
dada | it should also die unless @args contains 2 emelents | 14:13 | |
autrijus | right. | ||
that is my reading. | |||
Juerd_ | So this is where you'd use **? | ||
autrijus | dada: can you please code them into tests? :) | ||
I'm grokking your code now and trying to make it work. | |||
dada | autrijus: yep | ||
Juerd_: ** should just be an eager *, but I have no clue where this should be used | 14:14 | ||
Juerd_ | Maybe ** does flatten arrayrefs | 14:15 | |
I don't see the point in spelling that ** instead of *@ though | |||
autrijus | I think ** is the way. | ||
Shillo | Juerd: <belatedly> Thanks for clarification. About the swear, that is. ;) | ||
autrijus | Shillo: you're welcome #*($^&@(#%&!@$ | ||
dada | Juerd_: no, it doesn't flatten arrayrefs | ||
Shillo | No comment. | 14:16 | |
dada | Juerd_: * is evaluated lazily, while ** is evaluated eagerly. this is the only difference AFAIK | ||
Juerd_ | Oh! | ||
So *1..Inf isn't a problem, but **1..Inf is? | |||
dada | yes | ||
Juerd_ | Thanks | ||
autrijus | *[1..Inf] to be precise. | ||
Juerd_ | I finarry understand it | ||
autrijus: No, that's an array reference, and thus not flattened | |||
(I hope) | 14:17 | ||
autrijus | I thought an arrayref is always flattened in list context. | ||
I thought. | |||
it seems the highlander types are prone to misunderstanding | |||
Juerd_ | I don't know for sure, but I certainly do hope scalars stay scalars in any context | ||
Because otherwise you cannot expect sub foo ($foo, @bar, $baz) { ... } @args = ('foo', [], 'baz'); foo *@args to work as expected | 14:18 | ||
Or wait | |||
This is 1st/2nd level | |||
I'll try to think of a relevant example | 14:19 | ||
You know what? I can't think of any :) | |||
autrijus | heh! | ||
Juerd_ | So *$foo can equal *@$foo for all I presently care | ||
currently | 14:20 | ||
autrijus | yay. | ||
I'm glad we agreed. | |||
Juerd_ | heh | ||
autrijus | (because that's how pugs' AST.hs always assumed) | ||
(implicit deref that is) | |||
Juerd_ | * binds tighter than ,, right? | ||
autrijus | ,, ? | ||
pugs> . *1,2 | |||
{{ Syn "," | |||
{App "&prefix:*" (1); | |||
2} | |||
}} | |||
Juerd_ | C<*> binds tighter than C<,>, right? | ||
autrijus | 'fraid not | ||
Juerd_ | Then foo($foo, *$bar, $baz) is a problem | 14:21 | |
With aforementioned ($foo, @bar, $baz) | |||
and if $baz is an arrayref | |||
Which you'd want to stay an arrayref when bound to $baz | 14:22 | ||
autrijus | it'd be help if there is a operational semantics. | ||
i.e. what really happens when the processor sees assignment and binding and * | |||
in small-step languages | |||
I'll see if I can generate one. | |||
Juerd_ | symbolic unary ! + - ~ ? * ** +^ ~^ ?^ \ | ||
Is MUCH tighter than , | |||
This is good | 14:23 | ||
autrijus | yeah, * is very tight. | 14:25 | |
sorry, parsed your POD-formatted question the wrong way | |||
Juerd_ | Now to figure out what our new ,, does | 14:26 | |
It should be ,undef, :) | |||
As in good old basic | |||
lumi | Mhhhh | ||
Juerd_ | select ,,, .3; | 14:27 | |
lumi | That's a very bad idea, it's completely illegible | ||
Juerd_ | lumi: ;;; is valid | ||
But ,,, is meaningless | |||
It should imply undef imo | |||
lumi | Those are just null statements, mean nothing, do less | ||
theorbtwo | p5 ignores extra commas in lists, I see no reason p6 should change that. | ||
Juerd_ | undef is the expression variant of null statements | ||
lumi | But blah $foo ,, $bar ,,,,,,,, $baz ,, 5 is illegible | ||
Shillo gets 6.0.0.10 release... Compilecompile... | 14:28 | ||
Juerd_ | Yes, I'm not suggesting you use it like that | ||
lumi | That's what happens in Basic | ||
And that's what the named parameters are for, surely | |||
theorbtwo | It doesn't generally come up except for a single trailing comma, which is quite nice that it's ignored. | ||
Juerd_ | But DBI.connect("some dsn",,, { RaiseError => 1 }) would be much better than DBI.connect("some dsn", undef, undef, { RaiseError => 1 }) | ||
Ignoring the fact that you wouldn't use positional arguments for RaiseError | 14:29 | ||
theorbtwo | It would? | ||
Juerd_ | (DBI.connect("some dsn", :raise_error)) | ||
theorbtwo: *trailing* should be ignored indeed | |||
dada | or DBI.connect("some dsn" :raise_error), even | ||
Juerd_ | But two commas in a row should properly separate THREE elements | ||
lumi | Yes | ||
theorbtwo | Some day, you're going to have to debug a problem where you wrote three commas, but only wanted two. | 14:30 | |
lumi | Sounds like a bug waiting to happen in generated code | ||
theorbtwo | You will spend hours and hours staring at the code, wondering what could possibly be wrong, and not seeing it. | ||
lumi | Or that, yup | ||
Juerd_ | theorbtwo: That's stupid to write regardless of how it's interpreted. | ||
And it should probably emit a warning no matter anyway | |||
But "foo",,"bar" as "foo", undef, "bar" makes an awful lot of sense to me | 14:31 | ||
And I must admit that select ,,, .3 does have some appeal | |||
Compared to select undef, undef, undef, .3 | |||
Even though select timeout => 3 is already solving the same problem in another way | |||
lumi | So *(,) is the new undef? | ||
Juerd_ | Don't forget oneliners | ||
lumi: No, that's a trailing comma :) | 14:32 | ||
And thus ignored | |||
lumi | What is it trailing? | ||
Juerd_ | It's not before any term | ||
,,,,,,,,,,,,,,,,,,,,,,, and the end of a list should still be ignored | |||
,,,,,,,,,,,,$foo though, should be many elements | |||
theorbtwo | That's why I suggested always ignoring. | 14:33 | |
lumi | So you eat undefs off the end of a list | ||
theorbtwo | Removes the "trailing" bit from the rule. | ||
Juerd_ | lumi: Not explicit undefs | ||
theorbtwo | Simple rules are a great goodness. | ||
Juerd_ | theorbtwo: Simple rules are not for Perl, imo | ||
Perl should dwym | |||
lumi | Is (,) anything? It looks like a term | ||
Juerd_ | lumi: It looks like an empty list | 14:34 | |
lumi | For some values of "looks" | ||
Juerd_ | , is the list constructor | ||
theorbtwo | Looks like an empty list to me too. | ||
autrijus | (,) looks like a e^Hsyntax level | ||
Juerd_ | Even though it no longer provides list context | ||
autrijus | error | ||
Juerd_ | If trailing commas are ignored, so should lone commas | ||
autrijus | (,1,2,3) | 14:35 | |
lumi | What about er, opposite-of-trailing commas? | ||
Juerd_ | That should be undef, 1, 2, 3 imo | ||
lumi | Yes, those | ||
autrijus | leading comma is p5 errors | ||
not seeing how useful it is | |||
Juerd_ | Yes, it's an error in perl 5 now | ||
It should be implying undef terms imo | |||
lumi thinks of the "empty pattern" | |||
Juerd_ | order trailing, leading | ||
theorbtwo | Leading comma is nice for a purticular style of writing long lists: Always begin with a comma, or always end with a comma. | ||
autrijus | as long as it's not a ruling I'll continue to implement it as an error | ||
lumi | It's now a syntax error, right? | ||
autrijus | lumi: yeah | ||
theorbtwo | Keeps "first" and "last" elements from being special. | 14:36 | |
autrijus | lumi: in p5, p6 and haskell | ||
Juerd_ | theorbtwo: I ***HATE*** that style in Perl. | ||
lumi | I mean like /(foo|bar|)/ | ||
Juerd_ | perl.4pro.net/pcs.html # die! | ||
theorbtwo | I would dislike the leading comma style as well, prefer the ending style. But it's a valid choice for someone to make. | ||
Juerd_ | lumi: There it's very different because in rules, strings are not quoted. | 14:37 | |
And you thus have a null string | |||
theorbtwo | lumi, /(foo|bar|)/ is quite different, because... yeah, what juerd said. | ||
That's the correct way of writing an empty string in a re alternation. | |||
Juerd_ | And this null string is very misleading | ||
Which is why it's now forbidden | |||
(foo|bar|<null>) is what you must use if you really mean it. | 14:38 | ||
lumi | Isn't it a similar, if less deadly, error to have a leading comma? | ||
theorbtwo | I thought that was just for REs consisting /only/ of the null assertation. | 14:39 | |
lumi | Everywhere, I think | ||
theorbtwo shrugs... I still think that if you want an undef, you should write one... | 14:40 | ||
But if leading and trailing commas are ignored, that's good enough for me. | |||
Juerd_ | If undef were aliased u, I'd agree | 14:41 | |
But it's a lot of typing for nothing | |||
:) | |||
theorbtwo | I certianly hope adverbs will make it come up a lot less. | ||
lumi | sub u () { undef } # ? | ||
Juerd_ | lumi: &u ::= &CORE::undef | ||
But yeah | |||
lumi | Ah | ||
Juerd_ | Still, that's USELESS for oneliners | ||
lumi | True | 14:42 | |
So leading commas could be in the oneliner pragma | |||
Juerd_ | Please, let's accept for a change that oneliners are half of Perl's reason to exist. | ||
lumi | Or whathaveyou | ||
Juerd_ | Perl 6's design appears to ignore oneliners greatly | ||
They're not as important as big programs, I agree | |||
But there is a reason the great languages ruby and python and php are all almost never used for oneliners | |||
(Where "great" refers to popular) | 14:43 | ||
rgs | didn't larry said that -e was implicitly turning strict off in perl 6 ? | ||
autrijus | I thought ruby is okay for 1liners | ||
rgs: yes he did. | |||
Shillo | Hm. zsh should be able to autoindent perl from its builtin editor. :) | 14:44 | |
(well, and python and ruby) | |||
Shillo can imagine that. gcc -o zsh ... ... ... -lemacs ... | 14:45 | ||
Juerd_ | rgs: Yes, but does that help with named arguments? | ||
I think serious thought should be given to adding short versions of named arguments | |||
So that the imaginare :raise_error can also be written as :re | 14:46 | ||
Shillo | Juerd_: The one I know of is :argname<stringvalue> | ||
And :argname to mean argname => 1 | |||
Juerd_ | I suggested "+$raise_error is short<re>" before, but it was never really answered | ||
Shillo: That doesn't make argname any shorter | |||
+$verbose is short<v> is the canonical example | |||
Shillo | Oh. Now I get it. | ||
Juerd_ | Like --verbose and -v | 14:47 | |
select undef, undef, undef, 0.3 is a lot of typing just to get usleep(.3) | |||
Of course, sleep should be high res by default, but that's besides my point | |||
select ,,,.3 is one way of fixing it | |||
select timeout => .3 is another, but it's still a lot of typing for a oneliner | |||
select :to<.3>'d fix that | 14:48 | ||
Although passing a string feels weird | |||
So let's make that | |||
select :to(.3) | |||
:) | |||
s/to/t/ # even better | |||
(because 'to' is a word) | |||
Shillo | macro prefix:, (Str $rhs) { return "(undef, $rhs)"; } | ||
theorbtwo | Can somebody find a case where it's /not/ beside the point? | ||
Shillo | ? | ||
Juerd_ | Shillo: Possibly - still, any "define it yourself" answer is completely unacceptable in the context of oneliners | 14:49 | |
Shillo | Then do select *,,,.3 | ||
theorbtwo | That is, where it's not trivially fixed by better API design? | ||
Juerd_ | theorbtwo: Hardly, because I'm limiting myself to well known perl 5 for examples, so you all know what I mean | ||
Hence select and DBI | 14:50 | ||
Shillo | Juerd_: What does perl5 do there? | ||
Juerd_ | "is short" would fix all this in the most wonderful way | ||
Shillo: syntax error | |||
Shillo | I mean, is there any shorter form for usleep? | ||
Juerd_ | usleep isn't core | ||
Shillo | (based on selecT) | ||
Hmm. perl -e should include ~/.eperl? | |||
Juerd_ | NO! | 14:51 | |
perl's used in many shell scripts | |||
It should not EVER include a user defined script implicitly | |||
Shillo | Oif. Right. | 14:52 | |
autrijus | indeed. | ||
Juerd_ | Besides that, I want short answers on IRC ;) | ||
Which is another reason not to cram these things into -e or another switch | |||
perlgeek-to-perlgeek conversation should also be optimized | |||
It's something that happens a lot in certain channels | |||
autrijus | heh. | 14:53 | |
Juerd_ | If the real thing is too long to type, you very quickly fall down to pseudo code | ||
While if the real thing has a short way to be expressed, that's how you communicate it | |||
~~somefunc is already used to mean "somefunc in scalar context" | |||
And in Perl 6 context, I've seen +@foo to mean "the number of elements in @foo" many times already. | 14:54 | ||
Perl's not just a programming language | |||
It has a very important cultural aspect | |||
And think of golf too | 14:55 | ||
>><< provides new fun for golf | |||
lumi | And the obfuscation people, of course | ||
Juerd_ | But it shouldn't be completely screwed up by longer keywords | ||
I personally don't care about obfuscation | |||
And don't think ANY language design will stop the obfuscators | |||
lumi | Hm | 14:56 | |
Juerd_ | Or encourage them | ||
lumi | Can there be ", ," and not ",," ? | ||
autrijus | PROCEDURE DIVISION | ||
Juerd_ | That'd be bad | ||
autrijus: ouch :) | |||
000001 use strict; | |||
Please, god, no. | |||
lumi | Heh | ||
Shillo | I'm not sure about the encourage part. (*!(@#*()!@ in J is probably not only valid, but potentially useful. :) | ||
autrijus | SI`SK``IS`ISK``SI`KKI | ||
lumi | Unlambda? | ||
autrijus | (lazy k) | ||
Juerd_ | That's very sik, eh sick indeed. | 14:57 | |
autrijus | lazy k > unlambda any time | ||
Shillo | autrijus: I dare you to use c in unlambda. :) | ||
autrijus | Shillo: Lazy K is always C | ||
implicitly! | |||
Shillo | C is callcc, IIRC | ||
autrijus | oh. sorry. thought d | ||
(delay) | |||
Shillo | When COBOL gets mentioned, I immediately think about loop macro in Common LISP. (loop for i in some-data when (oddp x) collect x) | 14:59 | |
Juerd_ | (((((((((( lisp-grouphug )))))))))) | 15:00 | |
Shillo | Friend of mine couldn't believe one could do list comprehentions with this until I enlightened him. -- Heh! | ||
Steve_p (((( hugs )))) Juerd_ | |||
Juerd_ | :)) | ||
eh | |||
:) | |||
Steve_p | You've gone paren happy :) | 15:01 | |
Juerd_ | Yeah, I usually avoid them | ||
So I had some spares | |||
Shillo | loop is paren-unhappy. Which is -why- it looks like COBOL, rather than LISP. | 15:02 | |
Steve_p | Actually loop is a Pascal-like structure. PL/SQL actually uses that type of construct a lot | ||
Shillo | Steve_p: Uhm... don't think so. Problem with loop is that it doesn't have any internal separators. | 15:04 | |
Steve_p: (loop with a = 1 with b = 3 for i in 1 to 5 for j in 2 to 6 for x across vector when (is-blue sky) collect i collect j collect k) | |||
lumi | Evil | 15:05 | |
Shillo | Although, it's a good answer to those who claim that lisp has too many parens. ;) | ||
Steve_p didn't think loop looked like that, but he is frequently wrong :) | 15:06 | ||
Shillo | There -is- such thing as too few parens in lisp. | ||
lumi | I was trying to figure out a way to pythonize (as it were) scheme | ||
Or hm | 15:07 | ||
Haskellize. That's it. | |||
Shillo | www.lispworks.com/documentation/lw4...ref-83.htm | ||
(scroll to the bottom. Fear and loathe) | |||
theorbtwo | Haskelate? | ||
lumi | And this is actually in clisp? | 15:08 | |
Goddess | |||
xerox | HM | ||
Shillo | lumi: Oh, I mostly have my fun in Lisp, actually. My only gripe with it are libraries and practicalities, not syntax. | ||
xerox | lumi, what do you mean with `pythonize scheme' ? | ||
lumi, ...and clisp is an implementation. | |||
Shillo | (mostly I just DON'T use more than 3-4 clauses in loop macro) | ||
lumi | I mean, try to get rid of the parens, replace them with indent | 15:09 | |
Not all the parens, but as many as you'd like | |||
xerox | lumi, why? | ||
lumi | For legibility and correctness | ||
And because I had a free weekend | 15:10 | ||
Shillo | Haskel indenting rules would make more sense, actually. | ||
xerox | Indentation makes the code very much readable. But the parens are good, to me. | ||
Shillo | I just don't see parens. :) | ||
xerox | Shillo, exactly. | ||
lumi | Until the end of a function has )))))) 3 ))) | 15:11 | |
It sort of melts the brain of me | |||
xerox | lumi, not if you use a good editor. | ||
lumi exaggerates immensely, but not abotu the brainmelting | |||
But emacs works better with lisp | |||
xerox | Do you know M-( ? | ||
Shillo | lumi: I don't see those, either, and I just punch the ) until emacs says I'm okay. | ||
xerox | Shillo, yeah, or M-(. | ||
lumi | No, my emacs-fu is weak | 15:12 | |
xerox | Or even sedit.el. | ||
Shillo | lumi: That's until it highlights the right open paren. | ||
lumi: Nicer than C, because I -know- I can chain-punch ), and not have to do )])]]) | |||
xerox | (That is an attempt to make a scheme structure editor in Emacs) | 15:13 | |
xerox agrees with Shillo completely. | |||
We went a little OT, btw :) | |||
Shillo | Hm. Yep. :/ | 15:14 | |
lumi | This is possible.. | ||
Thanks for the tips, though :) | |||
autrijus | OT is fine :) | 15:15 | |
autrijus learned a lot | |||
Shillo notes, I saw the computer reset on 2 (or was it 3) occasions by using emacs structure editing keybindings. :) | |||
autrijus | <- totally clueless about emacs | ||
Shillo | CTRL-ALT-backspace is particularily useful in emacs... if X isn't already using it... :) | ||
lumi | Heh | 15:16 | |
Unbind alt from meta | |||
And you're safe! | |||
Shillo | Nah. I wouldn't be able to use alt for everything else then. | ||
xerox | Okay, you should also know C-M-n (foward-sexp) C-m-p (backward-sexp) | ||
Shillo | Just got used to typing ESP CTRL-backspace | ||
I also use C-M-t | |||
theorbtwo | I sometimes wish I had a keyboard with windows keys on it, because then I'd have more meta-bits to play with. | 15:17 | |
xerox | Shillo, is there an `inverse C-M-t' ? | ||
Shillo | Hmm, whatcha mean? C-M-t is swap-sexp, but I think of it more as pull-sexp | 15:18 | |
Also, forward|backward-sexp are bound on alt-<- and alt--> (cursor keys) in xemacs. | |||
Shillo uses xemacs. The heretic. | |||
theorbtwo does as well. | 15:19 | ||
xerox | In Emacs M-< goes to the Top and M-> to the Bottom of the buffer. | ||
theorbtwo | Trying to code without M-g makes me want to kill myself. | ||
Or better, whatever miscreant doesn't have a copy of xemacs installed. | |||
Shillo | xerox: <- and -> I meant the cursor keys, not >< | ||
xerox | Shillo, ah. | 15:20 | |
theorbtwo | Speaking of wanting to kill myself, any mac users around now? | ||
xerox | In Emacs are C-M-'->' and C-M-'<-' | ||
theorbtwo | I figured out why Coke couldn't connect to me before... | ||
Shillo edges away from theorbtwo. | |||
xerox: I bound those in Metacity. | |||
xerox | Shillo, thanks, I learnt something new :) | ||
Shillo *really* insists on C-A-(<- | ->) being available for desktop switching. :) | 15:21 | ||
theorbtwo | Seriously, the wanting to kill myself was in jest. Either I need to install another pearpc instance on another machine, and figure out routing for /that/, or I need somebody else with a second mac. | 15:22 | |
xerox | bbl | ||
lumi | You use Metacity?!?? | ||
Shillo | lumi: Full GNOME, really. | 15:23 | |
lumi | Metacity, ick | ||
Switch back to Sawfish! | |||
Shillo | lumi: Bitrot. | ||
lumi | IT has a cooler name (and a lisp engine) | ||
Mh, excuses | |||
:P | |||
Shillo | Metacity has dropshadows. | ||
Shillo waits for e17. :) | 15:24 | ||
Shillo actually installed e17 preview. | |||
Drew the same reactions from cow-orkers as e9, e10, e11, e12, etc. Crowd behind my sholders and stuff. | |||
As far as WMs are concerned, I just don't care about more features than Metacity already has. Which leaves us with eyecandy as the sole criterium of WM choice. :) | 15:25 | ||
lumi | e17 currently is cute, blazingly fast, and completely useless | 15:26 | |
Very pretty though | |||
Shillo | Yep, my thoughs exactly. | ||
But I'd actually want to use it if it only had keybindings. | 15:27 | ||
And frankly, I'm not sure it doesn't have them. They ought to be addable to the default edje file. | |||
Shillo hmms. We got even further OT. Sowwy. | 15:28 | ||
autrijus | that is fine :) | 15:31 | |
15:32
khisanth_ is now known as Khisanth
|
|||
Shillo finally builds svn version of pugs. Checked it out with wget --mirror. | 15:39 | ||
autrijus | clever. | ||
autrijus is still wrangling with multidim and * | 15:40 | ||
Shillo | DIED. FAILED tests 11-37 in t/op/auto | ||
autrijus | I think our AST model needs readjustment :-/ | ||
right! that is the thing I'm fixing. | |||
otherwise it works? | 15:45 | ||
mandel.p6 brots and life.p6 lives? | 15:46 | ||
15:51
khisanth_ is now known as Khisanth
|
|||
autrijus | yay. found a task. | 15:52 | |
convert emacs outline to s5 slides | |||
autrijus starts to write it in pugs-runnable perl6 | |||
that will nicely exercise multidim | 15:53 | ||
Khisanth | s5? | 15:54 | |
autrijus | s5 is wonderful. | 15:56 | |
# meyerweb.com/eric/tools/s5/ | |||
mmm kwid2s5 is more fun! | 15:57 | ||
that will also force me to finish ext/Kwid/ ;) | |||
Khisanth was thinking synopsis | |||
autrijus is feeling approprisately ingyish | |||
ah. sorry, that'd be S, and S05 | 15:58 | ||
Khisanth | :) | ||
Shillo | Hmm, I think I found some interesting bug. examples/shuffle.t prints duplicates. | ||
And it shouldn't ever, since it swaps elements in an array. | |||
autrijus | shuffle.p6 is suddenly broken. | 15:59 | |
confirmed | |||
fixing | 16:02 | ||
while (1) { die 3 } is broken | 16:05 | ||
fancy that! | |||
Shillo | but life.p6 and mandel.p6 do work. :) | ||
autrijus | cool :) | ||
malaire | if I make local changes to e.g. Prim.hs, how can I update it to current file (i.e. revert my local changes) using svn? | 16:08 | |
autrijus | svn revert Prim.hs | ||
obra | hi | ||
autrijus | yo | 16:11 | |
obra | how goes, autrijus? | 16:12 | |
autrijus | fine. has a talk tomorrow | ||
need to prepare slides | |||
but is feeling ingyish | |||
hcchien | I guess I can just move t/06sub.t to t/op/subroutine.t directly. | ||
autrijus | hcchien: yup | ||
DrHyde | gentlefolks, i want to try playing with pugs, is there any more recent HOWTO-ish docs on perl6 than the synopses? | ||
autrijus | ingyish = want to do the slides in s5; part of materials were in emacs outlines; emacs outlines can be trivially converted to kwid; want to write the converter in pugs | ||
obra | next time perl5 autrijus is around, I've got an odd one for him. standalone httpd stopped working for file upload. | ||
autrijus | ! | ||
yow. | 16:13 | ||
obra | interestingly, it appears to no longer work when I go back to 3.4.0 | ||
autrijus | but it worksforme. | ||
obra | which I know _did_ work | ||
autrijus | I mean, even now. | ||
hcchien | autrijus: but you don't use emacs!? :) | ||
obra | does 'make regression-noapache' work for you? | ||
autrijus | I am on... win32 | ||
PerlJam | DrHyde: There are no HOWTO docs for perl6 :-) | ||
autrijus | obra: so it fails for you? | ||
integral | DrHyde: Do you fell like writing a HOWTO? ;-) | 16:14 | |
obra | yes. | ||
it appears that CGI.pm is trying to read more from enctype=multipart-form forms than there is | |||
autrijus | DrHyde: I know damian has many slides. | ||
obra is a sad, sad guy. | |||
autrijus | none of them are on the web, though. | ||
obra: is it possible that your cgi.pm is old? | |||
I wonder if I can convince damian to dump all his slides to me | |||
obra | It fails on two hosts. one with old and one with latest | ||
autrijus | and find helpful souls here to convert them to html/pod/kwid | 16:15 | |
PerlJam | DrHyde: you could read the Apocalypses and then work your way through the Exegeses if you keep in mind that some of the syntax has changed. | ||
DrHyde | the apocalypses break my brane :-) | ||
autrijus | DrHyde: oh, and there is allison's update | ||
www.lohutok.net/talks/p6update.pdf | |||
which is good | |||
if a bit too high-level | 16:16 | ||
obra | autrijus: what RT are you syncced to? | 16:17 | |
autrijus | 3.4-REL | ||
obra | when you get spare time will you try make regression-noapache? | ||
autrijus | yes. | ||
obra | thanks | ||
autrijus | never tried that. | ||
obra | clkao also sees the failures with 3.4-REL | 16:18 | |
autrijus | (never knew it existed :)) | ||
obra | oh! it's the test suite against standalone httpd | ||
autrijus | sure, I grok that now | ||
obra | I spent about two days attempting to debug why image custom fields didn't work in RTFM. | 16:19 | |
When it turned out that I'd fixed the bug but that standalone_httpd was causing more issues | |||
autrijus | :-( | ||
also I believe my file uploader was not in trunk | |||
wonder if it bitrotted | 16:20 | ||
and wonder if it fixes that | |||
obra | so. it's blocking in CGI.pm | ||
CGI.pm is trying to read from STDIN when there is no more STDIN left | |||
but. I must put this aside for now, so I can try to get through customer deliverables that are due right when I get back from .tw ;) | 16:22 | ||
autrijus | ok ;) | ||
hcchien | split t/0*.t into t/*/* # done | 16:27 | |
autrijus | wow! | ||
hcchien++ | |||
hcchien | just use svk mv to finish it. ha | ||
autrijus | you didn't fix MANIFEST? :) | ||
(that's fine) | 16:28 | ||
malaire | In what file the operator precedence is currently defined in pugs? Prim.hs seems to have allmost everything, but I can't find anything about precedence. | 16:29 | |
autrijus | Parser.hs currently has prec table. | 16:30 | |
the ultimate idea is to gen the table with builtins.pod | |||
Juerd_ | Uh oh | 16:32 | |
Significant documentation... | |||
hcchien | updated | ||
Juerd_ | That's almost worse than significant indentation ;) | ||
Though I do like the idea | 16:33 | ||
autrijus | Juerd_: builtins.pod will be inlined into Prim.hs, silly :) | ||
Juerd_ | You're building a filesystem in a file? :) | ||
autrijus | Inline::FileSystem mmmm | 16:34 | |
(already done on cpan) | |||
dada | is there a way to run a single test? | ||
Juerd_ | dada: Yes, copy and paste it. | ||
dada | mmm no, a single .t file I mean | 16:35 | |
Juerd_ | pigs t/foo.t | ||
eh | |||
pugs :) | |||
mauke | Can't locate Test.pm in @INC | 16:36 | |
dada | Can't locate Test.pm in @INC | ||
exactly :-) | |||
can I set $PERL6LIB for this? | 16:37 | ||
it seems so | |||
way cool :-) | 16:38 | ||
autrijus | :) | ||
Juerd_ | Oh, Test.pm | ||
I haven't done anything with pugs since the day before Test.pm was first used | |||
dada | I think I really need an __END__ | 16:39 | |
=begin END, that is :-) | 16:40 | ||
Juerd_ | Yeah, congratulations, by the way | ||
autrijus | =begin END works, no? :) | 16:41 | |
ingy | hola | 16:43 | |
dada | autrijus: yes, it works | ||
autrijus | yo ingy-san | ||
dada | Juerd_: congratulations for what? | 16:44 | |
ingy | what is new whilst I slept so well | ||
16:44
_metaperl is now known as metaperl
|
|||
autrijus | ingy: darren continues module work, which made 6pan all the more urgent | 16:45 | |
ingy: I'm pondering a kwid2s5.p6 | |||
dada | you know what? | 16:46 | |
I really *HATE* $a = (1,2,3) being equal to $a = [1,2,3]; | |||
autrijus | what you want it to do instead? | ||
$a = 3? | |||
(current p5) | |||
ingy | autrijus: s5? | ||
dada | $a = 1 | ||
autrijus | but it is 3 in p5! | ||
rgs | ($a) = (1,2,3) | ||
dada | but this is not p5 :-) | ||
autrijus | ingy: I think you'll like s5. | ||
meyerweb.com/eric/tools/s5/ | 16:47 | ||
rgs | s5++ | ||
ingy | autrijus: cool | ||
autrijus | rgs: I noticed you're a fellow addictionado | ||
rgs | yes | ||
dada | autrijus: it makes sense given that in p5 (a => 1, a => 2) gave (a => 2), but in p6 it gives (a => 1) | ||
autrijus | dada: oh? I don't see that mentioned | 16:48 | |
ingy | autrijus: what makes 6pan urgent exactly? | ||
dada | autrijus: I can look it up if you don't trust my words :-) | ||
autrijus | ingy: real modules and real users :) | ||
xerox | css | 16:49 | |
Whoops. | |||
lumi | In p5 it gives just 2 | ||
dada | lumi: I meant something like %a = (a => 1, a => 2); gives $a{a} = 2; | 16:50 | |
lumi | oh, k | ||
dada | or "(a => 2) wins", if you prefer | ||
autrijus | dada: reference in synopsis? | 16:51 | |
dada | hold on | ||
lumi | I like (a => 2) wins actually | ||
ingy | autrijus: interestingly you misinterpreted me when I told you that modules should be hosted on the pugs svn server for now | ||
I didn't mean actually in the pugs tree | |||
autrijus | ahh. you just mean svn.openfoundry.org/? | 16:52 | |
ingy | I was thinking more like svn.kwiki.org | ||
autrijus | exactly | ||
ingy | or openfoundry, yes | ||
autrijus squints and imagines openfoundry becomes 6pan | |||
with nice CSSified RT UI | |||
ingy | but each author having a repos | ||
autrijus | and integrated per-author repos | ||
mmmmm. | |||
tempting. | |||
ingy | and then tying it together (for now) using svn:externals | ||
autrijus | or svk:merged | 16:53 | |
ingy | :) | ||
better, yes | |||
but for at least just now, pugs/modules is ok. | |||
autrijus | sure. | ||
ingy | at least until yapc | ||
autrijus | of course. | 16:54 | |
ingy | ok, breakfast& | ||
autrijus | when I mean "urgent" I mean "months" | ||
ingy | autrijus++ | ||
autrijus | instead of "years" :) | ||
hcchien | sounds like the evil yapc!? :p | 16:55 | |
autrijus | yeah, evil plans abound | ||
Khisanth | sounds like you are planning a lot for YAPC :) | 16:56 | |
autrijus | we have two weeks :) | ||
3/20 ~ 4/4 | |||
hcchien | ccCc | ||
yaph. :p | 16:57 | ||
autrijus | and the hacker/speaker team is full of crazy folks. | ||
I can't wait to meet miyagawa in person :) | |||
Khisanth | the entire Perl community is full of crazy folks! | 16:58 | |
autrijus | true, but the yapc::taipei concentration has some of the crazier ones :) | ||
but indeed. | |||
hcchien | I just worry about that the speakers will change their topic since they may discuss the crazy ideas from 3/20. :p | 17:01 | |
autrijus | hcchien: unplanned talks is the joy of YAPCs :) | 17:03 | |
(but the nightmare of organizers) | |||
17:06
crysflam1 is now known as crysflame
|
|||
crysflame | heh | 17:06 | |
"i'm in the conference hall using the wireless to write the slides for my talk" | |||
i remember ingy developing an ascii slides representation | |||
autrijus | ingy is famous for writing the slide system for his slide | 17:07 | |
on the airplane | |||
and change his talk to talk about the slide system | |||
crysflame | ! | ||
hahahaha | |||
autrijus | and go straight on stage on arrival | ||
without any pause | |||
and promptly falls to sleep due to jet lag after the talk. | |||
crysflame | on stage? | 17:08 | |
autrijus | no :) | ||
crysflame | that'd be a talk | ||
Steve_p | In bar :) | ||
crysflame | "defeating insomnia with perl" | ||
"demonstration slide" | |||
zzzzzz | |||
hcchien | autrijus: that's why we don't have the processing copy this year. :p | ||
autrijus | "Last year i came to Taipei to talk about Kwiki, but Kwiki was not ready. So I talked about Spiffy Spoon and Spork. This year Kwiki is ready, so I will talk about it." | 17:09 | |
hcchien | and the schedule is updated for 3 times. ha | ||
autrijus | hcchien: wahaha | ||
hcchien: so no proceedings this time? | |||
I thought we can JIT it on the night before conference | |||
hcchien | hehe | 17:10 | |
17:14
_metaperl is now known as metaperl
|
|||
Shillo | Later, folks! | 17:27 | |
theorbtwo | Adios, Shillos. | 17:28 | |
autrijus | scw: you broke shuffle :-( | 17:30 | |
scw: you were matching against VInt | |||
but you should've vCast'ed to VInt instead. | |||
otherwise VNum 2.0 can't be a valid index. | |||
shillo++ | |||
fixed; r575 | 17:33 | ||
shuffle now shuffles | 17:34 | ||
the more I look at the new banner the happier I am | 17:42 | ||
stevan++ | |||
wolverian | there's a shuffle? | ||
autrijus | examples/shuffle.p6 | ||
wolverian | ah. | 17:43 | |
autrijus | fisher-yates shuffle, I think it's called | ||
wolverian | I wish svk worked here. | ||
autrijus | it does not? | ||
wolverian | the ubuntu perl doesn't apparently have weakrefs | ||
autrijus | eww. | 17:44 | |
but I remember installing from universe | |||
and svk did work on ubuntu then | |||
that involves replacing perl with debian perl | |||
and switch to unstable | |||
wolverian | I am running hoary. but using debian packages isn't a solution I want to use | 17:45 | |
autrijus | yeah, I understand fully | ||
obra | um. | ||
wolverian | I wonder if I should ask this on ubuntu-devel or ubuntu-users | ||
obra | I'm using ubuntu core perland svk is fine | ||
wolverian | obra: really? hmmmm. I'll try again, then. | ||
autrijus | obra: hoary too? | ||
obra | yes, hoary | 17:46 | |
crysflame | hoary++ | ||
obra | what perl do you have, wolverian? | ||
wolverian | obra: the one that comes with ubuntu! :) | ||
obra | what version | 17:47 | |
wolverian | I could nopaste my perl -V | ||
This is perl, v5.8.4 built for i386-linux-thread-multi | |||
obra | dpkg -l |grep perl-base | ||
wolverian | 5.8.4-6 | ||
autrijus | I find it hard to believe that a perl can have no weakrefs. | ||
obra | same here | ||
autrijus | I mean, even by choice. | ||
obra | perhaps you need a newer Scalar::Util? | 17:48 | |
autrijus | unless you have installed a pureperl Scalar::Util. | ||
theorbtwo | wolverian, you wouldn't mean, perchance, that it lacks Scalar::Util? | ||
autrijus smiles! | |||
theorbtwo | Heh. | ||
wolverian | that might be it. svk should depend on it then, though. and the error does _not_ say that. | ||
obra | *5* | ||
autrijus | *15* | ||
obra | *hah* | ||
autrijus | wolverian: S::U is core. | ||
wolverian | oh, right. | 17:49 | |
theorbtwo | What /does/ the error say? | ||
wolverian | I have 1.14 of S::U | ||
autrijus | wolverian: try reinstall it. | ||
wolverian | wolverian@chronoa:~$ svk | ||
Weak references are not implemented in the version of perl at /usr/share/perl5/PerlIO/via/dynamic.pm line 61 | |||
autrijus | alternatively, install that by hand. | ||
wolverian | ..and a lot of BEGIN failed errors after that | ||
autrijus | right, that means you have a bad S::U | ||
wolverian | hrm. | ||
autrijus | perhaps installed after core perl is installed. | ||
wolverian | I'll check in cpanp. | ||
oh well, reinstalling perl and perl-base | 17:51 | ||
obra | that may not help | ||
autrijus | that will not help. | 17:52 | |
theorbtwo | That will probably not help. | ||
autrijus | ... | ||
wolverian | I GOT IT ALREADY, THANKS. | ||
:| | |||
autrijus | *15* | ||
wolverian | okay, do I need to get rid of the wrong version of S::U manually then? (from cpanp, that is) | ||
yeah, that didn't help. | |||
autrijus | either that, or reinstall S::U with UNINST=1 | ||
crysflame | hi, wolverian | ||
wolverian | hello, crysflame | ||
autrijus | you can also uninstall S::U in cpanp right. | ||
wolverian | bah, cpanp can't uninstall it. | 17:53 | |
autrijus | and then install again. | ||
clkao | hm. perlio::via::dynamic should require newer S::U ? | ||
wolverian | [ERROR] Could not get 'files' for 'Scalar::Util': | ||
autrijus | but UNINST=1 is the recommended way. | ||
uh oh. | |||
z Scalar::Util | |||
perl Makefile.PL | |||
make install UNINST=1 | |||
wolverian | doing. | ||
theorbtwo | It's not a matter of new or old Scalar::Util, I think. | ||
autrijus | cpanplus++ # my first real project | ||
real cpan project, that is. | |||
wolverian | theorbtwo: what, then? | 17:54 | |
autrijus | hi mandarin :) | ||
wolverian | hmm. what does this mean: | ||
Unlinking /usr/share/perl/5.8/Scalar/Util.pm (shadowing?) | |||
clkao | it means it's doing the right th9ing | ||
wolverian | yeah, I figured that. | 17:55 | |
this reminds me that there was no XS version of List::Util installed initially with ubuntu, I think. | |||
that was strange. | |||
clkao | if you can figure out, let me know what additiona S::U requirement i should add to perlio::via::dynamic | ||
crysflame | wolverian: that's really weird | ||
wolverian | clkao: I have no idea what the problem was. | 17:56 | |
(svk works now.) | |||
crysflame: yes. it is. | |||
autrijus | yay, auto.t works | ||
lvalue inside array works! | |||
wolverian | hmm 47 failed tests. | ||
autrijus | multidim within reach now | ||
wolverian: expected. | |||
shower, brb | 17:57 | ||
jdv79 | any idea when OO like things will be possible? | ||
crysflame | wolverian: how can List::Util even *work* without XS? | ||
crysflame twitches | |||
distro bug | |||
wolverian | crysflame: the perl version works fine. at least first() worked. I remember looking at the code and going "huh? I thought this was an XS module" | 17:58 | |
theorbtwo | Congrats, aut! | ||
The answer is that most of Scalar::Util can just fallback on perl code. Slower, but most places doesn't loose functionality. | 17:59 | ||
Er, most functionality isn't lost. | |||
wolverian | so, what was my problem? :) | 18:00 | |
crysflame | wow | 18:02 | |
weakref is definitely XS requiring though | |||
theorbtwo | You were trying to use some of the functionality that /was/ lost, and for some reason, the perl your running doesn't have a XS Scalar::Util, or isn't seeing it. | 18:03 | |
autrijus | jdv79: 6.28. | ||
wolverian | ah, so that's the problem. | ||
autrijus | jdv79: I think it is fair to assume 1-2 months per milestone. | ||
jdv79: so, I think maybe 2-3 months from now before we have robust OO | |||
jdv79: but all these can change. | 18:04 | ||
malaire | hmm.. 1-2 months per milestone = 6-12 months until "6.283185: Port Pugs to Perl 6, if needed." ... ;) | 18:06 | |
autrijus | that is the plan. | 18:07 | |
see my imaginary timeline :) | 18:08 | ||
i.e. finish the perl6 bootstrapping around early 2006 | |||
obra | autrijus: where's your milestones doc? | 18:10 | |
or is this handwavey? | |||
autrijus | obra: PA01! | ||
"Do you have a roadmap for Pugs development?" | 18:11 | ||
autrijus doesn't do handwavy things :) | |||
obra | /me goes back to reread | ||
xerox | Can I ask why are you making an Haskell implementation of perl6? | 18:12 | |
PerlJam | xerox: you may ask. :-) | ||
autrijus | xerox: PA01. :) also see interview. | ||
xerox | s/Can I ask// :D | ||
autrijus | PA01, "Why did you choose Haskell?" | 18:13 | |
interview is www.perl.com/pub/a/2005/03/03/pugs_...rview.html | |||
PA01 is "Overview" from pugscode.org. | |||
autrijus feels clever about writing a FAQ | |||
obra | huh. somehow I missed that section in PA01. | ||
autrijus | obra: aw. | ||
PerlJam | autrijus: I don't remember the exact answer to that question, but in my head it goes something like "because I realized that I could seem insanely productive by utilizing already existing features of haskell to mimic perl6 features" ;-) | 18:14 | |
autrijus | PerlJam: exactly! | ||
metaperl_ | so should only the code or also the slides from my Perl Mongers presentation be added to pugs distro? Here is the slide presentation: www.hcoop.net/~terry/perl/talks/p6-junctions/ | ||
the one() example is poor | |||
autrijus | code is already examples/junctions/ no? | 18:15 | |
if not, there is where they belong | |||
metaperl_ | well, not completely | ||
autrijus | I'd be happy if you put a URL to your talk to examples/junctions/README | ||
metaperl_ | I thought up several in the last few days | ||
autrijus | or something like that. | ||
metaperl_ | ok | ||
autrijus | metaperl++ | ||
metaperl_ | and I'll add the new code samples | ||
:) | |||
autrijus | metaperl++ # can't ++ you enough | ||
metaperl_ blushes | 18:16 | ||
autrijus | PerlJam: but yeah, it's all about choosing the right tools. | ||
that's what tools are supposed to do, anyway; they exist to make us insanely productive | |||
or rather, make us productive and stay (almost) sane | 18:17 | ||
PerlJam | autrijus: well, for me, it's now about convincing the "official" perl6 compiler people that they should put a wee bit of effort into learning haskell and then use that knowledge to make pugs the bootstrap by which we get a real perl6 :) | ||
autrijus | PerlJam: all of them are learning haskell :) | ||
so :) | |||
metaperl_ | Haskell has a _ton_ of list functionality | 18:18 | |
autrijus | metaperl_: because haskell is merely super-sugared lazy lisp. | ||
PerlJam | metaperl_: That's probably because of its FP ancestry | ||
obra | I'm pretty sure that pge and pugs are going to continue to help each other. | ||
xerox | Now I see :D | ||
malaire | btw, is there a way to get the Val out of Eval Val ? e.g. I have (op2Numeric (+) (VInt 2) (VInt 3)) - and I want to get equivalent of (VInt 5) out of that. | ||
autrijus | I'm pretty sure that pge and pugs will merge at some point :) | ||
PerlJam | autrijus: me too :) | ||
autrijus | malaire: well, you eval it. | 18:19 | |
result <- action | |||
that's all. | |||
result is Val, action is Eval Val. | |||
(that's what the "Eval Monad" means.) | |||
malaire | for some reason that didn't seem to work, but I'll try again... | ||
obra just read "evil monad" | 18:20 | ||
PerlJam | obra: heh! | ||
crysflame | that's the second time that's happened | ||
autrijus | I'm sure it will happen many time more. | ||
crysflame | autrijus said "probably true" when i said it the first time, or something similar | ||
dada | autrijus: I have a problem | ||
crysflame | i wonder how many others have | ||
autrijus | dada: yes? | ||
dada | context is broken in pugs | 18:21 | |
PerlJam | monads still make me uncomfortable. I think I understand, but their apparent simplicity has me worried that I'm missing something. | ||
dada | my($a) = (1,2,3); say $a; # says 123, it should say 1 | ||
PerlJam | I'm sure perl6 will make me feel that way at some point | ||
autrijus | dada: yes because the () is not yet significant. | ||
PerlJam | :-) | ||
autrijus | PerlJam: yup. | ||
dada | autrijus: ok. most of my tests are failing for this reason :-) | ||
wolverian | metaperl_: what is List::Util::filter? | 18:22 | |
(re: slide3) | |||
PerlJam | dada: todo them and they won't fail :) | ||
autrijus | dada: good. let them fail! | ||
PerlJam | dada: or better, implement () :) | ||
autrijus | PerlJam: I argue it's misimplementation not unimplemented | ||
so let them fail! | |||
metaperl_ | oh, maybe Language::Functional::filter | ||
maybe List::Util::first() is what I meant | 18:23 | ||
ingy | so far I find A Gentle Introduction to Haskell to be the best tutorial to get you up to speed | ||
metaperl_ | I just moved the slides somewhere permanennt | ||
ingy | apropos of nothing ^^ | ||
autrijus | ingy: many people found that too hard. | ||
metaperl_ | ingy, the Algorithms Book is good if you dont like that dry style | ||
ingy | I find it just hard enough | ||
autrijus | ingy: i.e. it assumes you have thought Real Hard about programming before | ||
...which you did, of course. | |||
metaperl_ | by Rabhi and Lapalme... this is a good book. I can't put it down | ||
wolverian | metaperl_: doesn't any() return a list of matches, though? | ||
autrijus | yes. I totally agree. | ||
lukhnos still has my copy. | |||
wolverian | metaperl_: I mean, the overloaded comparison against any() | 18:24 | |
metaperl_ | Which any? | ||
Language::Functional::any? | |||
Q::S::any? | |||
wolverian | no, the Perl6 one. | ||
ingy | I just want to know the facts... but with a little explanation | ||
Gentle is really good that way | |||
PerlJam | wolverian: any() will never get you a list unless you collapse() it. | ||
wolverian | PerlJam: 'any(...) < $limit' will not return a list? | 18:25 | |
dada | I'm (slowly) reading YAHT | ||
PerlJam | any, all, one, and none all give you a scalar (junction) | ||
ingy | plus Gentle is in html which helps immensely | ||
Two Dozen is really bad as it seems to be written by a lisper who uses totally different terminology | 18:26 | ||
PerlJam | wolverian: any($a,$b,$c) < $limit will give you a junction of any($a < $limit, $b < $limit, $c < $limit) | ||
which is a scalar value | |||
autrijus | ingy: true... it is written as a companion of the Haskell Report by the same people | ||
dada | ingy: www.isi.edu/~hdaume/htut/ <-- YAHT | 18:27 | |
wolverian | PerlJam: hm. that looks odd to me. doesn't that mean that any() only gets booleans? | ||
xerox | I suggest haskell-tutorial instead of YAHT. | ||
PerlJam | no | ||
dada | I think YAHT is more tailored for people who come from an imperative language | ||
xerox | (You can find it on haskell.org learning page) | 18:28 | |
dada | xerox: isn't that one the Gentle? | ||
xerox | dada, it is not. | ||
PerlJam | wolverian: you threaded over a boolean operator, so you get a junction of booleans. | ||
wolverian: had you threaded over some other operator, you wouldn't necessarily get a junction of booleans. | |||
xerox | www.haskell.org/learning.html ftp://ftp.geoinfo.tuwien.ac.at/navratil/HaskellTutorial.pdf | ||
jdv79 | autrijus, cool | 18:29 | |
dada | xerox: seen, thanks | ||
wolverian | PerlJam: okay, thanks. | ||
ingy | autrijus: yeah... The Report is a little too dry but will be very nice after I finish Gentle | 18:30 | |
PerlJam | wolverian: Just have a look at the example in S09 ... dev.perl.org/perl6/synopsis/S09.html search for "camel" | ||
wolverian | PerlJam: I'm not sure I see why 'any(...) < $limit' would be autothreaded | 18:31 | |
autrijus | because < is just a function call | 18:32 | |
wolverian | right. | ||
autrijus | and junctions as function arguments autothreaded | ||
wolverian | okay, so you can't use any() for this. clear enough. :) | ||
ingy | I just thought of something fun... | ||
PerlJam | wolverian: what is "this" exactly? | ||
wolverian: you want to know which components of the junction are < $limit? | 18:33 | ||
wolverian | PerlJam: the amount of them, actually. | ||
PerlJam | $how_many = any(@stuff).collapse.grep:{$_ < $limit}; # :-) | ||
ingy | When `kwid --to_html` is done I will adapt it into the pugs Kwiki, so we can write perl6 docs in the kwiki | 18:34 | |
wolverian | hah. :)= | ||
autrijus | ingy: woot | ||
wolverian | eeks. s/=// | ||
autrijus | ok, mval in assignments is Officially There. | ||
committing. | |||
wolverian | PerlJam: does the adverbial block get $_ in @_[0] there? | 18:35 | |
(in addition to $_) | |||
PerlJam: just wondering if I can do .grep:{ $^person < $age } | |||
or some such. | |||
PerlJam | yes, you can. | ||
wolverian | yay. :) | 18:36 | |
PerlJam | I'd guess that pugs doesn't quite grok $^foo though | ||
wolverian | (I don't actually like writing the $_ at all, but I guess you can't help it really here..) | ||
autrijus | r577: | ||
Failed 2/79 test scripts, 97.47% okay. 20/1395 subtests failed, 98.57% okay. | |||
finally no ridiculous numbers like "184.99% failed" :) | 18:37 | ||
PerlJam | I seem to recall seeing that pugs parsed $^foo, but didn't do anything special to make it mean anything | ||
autrijus | hmm? no it Just Works. | ||
$^x worked in the first week. | |||
PerlJam | so much for my memory ;) | ||
autrijus starts to write journal... | 18:41 | ||
"Day 38: And banner bright with living flame." | |||
PerlJam | wolverian: btw, did you notice that junctions weren't needed at all in my $how_many example? | ||
wolverian | PerlJam: yes, hence my smiley. | 18:42 | |
autrijus | it's hard to show Silmarils in ASCII Art, though | ||
PerlJam | okay, just checking. It's hard to tell sometimes on IRC | ||
wolverian | PerlJam: I just wondered if there was a more, um, natural method of doing it without grep. I guess I just dislike referencing to the individual elements directly | ||
PerlJam: with grep, I have to write $_ or $^foo | |||
PerlJam | wolverian: you want PDL's $minors = where($age < 18); ? | 18:44 | |
autrijus | .grep(&prefix:{'<'}.assuming(:y => $age)) | ||
;) | |||
PerlJam | heh | ||
wolverian | PerlJam: I don't see what where() operators on there, but I think yes. | ||
autrijus: thanks! :) | |||
autrijus | that is idiomatic haskell... | 18:45 | |
except in haskell you write | |||
filter (< age) | |||
instead. | |||
what conciseness. | |||
PerlJam | autrijus: that is one syntax I wish perl had | ||
autrijus | *nod* | ||
I wish that too. | |||
dada | svn: Commit failed (details follow): | 18:46 | |
svn: MKACTIVITY of '/perl6/!svn/act/e381cb67-1217-1c48-bace-a0fdd412c2cd': 400 B | |||
ad Request (svn.perl.org) | |||
buuuuh | |||
autrijus | uh. you should commit to svn.openfoundry.org | ||
dada | mmm? | ||
how do I? | 18:47 | ||
autrijus | well.... | ||
PerlJam | dada: first you have to co a copy of pugs from svn.openfoundry.org :) | ||
dada | fresh checkout from there? | ||
autrijus | svn co svn.openfoundry.org/pugs | ||
and copy your stuff there. | |||
dada | heh | ||
autrijus | I'm sorry. | ||
dada | no problem :-) | ||
autrijus | committer needs to track openfoundry, not svn.perl.org | ||
I cannot grant svn.perl.org committer :) | 18:48 | ||
dada | where am I supposed to put my username anyway? | 18:49 | |
PerlJam | Ask Robrt nicely and I'm sure you can get the ability to grant committer access to the pugs portion of svn.perl.org | ||
autrijus | dada: just ci to openfoundry | 18:50 | |
it will ask for your username/passwd. | |||
PerlJam: problem being, I like openfoundry; it's easy to send off invitation mails & stuff. | |||
that system is nice. | |||
it also helps that it's my code :) | |||
PerlJam | autrijus: except for the 36 hours of downtime? | ||
autrijus | that needs improvement, truly. | ||
dada | autrijus: I didn't understand | 18:51 | |
PerlJam | anyway ... | ||
PerlJam wanders off to code some perl (5) | |||
theorbtwo | I also don't like the license agreement being /only/ in zh-tw, but don't care hugely much. | ||
dada | ahhhhh ok ci == commit :-) | ||
theorbtwo | (That was -tw, wasn't it?) | ||
autrijus | theorbtwo: I _will_ fix that. | ||
theorbtwo | I thought that was checkin? | ||
autrijus | yeah, -tw is right. | ||
ci is commit. | |||
dada | ouch | 18:52 | |
same 400 Bad Request | |||
autrijus | weird. did you put your openfoundry userid/passwd? | ||
dada | no, it bombs right away | ||
autrijus | !. try #subversion of #svk :-/ | 18:53 | |
that should not happen. | |||
dada | may be a proxy issue? | ||
autrijus | that is possible. | ||
Juerd_ | dada: With the beginning of the rest of your life | ||
dada | Juerd_: huh? | 18:54 | |
Juerd_ | Congrats. | ||
This is an important mile stone without which you'd be dead. | |||
dada | d'oh :-) | ||
another mile stone successfully reached! update the GANTT! | 18:56 | ||
autrijus wonders what you're talking about. | |||
dada | [17:40] <Juerd_> Yeah, congratulations, by the way | 18:57 | |
an action-at-a-distance, that is | |||
autrijus is even more confused. but never mind | 18:58 | ||
dada | :-) | ||
Juerd_ | autrijus: Congrats to you to too | ||
autrijus | Juerd_: you too :) | 18:59 | |
Juerd_ | Thanks! | ||
dada congrats everybody | |||
Juerd_ | And today is a very special day indeed. | ||
crysflame | congrats for some unknown reason | 19:00 | |
Juerd_ | Historically unique | ||
Today will never come back. | |||
So enjoy it. | |||
autrijus | journal done. sleep & | 19:01 | |
have fun! | |||
Juerd_ | Bye | ||
Are you sure you want to sleep on this special day? | |||
;) | |||
wolverian | _WHAT_ is up with this FFII RSS feed sending the same stuff again and again to me. | ||
autrijus | Juerd_: pretty sure :) | ||
Juerd_ | autrijus: Okay - if that's your way of celebrating :P | ||
autrijus | yup! | ||
Juerd_ | autrijus: Good night and stop counting sheep when you reach Inf | 19:02 | |
autrijus | I start from Inf. | ||
Juerd_ | And count backwards? :) | ||
dada | g'night autrijus | ||
crysflame | wolverian: sounds like they don't have a <guid> element | 19:03 | |
autrijus | Juerd_: I count toward NaN. | 19:04 | |
zzz & | |||
Juerd_ | autrijus: Good luck | ||
:) | |||
stevan_ | ingy? | 19:39 | |
nothingmuch | morning | 20:15 | |
stevan_ | morning nothingmuch | ||
nothingmuch | hi ho | ||
nothingmuch is trying to learn dvorak again | 20:16 | ||
(switching layout) | |||
beh | |||
if i can get this going i will rewacrd myself with a new keyboard | 20:18 | ||
eek | |||
reward | |||
this is pretty hard | |||
so how are those lazy trees coming along, stevan_ | 20:20 | ||
damn, i can't find the question mark | |||
stevan_ | LOL | 20:21 | |
nothingmuch: work-work has kept me busy today | |||
nothingmuch | ah | ||
? | |||
stevan_ | nothingmuch to report :) | ||
nothingmuch | heh | ||
i also got caught up | |||
nothingmuch is typing so slowly he actually notices the spellchecking | 20:23 | ||
nothingmuch goes to learn some haskell | 20:30 | ||
20:42
_metaperl is now known as metaperl
|
|||
ingy | stevan_? | 21:01 | |
stevan_: I'm leaving for lunch. just address any questions to me here and I'll see it when I return | 21:06 | ||
stevan_: ping | 23:07 |