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