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