Don't panic, read modules/README | TODOification for release | pugscode.org <<Overview Journal Logs>> | pugs.kwiki.org | smoke: xrl.us/fmw2 | xp/msys:r1501(all 3846 pass) win2k:r1501(all 3846 pass) Linux:r1302(193/3383) MacOSX:r1342(189/3478) Set by Corion on 3 April 2005. |
|||
Schwern | The recommended Haskell book is Algorithms or School of Expression? | 02:06 | |
Khisanth | why not get both :) | 02:07 | |
jabbot | pugs - 1504 - * repair make install on win32 | 02:11 | |
autrijus | both :) | 02:13 | |
Khisanth | hmm need to build ghc to play with pugs | 02:21 | |
autrijus | no binary installers? | 02:23 | |
Khisanth | apparently not | 02:24 | |
this is on gentoo | 02:25 | ||
hopefully it takes less time to build than it takes me to sleep :) | 02:26 | ||
jabbot | pugs - 1505 - * TODOify | 02:31 | |
crysflame | heh | 02:32 | |
autrijus | call for preflight checks. | 03:20 | |
obra checks. | |||
my flight is still on | |||
autrijus | autrijus.org/tmp/Perl6-Pugs-6.0.14.tar.gz | ||
obra | is that the same as head? | 03:21 | |
autrijus | only one difference: the modules/README does not mention the password ;) | ||
but otherwisethe same. | |||
obra snickers | |||
jabbot | pugs - 1507 - * 6.0.14 preflight! | ||
pugs - 1506 - * yield() can be used alone | |||
obra | Oh. | 03:22 | |
I'm not building it anytime soon. | |||
no 6.4 in ubuntu | |||
autrijus | you can use experimental in universe no? | 03:23 | |
obra | oh. there's a ghc-experimental? | ||
autrijus | debian experimental I think | 03:24 | |
not sure | |||
obra | autrijus: haskell-unsafe.alioth.debian.org/ha...nsafe.html | 03:26 | |
autrijus | that seems old | ||
obra | urchin.earth.li/pipermail/debian-ha...00073.html | 03:27 | |
two weeks old? | |||
autrijus | yeah, being prerelease and so | ||
I think there's 6.4 final in the official debian repo | |||
scw | in experimental | 03:30 | |
obra wonders if it's easier to just use haskell-unsafe since I'm on ubuntu and don't want to pull in the rest of experiemntal | 03:31 | ||
scw | In debian, experimental packages won't be installed automatically even it's in apt list | 03:34 | |
we have to specify it explicitly, e.g. apt-get install ghc/experimental | |||
so only those not-so-important packages are experimental version. | 03:35 | ||
obra nods | 03:38 | ||
scw | in fact, I have ghc-6.4 and gcc-4.0 installed :p | ||
autrijus | scw: so, does it build for you? | 03:39 | |
6.0.14 that is | |||
obra | autrijus: from an svk pull: | 03:45 | |
ERROR from evaluation of /home/jesse/svk/pugs/ext/Perl5-Kwid/Makefile.PL: Could not open 'lib/Kwid.pm': No such file or directory at /usr/share/perl/5.8/ExtUtils/MM_Unix.pm line 3062. | |||
autrijus | obra: that's weird, because there should be no ext/Perl5-Kwid anymore. | 03:46 | |
obra: raze your pugs dir | |||
then 'svk revert -R .' ? | |||
obra nods | |||
fwiw, I only have net for 10 more minutes | 03:47 | ||
jabbot | pugs - 1509 - * 6.0.14. | 03:51 | |
pugs - 1508 - * Correct TODO failures. | |||
autrijus | final preflight: | 03:54 | |
autrijus.org/dist/Perl6-Pugs-6.0.14.tar.gz | |||
Darren_Duncan | hello again | 03:57 | |
I'll test this preflight ... | |||
obra | ok. 2 minutes to checkout time. goodbye world | 03:58 | |
ingy | hola | 03:59 | |
Darren_Duncan | download almost done | 04:00 | |
now starting 'make' | 04:01 | ||
scw | autrijus: I was reading log & diff since 3/31... vim says there are 60k lines! | ||
autrijus | bbiab & | 04:02 | |
Darren_Duncan | whoops, closed IRC by mistake | 04:11 | |
anyway, on to 'make test' | |||
autrijus | how'd it go? | 04:17 | |
no failures so far? :) | 04:18 | ||
Darren_Duncan | still happening | ||
it's on t/pugsrun/08... now | 04:19 | ||
all okay so far, or some skipped without reason given | |||
away from comp for a few min | 04:20 | ||
autrijus | ok. uploading | ||
drbean | 3 | 04:24 | |
Darren_Duncan | I"m back | 04:29 | |
it says all tests successful | 04:30 | ||
4 times | |||
with the first one, it says 2 skipped | |||
jabbot | pugs - 1510 - * add password back | 04:31 | |
gaal | hey all | 04:36 | |
what, it's released? | |||
wow, cool, i can go rowing :) | 04:37 | ||
theorbtwo | Mornin, all. | 04:44 | |
gaal | what's the difference beween 'make', 'make optimized', and 'make unoptimized'? my intuition is that bare 'make' oughta be an alias for one of the other two? | 04:50 | |
theorbtwo | Hm, I wonder how/if I can fix the crossreferencer before release. | 04:57 | |
gaal | you can if you build a time machine. | ||
it's released :) | |||
and i' | |||
m outta here. see y'all later! | |||
theorbtwo | Oh. Later, gaal. | 04:58 | |
theorbtwo wonders if it's silly to grammar-fix the changelog for releases that have already happened. | 05:18 | ||
autrijus | sure, please do | 05:41 | |
sdtr443w | I was curious what junctioning is. I see it mentioned on the newsgroup but don't fully understand it. | 05:49 | |
It gives me the impression of dataflow. | |||
autrijus | sure | 05:58 | |
mostly, junction is a set with a tag | |||
"all", "none" or "any" | |||
sdtr443w | Hmm what does "any" mean? | 05:59 | |
Alias_ | one or more | ||
sdtr443w | Hmm are there any other languages with that built-in? | 06:00 | |
Alias_ | if ( $string eq any('foo', 'bar', 'baz') ) { | ||
autrijus | no, not to my knowledge. | ||
work & | 06:01 | ||
sdtr443w | Gees Perl6 seems to be going more theoretical | ||
Khisanth | autrijus: isn't there also one()? | ||
theorbtwo | More theoretical mostly just means that it has elements based on theories that you are unfirmilar with. | 06:03 | |
Perl 5 has plenty of theoretical backing as well -- you just don't think about it. | |||
sdtr443w | Hmm well as long as everybody at work can use it like it's C, it'll get accepted. | ||
I don't know if that's a good thing though | 06:04 | ||
Alias_ | low initial learning curve i good | 06:05 | |
is | 06:06 | ||
sdtr443w | Hmm | 06:07 | |
I'm trying to get ahead of the curve here | 06:08 | ||
I don't think I can help with Perl 6 but I'm wondering if Parrot needs help with amd-64 code generation | |||
I'm playing with perl 6 since that's more fun ;) | |||
Hmm I think I just ran into a strange problem in Pugs | 06:09 | ||
n/m -- I restarted Pugs and it's behaving itself again | 06:13 | ||
has the foreach syntax changed? | 06:15 | ||
gaal | sdt.*: yes. you now always say " | 06:17 | |
for LIST -> $arg1, $arg2 BLOCK | 06:18 | ||
sdtr443w | huh? | ||
oh | |||
gaal | the args are optional | ||
sdtr443w | woah | ||
gaal | actually args isnot the right name | ||
anyway more generally it's for LIST CODE | |||
typically you just use a pointy sub, which accepts params. | 06:19 | ||
sdtr443w | what's the iterator variable? | ||
gaal | look at the modules for plenty of examples. | ||
the params :) | |||
if you don't supply one, it's $_ | |||
gotta get ready for work, later & | |||
sdtr443w | some something like "for @test_array { }" | 06:20 | |
gaal | y | ||
sdtr443w | How do I specify an iteration variable? | ||
sdtr443w would just look at module source, but his termianl just crashed :( | 06:21 | ||
gaal | for @test_array -> $iterator { say $iterator } | ||
you can have more than one | |||
sdtr443w | What's the difference between say and print? | ||
jabbot | pugs - 1511 - Update debian/ to 6.0.14. | ||
theorbtwo | for %foo -> ($k, $v) {say "$k => $v"} | ||
gaal | for %folks.kv -> $name, $addr { say "$name -> $addr" } | 06:22 | |
heh | |||
bye, really | |||
theorbtwo | say($x) is print "$x\n" | ||
sdtr443w | oh ok | ||
theorbtwo | Later, really. | ||
(If you have both say and print, you won't be so tempted to use -l.) | 06:23 | ||
sdtr443w | Why did foreach get squelched? | 06:24 | |
Khisanth | four extra unneccessary letters :) | 06:25 | |
sdtr443w | Oh does that mean for does everything now? | ||
obra | for and foreach were identical in perl5 | 06:26 | |
Khisanth | no, for($i=$j;...) becomes loop($i=$j;...) | ||
obra | weren't they? | ||
Khisanth | yes | ||
sdtr443w | So C-styled for-loops are illegal? | ||
Khisanth | no, they are just call loop! | 06:27 | |
err loop loops? :) | |||
sdtr443w | I see myself getting a nice consulting job when Perl 6 comes out hahaha | ||
"It doesn't work like C... what happened?!?!?!?!" | |||
Khisanth | there was never much of a need for C style for and there will be even less of a need | 06:28 | |
Darren_Duncan | FYI, I have now uploaded all the newest Perl 5 versions of my stuff ... should appear on the CPAN index in a few hours | 06:31 | |
Alias_ | Anything noteworthy? | ||
Darren_Duncan | so there is now an executable equivalent of what I checked into Pugs last night | ||
well, Locale::KeyedText and SQL::Routine can be used right now | |||
sdtr443w | Is there a new notation for indexing an array? $test_array[0] seems to be screwing up when interpreted | ||
Darren_Duncan | these are the first versions that have a SYNOPSIS which should be comprehensible to an average person | 06:32 | |
obra | use the array sigil | ||
@test_array | |||
sdtr443w | Hmmm that's nice | 06:33 | |
Darren_Duncan | ping autrijus | 06:35 | |
Kicker- | anybody can help me what perl i download to run openkore?? | ||
obra | what's openkore? | ||
Darren_Duncan | I just got a strange email from autrijus; not sure yet if its virus spawn or not | 06:36 | |
obra bets that for any production software, you want perl .5.x | |||
Darren_Duncan: what was it? | |||
Darren_Duncan | first line: I think so... Your original 1-map.txt is broken; it should've used two | ||
gaal | Make compilers fast! | ||
obra | Kicker-: what OS are you running. | ||
sdtr443w | OK thanks a lot for the help | ||
obra | Darren_Duncan: and it has a windows attachment? | ||
sdtr443w | I think I may have some more stupid questions, but ultimately I'll know enough to appreciate all the sample code. | ||
Darren_Duncan | it has a file 'replace.zip' | ||
Khisanth | obra: a bot for a MMORPG call Ragnarok Online | ||
06:36
wilx` is now known as wilx
|
|||
obra | Darren_Duncan: I'd put money on that being a virus. | 06:37 | |
gaal | sdt.* do look at the tests -- they offer specific examples of usage. | ||
sdtr443w | I hope to post a little Perl5 -> Perl6 page that shows this and that and how it's different | ||
Khisanth | obra: "a cheat device" | ||
obra | Khisanth: :) | ||
Darren_Duncan | if it is, then it has copied part of a normal email | ||
it ends with his normal signiture and some quoted text | |||
obra | ! | ||
Kicker- | i have no idea obra it says i have to download perl to run the openkore bot | 06:38 | |
Khisanth | obra: it also has some of the ugliest perl code you'll ever see :) | ||
Kicker- | Install Perl, and the Perl "compiler" (PerlApp), and compile OpenKore into a .exe file | ||
obra | Kicker-: wwww.activestate.com | ||
Kicker- | ok | ||
obra | also, you want #perl, not #perl6 | ||
Darren_Duncan | the email has a whole bunch of headers like a normal email from him, it seems | ||
Kicker- | sorry | ||
Darren_Duncan | do any of you know someone whose email is barnabas@s-team.com.tw - his is in reply to it | 06:39 | |
obra | Darren_Duncan: That email sounds familiar | ||
Khisanth | Darren_Duncan: send an email, "who are you and why are you replying?" :) | 06:40 | |
Darren_Duncan | I started to compose a reply to Autrijus, but then thought I'd bring it up here first | ||
06:44
castaway_ is now known as castaway
|
|||
Darren_Duncan | reply sent | 06:44 | |
sdtr443w | Is there still a parrot IRC channel? | 06:55 | |
Khisanth | yes | ||
sdtr443w | I can't tell from google when I'm looking at the real channel or one about birds | ||
Khisanth | #parrot on irc.perl.org | ||
sdtr443w | Hmm why isn't #perl6 on perl.org too? | 06:57 | |
obra | freenode is more public. | 06:58 | |
sdtr443w | heh ok | 07:01 | |
I asked about AMD64 code generation and got nothing. I guess it's late -- so I put it in p.p.internals | 07:02 | ||
theorbtwo | #parrot tends to be very low-traffic. | ||
sdtr443w | ah well -- bed time for me. | 07:04 | |
Hopefully i'll have all the basics by the end of the week | |||
castaway wonders if theres an easy way to find out whats already working in pugs so far (apart from digging changelogs) | 07:06 | ||
Khisanth | make test :) | 07:07 | |
castaway | Is documentation also being made? | ||
wilx | Looking at failing and passing tests? :) | 07:08 | |
Khisanth | probably ... given Kwid's existence | ||
but what kind of documentation are you looking for? | |||
castaway | something like perldoc -f ,) | ||
Khisanth | oh and the smoke tests in the topic | ||
theorbtwo | Ah, that would be S29, which is in-progress on perl6-language. | 07:09 | |
castaway | numbers dont say 'what' just 'how many' | ||
S29 is ? | |||
theorbtwo | (The numbering of the S/A/E series of documents matches the chapter numbers of the Camel 3rd ed.) | ||
Khisanth | heh builtin functions probably | ||
theorbtwo | perldoc -f. | ||
Khisanth | don't htink that has been finalized yet | 07:10 | |
theorbtwo | It hasn't been. | ||
castaway | Ah, but that will be a list of final funcs, and not 'what pugs can do so far', I assume | ||
Khisanth | hmm wait a minute ... aren't you two sitting next to each other?! | ||
theorbtwo | No, castaway is at work and I am at home. | ||
castaway | Not at the moment | ||
Khisanth | oh good, then you are not weirdos :P | 07:11 | |
castaway | oh but we are :) | ||
theorbtwo | No, we are, we often converse more or less like this when we are sitting next to each-other. | ||
Khisanth | not weird enough to talk to each other through IRC while sitting next to each other! | ||
castaway | well, I tend to, if I think it's useful to hear other peoples comments and so on | 07:12 | |
theorbtwo | Likewise. | ||
G'morning, larsen. | 07:19 | ||
larsen | Good morning. | ||
autrijus | Darren_Duncan: hey. | 07:53 | |
Darren_Duncan: sorry, I accidentally autocompleted wrong email addr | |||
Darren_Duncan | hey | ||
I wondered about that ... didn't really seem like a virus | |||
autrijus | that mail was meant to Darren at s-team | ||
sorry for spamming you :D | |||
Darren_Duncan | well, I'll delete it then | 07:54 | |
autrijus | (that's haskell code from @job[0], openafp) | ||
cool, thanks | |||
Darren_Duncan | fyi, I forwarded a copy to obra so he can help figure out what it was ... no one else though | ||
his request | |||
autrijus | that's fine, it's free software anyway. | 07:55 | |
Darren_Duncan | anyway, right at this moment I'm writing my release announcement to the dbi-users etc lists | ||
autrijus | (as all my current job code are) | ||
cool! | |||
Darren_Duncan | since the announcement is specifically about the modules, and not Pugs, though it mentions Pugs, is it or is it not appropriate to post the announcement to p6c too? | 07:58 | |
autrijus | just post on p6c :) | 08:02 | |
Darren_Duncan | okay then | ||
autrijus | bbiab. & | 08:06 | |
shapr hops cheerfully | 08:31 | ||
I love being part of the open source / free software world! w00h00! | |||
castaway | *g* | 08:32 | |
theorbtwo | <g> | 08:33 | |
Darren_Duncan | the emails are sent ... enjoy | 08:35 | |
anyway, off to bed ... good night | 08:36 | ||
09:22
theorbtwo is now known as around
09:23
around is now known as theorbtwo
|
|||
obra | hello | 09:42 | |
theorbtwo | Hello, obra. | ||
autark-jp | n | 09:56 | |
sri_ | someone know if perl6 will support perl5 like attributes? | 09:59 | |
havn't found anything about that in the bible... | 10:01 | ||
castaway | If its not there, probably not..Look to see which chapter they're described in, in the Camel (3rd ed), and then look for the matching Synopsis | ||
sri_ | would suck for maypole/catalyst porting... | 10:02 | |
obra | castaway: I thought the default was "unless specced otherwise, perl6 is like perl5" | ||
castaway | don't ask me :) | 10:03 | |
S06, subroutines ? | |||
sri_ | hah, it's in A02 | 10:20 | |
called traits | |||
aka properties | 10:23 | ||
elmex | btw. what reasoning is behind the renaming of '->' to '.' ? 'like the rest of the world uses' sounds just like nonsense... Perl 6 isn't a language like the rest of t he world. And besides java, i don't know any language | 10:24 | |
that doesn't use -> to deref a pointer/reference | 10:25 | ||
and it's a quite good reason for 'Trinary ? : becomes ?? ::.' => 'like the rest of the world uses' ????? huh?? nice logic reason ;) | |||
sri_ | elmex: everybodu does '.' | ||
smalltalk, ruby, python... | 10:26 | ||
elmex | sri_: struct foo *bar; bar.structmember gives me an error in C | ||
integral | smalltalk? | ||
elmex | sri_: well, what does '.' mean in those languages? | ||
sri_: in smalltalk it's a slotaccess | 10:27 | ||
not a deref op | |||
s/slot/struct/ | |||
sri_ | whats deref in smalltalk? | ||
elmex | does smalltalk have references? ;) | ||
theorbtwo | elmex: The reason that trinary becomes ?? and :: is because a single colon becomes used for more important things. | ||
sri_ | ? :) | 10:28 | |
elmex | theorbtwo: yes, ok. but please... dont use reaons like 'like rest of the world uses'. they are just bogus and sound like arbitrary renaming.. | ||
theorbtwo | You're thinking of . being the "take an element from a reference" operator, which isn't it's primary meaning; "call a method on an object" is the primary meaning, and most languages use . for that. | 10:29 | |
elmex | it's ok. if scalars can contain objects themself... like: "foo".print makes more sense than "foo"->print | ||
theorbtwo: yes | 10:30 | ||
theorbtwo | Not only that, but using . over -> has a single distinct advantage: it's one unshifted key, rather then two keys, one of which is shifted. | ||
"foo".print and "foo".say are perfectly valid p6 code. | |||
elmex | theorbtwo: ?? :: is longer and i use it often. and it will hurt me ;) don't say me '.' because it's shotert than -> and -> are just one shifted key here | 10:31 | |
theorbtwo: i know, it's valid | |||
theorbtwo: so '.' is a call/member-access operator. O.K. i'm fine with that | |||
it's just that 'like rest of the world uses' sounds wrong :) don't attack foreign countys, because rest of the world does... or... hate Java, because rest of the world does... or... | 10:34 | ||
theorbtwo | There's always a balance between being nice to your existing users, and being nice for new users. | 10:35 | |
elmex | theorbtwo: yes ;) | ||
10:36
co3 is now known as co2
|
|||
elmex | theorbtwo: i wouldn't say anthing agains a reason like 'because java uses . too.' or '. is shorter than ->' | 10:36 | |
ah | |||
no '. is short than ->' isnt a reason ;) | |||
a space is still shorte | |||
"foo" print | |||
theorbtwo | Yes, but it's also confusing, for both the users and the parser. | ||
elmex | ;) | 10:37 | |
well... perl6 is overdesigned | 10:38 | ||
theorbtwo | It is in some places, but I don't think the -> to . change is one of those places. | ||
elmex | but hyperops are still cool ;) | ||
theorbtwo | You use it a lot, and use it even more in p5, and -> is harder to type then '.'. | ||
castaway | thats still a junky reason to make oldtimers relearn, tho | 10:39 | |
elmex | well. 'harder to type' isn't a good reason... | ||
i can type -> quite as fast... | |||
theorbtwo | Sure it is! | ||
So can I, elemex. | |||
But it does put a certian amount of wear and tear on the hands. | 10:40 | ||
elmex | for example, ?? :: isn't as fast to type ;) | ||
theorbtwo | I find a doubled char to be quite short to type. | ||
Also, I don't use ??:: much. | |||
I think most people don't use it much, for that matter. | 10:41 | ||
elmex | well, i won't use ?? :: in p6 anymore ;) because it's not short to type | ||
castaway | still, it'll be an op that wont require me to curse anymore, because both chars are in different locations on qwertz vs qwerty ,) | ||
elmex | in p5 i used ? : much | ||
castaway uses it enough that it may annoy | |||
theorbtwo | qwertz isn't usable for programming in pretty much any language, because {} are very difficult to type. | 10:42 | |
castaway | fine in lisp :) | ||
theorbtwo | My hands hurt /so/ much less since I switched back to en-us. | ||
elmex | i have qwertz keyboard, but i use a qwerty layout for programming | ||
theorbtwo | Yes. Also, pascal. | ||
elmex | theorbtwo: *g* | ||
theorbtwo: en-us is THE layout for programming. quick access to [] {} ;: '". - and stuff | |||
the right hand becomes the most important | 10:43 | ||
theorbtwo | So I suppose by "pretty much any language", I really meant languages with very C-inspired block syntaxes. | ||
castaway | My re-reason for not using "." would be that its harder to read. | ||
elmex | yep | ||
theorbtwo | Well, in qwertz layouts, the right hand is used alone a lot while programming, for altgr + 0 and such. | 10:44 | |
elmex | "foo"~"bar" is cool ...imagine "foo"."bar" would be more readable ;) | ||
theorbtwo | In qwerty, I can shift with my left hand and type the major key with my right, which is how it should be. | ||
castaway | the ~ I just find odd.. | ||
(but then so are all the utf8 chars :) | |||
theorbtwo | I suspect we'll all get used to it quickly enough. | 10:45 | |
castaway | assuming we programm in p6 | ||
theorbtwo | Only the high half of latin-1 is used for builtin operators. | ||
You can use all of unicode for your own, however. | |||
elmex | castaway: there are no utf8 chars in p6 yet... they are all in latin1 too.. the yen and the >> or << are too | ||
theorbtwo | For that matter, you can also write all of them with just straight ASCII. | ||
castaway | ah, sorry.. I meant "the ones I cant type on my keyboard" | 10:46 | |
yes, write.. but still leaves reading other peoples | |||
elmex | well...using yen as an operator is a nice thing too... for our japanese users... | ||
\ | |||
theorbtwo | Yeah, I'll probably keep using the ASCII operators for quite a while. | ||
I think encouraging people to get unicode-aware tools is very much a good thing for the world. | 10:47 | ||
elmex | i will keep on using ascii as long as possible. because i can type ascii chars quicker | ||
castaway wonders if ōæ½xA3 is in there anywhere | |||
theorbtwo | (And I now have (prefer-coding-system 'utf8) in my .emacs.) | ||
elmex | i mean, i have an input method, but calling that up takes hell of more time.. | ||
shapr uses (prefer-coding-system 'purely-functional) | |||
theorbtwo | What was that char, castaway? You're sending in latin-1, and I'm expecting utf8. | 10:48 | |
elmex | "foo"ć®ć®"bar" | ||
"foo"ć®ć®ar" | |||
castaway | heh | 10:49 | |
the sign for british currency | |||
elmex | well...err... thats just stupid... scary unicode chars won't be much quicker to type if they are not on the keyboard | ||
mugwump | xkbcomp++ | ||
castaway | elmex: I suspect that problem applies, no matter whose keyboard you take as default, tho | 10:50 | |
shapr | Ć½Ć¢~ ĆĀ£~~ | ||
mugwump | "eh?" | ||
castaway | s/applies/applies to somebody/ | ||
shapr | that was "yay perl" | ||
castaway | in ? | 10:51 | |
shapr | utf-8 | ||
castaway remembers setting this putty to utf8 somewhen.. | |||
is this right now: Ā£ ? | 10:52 | ||
theorbtwo | Yes. | ||
castaway | (weird, the input line makes it look crap, but the output is fine) | ||
theorbtwo | AFAIK, it isn't used by anything at present. | ||
Possibly because people would say "pound", and people would hear "#". | |||
mugwump | only americans hear "#" for "pound" :) | 10:53 | |
castaway | well I usually do hear Ā£ when people say that | ||
right | |||
theorbtwo | Lots of Americans program perl. Or, at the least, lots of people who program perl are Americans. | ||
castaway | ie its already a problem | ||
theorbtwo | Aye, but it could easily become a bigger problem. | 10:54 | |
shapr | Wait till Americans start using the euro symbol. Then the confusion will double. | 10:55 | |
mugwump | yeah, they'll call ōæ½xA4 the Quake symbol | 10:56 | |
blast | |||
shapr snickers | |||
castaway | ā¬ ? | 10:57 | |
theorbtwo suspects it'll be past any of our lifetimes before the US switches from USD to EUR. | |||
castaway | (ick, what was that?) | ||
theorbtwo | That looks like a euro sign to me. | ||
shapr | looks like a tilde to me | ||
castaway | odd, I see three bars on input, and bar, B (reverse video) bar, on output | 10:58 | |
mugwump switches to mlterm, and now at least when he presses AltGr+E he sees a real Ā£Ć” | 10:59 | ||
castaway | A real what? :) | ||
mugwump | :-/ | ||
shapr | I like Ā£Ć”zy Ā£Ć”nguages. | ||
theorbtwo | I was wondering that too. | ||
shapr, then you're in luck; perl6 will be rather lazy. | |||
shapr | w00h00! | 11:00 | |
shapr boings furiously | |||
theorbtwo | (We've always expected our users to be lazy, now are language will be too!) | ||
mugwump | lazy languages are just a way to eat up all your stack | ||
s/stack/heap | |||
shapr | But they only do that when they get around to it. | ||
Maybe tomorrow. | |||
mugwump | sure | ||
integral | Don't panic, read modules/README | TODOification for release | pugscode.org <<Overview Journal Logs>> | pugs.kwiki.org | smoke: xrl.us/fmw2 | xp/msys:r1501(all 3846 pass) win2k:r1501(all 3846 pass) Linux:r1302(193/3383) MacOSX:r1511(all 3835 pass) | 11:33 | |
drbean | I got the same linking error with 6.0.14 | 11:56 | |
Linking ... | |||
collect2: ld terminated with signal 9 [Killed] | |||
make: *** [pugs] Error 1 | |||
But when I ran make the second time I didn't get the error. | 11:57 | ||
decay | drbean: low memory and someone killing processes? | 12:09 | |
gaal | how far are we from embedding c? | 12:15 | |
shapr gets a REALLY big hammer. | |||
theorbtwo | Welcome back, gaal. No idea. | ||
The way we're going, I suspect the best way to do that is by embedding haskell that embeds C. | 12:16 | ||
gaal | thanks, i'm at $work and i keep being whisked away. total time spent in front of my box: 20 minutes | ||
theorbtwo | Sounds like a "fun" day. | 12:17 | |
gaal | you need glue to connect perl > (haskell) < c | ||
shapr | embedding means inline C? or just bindings to a C lib? | ||
the second is available immediately. | 12:18 | ||
gaal | how? | ||
shapr | GHC's Foreign Function Interface | ||
gaal | and how do i bind form perl to that? | 12:19 | |
from | |||
shapr | Look at www.haskell.org/hawiki/FfiTutorial for the Haskell side. | 12:20 | |
gaal | (plus, of course, i don't want to recompile pugs itself every time i change my script or my library) | ||
that example uses a very useful c funciton. | |||
hmm, i don't understand the haskell arch, but i remember autrijus mentioned on-the-fly compilation. so are you suggesting, shapr, that pugs create haskell<->c bindings on the fly according to perl6 directives? :) | 12:22 | ||
shapr | Truly, you'll need to use strfry every day of the week. | ||
Well, it depends on what you mean by that. It can be done. | |||
gaal | okay, what i *want* eventually is Gtk2 bindings for pugs. :) | 12:23 | |
shapr | Oh, you could just use gtk2hs. | ||
more colloquially, "we've already got one!" | |||
gaal | but again -- how is that callable from perl? | ||
shapr | Same you call everything else. | 12:24 | |
gaal | which is? | ||
i'm missing the example of calling embedded code. | |||
shapr | Do you know how to make a builtin for pugs? | ||
gaal | nope. i don't know much haskell. | 12:25 | |
(but am willing to learn.) | |||
shapr | That's the cheesy easy to use approach, just make a new builtin. I'd look for a way to export Haskell functions into the pugs namespace if I were you, then you don't have to write so much code. | ||
theorbtwo | It's on the wiki, as CreatingANewBuiltIn, or something of the sort. | ||
gaal | grr brb | 12:26 | |
theorbtwo wonders if he wants to tackle dynamicly loaded modules. | |||
shapr | New builtins will work, but it's not a sustainable approach. More sensible would be something that dumps all the names into a namespace/module/whatever in pugs, and then you can write tiny wrapper yourself. | 12:27 | |
The wrapper would just be so you get idiomatic behaviour from the binding. | 12:28 | ||
gaal | there are hundreds of functions in the gtk api | ||
very happily, they all adhere to a pretty strict naming convention. | |||
shapr | That's one reason I wouldn't want to have a new builtin for each. | ||
gaal | so you can analyez the .h files and come up with a hierarchy | ||
which is what the Gtk2 (p5) folks did | 12:29 | ||
theorbtwo | There's a hack whereby you can give "builtins" with full namespaced names. | ||
(Used for cwd.) | |||
gaal | but all this isn't enough. what's the container for objects? | ||
shapr | Hm, that might be more sustainable. | ||
container? | 12:30 | ||
gaal | like, i create a button | ||
who actually takes care of the memory for htis button? | |||
well, it's gtk itself | |||
shapr | gtk2hs deals with the memory for you. | ||
gaal | through glib's reference mechanism | ||
but i need to hold the handle - which in c is just a pointer - what is it in perl? | 12:31 | ||
theorbtwo | An object. | ||
shapr | Good question, I don't know. | ||
theorbtwo | The problem is that we don't have objects yet. | ||
shapr | I am lambda-only for the moment. But I'm learning. | ||
gaal | do you know gtk, shapr? | ||
(i can't help thinking you've already done the hard part :) | 12:32 | ||
theorbtwo | OTOH, you can fake it with an integer. | ||
shapr | Nope. But the first issue of TMR had a gtk2hs tutorial article. | ||
gaal | TMR == ? | ||
shapr | And the next issue will have another from one of the gtk2hs authors. | ||
The Monad.Reader | |||
it's a Haskell ezine. | |||
I'm the editor! Can you believe anyone depends on me for organization? What happens if my Ritalin runs out? PANIC! | 12:33 | ||
gaal | well, you can certainly hand out opaque handles via one place, and let that store c pointers behind hte scenes | ||
(what to2 said) | 12:34 | ||
ezines++ | |||
theorbtwo | gaal, GTK is very OO -- it just implements it's own OO in C, largely with macros. | ||
shapr | Yeah, I got tired of acm.org etc shutting me out of cool research papers, so I figured I'd fix that problem myself. | ||
gaal | to2, i know. i've hacked with it and even a bit on it. | 12:35 | |
like it a lot, which is why i'd love to have bindings in pugs :) | 12:36 | ||
shapr | Haskell is easy to learn, jump in! | 12:37 | |
gaal | yeah, i've heard that one :) | ||
theorbtwo | However, it really doesn't seem to mesh well with the sort of dynamicisim I'd like to have this have. | ||
Is it just me, or does t/rules/s_perl5.t take a really really long time to run? | |||
gaal | not just you | 12:38 | |
theorbtwo | I can't figure out how to pass a String that is the name of a library, and get back a callable function from that library. | ||
I can only do that as a declaration which requires me to have the name of the library at compile-time. | |||
gaal | in hat language? | ||
theorbtwo | In haskell. | ||
gaal | ah :) | ||
shapr | For what library? | 12:39 | |
gaal | TH? :) | ||
shapr | yeah, TH solves many problems. | ||
theorbtwo: can you give an example? | 12:40 | ||
theorbtwo | Bootstrapping extensions. | ||
I do a "use Foo", which loads Foo.pm. | 12:41 | ||
Foo.pm calls a builtin, which loads libfoo.so, and calls a function in it named bootstrap. | |||
shapr | Once you get into .so loading, I don't know. But some of the people on #haskell will. | 12:42 | |
theorbtwo | Hm, I wonder if what I want to do is simply write a haskell wrapper around libdl, and use that. | 12:43 | |
For very large values of "simply". | |||
shapr grins | 12:44 | ||
there is something like that, hs-plugins does dynamic loading of code in Haskell. | |||
theorbtwo | Oooh, where? | 12:45 | |
shapr | it's based on GHCi, which does use the standard linux .so loader to some degree. | ||
www.cse.unsw.edu.au/~dons/hs-plugins/index.html | |||
At the moment, hs-plugins doesn't work on win32, but that's soon to change. | 12:46 | ||
theorbtwo | Mmm, yes, that's exactly what I was looking for. | ||
OK, well, very close. | 12:47 | ||
theorbtwo wonders what Autrijus thinks of LGPL-compatability. | |||
shapr | hs-plugins does very nifty stuff. It's used in an editor that's more dynamic than emacs, because it can edit itself, save state, rebuild itself, and completely reload all the code, and then reload the state. Takes about 0.1 seconds on my dual 1.5GHz. | 12:48 | |
theorbtwo | Impressive. | ||
Perhaps I should change; the emacs culture pissed me off mightly yesterday. | 12:49 | ||
shapr | Yi isn't quite ready yet, but the focus is on heavy duty programmability. | ||
The first version of the syntax highlighting code was added yesterday. | |||
theorbtwo | YOU WILL INDENT YOUR CODE THE WAY WE SAY. NO, WE WON'T TELL YOU WHY. YOUR DISTINCTIVENESS WILL BE IGNORED COMPLETELY. | 12:50 | |
shapr | Do you know the semantic bovinator in emacs? | ||
theorbtwo | bovinator? | ||
shapr | It's lex/yacc in/for elisp. | ||
theorbtwo | Ah. No, I didn't. | ||
shapr | JDEE and other CEDET based emacs plugins use semantic. It builds full parse trees for your sources, gives you 'intellisense' autocompletion, etc etc. | 12:51 | |
theorbtwo | Nifty. | ||
shapr | It's a great idea, but slow and buggy in practice. | ||
I dunno if that's just because it's in elisp or what. | 12:52 | ||
Anyway, ever since I read about refactoring browsers for the first time, I wanted an editor that allowed me to do transformations on the parse tree of my document. | |||
And I wanted syntax highlighting, indentation, etc to all be based on an incremental parser. | 12:53 | ||
That's the direction Yi is taking. | |||
fully scriptable with Haskell, all modes parser based, that sort of stuff. | |||
Should be fun. | 12:54 | ||
shapr has wandered off the topic again | |||
theorbtwo | In camelland, we tend to not so much care. | 12:55 | |
shapr | theorbtwo: I think there's at least one FFI tool that autogenerates calls from .h files. | ||
theorbtwo | Yeah, but FFI requires that you know everything at compiletime, which I don't like. | ||
shapr | Most people in most lands don't care, but I think parse tree based editors are a powerful tool, and I'd like to see some high quality open source versions. | ||
theorbtwo | But it looks like hs-plugins doesn't. | 12:56 | |
No, I mean don't care about going off topic. | |||
shapr | Oh :-) | ||
Well, I don't want to distract people from getting stuff done for pugs. | 12:57 | ||
theorbtwo | Perl has a fair bit of support for manuipulating perl from perl, ilke B::Deparse. | ||
(Which takes a parse tree, and transforms it back into perl source.) | |||
shapr | imho, momentum is important in any project. | ||
rgs | or B::Generate. | ||
shapr | Oh, nifty | ||
theorbtwo | For perl 6, it's one of the major design goals. | ||
shapr | Are there already Perl refactoring browsers then? | ||
theorbtwo | Not that I'm aware of. | ||
The problem with B::Deparse is that it uses the real perl parser, which tends to throw away a lot of stuff the user cares about that isn't neccessary to run the code. | 12:58 | ||
shapr | If you get a refactoring browser into the hands of some of the prolific perl coders, I bet you'll have one soon. | ||
theorbtwo | Larry is working on fixing that for the perl5->perl6 converter. | ||
shapr | I understand, I tried to write a Python refactoring browser using Python's own parser. | ||
pjcj | Piers is keen on having a good refactoring browser. | 12:59 | |
shapr | I ended up using a decorated parse tree object, adding comments and more. It ended up being too heavy. | ||
There are some existing language agnostic refactoring frameworks like the MetaEnvironment. But the MetaEnvironment is very heavy, it has a large number of dependencies. | 13:01 | ||
Which means, I've never been able to get it to build and work =) | |||
pjcj: who's Piers? | |||
theorbtwo | Hm, does IO (LoadStatus a) imply anything other then that it gives you a inside of both the IO and LoadStatus monads? | 13:02 | |
shapr | no, that's all it means. | 13:03 | |
theorbtwo | Piers Crawley, a notable perl hacker; until fairly recently wrote the weekly perl 6 summaries. | ||
shapr | You can turn that into Eval (LoadStatus a) with liftIO, I dunno about LoadStatus though. | ||
Nowadays, monads look a lot like OOP to me. The difference is that the OOP monad is implied and unchangeable, so you never see it. | 13:05 | ||
OOP is a set of rules that describe 'how to combine these chunks of code', like subclassing means steal this other guy but write this stuff on top of him. | 13:06 | ||
Each monad is a description of a way to combine code. | 13:07 | ||
Does that sound reasonable or understandable? | |||
castaway looks back in from a support session, to wonder whats going on | 13:08 | ||
shapr | I want emotional support too! | ||
castaway hugs shapr | |||
(thats easy :) | 13:09 | ||
shapr | oh wait, you're doing tech support? | ||
shapr grins | |||
yay! I got a hug! | |||
castaway | more or less, yeah | ||
shapr bounces cheerfully | |||
castaway | heh :) | ||
easy to please, you is | |||
shapr | With hugs, yes. | ||
castaway scrolls back to see what theorbtwo was shouting at | 13:10 | ||
(oh, them) | |||
theorbtwo gives castaway a big hug. | |||
There you are. | |||
shapr | Hugs are like chocolate, without the calories. | ||
theorbtwo | Hugs is like GHC, only without so many extensions. | ||
shapr snickers | |||
GHC has more flags than the UN. | |||
castaway hugs theorbtwo lovingly. | 13:11 | ||
theorbtwo | Nice line, shapr. | ||
castaway | ,) | ||
shapr grins | |||
theorbtwo wonders why insel can't seem to play oggs without skipping. | 13:12 | ||
castaway flicks through 5 other windows andback to this one | |||
shapr | I only wish I wrote useful code as often I get quoted. | ||
castaway | (and then answers the tel) | ||
shapr | Oh! Try mpd and mpc! mpd is a great music player. musicpd.org/ | 13:13 | |
theorbtwo | Your opera is sucking CPU; I'm going to shut it down. | ||
castaway | umm, dunno, worked fine for me | ||
ok | |||
theorbtwo | Hm, odd, when I pop up the app-switching menu, the player stops skipping. Leaving it up. | 13:14 | |
Oh, I'm silly. | 13:15 | ||
LoadStatus isn't a monad. | |||
castaway | aeh, usually its the other way around.. it tops playing as soon as the menu is there | ||
stops, even | 13:16 | ||
castaway wonders if its hometime yet | |||
shapr quoted theorbtwo recently | |||
castaway | was it fun? | 13:17 | |
theorbtwo | What did I say? | 13:18 | |
xerox wanted to join the hugs party :-( | |||
castaway hugs xerox | 13:19 | ||
xerox | ^__^ | ||
theorbtwo hugs castaway, and mouths "all mine" very clearly. | 13:20 | ||
xerox prepares to the fight | 13:21 | ||
theorbtwo | You see, the implicit assumption in such a fight is that the spoils would go to the winner. I don't think that'd work out the way you want. | 13:22 | |
shapr | theorbtwo: at the bottom of www.scannedinavian.org/AvianWiki/QuotesPage | ||
xerox hugs castaway away from theorbtwo ;) | 13:23 | ||
shapr | slightly edited for conciseness. | ||
it's a cute quote. | |||
theorbtwo still thinks that there is such a thing as too much of a good thing. | 13:24 | ||
shapr | I've never tried moderation, but it doesn't look like much fun from here. | 13:25 | |
autrijus | greetings lambdacamels! | ||
shapr++ # 21:10 < shapr> GHC has more flags than the UN. | |||
shapr snickers | |||
y0 autrijus! | |||
castaway | (tel, yet again) | 13:26 | |
Steve_p | hey autrijus | ||
castaway | xerox: no fair, whenI'm not looking | 13:27 | |
castaway runs back to theorbtwo. | |||
theorbtwo gives castaway a kiss. | 13:28 | ||
(And a /msg.) | |||
shapr | c'mon guys, get a room. | ||
castaway | oh shapr, I wouldnt have taken you for one of those | 13:29 | |
shapr | one of those what? | 13:30 | |
I am in fact a Southern Baptist. | |||
castaway | those "kissing is too much already" people | ||
shapr | Realistically, it just distracts me from coding. | 13:31 | |
castaway | well dont look :) | 13:36 | |
shapr | :-P | ||
castaway continues to procrastinate | |||
shapr too | |||
theorbtwo stops his one form of procrastination to get back to the slightly more productive one of reading gs-plugins docs. | 13:42 | ||
castaway | anywy, I bet if I get started, I'll get called again,) | 13:43 | |
autrijus | hrm. segfaults still in itneractive shell. | 13:46 | |
autrijus is annoyed enough to fix it | |||
theorbtwo | OK, I think I understand the hs-plugins bit well enough to start thinking about the pugs side of things. | 13:48 | |
And it would seem that I have mildly decent timing, as autrijus is about. | |||
autrijus | ooh wow. | ||
ok. you can totally help me :) | |||
theorbtwo | Autrijus, what's the best place to start plugging in new functions? | 13:49 | |
shapr | autrijus: I didn't figure out how to turn that cute bit of code you wrote into want.{Scalar,List,...} and I won't have any time in the next seven days to look at pugs. lots of $work. | ||
autrijus | shapr: that's just fine. :) | ||
castaway | excuses excuses, shapr :) | ||
shapr | castaway: I know, it's pitiful. | ||
But I don't want to leave even a partial lock while I'm working. | |||
theorbtwo wonders how work can be a scalar and be measured in "lots". | |||
shapr | and then I can start anew when I return! | 13:50 | |
autrijus | theorbtwo: so, check out SHA1? | ||
tpe.freepan.org/repos/ingy/SHA1/ | |||
make and make install it | 13:51 | ||
(have to install pugs first) | |||
theorbtwo | Um, does that actually work? | 13:52 | |
autrijus | that works | ||
should work, anyway. | |||
theorbtwo | Oh. In that case, I think the stuff I was planning on doing is already done. | ||
autrijus | no, it's not | 13:53 | |
you can compile and install SHA1 | |||
loading it into pugs is spotty at the moment. | |||
that is where theorbtwo comes in | |||
and save the world | |||
castaway | ,) | 13:54 | |
yay :) | |||
theorbtwo | Ah: "inline" -> do retVal VUndef | ||
autrijus | that is not the only problem :) | 13:55 | |
theorbtwo | You have a very strange definition of "works", autrijus. | ||
autrijus | so, make ghci | ||
theorbtwo: it works on the SHA1 side | |||
the pugs side needs more work. | |||
so, make ghci | |||
and do | |||
eval "require_haskell('/usr/local/lib/perl6/site_perl/mach/SHA1__0_0_1.o')" | 13:56 | ||
where the .o file is the place SHA1 installed its stuff | |||
you should see | |||
*** Exception: user error (Unable get qualified name from: /usr/local/lib/perl6/site_perl/mach/SHA1__0_0_1.o) | |||
that's where I left off. src/External/Haskell.hs line 22 | 13:57 | ||
the idea is quite clear | |||
just load that .o, read the extern__ table from it | |||
then load every function | |||
easy as pie | |||
castaway | "just" he says | ||
autrijus | however, the MT_Module load fails for some reason. | 13:58 | |
if you want to help, please grab the CVS version from | |||
www.dtek.chalmers.se/~d00ram/dynamic/ | |||
which is what pugs uses | |||
and learn how the PathLoader works by the example in it | |||
and go back and fix External.Haskell.loadHaskell | |||
that's all. :) | |||
mugwump | linux-- # can't see my shiny new DVD writer | 14:14 | |
theorbtwo | It's a poor workman that blames his tools. | 14:16 | |
PerlJam | theorbtwo++ indeed | ||
theorbtwo | OTOH, I haven't gotten linux to play nice with my shiney new DVD burner either. | 14:17 | |
mugwump | oh, yeah, I'm just not using the kernel properly. nice one. | 14:19 | |
theorbtwo | What kernel? | 14:20 | |
mugwump | 2.6.10. Maybe I should try 2.6.11.6 | ||
theorbtwo | What are you trying to use to burn? | 14:21 | |
mugwump | being able to see the device would be a good start | 14:23 | |
mugwump sighs | |||
theorbtwo | Do a cdrdao scanbus | ||
mugwump | Nada | 14:25 | |
I've got loads of the relevant modules loaded... sbp2, scsi_mod, sr, sg, two 1394 related modules, it doesn't event show up on dmesg... oh well | 14:27 | ||
theorbtwo | Oh. | ||
What sort of DVD burner is this? | |||
mugwump | firewire | ||
theorbtwo | Oh. | ||
I was thinking IDE. I have no firewire experince. | |||
chip | For firewire you'll need SCSI_CDROM too | 14:28 | |
autrijus: a question, if you're still around ... ? | 14:29 | ||
mugwump: oh, you already have sr ... n/m | 14:30 | ||
autrijus | chip: yes? | ||
chip | autrijus: I'm interested in playing with Parsec in a non-Perl6 context, and I'm curious why you chose to copy & modify it rather than use it in its standard form | 14:31 | |
(yes, this means I'm learning Haskell. It's fascinating) | |||
autrijus | chip: ok. the choice is so that it can be teased into the Eval monad. | ||
and gradually morphed into P6 Rules. | |||
jabbot | pugs - 1512 - * go back and kwidify some more changelo | 14:32 | |
PerlJam perks his ears | |||
autrijus: What about Parsec precludes it from being teased into p6 rules as is? | |||
autrijus | PerlJam: uh, nothing? | ||
stevan | autrijus: hey there, sorry about missing my Changelog duties, the "real" world caught up with me :) | 14:33 | |
autrijus | point being, can't do that using the Parsec API | ||
have to change the source. | |||
stevan: that's fine, gaal did a wonderful job :) | |||
stevan | yes I saw :) | ||
autrijus | oh, I assume you have some want to magically look at unTODO and unTODOme | ||
and remove todo_ | |||
so maybe you can do that :) | |||
stevan has just spent the past hour+ reading 2 days of backlogs, that will teach him to leave his computer | 14:34 | ||
autrijus: yes, I can do that | |||
autrijus | stevan++ | ||
PerlJam: it's basically like how lwall forked henry specer's regex library... | |||
PerlJam | autrijus: yeah, as soon as I'd asked the question I thought of several plausible answers :) | 14:35 | |
autrijus | :) | 14:36 | |
chip | autrijus: no fair appealing to divine authority :) | ||
autrijus | fair is in the eye of the beholder :) | 14:37 | |
kbrooks | Here I am | 14:43 | |
kbrooks jumps from the sky into the channel | |||
autrijus | greetings. | ||
you have safely landed the the lambdacamel anarchistic commune. | 14:44 | ||
kbrooks | PerlJam, hi. :) | ||
autrijus | s/the/to/ | ||
theorbtwo | Watch the landing. | ||
PerlJam | hello kbrooks | ||
kbrooks | PerlJam, i like your nickname. 'Jam' fits ;) | ||
theorbtwo | You have safely landed the the lambdacamel anarchistic commune | pugscode.org <<Overview Journal Logs>> | pugs.kwiki.org | smoke: xrl.us/fmw2 | xp/msys:r1501(all 3846 pass) win2k:r1501(all 3846 pass) Linux:r1302(193/3383) MacOSX:r1511(all 3835 pass) | 14:45 | |
kbrooks | ok, i like this | 14:45 | |
autrijus | pugscode.org <<Overview Journal Logs>> | You have safely landed to the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | 14:45 | |
castaway | s/to/in/ | 14:45 | |
kbrooks | svn.perl.org/perl6/pugs/trunk/examp...-server.p6 | 14:46 | |
castaway | (I assume) | ||
autrijus | (the tests are being unTODOed; "all tests pass "is soon irrelevant) | ||
kbrooks | it's so....cool | ||
:P | |||
autrijus | :D | ||
and, unlike perl5, it actually works and won't eat your computer | |||
PerlJam | autrijus: btw, what's with the ghc 6.4 requirement now? | ||
theorbtwo | pugscode.org <<Overview Journal Logs>> | You have safely landed in the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | 14:47 | |
kbrooks | i'll download perl 6 | 14:47 | |
autrijus | PerlJam: we are using GADTs, and compiler/inline haskell need THs | ||
kbrooks | brb | ||
castaway | much better | ||
autrijus | and I'm tired of #ifdef | ||
Schwern | autrijus: unTODOd? | ||
autrijus | Schwern: all failing tests are TODOed before the release | ||
and unTODOed shortly afterwards | |||
Schwern | Ahh | ||
autrijus | it's a way to keep some sanity | 14:48 | |
castaway | unTODOified | ||
integral | are releases branched? If so, perhaps we could just TODO the tests on the branch, so they don't need unTODOed? | ||
autrijus | releases are unbranched. | ||
Schwern | Or just flip some bit in the harness | ||
autrijus | mm. how? | ||
Schwern | I mean, you're not physically going into each test and removing the TODO line, are you? | ||
kbrooks | wow | ||
autrijus | Schwern: no, we add a # unTODOme marker | 14:49 | |
and use scripts to toggle them | |||
integral | oh, scripts, neat | ||
kbrooks | p6 is completely object oriented. | ||
Schwern | autrijus: In each test | ||
PerlJam | kbrooks: something like that. | ||
autrijus | Schwern: in each test that is testing a bug | ||
kbrooks | autrijus, ... *wonders* ... You started this project? | ||
integral | kbrooks: you say that like its a good thing ;-) | ||
autrijus | sure. it is also completely function oriented, and completely logic oriented, and completely data oriented. | 14:50 | |
kbrooks | integral, It is. | ||
Schwern | autrijus: Oh, that's kinda silly. Lemme see if there's a way you can just flip a switch inside the harness to change the TODO test behavior. | ||
autrijus | not to mention procedure oriented. | ||
kbrooks | "logic oriented"? | ||
autrijus | kbrooks: like, prolog, or make | ||
Schwern | Except... gah, don't have GHC 6.2 | ||
autrijus | kbrooks: and yes, I started this project some 63 days ago :) | ||
Schwern | err 4 | ||
autrijus | the .dmg file is availalb | 14:51 | |
Schwern | Many moons ago. Ok... two moons ago | ||
autrijus | available | ||
Schwern | autrijus: Yeah, I know... but me like dpkg. | ||
autrijus purrs apologetically | |||
Schwern | Hmm. Murr made the fink package... | ||
autrijus | but, ghc 6.4 is like perl 5.8. | ||
meaning, backcompat is painful once you start using any of the new semantics | 14:52 | ||
PerlJam | autrijus: except that it came out in March | ||
Schwern | Just vague grumbling. | ||
PerlJam | :-) | ||
autrijus | March is, like, stone age, man | ||
kbrooks | autark-jp, And you started this project because? | 14:53 | |
er | |||
autrijus, * | |||
Schwern | He CRAAAAZY | ||
kbrooks | damn nick compl8etion | ||
autrijus | kbrooks: pugscode.org, click on "interview" | ||
and "overview" | |||
kbrooks | k. | ||
stevan | Schwern: one problem with unTODO-ing with the harness is that some tests cause parsefails and so need to be adjusted by hand | ||
Schwern | parsefails? | 14:54 | |
autrijus | that reminds me. | ||
I need to make parsefails go away. | |||
stevan | and also, not all TODO's are actually broken | ||
autrijus haxx0rs | |||
stevan | some are actually TODO :) | ||
autrijus | right. we divide tests into "future" and "bug" | ||
stevan | (aka - unimplemented features rather than unfixed bugs) | ||
Schwern | Yeah, wait a second. Why are you untodo'ing before release? | ||
autrijus | actually, "we" means "luqui" here | ||
but we kind of grow to like it | 14:55 | ||
Schwern: because I don't like getting 16,384 mails from cpan users and testers. | |||
stevan | so scripts only work so much | ||
Schwern | Oh... todo before release. | ||
nm | |||
autrijus | todo before release. | ||
Schwern | Its early yet | ||
GGHC 6.4 | 14:56 | ||
autrijus | ooh I discover cvs.perl.org/viewcvs/cvs-public/ponie/Roadmap | ||
theorbtwo notes that you usually don't mention the Glorious part. | |||
kbrooks | autrijus, i love the interview | ||
autrijus | the G stands for "Glorious Glasgow" | ||
kbrooks | ;) | ||
autrijus | kbrooks: :) | ||
Schwern | theo: But its so amusing | ||
autrijus | Schwern: you know the story behind "Glorious"? | 14:57 | |
Schwern | Nope | ||
autrijus | ok. so GHC is written in GHC | ||
but that's not possible in the beginning | |||
so many parts of it needs to be bootstrapped from another language | |||
that language turns out to be Perl5. | |||
kbrooks | bootstrapped? | ||
autrijus | the parts written in Perl5 are deemed "Evil", as in "Evil Mangler", etc | ||
and after each part was successfully rewritten in GHC, it's renamed to "Glorious" | 14:58 | ||
kbrooks | autrijus, WTF? i swear i didnt know GHC was written in perl | ||
:| | |||
autrijus | kbrooks: part of it is. now very little, was more | ||
in fact, as of now, only the mangler part is evil; all other parts are glorious. | |||
theorbtwo | It seems only fair that we now use GHC to bootstrap perl. | ||
kbrooks | heh, yeah. | 14:59 | |
PerlJam | not only fair, but quite fitting | ||
kbrooks | autrijus, are there directions on the site on p6 compilation | ||
Schwern | autrijus: Did you find this out before or after you started pugs? | ||
autrijus | kbrooks: perldoc script/pugscc | ||
Schwern: after. I think a few weeks ago | |||
I was greatly amused. | |||
PerlJam | autrijus: are the gghc people aware of pugs? | 15:00 | |
autrijus | PerlJam: sure. :) I got mail from wadler to be listed on his "functional language in real world" page | ||
PerlJam | (obviously they know and like perl well enough to write a haskell compiler, maybe they'll be willing to help with the perl6 compiler) | 15:01 | |
autrijus: cool | |||
kbrooks | autrijus, nope. neither found | ||
autrijus | er, / is the directory delimiter | ||
kbrooks | ? | 15:02 | |
autrijus | "pugsdoc script\pugscc" if you are on win32. | ||
err | |||
"perldoc script\pugscc" if you are on win32. | |||
or just "perldoc pugscc" if you have installed pugs | |||
PerlJam | kbrooks: Are you just looking to compile pugs? | ||
autrijus | or using pugs to compile perl 6 code? | ||
kbrooks | autrijus, i havent installed pugs | ||
autrijus | ah. do so. there's a release. :) | ||
kbrooks | PerlJam, yes | ||
autrijus | search.cpan.org/dist/Perl6-Pugs/ | 15:03 | |
the instructions are in README | |||
PerlJam | kbrooks: oh, once you've got all the right pieces, it's just "perl Makefile.PL && make && make test" :_) | ||
er, :-) | |||
kbrooks | lol. | ||
PerlJam | Pm said last week that perl6 stuff has top priority for him now, so unless life intervenes, I expect we'll see an updated PGE (and maybe more) by the end of the week. | 15:06 | |
Odin- curses, and waits for debian to include GHC 6.4... :p | |||
A long wait, I rather suspect. :) | |||
PerlJam | It's always a good sign when I can't find Pm in any of the normal on-line places because that means he's working. | ||
Odin- | PerlJam: Cool. | ||
PGE good. | 15:07 | ||
kbrooks | er | ||
kbrooks stuid | |||
stupid | |||
i need ghc | |||
PerlJam | ghc 6.4 even | ||
integral | you can get a .msi from haskell.org/ghc/ | ||
kbrooks | integral, I am not on windows | 15:08 | |
I am on linux | |||
integral | oh, well that's even bette then :-P | ||
kbrooks | i scrapped windows | ||
autrijus | which of the 16,384 flavours of linux are you on? | 15:09 | |
kbrooks | LOL | ||
kbrooks laughs | |||
theorbtwo | Odin: You can get it from experimental -- add experimental to your /etc/apt/sources.list, and apt-get install ghc6=experimental. | 15:10 | |
kbrooks | i'm on ubuntu. | 15:11 | |
theorbtwo | In that case, try following my instructions for debian. | ||
autrijus | so the same instruction above should work for you too | ||
mugwump | it's in debian experimental apparently | ||
kbrooks | HOW do i add experimental? | ||
what's the line | |||
mugwump <-- gave up and grabbed the libc6 binary package | 15:12 | ||
theorbtwo | deb ftp.at.debian.org/debian ../project/experimental | ||
(Adjust that .at. as approps.) | |||
mugwump | then you probably need to do apt-get -t experimental install ghc6 or something like that | ||
kbrooks | weird | 15:13 | |
malformed line 20 | |||
theorbtwo | Er, whoops, you did need the extra bits... | 15:14 | |
deb ftp.at.debian.org/debian ../project/experimental main contrib non-free | |||
kbrooks | heh | 15:15 | |
there | |||
downloading | |||
experimental is so.....risky | 15:16 | ||
autrijus | ghc is not risky though :) | ||
kbrooks | rigtho | ||
righto | |||
theorbtwo | It won't get things from experimental unless you explicitly tell it to, though. | ||
kbrooks | why? | 15:17 | |
theorbtwo | Because experimental is risky, I assume. | 15:18 | |
autrijus | because debian takes care of you :) | ||
kbrooks | ;) | ||
theorbtwo | Debian is nice like that -- it protects me from myself as much as I want, but also as little as I want. | 15:19 | |
Autrijus, the more I look at this thing you're using, the more convinced I am that you didn't want that at all, you want www.cse.unsw.edu.au/~dons/hs-plugins/ instead. | 15:22 | ||
Specificly, what we want is to not load the stuff into the haskell namespace, but instead to load the library and call a single function, which returns a table of functions. | 15:23 | ||
The errors we're getting are because it doesn't know where in the haskell namespace to put it. | |||
autrijus | mm, I thought NameLoader/PathLoader does that too | 15:24 | |
I tried hsplugins first. it did not build on my fbsd (but that can be worked around) | |||
theorbtwo | Hm, I'll keep looking. | ||
autrijus | and dons wants to keep hs-plugins as gpl | ||
theorbtwo | I didn't actually try compiling it yet. | ||
autrijus | which I'm only willing to bite if there's no alternatives | ||
theorbtwo | LGPL, but yeah, that might suck for us. | ||
autrijus | LGPL? | 15:25 | |
ah. right. | |||
theorbtwo | v0.9.2 change licence to LGPL | ||
autrijus | ok. my info was old. | 15:26 | |
LGPL is quite ok, then. | |||
theorbtwo | Oh, OK. | ||
Anyway, I'll keep reading the DynamicLoader stuff. | |||
autrijus | ok. if you conclude it is hopeless, please turn it into hsplugins | 15:27 | |
LGPL is fine. | |||
stevan | autrijus, all: what was the last failing count on the tests? | ||
autrijus | I forgot :/ | 15:28 | |
stevan | ok I am running a fresh build and the tests right now | ||
I will commit when its done | |||
autrijus | danke | 15:29 | |
kbrooks | Back. | 15:31 | |
autrijus | yo. | ||
kbrooks | i had to rebot due to the fact that i didnt have any swap partition | ||
it pratically froze up | 15:32 | ||
ok | |||
without the swap, compilation went slow | 15:33 | ||
and it was my last straw | |||
so i rebooted | |||
:P | |||
stevan | 195/3716 subtests failed | 15:41 | |
kbrooks | heh, running the tests | ||
stevan | but 7 of the test files died | ||
kbrooks: unTODO-ing them :) | 15:42 | ||
kbrooks | oo now | ||
stevan | commiting it now | ||
pugscode.org <<Overview Journal Logs>> | You have safely landed in the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X (195/3716) | 15:43 | ||
mj | Pugs r1512, win32, ActivePerl 5.8, GHC 6.4, nmake | 15:43 | |
All tests successful, 2 tests skipped. Files=173, Tests=3835 | |||
All tests successful, Files=4, Tests=270 | |||
All tests successful, Files=2, Tests=8 | |||
All tests successful, Files=1, Tests=20 | |||
stevan | mj: svn up and you should get failures | 15:44 | |
kbrooks | What new, special and/or important features are in Perl 6? | 15:45 | |
stevan | kbrooks: that is a loaded question. A lot has/is changed | 15:46 | |
PerlJam | kbrooks: go to dev.perl.org/perl6 and read | ||
stevan | and everyone has their favorites | ||
stevan like junctions and multi-subs right now :) | |||
autrijus | kbrooks: better, search.cpan.org/dist/Perl6-Bible/ | 15:47 | |
PerlJam | kbrooks: a quick summary would be that the syntax has been regularized and extended, built-in OO support, better type system, improved RE syntax, etc. | ||
kbrooks | a few tests got skipped | 15:48 | |
stevan | kbrooks: what do you mean? | ||
autrijus | he probably means the 2 tests skipped in the pugsrun (I think) | ||
kbrooks | t/pugsrun/06-dash-version..................skipped | ||
all skipped: no reason given | |||
autrijus | right. never mind that. that's normal | 15:49 | |
kbrooks | why is it | ||
Aankhen`` | "Improved RE syntax"... heh. | 15:50 | |
That's a misleading statement. | |||
theorbtwo | "Decided RE syntax was a dead end, replaced it with rules, which are better in just about every concivable way." | 15:51 | |
kbrooks | "All tests successful, 2 tests skipped. | ||
Files=173, Tests=3835, 843 wallclock secs (768.91 cusr + 9.15 csys = 778.06 CPU)" | |||
autrijus | kbrooks: that test was skipped for everyone; it's basically that the test is unfinished | ||
and I ran out of time before 6.0.14 release to figure out how to fix it properly | |||
so I skipped them | |||
kbrooks | ok | ||
autrijus | or rather, maybe s/I/gaal/, or maybe s/I/Corion/ | ||
I lost count :) | |||
kbrooks | :P | 15:53 | |
ok | 15:55 | ||
now to test | |||
theorbtwo | Hmm... are underscores legal characters in heigherical namespace name sections? | 15:56 | |
autrijus | _foo::bar ? | ||
foo::_bar? | 15:57 | ||
sure yes. just like p5 | |||
theorbtwo | Er, haskell namespace. | ||
autrijus | oh. no idea. prolly not | ||
try and see | |||
kbrooks | cool. | 15:59 | |
theorbtwo | That'd explain the problem. | ||
autrijus | ah. wow! | ||
mj | kbrooks: then Dan Sugalski, Perl 6 Internals TPC 5.0 - dev.perl.org/perl6/talks/tpc5-inter...rnals.html and www.parrotcode.org/ | 16:00 | |
autrijus | uhm, SHA1__0_0_1 works. | ||
kbrooks | perl6 is cool. | ||
autrijus | it's legal, just not leading | ||
theorbtwo | Don't get too excited; it doesn't seem to work. | 16:01 | |
kbrooks | :O | 16:12 | |
autrijus | developers.slashdot.org/article.pl...04/1520227 | 16:14 | |
kbrooks | autrijus, heh, pugs is classy | ||
oop | |||
what the hell? | |||
sub hi($msg) { say $msg; } | 16:15 | ||
and: | |||
hi("bitch\ra"); | |||
result in: | |||
"aitch" | |||
returning | |||
bool::true | 16:16 | ||
autrijus | that is indeed correct. | ||
exactly what happens in perl5, even | |||
kbrooks | what does the \r do? | ||
autrijus | oh wait, "aitch"? | ||
the \r sets lf | |||
so "a" overwrites "b" | |||
that's correct. | |||
you may want \n instead if you want newline | |||
kbrooks | linefeed? as in basck to the line? | ||
and \b erases the line........ | 16:17 | ||
integral | \b is a single backspace (BS) character | ||
kbrooks | yeah | ||
erases the char | |||
if you loop with the length, it will erase the line | |||
autrijus | I think it merely moves cursor. | 16:18 | |
pugs> say "1244\b\b3" | |||
1234 | |||
integral | depends on the terminal really | ||
kbrooks | but how to get the length....i dunno | ||
autrijus | that, too. | ||
kbrooks: oh. you get the length using .chars | |||
integral | kbrooks: you're in terminal dependent territory, and you can use an escape sequence to get the current cursor pos | 16:19 | |
autrijus | pugs> "abc".chars | ||
3 | |||
PerlJam | kbrooks: you could try porting curses to perl6 | ||
;-) | |||
integral | hmm, what type of thing is chars counting there? | ||
kbrooks | oh, really? | ||
i could try? | |||
autrijus | integral: by default, unicode characters | ||
scw | programs usually use "\b \b" to erase the last char? | ||
kbrooks | hmmmm, nope. i have no experience in C | ||
autrijus | there's .bytes too. | ||
kbrooks: beauty of pugs is that you don't have to know C... | 16:20 | ||
kbrooks | what? | ||
autrijus | you only need to know either haskell or parrot. | ||
pasm, that is | |||
or rather, parrot imc | |||
PerlJam | you may not even need to know that. Some creative cargo-culting can take you far. | ||
integral | and a unicode character is a whole thing like Ä ? | ||
autrijus | yes. | 16:21 | |
except I think pugs is counting codepoint right now | |||
theorbtwo | Well, Ä might be one character (a with overbar), or might be two (a, followed by a combining overbar), you'd want grapheme to always get 1. | ||
...I think. | |||
autrijus | ...you think correctly. | ||
iblech | Because of the recent TODOing and unTODOing, I wondered if it'd be useful to have a file, say t/force_todo, in which all todo-because-of-release tests are listed. Test.pm would read that file and'd add "# TODO" to the output. So, we wouldn't have to TODO/unTODO each test, but only change one central file. Comments? | ||
integral | this is where it gets confusing :-) | ||
iblech: does that work with parsefails? | 16:22 | ||
autrijus | iblech: all todo-because-of-release tests can be obtained by running test and examine which failed. | ||
iblech: so yeah, a "toggler" in util/ will be fine. | |||
integral | n/m | 16:23 | |
kbrooks | How do I declare a variable? | ||
autrijus | want to work on it with your supernatural productivity? :) | ||
kbrooks: my $var; | |||
integral | kbrooks: my :-) | ||
kbrooks scolds self | |||
heh, i like ranges | |||
PerlJam | iblech: Wouldn't that file also need to contain enough context for the would-be (un)?todoer to decide whether or not something needs changing when todos are no longer todo? | ||
iblech | autrijus: The problem yesterday was that some tests were hard to TODOify, because they contained loops etc. | ||
autrijus | aye, I saw that. so human intervention is needed too | ||
iblech | PerlJam: After a release, t/force_todo could simply be deleted | ||
kbrooks | and i want an array of methods in any object | 16:24 | |
autrijus | or (bad idea zone) alert() | ||
kbrooks | and i want an array of methods in any object. what's the method to get them | ||
Anyone? | 16:25 | ||
theorbtwo | You want to get a list of methods that are valid on a given object, you mean? | ||
kbrooks | Yes. | ||
PerlJam | kbrooks: I don't think such introspection currently exists. | ||
theorbtwo | I don't know, but as pugs doesn't support objects yet, the question is rather moot. | ||
kbrooks | autrijus? | 16:26 | |
iblech | Example: In a test there's a "ok some_sub(), "test of some_sub"'. Now if this test should be TODOed for release, one would add a line to t/force_todo: "t/some/test.t 17" (say 17 is the test number of that test). Consecutive "make test" runs will treat that "ok ..." as a "todo_ok" then | ||
kbrooks: $obj.meta.getmethods(), IIRC | |||
autrijus | kbrooks: we are on 6.0.x. | ||
kbrooks: 6.2.0 will do full OO. before 6.2.0 we don't have any OO. | |||
see t/oo/* for future capability | |||
we are working on OO -- in particular mugwump is filling in Class.hs like mad -- so please have patience :) | 16:27 | ||
kbrooks | "pugs> $a.meta.getmethods() | ||
*** Error: No compatible subroutine found: &getmethods | |||
at App "&getmethods" (App "&meta" (Var "$a")) | |||
" | |||
theorbtwo | Like I said, not yet supported. | ||
Pugs is very young yet; not all theoretically valid perl6 is supported by pugs. | |||
kbrooks | where $a is my $a = ('a'..'z') | ||
:P | |||
mmm, o k | 16:28 | ||
PerlJam | kbrooks: btw, why did you use $a rather than @a ? | ||
kbrooks | oh | 16:29 | |
integral | the first perl6 newbie question ;-) | ||
kbrooks forgot | |||
PerlJam | kbrooks: well, it's perfectly valid perl6 and would do the right thing probably. | ||
kbrooks | i AM stupid :P | 16:30 | |
not. | |||
autrijus | pugs> my $a = ('a'..'z'); $a[3] | ||
('d') | |||
that's entirely fine. | |||
thank god. I mean, larry. | 16:31 | ||
theorbtwo | Is there a difference? | ||
Khisanth | theorbtwo: larry would say yes | ||
autrijus | theorbtwo: they are one scope apart | ||
PerlJam | autrijus: Larry is the new pope?!? | ||
autrijus | larry is the author of perl6's story; god is author of larry's story | ||
kbrooks | LOL | 16:32 | |
autrijus wonders if perl6 writes god's story | |||
kbrooks | no | ||
PerlJam | autrijus: larry wouldn't even claim to be the author of perl6's story | ||
theorbtwo | "Perl 5 was my rewrite of perl; Perl 6 is the community's rewrite". | ||
PerlJam | perhaps he'd say he's just the narrator | ||
theorbtwo | (Intro of A01.) | ||
autrijus | PerlJam: "This job of playing God is a little too big for me. Nevertheless, someone has to do it" | 16:33 | |
(Intro of A01.) | |||
kbrooks | he h | ||
heh* | |||
:) | |||
alinbsp | hi autrijus :) | 16:34 | |
autrijus | yo! | ||
kbrooks | is making a server really THAT simple in perl6? ONE subroutine does the socket, bind, listen. and you don't have to do all 3! | ||
wow! | |||
autrijus persumes kbrooks had not seen IO::All | 16:35 | ||
but, yes. :) | |||
kbrooks | did you really say yes THAT fast, autrijus? ;) | ||
and what is IO::All? | |||
autrijus | search.cpan.org/dist/IO-All/ | ||
PerlJam | kbrooks: an ueber-neat perl5 module | ||
crysflame | IO::All is to perl as << is to C++ | 16:36 | |
kbrooks | oh | ||
crysflame, i get it | |||
PerlJam | ingy++ (for IO::All) | ||
kbrooks | crysflame, iostream can be extended in C++ clasaes | ||
classes | |||
crysflame | neat. i don't know C++ | ||
kbrooks | actually | 16:37 | |
s/iostream/<< | |||
autrijus | although with MMD, all IO::All overload hacks can be neatly reexpressed. | ||
kbrooks | MMD? | ||
Limbic_Region | multi-method dispatch | 16:38 | |
kbrooks | oh i see | ||
autrijus | see search.cpan.org/dist/Class-Multimethods-1.70/ for a perl5 implementation from the distant prehistoric past | ||
PerlJam | kbrooks: with all of these questions, you'll know everything we know soon. Then you can hack pugs like a pro. | ||
Limbic_Region | Dan has a great "What the heck is X" section on his blog | ||
I believe MMD is one of the things he covers | |||
kbrooks | p6 does mmd (from what i have saw) | 16:39 | |
autrijus | pugs also does mmd. | ||
kbrooks | correct? | ||
autrijus | yup. | ||
PerlJam | kbrooks: sure | ||
kbrooks | s/p6/pugs | ||
Limbic_Region | www.sidhe.org/~dan/blog/archives/000194.html | ||
That was "What the heck is MMD" | |||
kbrooks | same methods for intristic handles | ||
Limbic_Region | www.sidhe.org/~dan/blog/archives/000198.html | ||
That was "What the heck is MMD good for" | |||
PerlJam | Dan should've had a "Where the heck is Dan?" post several months ago ;) | 16:41 | |
kbrooks | i presume IO::All::Socket is only good for unix | ||
theorbtwo | Shouldn't be. | 16:42 | |
IO::Socket::INET certianly isn't. | |||
kbrooks | strange | ||
then why does it use fork! | 16:43 | ||
PerlJam | IO::All::Socket is just an IO::All interface to IO::Socket | ||
kbrooks: win32 has fork | |||
autrijus | win32 has fork since 5.6.x. | ||
PerlJam | for several years now. | ||
Schwern | PJ: correction. Win32 can emulate fork if you configure it taht way | ||
autrijus | however it is very very slow. | ||
win32 perl, that is. | |||
kbrooks | oh wait | 16:44 | |
autrijus | the async{} support in pugs should be miles better than perl5 ithreads (i.e. win32 fork) | ||
kbrooks checks | |||
theorbtwo | It would be very difficult to not be better then ithreads. | ||
autrijus | i.e. one works within reasonable memory, one explodes | ||
PerlJam | kbrooks: but what do you care about non-unix? Didn't you say that you're running linux? | ||
kbrooks | Strange. | ||
autrijus | that... is scathing :) | ||
Schwern | theo: 5.005 threads succeeded. :) | ||
kbrooks | PerlJam, i care about compatibilty | ||
theorbtwo | Schwern: it's orb. | 16:45 | |
Schwern | I like theo. | ||
theorbtwo | Anyway, I'm not convinced that ithreads are better then 5005 threads. | ||
Schwern | ! | ||
autrijus | I'm going to sleep now. lambdacamels, please keep the puppy fed :) | ||
Schwern takes away theo's, or perhaps orb's, or perhaps two's crack pipe | |||
autrijus waves & | |||
theorbtwo | theo is somebody else. | ||
kbrooks | cya, autrijus | ||
PerlJam | good night autrijus! | ||
Schwern | iThreads have the minor advantage of being 521% more working than 5.005 threads ever were. | 16:47 | |
theorbtwo | Also, 521% slower. | ||
Khisanth | hmm MMD is the same as what Java and C++ does? | ||
rgs concurs | |||
Schwern | The slowest program is the one that doesn't work. | ||
rgs | there is no MMD in Java or C++ | ||
Schwern | 5.005 threads never really worked | ||
rgs | 5005threads were unsafe | 16:48 | |
ithreads are slow because they copy everything | |||
Schwern | Didn't 5.005 threads follow the "everything is shared unless its not" model? | ||
kbrooks | hm | ||
cool | |||
rgs | Schwern, right | ||
Schwern | Right. Disaster. | ||
rgs | ithreads takes the opposite approach | ||
kbrooks | what the hell is ithreads | ||
Khisanth | rgs: well "This is a way for your program to have multiple subroutines, functions, or methods with the same name that differ only in the types of their signatures." sounds awfully similar :) | 16:49 | |
PerlJam | kbrooks: a threading model introduced in perl 5.8 | ||
Schwern | kbrooks: Its Perl emulating threads by spawning a new interpreter inside itself. | ||
Interpreter Threads | |||
rgs | Khisanth: but dispatch is only done on the object type | ||
theorbtwo | Ithreads follow the "everything is copied unless it isn't" model. | ||
Schwern | Rather than trying to use kernel/operating system threads | ||
rgs | P5 has no MMD either | ||
Schwern | theo: Yes, this is much more safe and allows you to use threads with modules that don't expect to be run in a threaded environment. | ||
Therefore the entire universe doesn't have to worry about becoming "thread safe" | 16:50 | ||
See also C library hell | |||
theorbtwo | Was there ever a problem, so long as you used such objects from only one thread? | ||
Schwern | Yes. | ||
theorbtwo | Oh. | 16:51 | |
Schwern | our $Counter = 0; sub foo { my $old_counter = $Counter; $Counter++; die unless $Counter == $old_counter + 1 } # not thread safe | ||
PerlJam | The whole threads vs. fork dichotomy just sucks. There really needs to be a continuum of functionality that makes good implementation and good usage sense. | ||
Schwern | PJ: forks.pm | ||
PerlJam | forks.pm? | 16:52 | |
theorbtwo | It's only not thread safe if foo can be called from two different threads, though. | ||
Schwern | theo: Yes. And it can | ||
theo: Its just an innocent function. | |||
theorbtwo | Yes, the existance of forks.pm goes a long way to convince me that ithreads suck. | ||
rgs | java has a nice per-object synchronisation abstraction. But often unsafe. | 16:53 | |
Schwern | PJ: emulates fork() using threads... or vice versa... don't quite remember. | ||
theo: Why? | |||
rgs | makes it java code poorly reusable in threaded environments | ||
Schwern | I agree that iThreads suck, but they suck less. | ||
PerlJam | Schwern: yeah, reading search.cpan.org now | ||
theorbtwo | If forks can emulate the ithreads model, and be faster, then why doesn't ithreads just use forks? | 16:54 | |
Schwern | theo: Maybe it could. But as forks.pm is a prototype its probably incomplete and riddled with bugs. | 16:55 | |
theo: Also, some OS' don't have fork. Now you have two threads implmentations. See also "hell". | |||
kbrooks | theorbtwo: windows DOES NOT HAVE FORK | 16:56 | |
gdi | |||
PerlJam | one of the problems with threads is that there are N different implementations (types of threading) | 16:59 | |
theorbtwo | I know win32 doesn't have a native fork. | 17:00 | |
PerlJam | If everyone could agree to support fork(), then we'd at least have a workable standard. | ||
(to start from) | |||
theorbtwo | So use the slow and stupid implementation where you have to, and the fast smart one where you don't have to. | ||
PerlJam | theorbtwo: and keep the implementation differences all hidden from the user? (See also "developer hell" ;-) | 17:01 | |
metaperl_ | are named args to subs supported yet? e.g. duplicate(3, :reverse, :collate(0), 2, 3, 5, 7, 11, 14); # same | ||
kbrooks | heh | 17:03 | |
"io("myfile") > io->("ftp://store.org"); # Upload a file using ftp " | 17:04 | ||
crazy | |||
PerlJam | metaperl_: TIAS | ||
metaperl_ | TIAS means? | 17:05 | |
PerlJam | Try It And See | 17:06 | |
They appear to be supported but they don't quite fit the mental model I've gotten from reading Larry's posts on the subject. | |||
mugwump | tests++ | 17:07 | |
metaperl_ | mugwump, you mean, make tests as a hurdle to cross? | ||
mugwump | make tests that demonstrate the behaviour as explained in the synopses, that might fail in the current implementation of pugs | 17:08 | |
these are invasluable | |||
(a technical term for being as useful as vaseline when you're in a tight spot) | 17:09 | ||
mugwump makes a start on another half dozen short Haskell lessons | 17:10 | ||
metaperl_ | mugwump, have you thought about buying Simon Thompson's book on Haskell? I am very impressed with it | 17:11 | |
I'm at odds with the use of the term "flatten" as it is used in dev.perl.org/perl6/synopsis/S06.html | 17:12 | ||
to flatten means to take something which might be nested and linearize it | |||
they are saying that flatten means to bring into existence | 17:13 | ||
kbrooks | LOL | ||
the synopsis is a lie | |||
a UNTRUE statement | 17:14 | ||
metaperl_ | I want to write to p6l and have them redo the wording... should I? | ||
kbrooks | No. | ||
Khisanth | why not? | ||
kbrooks | a statement with nothing behind it | ||
Khisanth | well check a dictionary first :) | ||
kbrooks | a statement with pratically no foundation | ||
mugwump | prototype the change somewhere is a better plan | 17:15 | |
kbrooks | a statement with........ | ||
too many descriptions | |||
Khisanth | gaah are you going to start with that in here too? | ||
mugwump | That flattening is just one level AIUI, like slurpy lists | ||
but then, I only just read that part. | 17:16 | ||
Limbic_Region | regardless - metaperl should write to p6l for clarification | 17:18 | |
metaperl_ | yes, I think I will | ||
PerlJam | Where is the word "flatten" used to mean "bring into existence" exactly? | ||
Limbic_Region | if someone was confused by it, someone else is bound to be - and the Ss are supposed to be the human digestible form | ||
metaperl_ | Slurpy parameters are treated lazily -- the list is only flattened into an array when individual elements are actually accessed: | ||
@fromtwo = tail(1..Inf); # @fromtwo contains a lazy [2..Inf] | |||
PerlJam | Hmm. | 17:19 | |
That sentence is definitely wrong. | |||
mugwump | Limbic_Region: yes, but a pragmatic line must be drawn... | ||
metaperl_ | I think reified is a better term | ||
dictionary.reference.com/search?q=reify | 17:20 | ||
mugwump | The Synopses are supposed to be concise, not a tutorial. Like _Programming Perl_ | ||
PerlJam | metaperl_: perhaps, but the list is "flattened" in the sense that it is made non-lazy to the point of an individual access. | ||
Khisanth | not sure if requiring a dictionary next to the reader is a good thing :) | ||
metaperl_ | mugwump, what are you saying? wrong wording and/or wording at odds with current perl5 wording does not aid conciseness... | 17:21 | |
flattening is the opposite of nesting | |||
Limbic_Region | mugwump - I don't disagree. I am just saying that there is no significant harm in raising the question of clarification to p6l - if it is indeed a point of contention that the concise form should be ammended | ||
metaperl_ | reification is the opposite of abstract existence | ||
Schwern | metaperl: but nobody knows that. | 17:22 | |
Limbic_Region | s/that the/then the/ | ||
mugwump | Great, just please do explore it with code first ;) | ||
PerlJam | metaperl_: flattening in this context is no longer treating an array as a unit, but rather as a list of parts. | ||
metaperl_ lives | |||
Schwern, nobody knows what? | 17:23 | ||
Schwern | And arrays aren't exactly abstract. | ||
PerlJam | metaperl_: what reification means | ||
Schwern | metaperl: What reify means. | ||
metaperl_ | no, but elements which are lazily in existence as opposed to created values... | ||
metaperl_ heads to #haskell | |||
Schwern | If anything else I'd describe "taking a bunch of lists, arrays and scalars and turning them all into one list" to be glomming, smoothing... or, well, flattening. | 17:24 | |
metaperl: Oh. | |||
PerlJam | in any case the text "the list is only flattened into an array" makes absolutely no sense. If anything, it's the other way around. | ||
Schwern | metaperl: You're talking specifically about lazy lists?? | 17:25 | |
s/??/?/ | |||
kbrooks | Khisanth, and i stopped doing that 'a statement ...' because there were too many descriptions for that and i chose to give up rather than flood the channel :P | ||
PerlJam | metaperl_: Were I you, I'd just reword it and submit a patch. | ||
metaperl_ | well, I'm just saying that any perl-5 person thinks of flattenening as taking a nested data structure and "linearizing" it | ||
my @ary = (@a, @b); # @a and @b flattened into @ary | 17:26 | ||
not nested into @ary | |||
mugwump | is this based on a survey or subjective evidence? ;) | ||
Schwern | metaperl: Ok, I don't see anything wrong with that | ||
metaperl_ | mugwump: search.cpan.org for flatten | 17:27 | |
mugwump | I can see where you're coming from, for sure. But it's difficult not to stumble across that sort of thing | ||
metaperl_ | see my Data::Hash::Flatten | ||
etc, etc | |||
mugwump | I happen to agree with your opinion that flatten is a bad choice here, given that slurping is already used for that purpose | 17:28 | |
PerlJam | metaperl_: the sentence makes sense to me if you just s/flattened/generated/ | ||
er, well more like s/flattened into an array/generated/ | 17:29 | ||
of course, then you'd probably want a little more explanation to say that it's only generated up to the point of access (i.e., my @numbers = 1..Inf; doesn't go into an infinite loop if you try to access the 8th element.) | 17:30 | ||
metaperl_ | Class::DBI uses the terminology inflated and compressed... which I think is close to what I'm looking for. The difference is the data in compressed form is already generated/reified/created | 17:31 | |
PerlJam | Now that I look at the synopsis, I see why the word "flattened" was used there. The signature of tail is "sub tail(*$head, *@tail)" and those * cause flattening. What the text is trying to show is that tail(1..Inf) won't go into infinite loop because *@tail is "lazily flattened" (or how ever you want to put it) | 17:34 | |
But really the "flattening" is from the caller's perspective and it should really be talking from the sub's perspective. | 17:36 | ||
anyway ... I babble. | |||
mugwump | yeah, that's a good reason not to use "slurped" | 17:41 | |
kbrooks | slurped? | 17:42 | |
mugwump | yes, slurping implies not lazy | ||
chip | ghc 6.4 is using www.cminusminus.org/. Intersting. | 17:44 | |
Interesting, even. | |||
putter | is there a standard idiom for transliterating <<END? qq:t/^END/ ? | 18:00 | |
gaal | are here-docs out? | 18:01 | |
i thought there was still debate. | |||
rather: i thought they were in, but there was debate about indentation. | |||
putter | i havent looked at the p6 archives. S02 says gone, and new funky whitespace elimination rules... | 18:03 | |
gaal | well, in that case, i must be mistaken :) --if you're looking at a recent s02. | ||
putter | current s02. all nicely merged with the other S\d\d into a language manual. :) | 18:04 | |
gaal | well -- i looked too and i see: "Heredocs are no longer written with "<<", but with an adverb on any other quote construct" | 18:05 | |
is that what you're looking at? | |||
putter | yes. | 18:06 | |
gaal | then i'd say it should be "to", not "t" in your original question. | ||
that is, the :to adverb. | |||
putter | ah, good. long form is better. | 18:07 | |
gaal doesn't like the whitespace rules there, but will learn to live with them. | 18:08 | ||
putter | I had a "dwim complexity cringe". but ive needed/implemented similar. and i assume folks will be able to add additional adverbs. | 18:15 | |
18:19
lightste1 is now known as lightstep
|
|||
gaal | i don't mind dwimmery when it does what *i* mean :) | 18:19 | |
but i recognize that tabs are impossible to treat in a way that makes everybody happy | |||
and refuse to champion my own view on this because i think flame wars about tabs are probably on par with a queue for some official documents in terms of SHEER BOREDOM :) | 18:21 | ||
sorje loves tabs | |||
Corion | jwz has a great piece on tabs | 18:24 | |
BTW, does Haskell have any built-in (SQL or DBM) database? It should be fairly easy to write some SQL parser and interpreter in Haskell, so some graduate student should have done so already ... | 18:26 | ||
(and Pugs having a native SQL DB, preferrably built-in, pure Perl/Haskell, would be very nice IMO) | |||
... much like SQLite, except without the hassle of SQLite needing a C compiler :) | 18:27 | ||
pugscode.org <<Overview Journal Logs>> | You have safely landed in the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X (195/3716) | Win2k r???? (205/3725) | 18:34 | ||
Corion | pugscode.org <<Overview Journal Logs>> | You have safely landed in the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X (195/3716) | Win2k r1521 (205/3725) | ||
mugwump | Corion: there's STM :-) | 18:37 | |
Corion | STM ? | ||
mugwump | just think, exceptions on acid | 18:38 | |
putter | what is a non-english-speaking country which hacks perl/ruby a lot? aside from jp. | 18:46 | |
theorbtwo | DE | ||
A decent bit, at least. | |||
chip | Counting expatriates: .ca .fi .no .nl | 18:47 | |
um, I suppose s/\.ca// seeing as how English is one of the official langs | 18:48 | ||
Corion | Does .de hack Ruby a lot? | 18:50 | |
(well, I hacked in Ruby some, but didn't hack on Ruby) | |||
putter | i don't suppose this is an opportunity to cannonicalize heredoc/here-doc/"here doc"? the trend seems to be towards heredoc, except in jp where here-doc trounces it. | 18:51 | |
theorbtwo | Well, I was assuming an "or" there. | 18:53 | |
And I have no idea from the ruby side. | |||
putter | not just trend, total google usage. in ge and fr as well. heredoc would be a no brainer, if jp wasnt such an outlier. | ||
larry uses both ;) | 18:54 | ||
Corion | "ge" ? | ||
theorbtwo | en.wikipedia.org/wiki/ge | ||
Corion | Ah ;)) | 18:55 | |
Juerd | putter: Just rename heredocs | 18:57 | |
PerlJam | putter: here-doc is how it should be IMHO | 18:59 | |
putter: heredoc requires more coinage than I think necessary | 19:00 | ||
putter | err, in qq:to/END/, is END a regexp? can one actually do qq:to/^ END/ ? | 19:02 | |
s02 unclear | 19:03 | ||
Juerd is used to 'heredoc' | |||
heredoc, regex (not regexp, not regular expression), sub (not subroutine) | 19:04 | ||
putter | ok, heredoc standardization. A\d\d and E\d\d have lots of heredoc, no here-doc. | 19:06 | |
putter sorry PerlJam... heredoc usage clearly dominates except in jp. though if it becomes a less distinct language feature i could imagine it fading out again... | 19:08 | ||
PerlJam | I can live with that. :-) | ||
"heredoc" is one of those things that needs to be in the jargon file but isn't (at least I don't think it is) | 19:09 | ||
ninereasons | neato. '.elems' works, now. | 19:18 | |
kbrooks | what does? | 19:19 | |
er | |||
ninereasons | I'm very grateful to all of you talented committers. pugs gets more interesting every day. | ||
TreyHarris | is ingo on here? | ||
ninereasons | @arr= <one two three> ; say @arr.elems; # kbrooks , prints '3' | 19:21 | |
TreyHarris | that name has confused me. "elems" feels like a serializer to me, not a counter. | ||
ninereasons | really? I knew what it was when I first saw it; maybe it's because you have more broad programming experience than I do, TreyHarris (?) | 19:23 | |
TreyHarris | lol... no. 99% of my programming life has been in Perl | ||
ninereasons | no java? where's the 'serializer' connection, then? | 19:24 | |
TreyHarris | i know lots of languages. but once i learn it, I go back to Perl. :-) that's not true actually... when i needed a lot of multithreaded stuff several years ago, i wrote a lot of Java. but still probably less than 1% of the coding i've ever done | 19:25 | |
but in any case "serializing" is a pretty universal concept | 19:26 | ||
though fuddy-duddies prefer the term "marshalling" I think :-) | |||
Corion | Oh. undef on the lhs is not yet allowed. Is there a (todo_) test for that? Or is there a different way to that? | 19:33 | |
TreyHarris | what's the URL for the CPAN modules that have been ported? i forgot to bookmark and can't find it again | ||
gaal | Corion, you mean for like (undef, undef, $interesting) = @arr? | 19:34 | |
Corion | gaal: Yep - that's my exact use case. | ||
gaal: Resp. (undef, undef, $u) = function_call(); | |||
gaal | no, that's an oversight. please add to t/builtins/undef.t | ||
Corion | (but that amounts to the same) | ||
gaal: Will do | |||
gaal | thanks :) | 19:35 | |
Corion | as a todo or as a fail ? | ||
lightstep | TreyHarris, i don't know, but freepan.org probably contains some | ||
gaal | either one, i guess. autrijus &co. regularly scan todos. | ||
TreyHarris | lightstep: yep, that's got it. thanks | 19:36 | |
so when exactly did %hash<<key>> become %hash<key>? i missed it | |||
gaal | i thought about the embedding thing a little more, and am more and more convinced it's just to weird to do it through haskell. | 19:37 | |
Corion | Okies. I put the whole expression into an eval though. Hmm. I should do a try{} first, maybe it's not that fatal. | 19:38 | |
gaal | Corion, you have eval_ok etc. | ||
Corion | gaal: I know :) | ||
I should finally add a skip count to skip :)) | |||
gaal | oh, there's skip now? very cool! | ||
did you add that? | 19:39 | ||
Corion | gaal: Didn't add it yet (haven't written it yet) | 19:40 | |
gaal: There is skip(), yes :) | |||
gaal | i mean, who added skip? | ||
Corion | BTW, it's actually two different test cases. (undef,$interesting) = (1,2) doesn't work, but is not fatal. (undef,$interesting) = f() is fatal if f() returns something :) | 19:41 | |
gaal | heh :) | ||
that looks like *three* cases to me. | |||
Corion++ | 19:43 | ||
Corion | gaal: I'm adding some cases to the file :)) | ||
gaal | good. | 19:44 | |
Corion | Heh. They are even more fatal than eval() can handle :)) | ||
(undef, $i) = f(); | |||
gaal | hard parsefails++; # make things interesting | 19:45 | |
Corion | No, spoke too soon. No hard parsefails. They just don't set $! properly. So I use eval_ok and then check the expected results afterwards. | 19:46 | |
gaal | we need to add a check to eval.t :) | ||
Corion | Ooops. Shouldn't cursor-up+enter so often. | ||
in the wrong window | |||
A failure in a try{} block should set $!, right? | 19:47 | ||
gaal | the CATCH block (which, note, is inside the try) would see the $!; i forget if it's visible outside it. | 19:48 | |
(perversely, "try" is optional if you have a CATCH :) | |||
Corion | Ah - maybe that's my error. Oh well - it "works"/fails as is with eval_is too. I'll try to commit just this file now :) | 19:49 | |
Hah! It works. I learned how to commit a single directory without committing all the local breakage :) | 19:50 | ||
gaal | just make sure you write your test so that it succeets iff the feature works correctly; eval tests are tricky that way. | ||
Corion | gaal: See r1530. It should work, as (undef,*) = (1,2,3) should return a true value, no ? | ||
gaal | sec | ||
Corion | at least on p5 it does :) | 19:51 | |
gaal | yes, i think so, since in scalar context the list is true. | 19:52 | |
Corion | How do I check if a key in a hash exists? Is that via exists() (which doesn't), or is there a New Way ? | ||
ninereasons | funny difference between these: | ||
my ($a,$a,$a) = @arr #compare to ($a,$a,$a) = @arr; | |||
gaal | Corion: www.rodadams.net/Perl/S29.html defines exists. | 19:53 | |
Corion | So I'll fudge around it :) | ||
cognominal tries to bootstrap himself in haskell. | 19:54 | ||
gaal | grep { $_ eq $key } <== %hash.keys | ||
:-p | |||
cognominal | what is the meaning of the $ all around Parser.hs? | ||
gaal | cognominal: it isn't standard Haskell; it fixes precendence. they mean "function application", and save you from typing parens all over the place | 19:55 | |
omg i just answered a haskell question. KILL ME NOW. | |||
cognominal | no, I need gaal :) kill him later please | 19:56 | |
lightstep | cognominal, in haskell (a b c) is ((a b) c), as opposed to (a $ b c), which is (a (b c)) | ||
gaal | :) | ||
Corion | foo(bar(baz)) is foo $ bar $ baz | ||
cognominal | does someone know how to fix Parser.hs to support "loop {}" ? | 19:57 | |
Corion | cognominal: Simple. Just add the looping code, and then add the keywords in Prim.hs. | 19:59 | |
Two easy steps. | 20:00 | ||
I can do the keyword adding for you. So it's just one small step. | |||
:))) | |||
gaal | i like the error message you get when you try to use it. "Irrefutable pattern failed". Ominus. | ||
Ominous | |||
what is it with my typing this decade? | |||
lightstep | gaal, but this is really the most sensible message in this case. it essentially says "hey, programmer, you tried to segfault me" | 20:06 | |
gaal | *obviously*. :) | ||
ninereasons | pugs -we 'my @arr = qw<one two three four>; my ($a,$b,@r) = @arr; say $b;' # $b eq 'two' | 20:07 | |
pugs -we 'my @arr = qw<one two three four>; my ($a,$b,@r) = @arr; say $b;' # $b eq undef | |||
gaal | i think i just need to be hit on the head, lightly, so i start thinking in haskell. you guys keep saying it's so easy, after all. | ||
ninereasons | pugs -we 'my @arr = qw<one two three four>; my ($a,$b,@r) ; ($a,$b,@r)= @arr; say $b;' | ||
$b is undef in the second case. is that odd? | |||
gaal | must be a synapse rearrangement. | 20:08 | |
lightstep | don't believe anyone who says haskell is easy. but don't forget that implementing perl isn't easy either | ||
gaal | 9r: the code is the same in the first two, isn't it? | 20:09 | |
ninereasons | sorry, yes. the third case is my "second case" | ||
gaal | sure looks like a bug to me... | ||
ninereasons | see - @r steals the rest of the array from $b. | ||
gaal | not really, if you @r.perl.say, you only get ('two'). | 20:11 | |
ninereasons | it's related to the first example I posted - the silly one that says ($a,$a,$a) = @arr; | 20:12 | |
it's one off from my ($a,$a,$a) = @arr; | |||
so, it steals the next element, not the remainder of the array. right? | 20:13 | ||
gaal | good catch; the new tests should probably go in t/data_types/ or t/syntax | ||
9r, you have ci access? | 20:16 | ||
ninereasons | I don't have commit privileges | ||
gaal waves a rod of metacommitter summoning | 20:17 | ||
in the meantime, if you want to write a test, feel free to nopaste it and i'll ci it for you. | |||
ninereasons | ok. | 20:18 | |
gaal | thanks :) | ||
ninereasons | no .. thank you! :) | ||
putter scans the skies, hoping gaal's rod works... | 20:19 | ||
gaal | see t/README before you start; probably this best fits data_types/array.t | 20:20 | |
either that or wherever my is tested a lot | |||
or put it in pugsbugs/ :) | |||
ninereasons | yes, I'm reading the README and looking for the proper place. You may feel free to beat me to it, if you wish. | 20:21 | |
gaal | nope, i don't need you to grok haskell just yet. :p | ||
ah, i didn't scan your "to it" up there. sorry if my last line didn't make sense | 20:22 | ||
ninereasons | hehe, I was trying to parse it w/o success :) | ||
gaal | anyway go ahead and find the best place + test | 20:24 | |
ninereasons | ok | ||
cognominal | is there something akin to emacs etags for haskell? | 20:28 | |
gaal | yes - hasktags | ||
cognominal feels stupid | 20:29 | ||
gaal | why? it's not obvious that's the name | ||
(unless of course you're the kind of person to whom "irrefutable pattern failed" spells "help! i'm being segfaulted!" :) | 20:30 | ||
stevan | gaal: you waved for a meta commiter? | 20:39 | |
ninereasons: do you need commit access? | |||
ninereasons | he's asking for my sake | 20:40 | |
stevan | ninereasons: whats your email, I will set you up | ||
gaal | whoops, yes, hi, thanks | ||
ninereasons | I'll email you stevan. thank you. | 20:41 | |
stevan | ninereasons: ok (do you have my mail address?) | 20:42 | |
ninereasons | I'm looking through pugscode.org trying to find it. | ||
stevan | [email@hidden.address] | ||
gaal | slash-msg, folks :) | ||
ninereasons | thank you. | ||
gaal & | 20:43 | ||
Corion updates some pugs-porn at datenzoo.de/pugs/win2k.html resp. datenzoo.de/pugs/win2k.yml , if your fetish swings that way | 20:44 | ||
cognominal | hum, how does one generates and run parrot code from pugs? | ||
stevan | Corion++ # pugs porn | 20:45 | |
cognominal: see scripts/pugscc | |||
TreyHarris | < gaal> (perversely, "try" is optional if you have a CATCH :) | 20:52 | |
isn't C<try> just a syntactically null sugar-word? | |||
gaal | no, because if you *don't* have a CATCH, it still saves you from exceptions :) | 20:53 | |
but I'm not really here :) | |||
TreyHarris | oh, right. try == perl 5 eval BLOCK | 20:54 | |
TreyHarris forgot | |||
so does anyone here know when %hash<<key>> became %hash<key>? i missed that change | 21:00 | ||
stevan | TreyHarris: not sure myself, but I welcome the change <<>> was kinda ugly | 21:01 | |
Corion | I still use %ENV{"HTTP_PROXY"} - is that wrong? Should I use %ENV<"HTTP_PROXY"> ? | ||
stevan | Corion: <> is autoquote | 21:02 | |
TreyHarris | Corion: the latter would be wrong, i think--unless the key contains quotes | ||
Corion | Ooooo - so I'll use <> :) | ||
stevan | so you can do %ENV<HTTP_PROXY> | ||
Corion | stevan: Exactly - two less chars! | ||
TreyHarris | you could write %ENV<"HTTP_PROXY"> as %ENV{'"HTTP_PROXY"'} though ;-) | ||
stevan | Corion: I always do %*ENV myself (not actually sure what the * is for -- Yeah Cargo Cult Perl6!!) | 21:03 | |
TreyHarris | %* is for a global | ||
Corion | stevan: You're propably more correct, as %*ENV is a global var. | ||
TreyHarris | but %ENV will almost always be %*ENV unless you've done something evil. | ||
stevan | TreyHarris: exactly | ||
so I am just be more explict then,.. | |||
TreyHarris | best practice, i think will be to always put in the * when referring to global vars, and always leave out * when referring to global subs/multimethods, unless you have a good reason for excluding in the first case or including in the second. (the second would be like CORE:: today, i think) | 21:05 | |
Corion | stevan: You're propably more correct, as %*ENV is a global var. | ||
Grrr - sorry again :( | |||
stevan | Corion, you might want to switch to decaf :) | 21:06 | |
Corion | stevan: No - it's more the dangerous keycombo of alt-tab,cursor-up,enter :) | 21:07 | |
stevan | Corion: I know I do the same thing | ||
TreyHarris | has anyone on p6-l seen my post on "Re: [S29] pick on other things than junctions"? I sent it 100 minutes ago and still haven't seen it posted. But I used the wrong sender email address, so maybe it's being held for moderation. (Which is good--I used my private address by mistake.) | 21:08 | |
chip | %ENV<<PATH IFS>> = ('/bin:/usr/bin', " \t\n") | 21:09 | |
stevan | nothingmuch!!! | 21:10 | |
Corion | jabbot is asleep? I see no commit messages ... | 21:15 | |
I just added skip $count, $reason - and it seems I didn't break the build. But I didn't add tests for that. | 21:16 | ||
Anyway. I'm asleep now. Back in 16 hours or so ;)) | |||
pugscode.org <<Overview Journal Logs>> | You have safely landed in the lambdacamel anarchistic commune | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X (195/3716) | Win2k r1534 (210/3779) | 21:22 | ||
ninereasons | apparently, svn has allowed me to dirty up the pool with my first commit | 21:42 | |
stevan | ninereasons: congratulations | 21:52 | |
stevan refreshes his knowledge of "svn revert" ;) | 21:53 | ||
ninereasons | haha :) | 21:54 | |
kbrooks | pugscode.org <<Overview Journal Logs>> | You have safely opened the door to many Perl 6 hackers. | pugs.kwiki.org | smoke: xrl.us/fmw2 | Mac OS X (195/3716) | Win2k r1534 (210/3779) | 22:20 | |
ninereasons | what is the expected behavior of my ($a,@arr) = 1..3; ? should @arr.perl be (2) or (2,3) ? | 22:35 | |
or put another way: is 'my @arr = 1..3;' supposed to be identical to 'my( @arr ) = 1..3;' ? | 22:43 | ||
TreyHarris | ninereasons: larry dealt with this exact question on p6-l last week | 22:49 | |
i don't remember his answer :-) | |||
the question is whether C<..> forces a list context on the lhs or not | 22:50 | ||
but i do know that in your earlier example, @arr would be (2,3) | 22:51 | ||
ninereasons | so (2) would be a buggy return. | ||
I think the perl5 behavior is easy to understand; but maybe it's not strictly correct, in a grammarian's sense. | 22:52 | ||
TreyHarris | if context wasn't intuited from...er...context, Perl 6 wouldn't be Perl :-) | 22:53 | |
ninereasons | my thoughts too. for a non-programmer like me, intuited behavior is important | 22:55 | |
nothingmuch | Paul Chambers is a genius | 23:03 | |
cognominal | is there an interactive haskell mode accessible from emacs, like ocaml thru tuareg? | 23:11 | |
stevan | anyone know a reliable cross platform command to clear the screen? | 23:33 | |
nothingmuch: I am a die-hard Mingus fan myself :) | 23:37 | ||
nothingmuch | stevan: what i've heard i've liked, but I don't have enough | 23:38 | |
stevan: what screen? oh shit, there went the portability | |||
stevan | nothingmuch: email me, and I will hook you up | ||
nothingmuch: I want to clear the screen in my hangman game | |||
system("clear") works on unix | 23:39 | ||
nothingmuch | I'd try to use Curses to wrangle that mess | ||
or at least ANSI::Term | |||
stevan | and there is a escape code (which I never remember), but I doubt any works on win | ||
nothingmuch | you can also do my $cls = `clear`; | ||
rught | |||
but there's o such thing on win | 23:40 | ||
damn, typing is not working for me today | |||
stevan | figures :) | ||
nothingmuch | brb, i have to lvextend a raid, and mdadm needs a reboot to make that happen | ||
stevan | ok | ||
ninereasons | stevan, what should come of my (@a) = 1..3: ? | 23:41 | |
right now, pugs thinks it should be (1). | |||
Schwern | I need to find Ingy | 23:42 | |
Anybody have his number? | 23:43 | ||
obra | Schwern: he's in taiwan | ||
his number will not work | |||
Schwern | Oh darn | ||
obra | I'd also put money on him being asleep | 23:44 | |
Schwern | Friend of ours is up in Seattle |